Freigeben über


Arbeiten mit Metrikansichtsmetadaten mithilfe des Databricks JDBC-Treibers

Der Databricks JDBC-Treiber unterstützt erweiterte Metadatenvorgänge, mit denen Business Intelligence (BI)-Tools und -Anwendungen Metrikansichten entdecken und in ihnen Messspalten mithilfe standardmäßiger JDBC-Metadatenmethoden identifizieren können.

BI-Tools können metrische Ansichten separat in Datenquellenbrowsern filtern und anzeigen, geeignete SQL generieren, indem Maße von Dimensionen unterschieden werden, und umfangreiche semantische Schichteigenschaften erstellen. Tools zur Datenerkundung können Benutzern helfen, verfügbare Geschäftsmetriken im gesamten Katalog zu ermitteln und zu verstehen.

Aktivieren erweiterter Metadaten

Erweiterte Metadaten für Metrikansichten sind standardmäßig deaktiviert, um die Abwärtskompatibilität beizubehalten. Aktivieren Sie es entweder mithilfe einer JDBC-Verbindungseigenschaft oder der Spark SQL-Konfigurationseinstellung.

Setzen Sie die EnableMetricViewMetadata-Verbindungseigenschaft auf 1, wenn Sie eine JDBC-Verbindung herstellen.

Verwenden von Verbindungseigenschaften

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

Verwendung von JDBC-URL-Parametern

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

Alternativ können Sie in Ihrer SQL-Sitzung spark.databricks.metadata.metricview.enabled auf 1 festlegen.

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

Metrikansichten identifizieren

Verwenden Sie die DatabaseMetaData.getTables() Methode, um Metrikansichten zu ermitteln. Wenn erweiterte Metadaten aktiviert sind, gibt diese Methode METRIC_VIEW als Kennung für Metrikansichten zurück, sodass Sie sie von regulären Ansichten und Tabellen unterscheiden können.

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

Identifizieren von Messungsspalten

Verwenden Sie die DatabaseMetaData.getColumns()-Methode, um Messspalten in einer Metrikansicht zu identifizieren. Wenn erweiterte Metadaten aktiviert sind, gibt die TYPE_NAME-Spalte für Measurespalten wie <data_type> measure, int measure zurück (z. B. 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 + ")");
    }
}

Nach Tabellentyp filtern

Verwenden Sie die DatabaseMetaData.getTableTypes() Methode, um verfügbare Tabellentypen in Ihrem Katalog zu ermitteln. Wenn erweiterte Metadaten aktiviert sind, schließt diese Methode METRIC_VIEW in die Liste der verfügbaren Tabellentypen ein.

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

Abwärtskompatibilität

Standardmäßig wird EnableMetricViewMetadata auf 0 gesetzt, um die Abwärtskompatibilität mit vorhandenen Anwendungen zu gewährleisten. Azure Databricks gibt Metrikansichten als regulären VIEW Typ zurück, und Measurespalten zeigen ihren Basisdatentyp ohne das measure Suffix an.

Nächste Schritte