[Ultimate]{class="badge positive"}

Databricks

AVAILABILITY
L'origine Databricks è disponibile nel catalogo delle origini per gli utenti che hanno acquistato Real-Time CDP Ultimate.

Databricks è una piattaforma basata su cloud progettata per l’analisi dei dati, l’apprendimento automatico e l’intelligenza artificiale. È possibile utilizzare Databricks per integrare e fornire un ambiente olistico per la creazione, la distribuzione e la gestione di soluzioni di dati su larga scala.

Utilizza l’origine Databricks per connettere il tuo account e acquisire i dati di Databricks in Adobe Experience Platform.

Prerequisiti

Completa i passaggi preliminari per connettere correttamente l’account Databricks ad Experience Platform.

Recuperare le credenziali del contenitore

Recupera le credenziali di Experience Platform Azure Blob Storage per consentire al tuo account Databricks di accedervi in un secondo momento.

Per recuperare le credenziali, effettuare una richiesta GET all’endpoint /credentials dell’API Connectors.

Formato API

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

Richiesta

La richiesta seguente recupera le credenziali per l’Experience Platform Azure Blob Storage.

Visualizza esempio di richiesta
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' \

Risposta

In caso di esito positivo, la risposta fornisce le credenziali (containerName, SASToken, storageAccountName) per un utilizzo successivo nella configurazione Apache Spark per Databricks.

Visualizza esempio di risposta
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
Proprietà Descrizione
containerName Nome del contenitore Azure Blob Storage. Questo valore verrà utilizzato in seguito al completamento della configurazione di Apache Spark per Databricks.
SASToken Il token di firma di accesso condiviso per Azure Blob Storage. Questa stringa contiene tutte le informazioni necessarie per autorizzare una richiesta.
storageAccountName Il nome dell’account di archiviazione.
SASUri URI della firma di accesso condiviso per Azure Blob Storage. Questa stringa è una combinazione dell’URI di Azure Blob Storage per il quale si sta eseguendo l’autenticazione e del token SAS corrispondente.
expiryDate Data di scadenza del token SAS. È necessario aggiornare il token prima della data di scadenza per continuare a utilizzarlo nell’applicazione per il caricamento di dati in Azure Blob Storage. Se non aggiorni manualmente il token prima della data di scadenza dichiarata, questo verrà aggiornato automaticamente e fornirà un nuovo token quando viene eseguita la chiamata delle credenziali GET.

Aggiorna le credenziali

NOTE
Le credenziali esistenti verranno revocate dopo l'aggiornamento delle credenziali. Pertanto, è necessario aggiornare Spark configurazioni di conseguenza ogni volta che si aggiornano le credenziali di archiviazione. In caso contrario, il flusso di dati non riuscirà.

Per aggiornare le credenziali, eseguire una richiesta POST e includere action=refresh come parametro di query.

Formato API

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

Richiesta

La richiesta seguente aggiorna le credenziali per Azure Blob Storage.

Visualizza esempio di richiesta
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' \

Risposta

In caso di esito positivo, la risposta restituisce le nuove credenziali.

Visualizza esempio di risposta
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"
}

Configura l’accesso a Azure Blob Storage

IMPORTANT
  • Se il cluster è stato terminato, il servizio lo riavvia automaticamente durante l'esecuzione di un flusso. Tuttavia, è necessario assicurarsi che il cluster sia attivo durante la creazione di una connessione o di un flusso di dati. Inoltre, il cluster deve essere attivo se si eseguono azioni quali l'anteprima o l'esplorazione dei dati, in quanto tali azioni non possono richiedere il riavvio automatico di un cluster terminato.

  • Il contenitore Azure include una cartella denominata adobe-managed-staging. Per garantire l'acquisizione diretta dei dati, non modificare questa cartella.

Successivamente, è necessario assicurarsi che il cluster Databricks abbia accesso all’account Experience Platform Azure Blob Storage. In questo modo è possibile utilizzare Azure Blob Storage come posizione provvisoria per la scrittura dei dati della tabella delta lake.

Per fornire l’accesso, è necessario configurare un token SAS nel cluster Databricks come parte della configurazione Apache Spark.

Nell’interfaccia di Databricks, selezionare Advanced options, quindi immettere quanto segue nella casella di input Spark config.

fs.azure.sas.{CONTAINER_NAME}.{STORAGE-ACCOUNT}.blob.core.windows.net {SAS-TOKEN}
Proprietà
Descrizione
Nome contenitore
Nome del contenitore. È possibile ottenere questo valore recuperando le credenziali di Azure Blob Storage.
Account di archiviazione
Il nome dell’account di archiviazione. È possibile ottenere questo valore recuperando le credenziali di Azure Blob Storage.
Token SAS
Il token di firma di accesso condiviso per Azure Blob Storage. È possibile ottenere questo valore recuperando le credenziali di Azure Blob Storage.

Interfaccia utente di Databricks in Azure.

Se non specificato, l’attività di copia nell’esecuzione del flusso non riesce e restituisce il seguente errore:

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.

Governance del catalogo Unity e modalità di accesso al cluster

Il connettore di origine Databricks esegue operazioni di lettura e scrittura (I/O) sul cluster Databricks durante l’acquisizione. Queste operazioni richiedono autorizzazioni per gli oggetti del catalogo Unity e, a seconda della modalità di accesso del cluster, autorizzazioni aggiuntive a livello di cluster. Configura entrambi prima di connetterti.

Concedi autorizzazioni catalogo Unity

Concedi le seguenti autorizzazioni del catalogo Unity sugli oggetti di origine all’identità utilizzata dalla connessione (un’entità servizio):

Privilegio
Oggetto
USE CATALOG
Il catalogo
USE SCHEMA
Lo schema
SELECT
Tabella di origine

Configurare la modalità di accesso del cluster

Selezionare la modalità di accesso utilizzata dal cluster Databricks e completare la configurazione corrispondente.

TIP
È consigliata la modalità di accesso dedicato (utente singolo). Assegnare il singolo utente del cluster all'entità servizio del connettore. Le operazioni di I/O del connettore vengono completate utilizzando le sole autorizzazioni Unity Catalog, pertanto non sono necessarie autorizzazioni aggiuntive a livello di cluster e tutti gli accessi rimangono disciplinati da Unity Catalog.

Modalità di accesso standard (condiviso)

La modalità di accesso Standard (Condiviso) applica il controllo dell’accesso alle tabelle. Oltre alle concessioni del catalogo Unity di cui sopra, le operazioni di I/O del connettore richiedono il privilegio ANY FILE. Concedi all’entità servizio del connettore:

GRANT SELECT ON ANY FILE TO `{SERVICE_PRINCIPAL}`;
GRANT MODIFY ON ANY FILE TO `{SERVICE_PRINCIPAL}`;
IMPORTANT
ANY FILE è un privilegio legacy per l'accesso diretto ai file e non è gestito da Unity Catalog. Ha un ambito più ampio delle autorizzazioni per gli oggetti Unity Catalog e non concede o ignora l'accesso agli oggetti Unity Catalog (le tabelle Unity Catalog richiedono ancora le proprie autorizzazioni UC). Rivedilo con il tuo team di sicurezza; per evitare di concederlo, utilizza invece la modalità di accesso dedicato.

Se non sono presenti le autorizzazioni necessarie per la modalità di accesso del cluster, l’acquisizione non riesce durante l’esecuzione e viene visualizzato il seguente errore:

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

Connetti Databricks ad Experience Platform

Ora che hai completato i passaggi preliminari, puoi procedere e collegare il tuo account Databricks ad Experience Platform:

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