Travailler avec les métadonnées de la vue de métrique à l'aide du Driver JDBC Databricks
Le Driver JDBC Databricks prend en charge des opérations de métadonnées améliorées qui permettent aux outils et applications de Business Intelligence (BI) de découvrir les vues de métriques et d'identifier les colonnes de mesures à l'aide de méthodes de métadonnées JDBC standard.
Les outils BI peuvent filtrer et afficher les vues métriques séparément dans les navigateurs de source de données, générer le SQL approprié en distinguant les mesures des dimensions, et développer de riches capacités de couche sémantique. Les outils d'exploration de données peuvent aider les utilisateurs à découvrir et à comprendre les métriques commerciales disponibles dans votre catalogue.
Activer les métadonnées améliorées
Les métadonnées améliorées pour les vues de métriques sont désactivées by default pour maintenir la rétrocompatibilité. Activez-le à l'aide d'une propriété de connexion JDBC ou du paramètre de configuration Spark SQL.
Définissez la propriété de connexion EnableMetricViewMetadata à 1 lors de l'établissement d'une connexion JDBC.
- Using connection properties
- Using JDBC URL parameters
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);
String url = "jdbc:databricks://<workspace-host>:443/default;" +
"httpPath=<http-path>;" +
"EnableMetricViewMetadata=1";
Connection connection = DriverManager.getConnection(url, properties);
Vous pouvez également définir spark.databricks.metadata.metricview.enabled sur 1 dans votre session 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
Identifier les vues métriques
Utilisez la méthode DatabaseMetaData.getTables() pour découvrir les vues métriques. Lorsque les métadonnées améliorées sont activées, cette méthode renvoie METRIC_VIEW en tant que TABLE_TYPE pour les vues métriques, afin que vous puissiez les distinguer des vues et tables classiques.
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);
}
Identifier les colonnes de mesure
Utilisez la méthode DatabaseMetaData.getColumns() pour identifier les colonnes de mesure dans une vue métrique. Lorsque les métadonnées améliorées sont activées, la colonne TYPE_NAME renvoie <data_type> measure pour les colonnes de mesure (par exemple, 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 + ")");
}
}
Filtrer par type de table
Utilisez la méthode DatabaseMetaData.getTableTypes() pour découvrir les types de table disponibles dans votre catalogue. Avec les métadonnées améliorées activées, cette méthode inclut METRIC_VIEW dans la liste des types de table disponibles.
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, ...
}
Rétrocompatibilité
Par défaut, EnableMetricViewMetadata est défini 0 sur default pour maintenir la rétrocompatibilité avec les applications existantes. Databricks renvoie les vues de métriques en tant que type VIEW régulier, et les colonnes de mesure affichent leur type de données de base sans le suffixe measure.