Работа с метаданными представления метрик с помощью драйвера JDBC Databricks

Databricks JDBC Driver поддерживает расширенные операции метаданных, которые позволяют средствам и приложениям бизнес-аналитики обнаруживать представления метрик и определять столбцы мер в них с помощью стандартных методов метаданных JDBC.

Средства бизнес-аналитики могут фильтровать и отображать представления метрик отдельно в браузерах источников данных, создавать соответствующие SQL, различая меры от измерений и создавать широкие возможности семантического слоя. Средства анализа данных помогают пользователям обнаруживать и понимать доступные бизнес-метрики в каталоге.

Включение расширенных метаданных

Расширенные метаданные для представлений метрик по умолчанию отключены для обеспечения обратной совместимости. Включите его с помощью свойства подключения JDBC или параметра конфигурации Spark SQL.

Задайте свойству подключения EnableMetricViewMetadata значение 1 при установке подключения JDBC.

Использование свойств подключения

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);

Использование параметров URL-адреса JDBC

String url = "jdbc:databricks://<workspace-host>:443/default;" +
             "httpPath=<http-path>;" +
             "EnableMetricViewMetadata=1";
Connection connection = DriverManager.getConnection(url, properties);

Кроме того, задайте значение spark.databricks.metadata.metricview.enabled1 в сеансе SQL:

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 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.

Дальнейшие шаги