[Ultimate]{class="badge positive"}
Databricks
Databricks ist eine Cloud-basierte Plattform für Datenanalyse, maschinelles Lernen und KI. Sie können Databricks verwenden, um eine ganzheitliche Umgebung für das Erstellen, Bereitstellen und Verwalten von Datenlösungen im benötigten Umfang zu integrieren und bereitzustellen.
Verwenden Sie die Databricks, um Ihr Konto zu verbinden und Ihre Databricks Daten in Adobe Experience Platform aufzunehmen.
Voraussetzungen
Führen Sie die erforderlichen Schritte aus, um Ihr Databricks-Konto erfolgreich mit Experience Platform zu verbinden.
Abrufen Ihrer Container-Anmeldeinformationen
Rufen Sie Ihre Experience Platform Azure Blob Storage-Anmeldeinformationen ab, damit Ihr Databricks-Konto später darauf zugreifen kann.
Um Ihre Anmeldeinformationen abzurufen, stellen Sie eine GET-Anfrage an den /credentials-Endpunkt der Connectors-API.
API-Format
GET /data/foundation/connectors/landingzone/credentials?type=dlz_databricks_source
Anfrage
Mit der folgenden Anfrage werden die Anmeldeinformationen für Ihr Experience Platform-Azure Blob Storage abgerufen.
| code language-shell |
|---|
|
Antwort
Bei einer erfolgreichen Antwort werden Ihre Anmeldeinformationen (containerName, SASToken, storageAccountName) zur späteren Verwendung in Apache Spark Konfiguration für Databricks bereitgestellt.
| code language-json |
|---|
|
| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 | |
|---|---|
| Eigenschaft | Beschreibung |
containerName |
Der Name Ihres Azure Blob Storage. Sie verwenden diesen Wert später, wenn Sie die Apache Spark für Databricks fertig stellen. |
SASToken |
Das Shared Access Signature Token für Ihre Azure Blob Storage. Diese Zeichenfolge enthält alle Informationen, die zum Autorisieren einer Anfrage erforderlich sind. |
storageAccountName |
Der Name Ihres Speicherkontos. |
SASUri |
Der Shared Access Signature-URI für Ihre Azure Blob Storage. Diese Zeichenfolge ist eine Kombination aus dem URI zum Azure Blob Storage, für den Sie authentifiziert werden, und dem entsprechenden SAS-Token. |
expiryDate |
Das Datum, an dem Ihr SAS-Token abläuft. Sie müssen Ihr Token vor dem Ablaufdatum aktualisieren, um es weiterhin in Ihrer Anwendung zum Hochladen von Daten in die Azure Blob Storage verwenden zu können. Wenn Sie Ihr Token nicht vor dem angegebenen Ablaufdatum manuell aktualisieren, wird es automatisch aktualisiert und ein neues Token bereitgestellt, wenn der Aufruf zum Abrufen der Anmeldeinformationen ausgeführt wird. |
Aktualisieren von Anmeldeinformationen
Um Ihre Anmeldeinformationen zu aktualisieren, stellen Sie eine POST-Anfrage und nehmen Sie action=refresh als Abfrageparameter auf.
API-Format
POST /data/foundation/connectors/landingzone/credentials?type=dlz_databricks_source&action=refresh
Anfrage
Die folgende Anfrage aktualisiert die Anmeldeinformationen für Ihr Azure Blob Storage.
| code language-shell |
|---|
|
Antwort
Eine erfolgreiche Antwort gibt Ihre neuen Anmeldeinformationen zurück.
| code language-json |
|---|
|
Konfigurieren des Zugriffs auf Ihre Azure Blob Storage
-
Wenn Ihr Cluster beendet wurde, startet der Service ihn während einer Flussausführung automatisch neu. Sie müssen jedoch sicherstellen, dass Ihr Cluster beim Erstellen einer Verbindung oder eines Datenflusses aktiv ist. Darüber hinaus muss Ihr Cluster aktiv sein, wenn Sie Aktionen wie Datenvorschau oder Exploration durchführen, da diese Aktionen nicht zum automatischen Neustart eines beendeten Clusters führen können.
-
Ihr Azure-Container enthält einen Ordner mit dem Namen
adobe-managed-staging. Um die nahtlose Aufnahme von Daten zu gewährleisten (nicht ändern Sie diesen Ordner.
Als Nächstes müssen Sie sicherstellen, dass Ihr Databricks-Cluster Zugriff auf das Experience Platform-Azure Blob Storage hat. Dabei können Sie Azure Blob Storage als Zwischenspeicherort zum Schreiben delta lake Tabellendaten verwenden.
Um Zugriff zu gewähren, müssen Sie im Rahmen Ihrer Apache Spark-Konfiguration ein SAS-Token auf dem Databricks-Cluster konfigurieren.
Wählen Sie in Ihrer Databricks die Option Advanced options aus und geben Sie dann Folgendes in das Spark config Eingabefeld ein.
fs.azure.sas.{CONTAINER_NAME}.{STORAGE-ACCOUNT}.blob.core.windows.net {SAS-TOKEN}
Wenn keine Informationen bereitgestellt werden, schlägt die Kopieraktivität im Flusslauf fehl und gibt den folgenden Fehler zurück:
Unable to access container '{CONTAINER_NAME}' in account '{STORAGE_ACCOUNT}.blob.core.windows.net' using anonymous credentials. No credentials found in the configuration. Public access is not permitted on this storage account.
Verwaltung des Unity-Katalogs und Cluster-Zugriffsmodus
Der DataBricks-Quell-Connector führt Lese- und Schreibvorgänge (I/O) auf Ihrem DataBricks-Cluster während der Aufnahme durch. Für diese Vorgänge sind Objektberechtigungen für den Unity-Katalog und, abhängig vom Zugriffsmodus Ihres Clusters, zusätzliche Berechtigungen auf Cluster-Ebene erforderlich. Vor dem Verbinden beide konfigurieren.
Gewähren von Berechtigungen für den Unity-Katalog
Gewähren Sie der von der Verbindung (einem Service-Prinzipal) verwendeten Identität die folgenden Berechtigungen für den Unity-Katalog für die Quellobjekte:
USE CATALOGUSE SCHEMASELECTKonfigurieren des Zugriffsmodus Ihres Clusters
Wählen Sie den von Ihrem Databricks-Cluster verwendeten Zugriffsmodus aus und schließen Sie die entsprechende Konfiguration ab.
Standardzugriffsmodus (Shared Access Mode
Der standardmäßige (freigegebene) Zugriffsmodus erzwingt die Tabellenzugriffssteuerung. Zusätzlich zu den oben gewährten Unity-Katalogen erfordern die I/O-Vorgänge des Connectors die Berechtigung ANY FILE . Gewähren Sie dies dem Dienstprinzipal des Connectors:
GRANT SELECT ON ANY FILE TO `{SERVICE_PRINCIPAL}`;
GRANT MODIFY ON ANY FILE TO `{SERVICE_PRINCIPAL}`;
ANY FILE ist eine veraltete Berechtigung für den direkten Dateizugriff und wird nicht vom Unity-Katalog gesteuert. Sie hat einen breiteren Anwendungsbereich als Objektberechtigungen für das Unity-Katalog-Objekt und gewährt selbst keinen Zugriff auf Objekte des Unity-Katalogs und umgeht ihn auch nicht. (Für Unity-Katalogtabellen sind weiterhin eigene Gewährungen des UC erforderlich.) Überprüfen Sie sie mit Ihrem Sicherheits-Team. Um die Gewährung zu vermeiden, verwenden Sie stattdessen den Modus Dedizierter Zugriff .Wenn die für den Zugriffsmodus Ihres Clusters erforderlichen Berechtigungen nicht vorhanden sind, schlägt die Aufnahme während der Ausführung fehl und es wird der folgende Fehler angezeigt:
[INSUFFICIENT_PERMISSIONS] ... on any file. SQLSTATE: 42501.
Verbinden von Databricks mit Experience Platform
Nachdem Sie die erforderlichen Schritte ausgeführt haben, können Sie nun fortfahren und Ihr Databricks-Konto mit Experience Platform verbinden: