Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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_VIEW作为指标视图返回TABLE_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 measuredouble 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 后缀。