Créer un catalogue

La création d'un point de terminaison de catalogue (tel qu'un point de terminaison de catalogue REST Apache Iceberg ou Apache Hive) établit un point de terminaison de gestion dans le catalogue d'environnements d'exécution Lakehouse.

Ce point de terminaison pointe vers un bucket Cloud Storage sous-jacent, fournissant une couche de métadonnées qui permet aux moteurs de requête et aux charges de travail Open Source d'interagir directement avec vos tables.

Lorsque vous créez votre point de terminaison de catalogue pour Lakehouse pour Apache Iceberg, vous pouvez choisir entre les identifiants de l'utilisateur final ou le mode de distribution d'identifiants pour la délégation de l'accès au stockage.

Avant de commencer

  1. Consultez À propos du catalogue d'environnements d'exécution Lakehouse pour comprendre le fonctionnement du catalogue d'environnements d'exécution Lakehouse et les limites du service.
  2. Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    Enable the BigLake API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    Enable the BigLake API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

Rôles requis

Pour obtenir les autorisations nécessaires pour créer un catalogue et enregistrer des tables, demandez à votre administrateur de vous accorder les rôles IAM suivants :

  • Créez un catalogue :
  • Enregistrer des tables : Administrateur BigLake (roles/biglake.admin) sur votre projet. Pour enregistrer des tables dans un catalogue multibuckets, vous devez disposer de l'autorisation spécifique d'enregistrement de tables (biglake.tables.register), qui est incluse dans le rôle Administrateur BigLake.
  • Utilisez le compte de service de catalogue provisionné automatiquement en mode de distribution d'identifiants : Utilisateur d'objets Storage (roles/storage.objectUser) sur les buckets Cloud Storage cibles. Après avoir créé le catalogue, attribuez explicitement le rôle Utilisateur d'objets de stockage (roles/storage.objectUser) sur vos buckets de stockage au compte de service provisionné automatiquement.

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer un catalogue

Créez un catalogue.

Console

Créer un catalogue multibuckets (bl://) (recommandé)

Créer un catalogue à bucket unique (gs://)

  1. Dans la console Google Cloud , ouvrez la page Lakehouse.

    Accéder à Lakehouse

  2. Sélectionnez Créer un catalogue. La page Créer un catalogue s'ouvre.

  3. Sélectionnez la configuration du catalogue :

    • Pour créer un catalogue Apache Iceberg REST, sélectionnez Catalogue Iceberg REST.
  4. Configurez le catalogue :

    • Si vous choisissez Catalogue REST Iceberg, sélectionnez Bucket Cloud Storage pour le type de catalogue, puis sélectionnez le bucket Cloud Storage à utiliser avec votre catalogue.
    • Si vous sélectionnez Catalogue Hive, saisissez un nom de catalogue unique et sélectionnez le chemin d'accès Cloud Storage associé.
  5. Pour Méthode d'authentification, sélectionnez Identifiants de l'utilisateur final ou Mode de distribution d'identifiants.

    Si vous sélectionnez le mode de distribution des identifiants, le compte de service du catalogue d'exécution Lakehouse provisionné automatiquement nécessite le rôle explicite Utilisateur d'objets Storage (roles/storage.objectUser) sur tous les buckets Cloud Storage associés. Par défaut, il n'y a aucun accès. Sans ce rôle, les identifiants fournis n'ont pas la portée suffisante pour effectuer des opérations d'écriture dans le stockage.

  6. Sélectionnez Créer.

    Votre catalogue est créé et la page Informations sur le catalogue s'ouvre.

  7. Sous Méthode d'authentification, sélectionnez Définir les autorisations du bucket.

  8. Dans la boîte de dialogue, sélectionnez Confirmer.

    Cela permet de vérifier que le compte de service de votre catalogue dispose du rôle Utilisateur des objets de l'espace de stockage (roles/storage.objectUser) sur tous les buckets de stockage associés. Si vous créez des catalogues à l'aide de gcloud ou de Terraform, vous devez attribuer ce rôle manuellement.

gcloud

Créer un catalogue multibuckets (bl://) (recommandé)

gcloud biglake iceberg catalogs create CATALOG_ID \
    --project="PROJECT_ID" \
    --catalog-type="biglake" \
    --default-location="DEFAULT_LOCATION" \
    [--restricted-locations="RESTRICTED_LOCATIONS"] \
    [--credential-mode="CREDENTIAL_MODE"] \
    [--primary-location="PRIMARY_LOCATION"]

Remplacez les éléments suivants :

  • CATALOG_ID : ID de votre catalogue d'exécution Lakehouse.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • DEFAULT_LOCATION : chemin d'accès Cloud Storage de base pour les données et les métadonnées du catalogue, au format gs://my-bucket/path ou gs://my-bucket. Tous les espaces de noms et toutes les tables du catalogue doivent se trouver sous ce chemin d'accès. Par exemple, si vous spécifiez gs://my-bucket/path, vous ne pouvez pas héberger d'espaces de noms ni de tables sous gs://my-bucket/another/path.
  • RESTRICTED_LOCATIONS : (facultatif) liste de chemins d'accès ou de buckets de stockage supplémentaires autorisés, séparés par une virgule. De même, si vous spécifiez un chemin d'accès (tel que gs://my-bucket/path), tous les espaces de noms et toutes les tables créés sous le bucket de ce chemin d'accès doivent résider dans ce chemin d'accès. Avertissement de sécurité : Évitez de configurer des chemins qui se chevauchent avec d'autres catalogues pour éviter l'exposition non autorisée des identifiants. Pour en savoir plus, consultez Stockage dans plusieurs buckets.
  • CREDENTIAL_MODE : méthode d'authentification. Utilisez end-user pour les identifiants de l'utilisateur final ou vended-credentials pour le mode de distribution d'identifiants.
  • PRIMARY_LOCATION : (facultatif) région principale du catalogue (par exemple, US ou EU) pour assurer la compatibilité avec BigQuery.

Créer un catalogue à bucket unique (gs://)

Pour créer un catalogue à bucket unique (gs://), définissez --catalog-type sur gcs-bucket :

gcloud biglake iceberg catalogs create CATALOG_ID \
    --project="PROJECT_ID" \
    --catalog-type="gcs-bucket" \
    [--credential-mode="CREDENTIAL_MODE"]

Remplacez les éléments suivants :

  • CATALOG_ID : ID de votre catalogue d'exécution Lakehouse. Pour les catalogues à bucket unique (gs://), cette valeur doit correspondre au nom du bucket Cloud Storage.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • CREDENTIAL_MODE : méthode d'authentification. Utilisez end-user pour les identifiants de l'utilisateur final ou vended-credentials pour le mode de distribution d'identifiants.

REST

Créer un catalogue REST Iceberg

Pour créer un point de terminaison de gestion de catalogue à l'aide de l'API REST, envoyez une requête POST au point de terminaison CreateIcebergCatalog :

POST /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs?icebergCatalogId=CATALOG_ID

Le corps de la requête doit contenir une charge utile JSON IcebergCatalog définissant la configuration du catalogue, comme l'entrepôt de bucket Cloud Storage sous-jacent et le mode d'authentification.

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • CATALOG_ID : ID de votre catalogue d'exécution Lakehouse.