Aller au contenu principal

Se connecter à Google Cloud Storage

attention

Cet article décrit un ancien modèle d'accès à Google Cloud Storage (GCS) depuis un workspace Databricks hébergé sur AWS qui contourne la gouvernance Unity Catalog. Utilisez-le uniquement si la gouvernance Unity Catalog n'est pas requise pour les données de ce bucket.

Pour lire ou écrire à partir d'un bucket GCS, vous devez créer un compte de service attaché et associer le bucket à ce compte de service. Vous vous connectez au compartiment directement avec une clé que vous générez pour le compte de service.

Accéder directement à un compartiment GCS avec une clé de compte de service Google Cloud

Pour lire et écrire directement dans un bucket, vous configurez une clé définie dans votre configuration Spark.

Étape 1 : Configurez un compte de service Google Cloud à l'aide de la Google Cloud Console

Vous devez créer un compte de service pour le cluster Databricks. Databricks recommande d'accorder à ce compte de service les privilèges minimaux nécessaires pour accomplir ses tâches.

  1. Cliquez sur IAM et Admin dans le volet de navigation de gauche.

  2. Cliquez sur Comptes de service .

  3. Cliquez sur + CRÉER UN COMPTE DE SERVICE .

  4. Saisissez le nom et la description du compte de service.

    Créer un compte de service Google pour GCS

  5. Cliquez sur « CREATE ».

  6. Cliquez sur **CONTINUER**.

  7. Cliquez sur OK .

Étape 2 : Créer une clé pour accéder directement au compartiment GCS

attention

La clé JSON que vous générez pour le compte de service est une clé privée qui ne doit être partagée qu’avec des utilisateurs autorisés, car elle contrôle l’accès aux datasets et aux ressources de votre compte Google Cloud.

  1. Dans la console Google Cloud, dans la liste des comptes de service, cliquez sur le compte nouvellement créé.
  2. Dans la section Clés , cliquez sur AJOUTER UNE CLÉ > Créer une nouvelle clé .
  3. Acceptez le type de clé **JSON**.
  4. Cliquez sur Créer . Le fichier clé est download sur votre ordinateur.

Étape 3 : Configurez le compartiment GCS

Créez un compartiment

Si vous n'avez pas déjà de compartiment, créez-en un :

  1. Cliquez sur Stockage dans le volet de navigation gauche.

  2. Cliquez sur CRÉER UN BUCKET .

    Google Créer un compartiment

  3. Cliquez sur « CREATE ».

Configurez le compartiment

  1. Configurez les détails du compartiment.

  2. Cliquez sur l'onglet tab .

  3. À côté de l'étiquette **Autorisations**, cliquez sur **AJOUTER**.

    Détails du compartiment Google

  4. Accordez la permission Administrateur du stockage au compte de service sur le bucket à partir des rôles Cloud Storage.

    Autorisations de compartiment Google

  5. Cliquez sur Enregistrer .

Étape 4 : Placez la clé de compte de service dans les secrets Databricks

Databricks recommande d’utiliser des Secret Scopes pour stocker tous les identifiants. Vous pouvez placer la clé privée et l'ID de la clé privée de votre fichier JSON de clé dans les Secret Scope Databricks. Vous pouvez accorder aux utilisateurs, aux Service Principals et aux groupes de votre Workspace l'accès en lecture aux Secret Scopes. Cela protège la clé de compte de service tout en permettant aux utilisateurs d'accéder à GCS. Pour créer un Secret Scope, consultez Gérer les secrets.

Étape 5 : configurer un cluster Databricks

Dans la **Spark tab**, configurez soit une configuration globale, soit une configuration par compartiment. Les exemples suivants définissent les clés en utilisant les valeurs stockées en tant que secrets Databricks.

remarque

Utilisez le contrôle d'accès des clusters et le contrôle d'accès des Notebooks ensemble pour protéger l'accès au compte de service et aux données dans le bucket GCS. Consultez Autorisations de compute et Collaborer à l'aide de Notebooks Databricks.

Configuration globale

Utilisez cette configuration si les identifiants fournis doivent être utilisés pour accéder à tous les buckets.

ini
spark.hadoop.google.cloud.auth.service.account.enable true
spark.hadoop.fs.gs.auth.service.account.email <client-email>
spark.hadoop.fs.gs.project.id <project-id>
spark.hadoop.fs.gs.auth.service.account.private.key {{secrets/scope/gsa_private_key}}
spark.hadoop.fs.gs.auth.service.account.private.key.id {{secrets/scope/gsa_private_key_id}}

Remplacez <client-email>, <project-id> par les valeurs de ces noms de champs exacts de votre fichier JSON clé.

Configuration par compartiment

Utilisez cette configuration si vous devez configurer des informations d'identification pour des compartiments spécifiques. La syntaxe de configuration par compartiment ajoute le nom du compartiment à la fin de chaque configuration, comme dans l'exemple suivant.

important

Les configurations par compartiment peuvent être utilisées en complément des configurations globales. Lorsqu'elles sont spécifiées, les configurations par compartiment remplacent les configurations globales.

ini
spark.hadoop.google.cloud.auth.service.account.enable.<bucket-name> true
spark.hadoop.fs.gs.auth.service.account.email.<bucket-name> <client-email>
spark.hadoop.fs.gs.project.id.<bucket-name> <project-id>
spark.hadoop.fs.gs.auth.service.account.private.key.<bucket-name> {{secrets/scope/gsa_private_key}}
spark.hadoop.fs.gs.auth.service.account.private.key.id.<bucket-name> {{secrets/scope/gsa_private_key_id}}

Remplacez <client-email>, <project-id> par les valeurs de ces noms de champs exacts de votre fichier JSON clé.

Étape 6 : Lire depuis GCS

Pour lire à partir du bucket GCS, utilisez une commande de lecture Spark dans n'importe quel format pris en charge, par exemple :

Python
df = spark.read.format("parquet").load("gs://<bucket-name>/<path>")

Pour écrire dans le compartiment GCS, utilisez une commande d'écriture Spark dans n'importe quel format pris en charge, par exemple :

Python
df.write.mode("<mode>").save("gs://<bucket-name>/<path>")

Remplacez <bucket-name> par le nom du compartiment que vous avez créé à l'étape 3 : Configurer le compartiment GCS.

Exemples de Notebooks

Lire à partir du Notebook Google Cloud Storage

Écriture dans le notebook Google Cloud Storage