Compartilhar via


Trabalhar com metadados de exibição de métrica usando o Driver JDBC do Databricks

O Driver JDBC do Databricks dá suporte a operações de metadados aprimoradas que permitem que ferramentas e aplicativos de BI (business intelligence) descubram exibições de métrica e identifiquem colunas de medida dentro delas usando métodos de metadados JDBC padrão.

As ferramentas de BI podem filtrar e exibir exibições de métrica separadamente em navegadores de fonte de dados, gerar SQL apropriado distinguindo medidas de dimensões e criar recursos de camada semântica avançada. As ferramentas de exploração de dados podem ajudar os usuários a descobrir e entender as métricas de negócios disponíveis em seu catálogo.

Habilitar metadados aprimorados

Metadados aprimorados para exibições de métrica são desabilitados por padrão para manter a compatibilidade com versões anteriores. Habilite usando uma propriedade de conexão JDBC ou a configuração do Spark SQL.

Defina a propriedade de conexão EnableMetricViewMetadata para 1 ao estabelecer uma conexão JDBC.

Usando propriedades de conexão

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

Usando parâmetros de URL JDBC

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

Como alternativa, defina spark.databricks.metadata.metricview.enabled como 1 em sua sessão 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

Identificar exibições de métrica

Use o método DatabaseMetaData.getTables() para descobrir exibições de métrica. Com metadados aprimorados habilitados, esse método retorna METRIC_VIEW como TABLE_TYPE para exibições de métrica, permitindo que você os distinga de exibições e tabelas regulares.

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

Identificar colunas de medida

Use o método DatabaseMetaData.getColumns() para identificar colunas de medida dentro de uma vista de métricas. Com metadados aprimorados habilitados, a TYPE_NAME coluna retorna <data_type> measure para colunas de medida (por exemplo, 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 + ")");
    }
}

Filtrar por tipo de tabela

Use o DatabaseMetaData.getTableTypes() método para descobrir os tipos de tabela disponíveis em seu catálogo. Com metadados aprimorados habilitados, esse método inclui METRIC_VIEW na lista de tipos de tabela disponíveis.

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

Compatibilidade com versões anteriores

Por padrão, EnableMetricViewMetadata é configurado como 0 para manter compatibilidade retroativa com aplicativos existentes. O Azure Databricks retorna exibições de métricas como tipo regular VIEW, e as colunas de medida mostram seu tipo de dados base sem o sufixo measure.

Próximas etapas