Google BigQuery
Du kan använda Google BigQuery som en måldataplattform i en datapipeline eller i en replikeringsuppgift. I en datapipeline kan diverse ELT-åtgärder utföras på målplattformen, inklusive lagring av data, omvandling av data, skapande av datamart och dataregistrering. En replikeringsuppgift å andra sidan omfattar replikering av data direkt från ett källsystem till ett målsystem med grundläggande omvandlingsfunktioner, men utan stöd för ELT-åtgärder.
Ställa in Google BigQuery som mål omfattar att:
- Uppfylla förhandskraven
- Konfigurera en koppling till Google BigQuery
Konfigurera en koppling till Google BigQuery
Gör så här för att konfigurera kopplingen:
-
I Kopplingar klickar du på Skapa koppling.
-
Välj Google BigQuery -målkopplingen och ange följande inställningar:
Datamål
Datagateway
Gateway för dataflytt behövs enbart om det inte går att komma åt måldatabasen från Qlik Cloud och bara kan nås via en privat länk (om den exempelvis är placerad i ett virtuellt privat moln). I så fall ska du välja Gateway för dataflytt att använda för åtkomst till måldatabasen.
Beroende på användningsfall kan det vara samma Gateway för dataflytt som distribuerats för att flytta data från datakällan eller någon annan.
Information om Gateway för dataflytt-användningsfall finns i När krävs Gateway för dataflytt? och Vanliga användningsfall.
Om måldatabasen kan kommas åt direkt från Qlik Cloud ska du välja Ingen.
Anslutningsegenskaper
Servicekontonyckel: Ladda upp den JSON-fil som hämtades när du skapade servicekontonyckeln till BigQuery.
Plats: hit ska datauppsättningar som skapats av Qlik laddas upp. Om du väljer Annan anger du regionnamnet i fältet Regionnamn. En lista med regionnamn finns i BigQuery-platser.
Namn
Visningsnamnet för anslutningen.
Förutsättningar
Behörigheter som krävs för mellanlagringsdata
Behörigheter som krävs för att skapa måldatauppsättningen automatiskt:
Om du vill att datauppsättningen ska skapas automatiskt krävs följande behörigheter:
BigQuery > BigQuery Job User
BigQuery > BigQuery Data Editor
Behörigheter som krävs när måldatauppsättningen redan finns:
Om datauppsättningen redan finns måste du utföra följande steg:
-
Skapa ett tjänstkonto med följande behörighet:
BigQuery > BigQuery Job User
-
Navigera till den datauppsättning som du vill använda och gör sedan följande:
-
Lägg till tjänstkontot som du just skapade som huvudkonto.
-
Tilldela BigQuery Data Editor-rollen.
-
Inställning av drivrutin
En drivrutin behövs bara om du kommer åt en databas via Gateway för dataflytt. I det här fallet måste du installera drivrutinen på Gateway för dataflytt-maskinen.
Du kan installera driver med verktyget för installation av drivrutiner (rekommenderas) eller manuellt. Manuell installation ska bara användas om det mot förmodan skulle inträffa ett problem med verktyget för installation av drivrutiner.
Använda verktyget för installation av drivrutiner för att installera drivrutinen
I det här delavsnittet beskrivs hur driver som krävs installeras. Processen innebär att ett skript körs som automatiskt hämtar, installerar och konfigurerar den nödvändiga driver. Du kan också köra skript som uppdaterar och avinstallerar driver efter behov.
Förbereda installationen
-
Kontrollera att Python 3.6 eller senare är installerad på Dataflytt-gatewayservern.
Python kommer förinstallerad på de flesta Linuxdistributioner. Du kan kontrollera vilken Pythonversion som är installerad på ditt system genom att köra följande kommando:
python3 --version
Installera driver
Så här hämtar och installerar du driver:
-
Stoppa tjänsten Gateway för dataflytt:
sudo systemctl stop repagent
-
Om du vill kan du bekräfta att tjänsten har stoppats:
sudo systemctl status repagent
Statusen ska vara enligt följande:
Active: inactive (dead) since <timestamp> ago
-
På Dataflytt-gatewaydatorn byter du arbetskatalog till:
opt/qlik/gateway/movement/drivers/bin
-
Kör följande kommando:
Syntax:
./install gbq
Om driver inte kan hämtas (på grund av åtkomstbegränsningar eller tekniska problem) visas ett meddelande som beskriver var du kan hämta driver och vart du ska kopiera den på Dataflytt-gatewaydatorn. När du har gjort detta kör du install gbq-kommandot igen.
I annat fall visas EULA för driver.
-
Gör ett av följande:
- Tryck på [Enter] flera gånger för att långsamt rulla genom EULA.
- Tryck på mellanslagstangenten flera gånger för att snabbt rulla genom EULA.
- Tryck på q för att lämna avtalstexten. Godkännandealternativen för EULA visas.
-
Gör något av följande:
- Skriv in "y" och tryck på [Enter] för att godkänna EULA och börja med installationen.
- Skriv in "n" och tryck på [Enter] för att avböja EULA och avsluta installationen.
-
Skriv in "v" och tryck på [Enter] för att visa EULA igen.
-
Vänta tills installationen har slutförts (anges med "Slutförd!") och starta sedan Gateway för dataflytt-tjänsten:
sudo systemctl start repagent
-
Du kan även bekräfta att tjänsten har startats:
sudo systemctl status repagent
Statusen ska vara enligt följande:
Active: active (running) since <timestamp> ago
driver kommer att installeras.
Uppdatering av driver
Kör uppdateringskommandot om du vill avinstallera tidigare versioner av driver innan du installerar den tillhandahållna driver.
Så här hämtar och uppdaterar du driver:
-
Stoppa tjänsten Gateway för dataflytt:
sudo systemctl stop repagent
-
Om du vill kan du bekräfta att tjänsten har stoppats:
sudo systemctl status repagent
Statusen ska vara enligt följande:
Active: inactive (dead) since <timestamp> ago
-
På Dataflytt-gatewaydatorn byter du arbetskatalog till:
opt/qlik/gateway/movement/drivers/bin
-
Kör följande kommando:
Syntax:
./update gbq
Om driver inte kan hämtas (på grund av åtkomstbegränsningar eller tekniska problem) visas ett meddelande som beskriver var du kan hämta driver och vart du ska kopiera den på Dataflytt-gatewaydatorn. När du har gjort detta kör du update gbq-kommandot igen.
I annat fall visas EULA för driver.
-
Gör ett av följande:
- Tryck på [Enter] flera gånger för att långsamt rulla genom EULA.
- Tryck på mellanslagstangenten flera gånger för att snabbt rulla genom EULA.
- Tryck på q för att lämna avtalstexten. Godkännandealternativen för EULA visas.
-
Gör något av följande:
- Skriv in "y" och tryck på [Enter] för att godkänna EULA och börja med installationen.
- Skriv in "n" och tryck på [Enter] för att avböja EULA och avsluta installationen.
- Skriv in "v" och tryck på [Enter] för att granska EULA från början.
-
Vänta tills installationen har slutförts (anges med "Slutförd!") och starta sedan Gateway för dataflytt-tjänsten:
sudo systemctl start repagent
-
Du kan även bekräfta att tjänsten har startats:
sudo systemctl status repagent
Statusen ska vara enligt följande:
Active: active (running) since <timestamp> ago
Den gamla driver avinstalleras och den nya driver installeras.
Avinstallera driver
Kör avinstalleringskommandot om du vill avinstallera driver.
Så här avinstallerar du driver:
-
Stoppa alla uppgifter som är konfigurerade för att använda denna koppling.
-
På Dataflytt-gatewaydatorn byter du arbetskatalog till:
opt/qlik/gateway/movement/drivers/bin
-
Kör följande kommando:
-syntax
./uninstall gbq
driver kommer att avinstalleras.
Installera drivrutinen manuellt
Du bör bara försöka installera driver manuellt om den automatiserade drivrutinsinstallationen inte slutfördes.
Du måste installera både en ODBC och en JDBC drivrutin.
Installera ODBC-drivrutinen
När Gateway för dataflytt har installerats hämtar du filerna SimbaODBCDriverforGoogleBigQuery_<version>-Linux.tar.gz och google-cloud-sdk-<version>-linux-x86_64.tar.gz files. Du hittar direkta nedladdningslänkar till de här filerna i binary-artifacts i /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml. När hämtningen har slutförts kopierar du filerna till Gateway för dataflytt-maskinen.
-
Stoppa tjänsten Gateway för dataflytt:
sudo systemctl stop repagent
-
Om du vill kan du bekräfta att tjänsten har stoppats:
sudo systemctl status repagent
-
Extrahera
SimbaODBCDriverforGoogleBigQuery_<version>.tar.gz
till:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux
-
Flytta filerna GoogleBigQueryODBC.did och simba.googlebigqueryodbc.ini till lib-katalogen under Simba ODBC-drivrutinskatalogen.
Exempel:
Flytta filerna från:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/setup
till:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib
-
Redigera filen simba.googlebigqueryodbc.ini på följande sätt:
-
Ändra
ErrorMessagesPath
till sökvägen till XML-filen som innehåller ODBC-meddelandena. Standardplatsen är .ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages
- Ändra
DriverManagerEncoding
tillUTF-16
.
-
-
Lägg till följande sökväg i filen site_arep_login.sh som finns i Gateway för dataflytt-bin-katalogen:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib
-
Redigera filen /etc/odbcinst.ini och lägg till drivrutinssökvägen (dvs. sökvägen där drivrutinen är installerad):
[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
-
Installera google-cloud-sdk-<version>-linux-x86_64.tar.gz.
-
Starta Gateway för dataflytt-tjänsten.
sudo systemctl start repagent
-
Om du vill kan du bekräfta att tjänsten har startats:
sudo systemctl status repagent
Statusen ska vara enligt följande:
Active: active (running) since <timestamp> ago
Statusen ska vara enligt följande:
Active: inactive (dead) since <timestamp> ago
Installerar JDBC-drivrutinen och dess beroenden
-
Hämta följande ZIP-fil och JAR-filer som anges under 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
Kokpiera JAR-filerna till följande map på Gateway för dataflytt-maskinen och extrahera JAR-filerna i SimbaJDBCDriverforGoogleBigQuery<version>.zip till samma mapp:
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
Starta om Gateway för dataflytt-tjänsten genom att köra stopp- och start-kommandon enligt beskrivning i Starta om tjänsten
Port
Brandväggsport 443 måste öppnas för utgående kommunikation.
Datatyper
Parametriserad datatyplängd kommer att anges med standardvärden:
-
STRING: 8 192 (längd)
-
BYTES: 8 192 (längd)
-
NUMERIC: precision: 38, skala: 9
-
BIGDECIMAL: precision: 76, skala: 38
Följande tabell visar de Google BigQuery-datatyper som stöds vid användning av Qlik Cloud och standardmappningen från Qlik Cloud-datatyper.
Information om inbyggd datatyp bevaras och visas i kolumnen Inbyggd datatyp i datauppsättningsvyer. Om kolumnen inte är synlig måste du öppna kolumnväljaren i datauppsättnignsvyn och välja kolumnen Inbyggd datatyp.
Qlik Cloud-datatyper | Google BigQuery-datatyper |
---|---|
BOOLEAN |
BOOL |
Byte |
BYTES (längd i bytes) |
Datum |
Datum |
Tid |
Tid |
Datum och tid: |
TIMESTAMP |
INT1 |
TINYINT |
INT2 | SMALLINT |
INT4 |
INTEGER |
INT8 | BIGINT |
Numerisk |
NUMERIC (precision, skala) |
REAL4 |
FLOAT64 |
REAL8 |
FLOAT64 |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INTEGER |
UINT8 |
BIGINT |
sträng |
STRING (längd i bytes) |
WSTRING |
STRING (längd i bytes) |
BLOB |
Byte |
NCLOB |
sträng |
CLOB |
sträng |
Följande datatyper konverteras till STRING:
-
ARRAY
-
STRUCT
-
JSON
-
GEOGRAPHY
Du bör bara försöka installera driver manuellt om den automatiserade drivrutinsinstallationen inte slutfördes.
Begränsningar och överväganden
Följande begränsningar gäller när du flyttar data till ett Google BigQuery-mål:
Begränsningar och överväganden för alla datauppgifter
- Följande DDL:er stöds inte:
- Släpp kolumn
- Byt namn på kolumn
- Ändra kolumndatatyp:
- Byt namn på tabell
Att fånga upp förändringar från källtabeller utan primärnyckel eller unikt index stöds ej. Om du behöver fånga upp ändringar från sådana tabeller kan du lägga till en Primärnyckel med hjälp av en transformering. Kolumner för primärnyckel eller unikt index kan heller inte innehålla NULL-värden. Om du vet att sådana kolumner kommer att fyllas med NULL-värden, definiera en transformering för att ändra NULL-värdena till icke-null-värden.
Begränsningar och överväganden endast för replikeringsuppgifter
- Det Transaktionella Tillämpa ändringar-läget stöds inte.
Felhanteringsalternativet Logga post i undantagstabellen för att tillämpa konflikter och datafel stöds inte.
Med följande konfiguration av uppgiftsinställningar kommer replikeringsuppgiften att utföra en DELETE-åtgärd följt av en INSERT istället för en UPDATE:
Läget Tillämpa ändringar är inställt på Batchoptimerat.
Alternativet Tillämpa ändringar med SQL MERGE är inte aktiverat.
UPDATE:s felhantering för Tillämpa konflikter är inställd på: Ingen post hittades för att tillämpa en UPDATE: INFOGA den saknade målposten.
Eftersom Google Cloud BigQuery inte stöder återladdning kommer data att tas bort från målet om replikeringsuppgiften inte kan infoga den uppdaterade raden.