Partilhar via


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

O Databricks JDBC Driver suporta operações de metadados melhoradas que permitem que ferramentas e aplicações de inteligência empresarial (BI) descubram vistas métricas e identifiquem colunas de medida dentro delas, utilizando métodos padrão de metadados JDBC.

As ferramentas de BI podem filtrar e exibir vistas métricas separadamente nos navegadores de fontes de dados, gerar SQL apropriado ao distinguir medidas de dimensões e construir capacidades semânticas ricas. As ferramentas de exploração de dados podem ajudar os utilizadores a descobrir e compreender métricas de negócio disponíveis em todo o seu catálogo.

Ativar metadados melhorados

Os metadados melhorados para vistas métricas estão desativados por defeito para manter a compatibilidade retroativa. Ative-o usando uma propriedade de ligação JDBC ou a configuração SQL do Spark.

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

Utilização das propriedades de ligaçã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);

Utilização dos parâmetros do URL JDBC

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

Alternativamente, defina spark.databricks.metadata.metricview.enabled para 1 na 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 visões métricas

Use o DatabaseMetaData.getTables() método para descobrir vistas métricas. Com os metadados melhorados ativados, este método devolve METRIC_VIEW como TABLE_TYPE para visualizações de métricas, permitindo que possa distingui-las das vistas e tabelas normais.

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 DatabaseMetaData.getColumns() método para identificar colunas de medida dentro de uma vista métrica. Com metadados melhorados ativados, a TYPE_NAME coluna devolve <data_type> measure as 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 encontrar os tipos de tabelas disponíveis no seu catálogo. Com metadados melhorados ativados, este método inclui METRIC_VIEW na lista de tipos de tabelas 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 defeito, EnableMetricViewMetadata está configurado como 0 para manter a compatibilidade com versões anteriores de aplicações existentes. O Azure Databricks devolve visualizações de métricas como tipo regular VIEW, e as colunas de medida mostram o seu tipo base de dados sem o sufixo measure.

Próximos passos