Google BigQuery
È possibile utilizzare Google BigQuery 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 Google BigQuery come destinazione sono necessari i seguenti elementi:
- Adempimento dei prerequisiti
- Configurazione di una connessione a Google BigQuery
Configurazione di una connessione a Google BigQuery
Per configurare il connettore, procedere come segue:
-
In Connessioni, fare clic su Crea connessione.
-
Selezionare il connettore Google BigQuery 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
Chiave account servizio: caricare il file JSON scaricato alla creazione della chiave dell'account del servizio BigQuery.
Posizione: dove si carica il set di dati creato da Qlik. Se si seleziona Altro, immettere il nome della regione nel campo Nome regione. Per un elenco dei nomi di regione supportati, vedere Posizioni BigQuery.
Nome
Il nome visualizzato per la connessione.
Prerequisiti
Autorizzazioni necessarie per il trasferimento dei dati
Autorizzazioni necessarie per creare automaticamente il set di dati di destinazione:
Se si desidera che il set di dati venga creato automaticamente, sono necessarie le seguenti autorizzazioni:
BigQuery > Utente processo BigQuery
BigQuery > Editor di dati BigQuery
Autorizzazioni richieste quando il set di dati di destinazione esiste già:
Se la set di dati esiste già, è necessario eseguire i seguenti passaggi:
-
Creare un account del servizio con la seguente autorizzazione:
BigQuery > Utente processo BigQuery
-
Passare al set di dati che si desidera utilizzare, quindi eseguire le seguenti operazioni:
-
Aggiungere l'account del servizio appena creato come principale.
-
Assegnare il ruolo di Editor di dati BigQuery.
-
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 gbq
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 gbq.
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 gbq
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 gbq.
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 gbq
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.
È necessario installare un ODBC e un driver JDBC.
Installazione del driver ODBC
Una volta installato Gateway di Data Movement, scaricare i file SimbaODBCDriverforGoogleBigQuery_<version>-Linux.tar.gz e google-cloud-sdk-<version>-linux-x86_64.tar.gz. È possibile trovare i collegamenti di download diretto a questi file in binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml. Una volta completato il download, copiare i 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
-
Estrarre:
SimbaODBCDriverforGoogleBigQuery_<version>.tar.gz
in:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux
-
Spostare i file GoogleBigQueryODBC.did e simba.googlebigqueryodbc.ini nella directory lib sotto la directory Simba ODBC driver.
Esempio:
Spostare i file da
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/setup
in:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib
-
Modificare il file simba.googlebigqueryodbc.ini come segue:
-
Modificare il
ErrorMessagesPath
nel percorso del file XML contenente i messaggi ODBC. La posizione predefinita è:ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages
- Modificare
DriverManagerEncoding
inUTF-16
.
-
-
Aggiungere il seguente percorso al file site_arep_login.sh che si trova nella directory bin gateway di Data Movement:
esportare LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib
-
Modificare il file /etc/odbcinst.ini e aggiungere il percorso del driver (ovvero il percorso in cui è installato il driver):
[ODBC Drivers]
Simba= Installed
Simba ODBC Driver for Google BigQuery = Installed
[Simba ODBC Driver for Google BigQuery]
Description=Simba ODBC Driver for Google BigQuery(64-bit)
Driver=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib/libgooglebigqueryodbc_sb64.so
-
Installare google-cloud-sdk-<version>-linux-x86_64.tar.gz.
-
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
Installazione del driver JDBC e le relative dipendenze
-
Scaricare il seguente file ZIP e i file JAR elencati in binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml:
- https://repo1.maven.org/maven2/com/google/cloud/google-cloud-bigquery/<version>/google-cloud-bigquery-<version>.jar
- https://repo1.maven.org/maven2/com/google/cloud/google-cloud-bigquery/<version>/google-cloud-bigquery-<version>.jar
- https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery<version>.zip
Copiare i file JAR nella seguente cartella nel computer di Gateway di Data Movement ed estrarre i file JAR in SimbaJDBCDriverforGoogleBigQuery<version>.zip nella stessa cartella:
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
Riavviare il servizio Gateway di Data Movement eseguendo il comando descritto nella sezione Riavviare il servizio
Porta
La porta 443 del firewall deve essere aperta per la comunicazione in uscita.
Tipi di dati
I tipi di dati parametrizzati verranno impostati con valori predefiniti:
-
STRING: 8192 (lunghezza)
-
BYTES: 8192 (lunghezza)
-
NUMERIC: Precisione: 38, Scala: 9
-
BIGDECIMAL: Precisione: 76, Scala: 38
La tabella seguente mostra i tipi di dati Google BigQuery 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 Google BigQuery |
---|---|
BOOLEAN |
BOOL |
BYTES |
BYTES (lunghezza in Byte) |
DATE |
DATE |
TIME |
TIME |
DATETIME |
TIMESTAMP |
INT1 |
TINYINT |
INT2 | SMALLINT |
INT4 |
INTEGER |
INT8 | BIGINT |
NUMERIC |
NUMERIC (precisione, scala) |
REAL4 |
FLOAT64 |
REAL8 |
FLOAT64 |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INTEGER |
UINT8 |
BIGINT |
STRING |
STRING (lunghezza in Byte) |
WSTRING |
STRING (lunghezza in Byte) |
BLOB |
BYTES |
NCLOB |
STRING |
CLOB |
STRING |
I seguenti tipi di dati vengono convertiti in STRING:
-
ARRAY
-
STRUCT
-
JSON
-
GEOGRAPHY
Si consiglia di tentare l'installazione manuale di driver nel caso in cui l'installazione automatizzata non venissa completata.
Limiti e considerazioni
Quando si spostano i dati su una destinazione Google BigQuery, si applicano le seguenti limitazioni e considerazioni:
Limiti e considerazioni per tutte le attività dati
- I seguenti DDL non sono supportati:
- Rilascia colonna
- Rinomina colonna
- Modifica tipo dati colonne
- Rinomina tabella
L'acquisizione di modifiche da tabelle di origine senza Chiave primaria o Indice univoco non è supportata. Se è necessario acquisire le modifiche da tali tabelle, è possibile aggiungere una Chiave primaria utilizzando una trasformazione. Inoltre, le colonne Chiave primaria o Indice univoco non possono contenere NULL. Se si sa che tali colonne saranno popolate con valori NULL, definire una trasformazione per cambiare i NULL in valori non-nullable.
Limiti e considerazioni esclusivi per le attività di replica
- La modalità transazionale Applica modifiche non è supportata.
L'opzione di gestione degli errori Registra record nella tabella delle eccezioni per i conflitti di applicazione e gli errori di dati non è supportata.
Con la seguente configurazione delle impostazioni dell'attività, l'attività di replica eseguirà un'operazione DELETE seguita da un'operazione INSERT invece di UPDATE:
La modalità di applicazione modifiche è impostata su Batch ottimizzato.
L'opzione Applica modifiche usando SQL MERGE non è selezionata.
La gestione degli errori di UPDATE per i conflitti di applicazione è impostata su: Nessun record trovato per l'applicazione di un UPDATE: inserisci il record di destinazione mancante con INSERT.
Poiché Google Cloud BigQuery non supporta il rollback, nel caso in cui l'attività di replica non sia in grado di inserire la riga aggiornata, i dati verranno eliminati dalla destinazione.