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.
Configurare Google BigQuery come destinazione comporta:
- Soddisfare i prerequisiti
- Configurare 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 di destinazione Google BigQuery e fornire le seguenti impostazioni:
Destinazione dati
Gateway dati
È richiesto un Gateway 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 Data Movement che si desidera utilizzare per accedere al database di destinazione.
A seconda del caso di utilizzo, questo sarà lo stesso Gateway Data Movement distribuito per spostare i dati da una sorgente dati, oppure uno differente.
Per informazioni sui casi di utilizzo del Gateway Data Movement, vedere Quando è richiesto il Gateway Data Movement? e Casi di utilizzo comuni.
Se il database di destinazione è direttamente accessibile da Qlik Cloud, selezionare Nessuno.
Proprietà di connessione
Chiave dell'account di servizio: Caricare il file JSON scaricato durante la creazione della chiave dell'account di servizio BigQuery.
Posizione: Dove caricare il set di dati creato da Qlik. Se si seleziona Altro, inserire 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 richieste per il trasferimento dei dati
Autorizzazioni richieste 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 job BigQuery
BigQuery > Editor dati BigQuery
Autorizzazioni richieste quando il set di dati di destinazione esiste già:
Se il set di dati esiste già, è necessario eseguire i seguenti passaggi:
-
Creare un account di servizio con la seguente autorizzazione:
BigQuery > Utente job BigQuery
-
Passare al set di dati che si desidera utilizzare, quindi:
-
Aggiungere l'account di servizio appena creato come entità.
-
Assegnare il ruolo Editor dati BigQuery.
-
Configurazione del driver
Un driver è richiesto solo se si accede al database tramite Gateway Data Movement. In tal caso, è necessario installare il driver sulla macchina Gateway 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 del 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:
-
Arresta il servizio di 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, confermare 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:
-
Arresta il servizio di 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, confermare 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 sia il driver ODBC che il driver JDBC.
Installazione del driver ODBC
Dopo aver installato Gateway Data Movement, eseguire il download dei file SimbaODBCDriverforGoogleBigQuery_<version>-Linux.tar.gz e google-cloud-sdk-<version>-linux-x86_64.tar.gz. È possibile trovare i link per il download diretto di questi file in binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml. Al termine del download, copiare i file sulla macchina Gateway Data Movement.
-
Arrestare il servizio gateway di Data Movement:
sudo systemctl stop repagent
-
Facoltativamente, confermare che il servizio è stato arrestato:
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 all'interno della directory del driver Simba ODBC.
Esempio:
Spostare i file da:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/setup
a:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib
-
Modificare il file simba.googlebigqueryodbc.ini come segue:
-
Modificare
ErrorMessagesPathnel percorso del file XML contenente i messaggi ODBC. La posizione predefinita è:ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages - Modificare
DriverManagerEncodinginUTF-16.
-
-
Aggiungere il seguente percorso al file site_arep_login.sh situato nella directory bin di gateway di Data Movement:
export 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= InstalledSimba 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 è stato 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 delle relative dipendenze
-
Eseguire il download del seguente file ZIP e dei 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-storage/<version>/google-cloud-storage-<version>.jar
- https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery<version>.zip
Copiare i file JAR nella seguente cartella sulla macchina Gateway 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 Data Movement eseguendo il comando descritto in Riavviare il servizio
Porta
La porta 443 del firewall deve essere aperta per la comunicazione in uscita.
Tipi di dati
La lunghezza del tipo di dati parametrizzato verrà impostata con i 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 quando si utilizza Qlik Cloud e la mappatura predefinita 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 Se scala > 7: STRING(37) Altrimenti, la precisione è sempre 6, anche se la colonna di input utilizza una precisione inferiore a 6. |
|
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 Se il sottotipo è JSON, allora: JSON |
|
WSTRING |
STRING Se il sottotipo è JSON, allora: JSON |
|
BLOB |
BYTES |
|
NCLOB |
STRING Se il sottotipo è JSON, allora: JSON |
|
CLOB |
STRING Se il sottotipo è JSON, allora: JSON |
| ARRAY | STRING |
| STRUCT | STRING |
| GEOGRAPHY | STRING |
| JSON | JSON |
Limitazioni e considerazioni per tutte le attività sui dati
- I seguenti DDL non sono supportati:
- Elimina colonna
- Rinomina colonna
- Modifica tipo di dati della colonna
-
L'acquisizione delle modifiche dalle tabelle di origine senza una chiave primaria o un indice univoco non è supportata. Se è necessario acquisire le modifiche da tali tabelle, è possibile aggiungere una chiave primaria utilizzando una trasformazione. Inoltre, le colonne della chiave primaria o dell'indice univoco non possono contenere valori NULL. Se si è a conoscenza del fatto che tali colonne verranno popolate con valori NULL, definire una trasformazione per modificare i valori NULL in valori non nullable.
-
I campi JSON non sono supportati come chiavi primarie.
Limitazioni e considerazioni solo per le attività di replica
- La modalità Applica modifiche Transazionale non è supportata.
-
Con la seguente configurazione delle impostazioni dell'attività, l'attività di replica eseguirà un'operazione DELETE seguita da un'operazione INSERT anziché un'operazione UPDATE:
-
La modalità Applica modifiche è impostata su Ottimizzata per batch.
-
L'opzione Applica modifiche tramite SQL MERGE non è selezionata.
-
La gestione degli errori UPDATE per i conflitti di applicazione è impostata su: Nessun record trovato per l'applicazione di un UPDATE: INSERT del record di destinazione mancante.
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.
-