[Ultimate]{class="badge positive"}

Databricks

AVAILABILITY
La source Databricks est disponible dans le catalogue des sources pour les utilisateurs qui ont acheté Real-Time CDP Ultimate.

Databricks est une plateforme cloud conçue pour l’analyse de données, le machine learning et l’IA. Vous pouvez utiliser Databricks pour intégrer et fournir un environnement holistique afin de créer, déployer et gérer des solutions de données à grande échelle.

Utilisez la source de Databricks pour connecter votre compte et ingérer vos données Databricks vers Adobe Experience Platform.

Conditions préalables

Suivez les étapes préalables requises pour connecter votre compte Databricks à Experience Platform.

Récupérer les informations d’identification du conteneur

Récupérez vos informations d’identification Experience Platform Azure Blob Storage pour permettre à votre compte Databricks d’y accéder ultérieurement.

Pour récupérer vos informations d’identification, envoyez une requête GET au point d’entrée /credentials de l’API Connectors.

Format d’API

GET /data/foundation/connectors/landingzone/credentials?type=dlz_databricks_source

Requête

La requête suivante récupère les informations d’identification de votre Azure Blob Storage Experience Platform.

Afficher l’exemple de requête
code language-shell
curl -X GET \
  'https://platform.adobe.io/data/foundation/connectors/landingzone/credentials?type=dlz_databricks_source' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \

Réponse

Une réponse réussie fournit vos informations d’identification (containerName, SASToken, storageAccountName) pour une utilisation ultérieure dans Apache Spark configuration pour les Databricks.

Afficher l’exemple de réponse
code language-json
{
    "containerName": "dlz-databricks-container",
    "SASToken": "sv=2020-10-02&si=dlz-b1f4060b-6bbd-4043-9bd9-a5f5be72de30&sr=c&sp=racwdlm&sig=zVQfmuElZJzOKkUk8z5lChrJ3YQUE2h6EShDZOsVeMc%3D",
    "storageAccountName": "sndbxdtlndga8m7ajbvgc64k",
    "SASUri": "https://sndbxdtlndga8m7ajbvgc64k.blob.core.windows.net/dlz-databricks-container?sv=2020-10-02&si=dlz-b1f4060b-6bbd-4043-9bd9-a5f5be72de30&sr=c&sp=racwdlm&sig=zVQfmuElZJzOKkUk8z5lChrJ3YQUE2h6EShDZOsVeMc%3D",
    "expiryDate": "2025-07-05"
}
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2
Propriété Description
containerName Nom de votre conteneur Azure Blob Storage. Vous utiliserez cette valeur ultérieurement lors de la configuration de votre Apache Spark pour Databricks.
SASToken Jeton de signature d’accès partagé pour votre Azure Blob Storage. Cette chaîne contient toutes les informations nécessaires pour autoriser une requête.
storageAccountName Nom de votre compte de stockage.
SASUri URI de signature d’accès partagé pour votre Azure Blob Storage. Cette chaîne est une combinaison de l’URI du Azure Blob Storage auquel vous êtes authentifié et de son jeton SAS correspondant.
expiryDate Date d’expiration de votre jeton SAS. Vous devez actualiser votre jeton avant la date d’expiration pour continuer à l’utiliser dans votre application pour charger des données vers le Azure Blob Storage. Si vous n’actualisez pas manuellement votre jeton avant la date d’expiration indiquée, il s’actualisera automatiquement et fournira un nouveau jeton lorsque l’appel des informations d’identification GET sera effectué.

Actualiser vos informations d’identification

NOTE
Vos informations d’identification existantes seront révoquées une fois que vous les aurez actualisées. Par conséquent, vous devez mettre à jour vos configurations Spark en conséquence chaque fois que vous actualisez vos informations d’identification de stockage. Sinon, votre flux de données échouera.

Pour actualiser vos informations d’identification, envoyez une requête POST et incluez action=refresh comme paramètre de requête.

Format d’API

POST /data/foundation/connectors/landingzone/credentials?type=dlz_databricks_source&action=refresh

Requête

La requête suivante actualise les informations d’identification de votre Azure Blob Storage.

Afficher l’exemple de requête
code language-shell
curl -X POST \
  'https://platform.adobe.io/data/foundation/connectors/landingzone/credentials?type=dlz_databricks_source&action=refresh' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \

Réponse

Une réponse réussie renvoie vos nouvelles informations d’identification.

Afficher l’exemple de réponse
code language-json
{
    "containerName": "dlz-databricks-container",
    "SASToken": "sv=2020-10-02&si=dlz-6e17e5d6-de18-4efc-88c7-45f37d242617&sr=c&sp=racwdlm&sig=wvA4K3fcEmqAA%2FPvcMhB%2FA8y8RLwVJ7zhdWbxvT1uFM%3D",
    "storageAccountName": "sndbxdtlndga8m7ajbvgc64k",
    "SASUri": "https://sndbxdtlndga8m7ajbvgc64k.blob.core.windows.net/dlz-databricks-container?sv=2020-10-02&si=dlz-6e17e5d6-de18-4efc-88c7-45f37d242617&sr=c&sp=racwdlm&sig=wvA4K3fcEmqAA%2FPvcMhB%2FA8y8RLwVJ7zhdWbxvT1uFM%3D",
    "expiryDate": "2025-07-20"
}

Configuration de l’accès à votre Azure Blob Storage

IMPORTANT
  • Si votre cluster a été arrêté, le service le redémarre automatiquement au cours d’une exécution de flux. Cependant, vous devez vous assurer que votre cluster est actif lors de la création d’une connexion ou d’un flux de données. En outre, votre cluster doit être actif si vous effectuez des actions telles que l’aperçu ou l’exploration des données, car ces actions ne peuvent pas inciter au redémarrage automatique d’un cluster arrêté.

  • Votre conteneur Azure comprend un dossier nommé adobe-managed-staging. Pour garantir une ingestion transparente des données, ne modifiez pas ce dossier.

Ensuite, vous devez vous assurer que votre cluster Databricks a accès au compte Azure Blob Storage Experience Platform. Ce faisant, vous pouvez utiliser Azure Blob Storage comme emplacement intermédiaire pour l’écriture de données de tableau delta lake.

Pour fournir l’accès, vous devez configurer un jeton SAS sur le cluster Databricks dans le cadre de votre configuration Apache Spark.

Dans l’interface Databricks, sélectionnez Advanced options, puis saisissez ce qui suit dans la zone de saisie Spark config.

fs.azure.sas.{CONTAINER_NAME}.{STORAGE-ACCOUNT}.blob.core.windows.net {SAS-TOKEN}
Propriété
Description
Nom du conteneur
Nom de votre conteneur. Vous pouvez obtenir cette valeur en récupérant vos informations d’identification Azure Blob Storage.
Compte de stockage
Nom de votre compte de stockage. Vous pouvez obtenir cette valeur en récupérant vos informations d’identification Azure Blob Storage.
Jeton SAS
Jeton de signature d’accès partagé pour votre Azure Blob Storage. Vous pouvez obtenir cette valeur en récupérant vos informations d’identification Azure Blob Storage.

Interface utilisateur des briques de données dans Azure.

Si elle n’est pas fournie, l’activité de copie dans l’exécution du flux échoue et renvoie l’erreur suivante :

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.

Gouvernance du catalogue Unity et mode d’accès aux clusters

Le connecteur source Databricks effectue des opérations de lecture et d’écriture (E/S) sur votre cluster Databricks lors de l’ingestion. Ces opérations nécessitent des autorisations d’objet Catalogue Unity et, selon le mode d’accès de votre cluster, des autorisations supplémentaires au niveau du cluster. Configurez les deux avant de vous connecter.

Octroyer des autorisations pour le catalogue Unity

Accordez les autorisations suivantes du catalogue Unity sur les objets source à l’identité utilisée par la connexion (un principal de service) :

Privilège
Objet
USE CATALOG
Le catalogue
USE SCHEMA
Le schéma
SELECT
La table source

Configuration du mode d’accès de votre cluster

Sélectionnez le mode d’accès utilisé par votre cluster de briques de données et effectuez la configuration correspondante.

TIP
Un mode d’accès dédié (utilisateur unique) est recommandé. Attribuez l’utilisateur unique du cluster au principal de service du connecteur. Les opérations d’E/S du connecteur se terminent à l’aide de vos autorisations de catalogue Unity seules. Aucune autorisation supplémentaire au niveau du cluster n’est donc requise et tous les accès restent régis par le catalogue Unity.

Mode d’accès standard (partagé)

Le mode d’accès standard (partagé) applique le contrôle d’accès aux tables. Outre les autorisations de catalogue Unity ci-dessus, les opérations d’E/S du connecteur nécessitent le privilège ANY FILE. Octroyez-le au principal de service du connecteur :

GRANT SELECT ON ANY FILE TO `{SERVICE_PRINCIPAL}`;
GRANT MODIFY ON ANY FILE TO `{SERVICE_PRINCIPAL}`;
IMPORTANT
ANY FILE est un privilège hérité pour l'accès direct aux fichiers et n'est pas régi par Unity Catalog — il a une portée plus large que les autorisations d'objet Unity Catalog, et n'accorde pas ou ne contourne pas lui-même l'accès aux objets Unity Catalog (les tables Unity Catalog nécessitent toujours leurs propres autorisations UC). Consultez-le avec votre équipe de sécurité ; pour éviter de l’accorder, utilisez plutôt le mode d’accès dédié .

Si les autorisations requises pour le mode d’accès de votre cluster ne sont pas en place, l’ingestion échoue lors de l’exécution avec l’erreur suivante :

[INSUFFICIENT_PERMISSIONS] ... on any file. SQLSTATE: 42501.

Connexion de Databricks à Experience Platform

Maintenant que vous avez terminé les étapes préalables requises, vous pouvez procéder et connecter votre compte Databricks à Experience Platform :

recommendation-more-help
experience-platform-help-sources