Créer et interroger des tables metastore à partir de Spark

Vous pouvez interroger des tables Apache Spark Iceberg dans un notebook BigQuery à l'aide de moteurs Open Source tels que Spark. Il s'agit de tables Iceberg standards dont les métadonnées sont stockées dans BigLake Metastore. La même table peut être interrogée à la fois depuis BigQuery et Spark.

Avant de commencer

  • Créez une table Iceberg en utilisant Spark dans un notebook BigQuery. Le schéma de la table est stocké dans le metastore BigLake. Par exemple, vous pouvez créer la table avec Dataproc, Dataproc Serverless ou une procédure stockée.

Remarques

  • Seules les tables Iceberg sont acceptées.
  • Lorsque vous exécutez vos requêtes, n'oubliez pas de mapper vos noms d'espace de noms et de base de données en tant que noms d'ensembles de données BigQuery. Le tableau suivant répertorie les mappages de touches applicables à utiliser :

    Open Source BigQuery
    Espace de noms Ensemble de données BigQuery
    Base de données Ensemble de données BigQuery
    Table (partitionnée ou non) Table BigQuery

Afficher et interroger une table

Après avoir créé vos ressources BigQuery dans Spark, vous pouvez les afficher et les interroger dans la consoleTrusted Cloud . L'exemple suivant montre les étapes générales à suivre pour interroger une table de metastore à l'aide de Spark interactif :

  1. Utilisez le catalogue Iceberg personnalisé :

    USE `CATALOG_NAME`;

    Remplacez les éléments suivants :

    • CATALOG_NAME : nom du catalogue Spark que vous utilisez avec votre job SQL.
  2. Créez un espace de noms :

    CREATE NAMESPACE IF NOT EXISTS NAMESPACE_NAME;

    Remplacez les éléments suivants :

    • NAMESPACE_NAME : nom de l'espace de noms qui fait référence à votre table Spark.
  3. Utilisez l'espace de noms créé :

    USE NAMESPACE_NAME;
  4. Créez une table Iceberg :

    CREATE TABLE TABLE_NAME (id int, data string) USING ICEBERG;

    Remplacez les éléments suivants :

    • TABLE_NAME : nom de votre table Iceberg.
  5. Insérer une ligne dans un tableau :

    INSERT INTO TABLE_NAME VALUES (1, "first row");
  6. Utilisez la console Trusted Cloud pour effectuer l'une des opérations suivantes :

     SELECT * FROM `TABLE_NAME`;

Étapes suivantes