Créer un catalogue

La création d'un catalogue (tel qu'un 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 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. Vérifiez que la facturation est activée pour votre projet Google Cloud .

  2. Activez l'API BigLake.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer l'API

Rôles requis

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

  • Tous :
  • Compte de service du catalogue d'exécution Lakehouse provisionné automatiquement en mode de distribution d'identifiants : Utilisateur d'objets Storage (roles/storage.objectUser) sur le bucket Cloud Storage cible. Après avoir créé le catalogue, accordez explicitement le rôle Utilisateur d'objets de stockage (roles/storage.objectUser) sur votre bucket de stockage au compte de service du catalogue Lakehouse Runtime 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 point de terminaison de catalogue.

Console

  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 REST Iceberg.
    • Pour créer un catalogue Apache Hive, sélectionnez Catalogue Hive.
  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. Vous ne pouvez avoir qu'un seul catalogue par bucket, et le nom du catalogue correspond à celui du bucket.
    • 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

Pour créer un catalogue à l'aide de gcloud, exécutez la commande gcloud biglake iceberg catalogs create.

Créer un catalogue BigLake

Pour créer un catalogue BigLake, définissez --catalog-type sur biglake et spécifiez l'emplacement de l'entrepôt par défaut :

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"]

Créer un bucket Cloud Storage Storage

Pour créer un catalogue de bucket Cloud Storage, 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 de buckets Cloud Storage, cela doit correspondre au nom du bucket Cloud Storage.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • DEFAULT_LOCATION : chemin d'accès Cloud Storage de base pour les données et métadonnées du catalogue, au format gs://my-bucket/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.
  • 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.

REST

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.