Databricks
È possibile utilizzare Databricks come piattaforma dati di destinazione in una pipeline di dati o in un'attività di replica. In una pipeline di dati, è possibile eseguire diverse operazioni ELT nella piattaforma di destinazione, tra cui archiviare i dati, trasformarli, creare data mart e registrare i dati. Un'attività di replica, d'altra parte, include la replica dei dati direttamente da un sistema di origine a un sistema di destinazione con funzionalità di trasformazione di base, ma senza il supporto delle operazioni ELT.
Per l'impostazione di Databricks come destinazione sono necessari i seguenti elementi:
- Adempimento dei prerequisiti
- Configurazione di una connessione in un'area di staging cloud. Questa non è richiesta se si registrano i dati esistenti.
- Configurazione di una connessione a Databricks
Configurazione di un'area di staging cloud
Quando si utilizza un connettore Databricks Target, è anche necessario definire un'area di staging cloud in cui i dati e le modifiche sono approntati prima di essere applicati e archiviati. Sono supportate le seguenti piattaforme di archiviazione:
Configurazione di una connessione a Databricks
Una volta fornite le impostazioni di staging, procedere come indicato di seguito:
-
In Connessioni, fare clic su Crea connessione.
-
Selezionare il connettore Databricks di destinazione, quindi fornire le seguenti impostazioni:
Destinazione dati
Gateway dati
È richiesto un Gateway di Data Movement solo se non è possibile accedere al database di destinazione da Qlik Cloud ed è possibile accedervi solo utilizzando un Private Link (ad esempio, se è posizionato o in un Virtual Private Cloud). In questo caso, selezionare il Gateway di Data Movement che si desidera utilizzare per accedere al database di destinazione.
A seconda del caso di utilizzo, questo sarà lo stesso Gateway di Data Movement distribuito per spostare i dati da una sorgente dati, oppure uno differente.
Per informazioni sui casi di utilizzo del Gateway di Data Movement, vedere Quando è richiesto il Gateway di Data Movement? e Casi di utilizzo comuni.
Se il database di destinazione è accessibile direttamente da Qlik Cloud, selezionare Nessuno.
Proprietà di connessione
- Host: il nome host dell'area di lavoro di Databricks.
- Porta: la porta tramite cui accedere all'area di lavoro.
- Percorso HTTP: il percorso al cluster in uso.
- Token: il token personale per accedere all'area di lavoro.
Proprietà del catalogo
Fare clic su Carica cataloghi per caricare i cataloghi disponibili, quindi selezionare un Catalogo. Se l'ambiente non è configurato con nessun catalogo, selezionare hive_metastore, che è il catalogo predefinito.
È necessario consentire a Gateway di Data Movement di accedere alle tabelle esterne (non gestite) definendo una posizione esterna in Databricks. Per le linee guida, vedere:
Proprietà interne
Le proprietà interne servono per casi d'uso speciali e pertanto non vengono visualizzate nella finestra di dialogo. Gli utenti devono utilizzarle solo se indicato dal Supporto di Qlik.
Usare i pulsanti e a destra del campo per aggiungere o rimuovere proprietà in base alle esigenze.
Nome
Il nome visualizzato per la connessione.
Prerequisiti
Autorizzazioni generali
- L'ora sulla macchina server Qlik Talend Data Integrationdeve essere precisa.
- Autorizzazioni tabella Databricks: Qlik Talend Data Integration richiede autorizzazioni per eseguire le seguenti operazioni sulle tabelle Databricks: tabella CREATE, DROP, TRUNCATE, DESCRIBE e ALTER.
- Nelle impostazioni di controllo degli accessi (IAM) per il file system ADLS Gen2, assegnare il ruolo "Collaboratore dati BLOB di archiviazione" a Qlik Talend Data Integration (ID app AD). Potrebbero essere necessari alcuni minuti prima che il ruolo abbia effetto.
- Per consentire a Qlik Talend Data Integration di connettersi a un cluster Databricks tramite ODBC, è necessario concedere agli utenti l'autorizzazione "Can Attach To" nel proprio account Databricks.
- Per accedere a Databricks è necessario un token di sicurezza valido. Il token deve essere specificato durante la configurazione dei campi Accesso ODBC a Databricks nelle impostazioni dell'endpoint.
-
Quando si configura un nuovo cluster con Microsoft Azure Data Lake Storage (ADLS) Gen2, è necessario aggiungere la riga seguente alla sezione "Spark Config".
spark.hadoop.hive.server2.enable.doAs false
-
Per poter accedere alle directory di archiviazione dal cluster Databricks, gli utenti devono aggiungere una configurazione (in Spark Config) per quell'account di archiviazione e la relativa chiave.
Esempio:
fs.azure.account.key.<storage-account-name>.dfs.core.windows.net <storage-account-access-key>
Per i dettagli, fare riferimento alla guida in linea di Databricks all'indirizzo: https://docs.databricks.com/clusters/configure.html#spark-configuration
-
La procedura consigliata è di non utilizzare la posizione radice (/Usr/Hive/Warehouse/) per il database Databricks poiché ciò potrebbe influire sulle prestazioni.
Autorizzazione di accesso archiviazione
Il calcolo SQL di Databricks deve essere configurato per accedere all'archiviazione cloud. Per istruzioni, vedere la guida in linea del fornitore.
Configurazione del driver
Un driver è necessario solo se si accede al database tramite Gateway di Data Movement. In tale caso, è necessario installare il driver sul computer Gateway di Data Movement.
È possibile installare driver utilizzando l'utilità di installazione dei driver (procedura consigliata) oppure manualmente. Si consiglia di utilizzate l'installazione manuale nel caso improbabile che si riscontrasse un problema con l'utilità di installazione dei driver.
Utilizzo dell'utilità di installazione dei driver per installare il driver
Questa sezione descrive come installare il driver richiesto. Il processo prevede l'esecuzione di uno script che scarica, installa e configura automaticamente il driver richiesto. È inoltre possibile eseguire script per aggiornare e disinstallare il driver secondo le necessità.
Preparazione dell'installazione
-
Assicurarsi che Python 3.6.x o versione successiva sia installato sul server del gateway di Data Movement.
Python è preinstallato nella maggior parte delle distribuzioni Linux. È possibile verificare quale versione di Python è installata sul sistema, eseguendo il seguente comando:
python3 --version
Installazione di driver
Per scaricare e installare driver:
-
Arrestare il servizio gateway di Data Movement:
sudo systemctl stop repagent
-
Facoltativamente, confermare che il servizio è stato interrotto:
sudo systemctl status repagent
Lo stato dovrebbe essere il seguente:
Active: inactive (dead) since <timestamp> ago
-
Sul computer gateway Data Movement, cambiare la directory di lavoro in:
opt/qlik/gateway/movement/drivers/bin
-
Eseguire il comando seguente:
Sintassi:
./install databricks
Se non è possibile scaricare driver (a causa di restrizioni di accesso o problemi tecnici), verrà visualizzato un messaggio con le istruzioni su dove scaricare il driver e copiarlo sul computer gateway Data Movement. Una volta completata l'operazione, eseguire nuovamente il comando install databricks.
Altrimenti, verrà visualizzato l'EULA del driver.
-
Effettuare una delle seguenti operazioni:
- Premere ripetutamente [Invio] per scorrere lentamente l'EULA.
- Premere ripetutamente la barra spaziatrice per scorrere rapidamente l'EULA.
- Premere q per uscire dal testo della licenza e visualizzare le opzioni di accettazione dell'EULA.
-
Effettuare una delle seguenti operazioni:
- Digitare "y" e premere [Invio] per accettare l'EULA e avviare l'installazione.
- Digitare "n" e premere [Invio] per rifiutare l'EULA e uscire dall'installazione.
-
Digitare "v" e premere [Invio] per visualizzare nuovamente l'EULA.
-
Attendere il completamento dell'installazione (indicato dal messaggio "Operazione completata"), quindi avviare il servizio gateway di Data Movement:
sudo systemctl start repagent
-
Facoltativamente, conferma che il servizio si è avviato:
sudo systemctl status repagent
Lo stato dovrebbe essere il seguente:
Active: active (running) since <timestamp> ago
Il driver verrà installato.
Aggiornamento del driver
Eseguire il comando aggiorna se si desidera disinstallare le versioni precedenti del driver prima di installare il driver fornito.
Per scaricare e aggiornare driver:
-
Arrestare il servizio gateway di Data Movement:
sudo systemctl stop repagent
-
Facoltativamente, confermare che il servizio è stato interrotto:
sudo systemctl status repagent
Lo stato dovrebbe essere il seguente:
Active: inactive (dead) since <timestamp> ago
-
Sul computer gateway Data Movement, cambiare la directory di lavoro in:
opt/qlik/gateway/movement/drivers/bin
-
Eseguire il comando seguente:
Sintassi:
./update databricks
Se non si riesce a scaricare il driver (a causa di restrizioni di accesso o problemi tecnici), verrà visualizzato un messaggio con le istruzioni su dove scaricare il driver e copiarlo sul computer gateway Data Movement. Una volta completata l'operazione, eseguire nuovamente il comando update databricks.
Altrimenti, verrà visualizzato l'EULA del driver.
-
Effettuare una delle seguenti operazioni:
- Premere ripetutamente [Invio] per scorrere lentamente l'EULA.
- Premere ripetutamente la barra spaziatrice per scorrere rapidamente l'EULA.
- Premere q per uscire dal testo della licenza e visualizzare le opzioni di accettazione dell'EULA.
-
Effettuare una delle seguenti operazioni:
- Digitare "y" e premere [Invio] per accettare l'EULA e avviare l'installazione.
- Digitare "n" e premere [Invio] per rifiutare l'EULA e uscire dall'installazione.
- Digitare "v" e premere [Invio] per rivedere l'EULA dall'inizio.
-
Attendere il completamento dell'installazione (indicato dal messaggio "Operazione completata"), quindi avviare il servizio gateway di Data Movement:
sudo systemctl start repagent
-
Facoltativamente, conferma che il servizio si è avviato:
sudo systemctl status repagent
Lo stato dovrebbe essere il seguente:
Active: active (running) since <timestamp> ago
Il vecchio driver verrà disinstallato e il nuovo driver verrà installato.
Disinstallazione del driver
Eseguire il comando di disinstallazione se si desidera disinstallare il driver.
Per disinstallare il driver:
-
interrompere tutte le attività configurate per utilizzare il connettore.
-
Sul computer gateway Data Movement, cambiare la directory di lavoro in:
opt/qlik/gateway/movement/drivers/bin
-
Eseguire il comando seguente:
Sintassi:
./uninstall databricks
Il driver verrà disinstallato.
Installazione manuale del driver
Si consiglia di tentare l'installazione manuale di driver nel caso in cui l'installazione automatizzata non venissa completata.
Installazione del driver ODBC
Una volta installato Gateway di Data Movement, scaricare il file SimbaSparkODBC-<version>-LinuxRPM-64bit.zip. È possibile trovare un collegamento di download diretto alla versione supportata in binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/databricks.yaml. Una volta completato il download, copiare il file nel computer Gateway di Data Movement.
-
Arrestare il servizio gateway di Data Movement:
sudo systemctl stop repagent
-
Facoltativamente, confermare che il servizio è stato interrotto:
sudo systemctl status repagent
-
Installare il driver sul computer gateway di Data Movement.
-
Una volta installato, assicurarsi che la seguente sezione appaia nel file /etc/odbcinst.ini:
-
Avviare il servizio gateway di Data Movement:
sudo systemctl start repagent
-
Facoltativamente, confermare che il servizio si è avviato:
sudo systemctl status repagent
Lo stato dovrebbe essere il seguente:
Active: active (running) since <timestamp> ago
Lo stato dovrebbe essere il seguente:
Active: inactive (dead) since <timestamp> ago
[Driver ODBC di Simba Spark] Description=Amazon Hive ODBC Driver (64-bit) Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so
Installazione del driver JDBC
-
Scaricare il file databricks-jdbc-<version>.jar. È possibile trovare un collegamento di download diretto alla versione supportata in binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/databricks.yaml. Una volta completato il download, copiare il file JAR nella cartella seguente nel computer Gateway di Data Movement:
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
Riavviare il servizio Gateway di Data Movement e verificare che sia stato avviato eseguendo i comandi descritti nella sezione Comandi di servizio del Gateway di Data Movement
Porta
La porta 443 del firewall deve essere aperta per la comunicazione in uscita.
Tipi di dati
La tabella seguente mostra i tipi di dati Databricks supportati al momento di utilizzare Qlik Cloud e il mapping predefinito dai tipi di dati Qlik Cloud.
La informazioni relative tipo di dati nativo vengono mantenute e vengono visualizzate nella colonna Tipo di dati nativo nelle visualizzazioni del set di dati. Se la colonna non è visibile, è necessario aprire lo strumento di selezione delle colonne della visualizzazione del set di dati e selezionare la colonna Tipo di dati nativo.
Tipi di dati Qlik Cloud | Tipi di dati Databricks |
---|---|
BOOLEAN |
BOOLEAN |
BYTES |
STRING |
DATE |
DATE |
TIME |
STRING |
DATETIME |
TIMESTAMP |
INT1 |
TINYINT |
INT2 |
SMALLINT |
INT4 |
INT |
INT8 |
BIGINT |
NUMERIC |
DECIMAL (precisione, scala) |
REAL4 |
FLOAT |
REAL8 |
DOUBLE |
UINT1 |
SMALLINT |
UINT2 |
INT |
UINT4 |
BIGINT |
UINT8 |
DECIMAL (20, 0) |
STRING |
VARCHAR (lunghezza in Byte) |
WSTRING |
VARCHAR (lunghezza in Byte) |
BLOB |
STRING |
NCLOB |
STRING |
CLOB |
STRING |
I seguenti tipi di dati vengono convertiti in STRING (255):
-
MAP
-
ARRAY
-
STRUCT
Limiti e considerazioni
-
Quando si utilizza Databricks su AWS con tabelle senza una chiave primaria, il ricaricamento delle tabelle nel trasferimento avrà esito negativo nell'app di archiviazione. Per risolvere questo problema, è possibile:
-
Definire una chiave primaria nelle tabelle.
-
Impostare spark.databricks.delta.altertabella.rename.enabledOnAWS su True in Databricks.
-
Quando si crea una trasformazione basata su SQL, tutti i campi VARCHAR vengono restituiti come STRING(255).
-