Share via


Herstellen einer Verbindung mit Google Cloud Storage

In diesem Artikel wird beschrieben, wie Sie eine Verbindung mit Azure Databricks konfigurieren, um Tabellen und Daten zu lesen und zu schreiben, die in Google Cloud Storage (GCS) gespeichert sind.

Zum Lesen oder Schreiben aus einem GCS-Bucket müssen Sie ein angefügtes Dienstkonto erstellen und den Bucket dem Dienstkonto zuordnen. Stellen Sie mit einem Schlüssel, den Sie für das Dienstkonto generieren, eine direkte Verbindung mit dem Bucket her.

Direkter Zugriff auf einen GCS-Bucket mit einem Google Cloud-Dienstkontoschlüssel

Um direkt in einen Bucket zu lesen und zu schreiben, konfigurieren Sie einen Schlüssel, der in Ihrer Spark-Konfiguration definiert ist.

Schritt 1: Einrichten eines Google Cloud-Dienstkontos mithilfe der Google Cloud Console

Sie müssen ein Dienstkonto für den Azure Databricks-Cluster erstellen. Databricks empfiehlt, diesem Dienstkonto für die Durchführung seiner Aufgaben die geringsten Berechtigungen zuzuweisen.

  1. Klicken Sie im Navigationsbereich links auf IAM und Admin.

  2. Klicken Sie auf Dienstkonten.

  3. Klicken Sie auf + DIENSTKONTO ERSTELLEN.

  4. Geben Sie den Dienstkontonamen und die Beschreibung ein.

    Google: Dienstkonto erstellen für GCS

  5. Klicken Sie auf ERSTELLEN.

  6. Klicken Sie auf CONTINUE (WEITER).

  7. Klicken Sie auf FERTIG.

Schritt 2: Erstellen eines Schlüssels für den direkten Zugriff auf GCS-Bucket

Warnung

Der JSON-Schlüssel, den Sie für das Dienstkonto generieren, ist ein privater Schlüssel, der nur für autorisierte Benutzer freigegeben werden sollte, da er den Zugriff auf Datasets und Ressourcen in Ihrem Google Cloud-Konto steuert.

  1. Klicken Sie in der Google Cloud Console in der Liste der Dienstkonten auf das neu erstellte Konto.

  2. Klicken Sie im Abschnitt Schlüssel auf SCHLÜSSEL HINZUFÜGEN > Neuen Schlüssel erstellen.

    Google: Schlüssel erstellen

  3. Akzeptieren Sie den Schlüsseltyp JSON.

  4. Klicken Sie auf ERSTELLEN. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.

Schritt 3: Konfigurieren des GCS-Buckets

Erstellen eines Buckets

Wenn Sie noch keinen Bucket haben, erstellen Sie einen:

  1. Klicken Sie im Navigationsbereich links auf Storage.

  2. Klicken Sie auf BUCKET ERSTELLEN.

    Google: Bucket erstellen

  3. Klicken Sie auf ERSTELLEN.

Konfigurieren des Buckets

  1. Konfigurieren Sie die Bucketdetails.

  2. Klicken Sie auf die Registerkarte Berechtigungen.

  3. Klicken Sie neben der Bezeichnung Berechtigungen auf HINZUFÜGEN.

    Google: Bucketdetails

  4. Geben Sie die Berechtigung Storage Admin für das Dienstkonto im Bucket aus den Cloudspeicherrollen an.

    Google: Bucket-Berechtigungen

  5. Klicken Sie auf SPEICHERN.

Schritt 4: Platzieren des Dienstkontoschlüssels in Databricks-Geheimnissen

Databricks empfiehlt zum Speichern aller Anmeldeinformationen die Verwendung von Geheimnisbereichen. Sie können den privaten Schlüssel und die ID des privaten Schlüssels aus Ihrer JSON-Schlüsseldatei in Databricks-Geheimnisbereiche einfügen. Sie können Benutzern, Dienstprinzipalen und Gruppen in Ihrem Arbeitsbereich Lesezugriff für den Geheimnisbereich einräumen. Dadurch wird der Dienstkontoschlüssel geschützt, während Benutzer auf GCS zugreifen können. Informationen zum Erstellen eines Geheimnisbereichs finden Sie unter Geheimnisse.

Schritt 5: Konfigurieren eines Azure Databricks-Clusters

  1. Verwenden Sie den folgenden Codeschnipsel auf der Registerkarte Spark-Konfiguration, um die in Geheimnisbereichen gespeicherten Schlüssel festzulegen:

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

    Ersetzen Sie <client-email> und <project-id> durch die Werte dieser genauen Feldnamen aus Ihrer JSON-Schlüsseldatei.

Verwenden Sie die Clusterzugriffssteuerung und die Notebookzugriffssteuerung zusammen, um den Zugriff auf das Dienstkonto und die Daten im GCS-Bucket zu schützen. Siehe Compute-Berechtigungen und Zusammenarbeit mithilfe von Databricks-Notebooks.

Schritt 6: Lesen aus GCS

Verwenden Sie zum Lesen aus dem GCS-Bucket einen Spark-Lesebefehl in einem beliebigen unterstützten Format, z. B.:

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

Verwenden Sie zum Schreiben in den GCS-Bucket einen Spark-Schreibbefehl in einem beliebigen unterstützten Format, z. B.:

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

Ersetzen Sie <bucket-name> durch den Namen des Buckets, den Sie in Schritt 3 : Konfigurieren des GCS-Buckets erstellt haben.

Beispielnotebooks

Lesen aus dem Google Cloud Storage-Notebook

Notebook abrufen

Schreiben in das Google Cloud Storage-Notebook

Notebook abrufen