Google BigQuery
U kunt Google BigQuery als een doelgegevensplatform in een gegevenspijplijn of in een replicatietaak. In een gegevenspijplijn kunt u verschillende ELT-bewerkingen uitvoeren voor het doelplatform, zoals gegevens opslaan, gegevens transformeren, datamarts maken en gegevens registreren. Bij een replicatietaak daarentegen worden gegevens rechtstreeks van een bronsysteem naar een doelsysteem gerepliceerd met basistransformatie-opties, maar zonder ondersteuning voor ELT-bewerkingen. gebruiken
Google BigQuery als doel instellen vereist het volgende:
- Voldoen aan de vereisten
- Een verbinding naar Google BigQuery configureren
Een verbinding naar Google BigQuery configureren
Ga als volgt te werk om de connector te configureren:
-
Klik in Verbindingen op Verbinding maken.
-
Selecteer de Google BigQuery doelconnector en stel de volgende instellingen in:
Gegevensdoel
Gegevensgateway
Een Gateway voor gegevensverplaatsing is alleen vereist als de doeldatabase niet toegankelijk is via Qlik Cloud en kan alleen worden geopend via een privékoppeling (bijvoorbeeld als deze zich in een virtuele privécloud bevindt). Als dit het geval is, selecteer dan de Gateway voor gegevensverplaatsing waarmee u toegang wilt krijgen tot de doeldatabase.
Afhankelijk van uw gebruikssituatie, gebruikt u dezelfde Gateway voor gegevensverplaatsing die is geïmplementeerd om gegevens van de bron te verplaatsen of u gebruikt een andere gateway.
Voor informatie over usecases voor de Gateway voor gegevensverplaatsing, gaat u naar Wanneer is de Gateway voor gegevensverplaatsing vereist? en Veelvoorkomende usecases.
Als de doeldatabase direct toegankelijk is via Qlik Cloud, selecteer dan Geen.
Verbindingseigenschappen
Serviceaccountsleutel: Upload het JSON-bestand dat is gedownload toen u uw BigQuery-serviceaccountsleutel hebt gemaakt.
Locatie: waar de gegevenverzameling die is gemaakt door Qlik moet worden geüpload. Als u Overige selecteert, voert u de regionaam in het veld Regionaam in. Voor een lijst met ondersteunde regionamen gaat u naar BigQuery-locaties.
Naam
De weergavenaam voor de verbinding.
Vereisten
Machtigingen vereist voor tussenopslaggegevens
Vereiste machtigingen om de doelgegevensverzameling automatisch te maken:
Als u wilt dat de gegevensverzameling automatisch wordt gemaakt, zijn de volgende machtigingen vereist:
BigQuery > BigQuery Job User
BigQuery > BigQuery Data Editor
Vereiste machtigingen wanneer de doelgegevensverzameling al bestaat:
Als de gegevensverzameling al bestaat, moet u de volgende stappen uitvoeren:
-
Maak een serviceaccount met de volgende machtiging:
BigQuery > BigQuery Job User
-
Ga naar de gegevensverzameling die u wilt gebruiken en:
-
Voeg het serviceaccount dat u zojuist hebt gemaakt toe als een principal.
-
Wijs de rol BigQuery Data Editor toe.
-
Setup stuurprogramma
Er is alleen een stuurprogramma vereist als u via Gateway voor gegevensverplaatsing toegang krijgt tot de database. In dit geval moet u het stuurprogramma op de Gateway voor gegevensverplaatsing-machine installeren.
U kunt het driver installeren met het installatieprogramma (aanbevolen) of handmatig. U moet een handmatige installatie alleen uitvoeren als er een probleem ontstaat bij het hulpprogramma.
Het hulpprogramma gebruiken om het stuurprogramma te installeren
In deze sectie wordt beschreven hoe u het vereiste driver installeert. Het proces omvat het uitvoeren van een script dat automatisch het vereiste driver downloadt, installeert en configureert. U kunt indien nodig ook scripts uitvoeren om het driver bij te werken en verwijderen.
De installatie voorbereiden
-
Controleer of Python 3.6 of hoger is geïnstalleerd op de Gegevensverplaatsing-gatewayserver.
Python is al geïnstalleerd op de meeste Linux-distributies. U kunt controleren welke Python-versie is geïnstalleerd op uw systeem door de volgende opdracht uit te voeren:
python3 --version
De driver installeren
Ga als volgt te werk om het driverte downloaden en installeren:
-
Stop de Data Movement gateway-service:
sudo systemctl stop repagent
-
Bevestig eventueel dat de service is gestopt:
sudo systemctl status repagent
De status zou als volgt moeten zijn:
Active: inactive (dead) since <timestamp> ago
-
Op de Gegevensverplaatsing-gatewaymachine wijzigt u de werkdirectory in:
opt/qlik/gateway/movement/drivers/bin
-
Voer dan de volgende opdracht uit:
Syntaxis:
./install gbq
Als het driver niet kan worden gedownload (vanwege toegangsbeperkingen of technische problemen), wordt er een melding getoond met de instructies voor het downloaden van het driver en waarnaar u het moet kopiëren op de Gegevensverplaatsing-gatewaymachine. Nadat u dit hebt gedaan, voert u de opdracht install gbq nogmaals uit.
Anders wordt de gebruiksrechtovereenkomst voor het driver getoond.
-
Voer een van de volgende handelingen uit:
- Druk herhaaldelijk op [Enter] om langzaam door de gebruiksrechtovereenkomst te scrollen.
- Druk herhaaldelijk op de spatiebalk om snel door de gebruiksrechtovereenkomst te scrollen.
- Druk op q om de licentietekst af te sluiten en de opties te tonen voor het aanvaarden van de gebruiksrechtovereenkomst.
-
Voer een van de volgende handelingen uit:
- Typ "y" en druk op [Enter] om de gebruiksrechtovereenkomst te accepteren en de installatie te starten.
- Typ "n" en druk op [Enter] om de gebruiksrechtovereenkomst af te wijzen en de installatie af te sluiten.
-
Typ "v" en druk op [Enter] om de gebruiksrechtovereenkomst nogmaals te tonen.
-
Wacht totdat de installatie is voltooid (wordt aangegeven met "Voltooid!") en start vervolgens de Data Movement gateway-service:
sudo systemctl start repagent
-
Bevestig eventueel dat de service is gestart:
sudo systemctl status repagent
De status zou als volgt moeten zijn:
Active: active (running) since <timestamp> ago
Het driver wordt geïnstalleerd.
Het driver bijwerken
Voer de update-opdracht uit als u eerdere versies van het driver wilt verwijderen voordat u het meegeleverde driver installeert.
Ga als volgt te werk om het driver te downloaden en bij te werken:
-
Stop de Data Movement gateway-service:
sudo systemctl stop repagent
-
Bevestig eventueel dat de service is gestopt:
sudo systemctl status repagent
De status zou als volgt moeten zijn:
Active: inactive (dead) since <timestamp> ago
-
Op de Gegevensverplaatsing-gatewaymachine wijzigt u de werkdirectory in:
opt/qlik/gateway/movement/drivers/bin
-
Voer dan de volgende opdracht uit:
Syntaxis:
./update gbq
Als het driver niet kan worden gedownload (vanwege toegangsbeperkingen of technische problemen), wordt er een melding getoond met de instructies voor het downloaden van het driver en waarnaar u het moet kopiëren op de Gegevensverplaatsing-gatewaymachine. Nadat u dit hebt gedaan, voert u de opdracht update gbq nogmaals uit.
Anders wordt de gebruiksrechtovereenkomst voor het driver getoond.
-
Voer een van de volgende handelingen uit:
- Druk herhaaldelijk op [Enter] om langzaam door de gebruiksrechtovereenkomst te scrollen.
- Druk herhaaldelijk op de spatiebalk om snel door de gebruiksrechtovereenkomst te scrollen.
- Druk op q om de licentietekst af te sluiten en de opties te tonen voor het aanvaarden van de gebruiksrechtovereenkomst.
-
Voer een van de volgende handelingen uit:
- Typ "y" en druk op [Enter] om de gebruiksrechtovereenkomst te accepteren en de installatie te starten.
- Typ "n" en druk op [Enter] om de gebruiksrechtovereenkomst af te wijzen en de installatie af te sluiten.
- Typ "v" en druk op [Enter] om de gebruiksrechtovereenkomst nogmaals vanaf het begin te tonen.
-
Wacht totdat de installatie is voltooid (wordt aangegeven met "Voltooid!") en start vervolgens de Data Movement gateway-service:
sudo systemctl start repagent
-
Bevestig eventueel dat de service is gestart:
sudo systemctl status repagent
De status zou als volgt moeten zijn:
Active: active (running) since <timestamp> ago
Het oude driver wordt verwijderd en het nieuwe driver wordt geïnstalleerd.
Het driver verwijderen
Voer de uninstall-opdracht uit als u het driver wilt verwijderen.
Ga als volgt te werken om het driver te verwijderen:
-
Stop alle taken die zijn geconfigureerd om deze connector te gebruiken.
-
Op de Gegevensverplaatsing-gatewaymachine wijzigt u de werkdirectory in:
opt/qlik/gateway/movement/drivers/bin
-
Voer dan de volgende opdracht uit:
Syntaxis:
./uninstall gbq
driver wordt verwijderd.
Het stuurprogramma handmatig installeren
U moet het driver alleen handmatig uitvoeren als de geautomatiseerde installatie van het stuurprogramma niet is voltooid.
U moet zowel een ODBC-stuurpogramma als een JDBC-stuurprogramma installeren.
Het ODBC-stuurprogramma installeren
Nadat Gateway voor gegevensverplaatsing is geïnstalleerd, downloadt u de SimbaODBCDriverforGoogleBigQuery_<version>-Linux.tar.gz and google-cloud-sdk-<version>-linux-x86_64.tar.gz bestanden. U vindt directe downloadlinks voor deze bestanden onder binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml. Nadat de download is voltooid, kopieert u de bestanden naar de machine met de Gateway voor gegevensverplaatsing.
-
Stop de Data Movement gateway-service:
sudo systemctl stop repagent
-
Bevestig eventueel dat de service is gestopt:
sudo systemctl status repagent
-
Extraheren:
SimbaODBCDriverforGoogleBigQuery_<version>.tar.gz
in:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux
-
Verplaats de bestanden GoogleBigQueryODBC.did en simba.googlebigqueryodbc.ini naar de lib-directory onder de Simba ODBC-stuurprogrammadirectory.
Voorbeeld:
Verplaats de bestanden van:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/setup
in:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib
-
Bewerk het bestand simba.googlebigqueryodbc.ini als volgt:
-
Wijzig het
ErrorMessagesPath
in het pad van het XML-bestand met de ODBC-berichten. De standaardlocatie is:ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages
- Wijzig
DriverManagerEncoding
inUTF-16
.
-
-
Voeg het volgende pad toe aan het bestand site_arep_login.sh in de bin-map van Data Movement gateway:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib
-
Bewerk het bestand /etc/odbcinst.ini en voeg het stuurprogrammapad toe (d.w.z. het pad waar het stuurprogramma is geïnstalleerd):
[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
-
Installeer google-cloud-sdk-<version>-linux-x86_64.tar.gz.
-
Start de Data Movement gateway-service:
sudo systemctl start repagent
-
Bevestig eventueel dat de service is gestart:
sudo systemctl status repagent
De status zou als volgt moeten zijn:
Active: active (running) since <timestamp> ago
De status zou als volgt moeten zijn:
Active: inactive (dead) since <timestamp> ago
Het JDBC-stuurprogramma en de afhankelijkheden installeren
-
Download het volgende ZIP-bestand de JAR-bestanden onder 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
Kopieer de JAR-bestanden naar de volgende map op de machine met de Gateway voor gegevensverplaatsing en pak de JAR‑bestanden in SimbaJDBCDriverforGoogleBigQuery<version>.zip in dezelfde map uit:
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
Herstart de Gateway voor gegevensverplaatsing-service door de opdracht uit te voeren die wordt beschreven in De service opnieuw opstarten
Poort
Firewallpoort 443 moet zijn geopend voor uitgaande communicatie.
Gegevenstypen
Gegevenstypelengte met parametrisering worden ingesteld met standaardwaarden:
-
STRING: 8192 (lengte)
-
BYTES: 8192 (lengte)
-
NUMERIC: Precision: 38, Scale: 9
-
BIGDECIMAL: Precision: 76, Scale: 38
De volgende tabel toont de Google BigQuery-gegevenstypen van de database die worden ondersteund als u Qlik Cloud en de standaard toewijzingen van Qlik Cloud-gegevenstypen gebruikt.
Informatie in eigen gegevenstypen wordt behouden en wordt weergegeven in de kolom Eigen gegevenstype in weergaven van gegevensverzamelingen. Als de kolom niet zichtbaar is, moet u de kolomkiezer van de weergave van de gegevensverzameling openen en de kolom Eigen gegevenstype selecteren.
Qlik Cloud-gegevenstypen | Google BigQuery-gegevenstypen |
---|---|
BOOLEAN |
BOOL |
BYTES |
BYTES (lengte in bytes) |
Date |
DATE |
TIME |
TIME |
DATETIME |
TIMESTAMP |
INT1 |
TINYINT |
INT2 | SMALLINT |
INT4 |
INTEGER |
INT8 | BIGINT |
NUMERIC |
NUMERIC (precision, scale) |
REAL4 |
FLOAT64 |
REAL8 |
FLOAT64 |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INTEGER |
UINT8 |
BIGINT |
STRING |
STRING (lengte in bytes) |
WSTRING |
STRING (lengte in bytes) |
BLOB |
BYTES |
NCLOB |
STRING |
CLOB |
STRING |
De volgende gegevenstypen worden omgezet naar STRING:
-
ARRAY
-
STRUCT
-
JSON
-
GEOGRAPHY
U moet het driver alleen handmatig uitvoeren als de geautomatiseerde installatie van het stuurprogramma niet is voltooid.
Beperkingen en overwegingen
De volgende beperkingen zijn van toepassing bij het verplaatsen van gegevens naar een Google BigQuery-doel.
Beperkingen en overwegingen voor alle gegevenstaken
- De volgende DDL's worden niet ondersteund:
- Kolom laten vervallen
- Kolomnaam wijzigen
- Type kolomgegevens wijzigen
- Tabelnaam wijzigen
Het vastleggen van wijzigingen in brontabellen zonder primaire sleutel of unieke index wordt niet ondersteund. Als u wijzigingen van dergelijke tabellen moet vastleggen, kunt u een primaire sleutel toevoegen met behulp van een transformatie. Bovendien kunnen primaire sleutel- of unieke index-kolommen geen null-waarden bevatten. Als u weet dat dergelijke kolommen gevuld zullen worden met null-waarden, definieert u een transformatie om de null-waarden te wijzigen in niet-null-waarden.
Beperkingen en overwegingen voor alleen replicationtaken
- De wijzigingsmodus Transactioneel toepassen wordt niet ondersteund.
De optie voor Record registeren in uitzonderingstabel voor toepassingsconflicten en gegevensfouten wordt niet ondersteund.
Met de volgende configuratie van de taakinstellingen voert de replicatietaak een DELETE-bewerking uit, gevolgd door een INSERT in plaats van een UPDATE:
De modus Wijzigingen toepassen is ingesteld op Batchgewijs geoptimaliseerd.
Als de optie Wijzigingen toepassen met SQL MERGE niet is geselecteerd.
Foutverwerking van UPDATE's voor toepassingsconflicten is ingesteld op: Geen record gevonden voor het toepassen van een UPDATE: Het ontbrekende doelrecord INVOEGEN
Aangezien Google Cloud BigQuery de terugdraaiactie niet ondersteunt, worden de gegevens van het doel verwijderd wanneer de replicatietaak de bijgewerkte rij niet kan invoegen.