Delen via


Verbinding maken met Google Cloud Storage

In dit artikel wordt beschreven hoe u een verbinding van Azure Databricks configureert voor het lezen en schrijven van tables en gegevens die zijn opgeslagen in Google Cloud Storage (GCS).

Als u wilt lezen of schrijven vanuit een GCS-bucket, moet u een gekoppeld serviceaccount maken en moet u de bucket koppelen aan het serviceaccount. U maakt rechtstreeks verbinding met de bucket met een sleutel die u generate voor het serviceaccount.

Rechtstreeks toegang krijgen tot een GCS-bucket met een Google Cloud-serviceaccountsleutel

Als u rechtstreeks naar een bucket wilt lezen en schrijven, configureert u een sleutel die is gedefinieerd in uw Spark-configuratie.

Stap 1: Stel het Google Cloud-serviceaccount in Set met behulp van de Google Cloud Console

U moet een serviceaccount maken voor het Azure Databricks-cluster. Databricks raadt aan dit serviceaccount de minste bevoegdheden te geven die nodig zijn om de taken uit te voeren.

  1. Klik op IAM en Beheerder in het linkernavigatiedeelvenster.

  2. Klik op Serviceaccounts.

  3. Klik op + SERVICEACCOUNT MAKEN.

  4. Voer de naam en beschrijving van het serviceaccount in.

    Google Create-serviceaccount voor GCS

  5. Klik op MAKEN.

  6. Klik op CONTINUE.

  7. Klik op GEREED.

Stap 2: Een sleutel maken om rechtstreeks toegang te krijgen tot GCS-bucket

Waarschuwing

De JSON-sleutel die u generate voor het serviceaccount is een persoonlijke sleutel die alleen mag worden gedeeld met geautoriseerde gebruikers, omdat deze de toegang tot gegevenssets en resources in uw Google Cloud-account beheert.

  1. Klik in de Google Cloud-console in de serviceaccounts listop het zojuist gemaakte account.
  2. Klik in de sectie Sleutels op ADD KEY > Create new key.
  3. Accepteer het JSON-sleuteltype .
  4. Klik op MAKEN. Het sleutelbestand wordt gedownload naar uw computer.

Stap 3: de GCS-bucket configureren

Een bucket maken

Als u nog geen bucket hebt, maakt u er een:

  1. Klik in het linkernavigatiedeelvenster op Opslag .

  2. Klik op BUCKET MAKEN.

    Google Create Bucket

  3. Klik op MAKEN.

De bucket configureren

  1. Configureer de bucketdetails.

  2. Klik op het tabblad Machtigingen .

  3. Klik naast het label Machtigingen op TOEVOEGEN.

    Google Bucket Details

  4. Geef de machtiging Opslagbeheerder op voor het serviceaccount in de bucket van de cloudopslagrollen.

    Machtigingen voor Google Bucket

  5. Klik op OPSLAAN.

Stap 4: De sleutel van het serviceaccount in Databricks-geheimen plaatsen

Databricks raadt aan geheime omgevingen te gebruiken voor het opslaan van alle credentials. U kunt de persoonlijke sleutel en de persoonlijke sleutel-id uit uw JSON-sleutelbestand in Databricks-geheime bereiken plaatsen. U kunt grant toegang geven aan gebruikers, service-principals en groepen in uw werkruimte om de geheime reikwijdten te lezen. Hierdoor wordt de sleutel van het serviceaccount beschermd, terwijl gebruikers toegang hebben tot GCS. Zie Geheimen beheren als u een geheim bereik wilt maken.

Stap 5: Een Azure Databricks-cluster configureren

Configureer op het tabblad Spark-configuratie een globale configuratie of een configuratie per bucket. De volgende voorbeelden set de sleutels met behulp van values opgeslagen als Databricks-geheimen.

Notitie

Gebruik clustertoegangsbeheer en notebooktoegangsbeheer samen om de toegang tot het serviceaccount en de gegevens in de GCS-bucket te beveiligen. Zie Compute-machtigingen en samenwerken met behulp van Databricks-notebooks.

Globale configuratie

Gebruik deze configuratie als de opgegeven credentials moet worden gebruikt voor toegang tot alle buckets.

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}}

Vervang <client-email>, <project-id> door de values van die exacte veldnamen uit het JSON-sleutelbestand.

Configuratie per bucket

Gebruik deze configuratie als u credentials moet configureren voor specifieke buckets. De syntaxis voor configuratie per bucket voegt de naam van de bucket toe aan het einde van elke configuratie, zoals in het volgende voorbeeld.

Belangrijk

Configuraties per bucket kunnen naast globale configuraties worden gebruikt. Wanneer dit is opgegeven, worden globale configuraties per bucket vervangen.

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}}

Vervang <client-email>, <project-id> door de values van die exacte veldnamen uit het JSON-sleutelbestand.

Stap 6: lezen uit GCS

Als u wilt lezen uit de GCS-bucket, gebruikt u een Spark-leesopdracht in elke ondersteunde indeling, bijvoorbeeld:

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

Als u naar de GCS-bucket wilt schrijven, gebruikt u een Spark-schrijfopdracht in elke ondersteunde indeling, bijvoorbeeld:

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

Vervang door <bucket-name> de naam van de bucket die u in stap 3 hebt gemaakt: de GCS-bucket configureren.

Voorbeeldnotebooks

Lezen uit Google Cloud Storage-notebook

Get notebook

Schrijven naar Google Cloud Storage-notebook

Get notitieboek