Databricks JDBC 드라이버는 BI(비즈니스 인텔리전스) 도구 및 애플리케이션이 표준 JDBC 메타데이터 메서드를 사용하여 메트릭 뷰를 검색하고 측정값 열을 식별할 수 있도록 하는 향상된 메타데이터 작업을 지원합니다.
BI 도구는 데이터 원본 브라우저에서 메트릭 뷰를 별도로 필터링 및 표시하고, 측정값과 차원을 구분하여 적절한 SQL을 생성하고, 풍부한 의미 체계 계층 기능을 빌드할 수 있습니다. 데이터 탐색 도구는 사용자가 카탈로그 전체에서 사용 가능한 비즈니스 메트릭을 검색하고 이해하는 데 도움이 될 수 있습니다.
향상된 메타데이터 사용
메트릭 보기에 대한 향상된 메타데이터는 기본적으로 이전 버전과의 호환성을 유지하기 위해 사용하지 않도록 설정됩니다. JDBC 연결 속성 또는 Spark SQL 구성 설정을 사용하여 사용하도록 설정합니다.
JDBC 연결을 설정할 때 EnableMetricViewMetadata 연결 속성을 1로 설정합니다.
연결 속성 사용
Properties properties = new Properties();
properties.setProperty("UID", "<username>");
properties.setProperty("PWD", "<password>");
properties.setProperty("EnableMetricViewMetadata", "1");
String url = "jdbc:databricks://<workspace-host>:443/default;httpPath=<http-path>";
Connection connection = DriverManager.getConnection(url, properties);
JDBC URL 매개 변수 사용
String url = "jdbc:databricks://<workspace-host>:443/default;" +
"httpPath=<http-path>;" +
"EnableMetricViewMetadata=1";
Connection connection = DriverManager.getConnection(url, properties);
SQL 세션에서 spark.databricks.metadata.metricview.enabled를 1로 설정합니다.
Connection connection = DriverManager.getConnection(url, properties);
Statement statement = connection.createStatement();
statement.execute("SET spark.databricks.metadata.metricview.enabled=1");
// Metadata operations now return enhanced metric view information
메트릭 뷰 식별
메서드를 DatabaseMetaData.getTables() 사용하여 메트릭 뷰를 검색합니다. 향상된 메타데이터를 사용하도록 설정하면 이 메서드는 메트릭 뷰에 대한 것으로 반환 METRIC_VIEWTABLE_TYPE 되므로 일반 보기 및 테이블과 구분할 수 있습니다.
Connection connection = DriverManager.getConnection(url, properties);
DatabaseMetaData metadata = connection.getMetaData();
ResultSet tables = metadata.getTables(catalog, schema, "<metric_view>", null);
while (tables.next()) {
String tableName = tables.getString("TABLE_NAME");
String tableType = tables.getString("TABLE_TYPE"); // Returns "METRIC_VIEW"
System.out.println("Metric View: " + tableName);
}
측정값 열 식별
이 메서드를 DatabaseMetaData.getColumns() 사용하여 메트릭 뷰 내에서 측정값 열을 식별합니다. 향상된 메타데이터를 사용하도록 설정하면 TYPE_NAME 열이 측정값 열(<data_type> measure, int measure)에 대해 double measure을(를) 반환합니다.
Connection connection = DriverManager.getConnection(url, properties);
DatabaseMetaData metadata = connection.getMetaData();
ResultSet columns = metadata.getColumns(catalog, schema, metricViewName, "%");
while (columns.next()) {
String columnName = columns.getString("COLUMN_NAME");
String typeName = columns.getString("TYPE_NAME");
if (typeName.endsWith(" measure")) {
System.out.println("Measure column: " + columnName + " (" + typeName + ")");
} else {
System.out.println("Dimension column: " + columnName + " (" + typeName + ")");
}
}
테이블 형식별로 필터링
이 메서드를 DatabaseMetaData.getTableTypes() 사용하여 카탈로그에서 사용 가능한 테이블 형식을 검색합니다. 향상된 메타데이터를 사용하도록 설정하면 이 메서드는 사용 가능한 테이블 형식 목록에 포함됩니다 METRIC_VIEW .
Connection connection = DriverManager.getConnection(url, properties);
DatabaseMetaData metadata = connection.getMetaData();
ResultSet tableTypes = metadata.getTableTypes();
while (tableTypes.next()) {
String tableType = tableTypes.getString("TABLE_TYPE");
System.out.println("Available table type: " + tableType);
// Output includes: TABLE, VIEW, METRIC_VIEW, ...
}
이전 버전과의 호환성
기본적으로 EnableMetricViewMetadata는 기존 애플리케이션과의 호환성을 유지하기 위해 0로 설정됩니다. Azure Databricks는 메트릭 뷰를 일반 VIEW 형식으로 반환하며, 측정값 열은 measure 접미사 없이 기본 데이터 형식을 보여줍니다.