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.
Att konfigurera Google BigQuery som ett mål innebär:
- Uppfylla förutsättningarna
- Konfigurera en koppling till Google BigQuery
Konfigurera en koppling till Google BigQuery
Gör följande för att konfigurera kopplingen:
-
I Kopplingar klickar du på Skapa koppling.
-
Välj målkopplingen Google BigQuery och ange sedan följande inställningar:
Datamål
Datagateway
Data Movement gateway 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 Data Movement gateway att använda för åtkomst till måldatabasen.
Beroende på användningsfall kan det vara samma Data Movement gateway som distribuerats för att flytta data från datakällan eller någon annan.
Information om Data Movement gateway-användningsfall finns i När krävs Data Movement gateway? och Vanlig användning.
Om måldatabasen är direkt åtkomlig från Qlik Cloud väljer du Ingen.
Kopplingsegenskaper
Tjänstekontonyckel: Ladda upp JSON-filen som hämtades när du skapade din BigQuery-tjänstekontonyckel.
Plats: Var datasetet som skapats av Qlik ska laddas upp. Om du väljer Annan anger du regionens namn i fältet Regionnamn. För en lista över regionnamn som stöds, se BigQuery-platser.
Namn
Visningsnamnet för kopplingen.
Förutsättningar
Behörigheter som krävs för mellanlagring av data
Behörigheter som krävs för att skapa måldatasetet automatiskt:
Om du vill att datasetet 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åldatasetet redan finns:
Om datasetet redan finns måste du utföra följande steg:
-
Skapa ett tjänstekonto med följande behörighet:
BigQuery > BigQuery Job User
-
Navigera till det dataset som du vill använda och sedan:
-
Lägg till tjänstekontot du just skapade som ett huvudkonto (principal).
-
Tilldela rollen BigQuery Data Editor.
-
Konfiguration av drivrutin
En drivrutin krävs endast om du öppnar databasen via Data Movement gateway. I så fall måste du installera drivrutinen på Data Movement gateway-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 drivrutin 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å Data Movement-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 Gateway för dataflytt-tjänsten:
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å Data Movement-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å Data Movement-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 ett 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 Gateway för dataflytt-tjänsten:
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å Data Movement-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å Data Movement-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 ett 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å Data Movement-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 ODBC-drivrutinen och JDBC-drivrutinen.
Installera ODBC-drivrutinen
När Data Movement gateway har installerats hämtar du filerna SimbaODBCDriverforGoogleBigQuery_<version>-Linux.tar.gz och google-cloud-sdk-<version>-linux-x86_64.tar.gz. Du hittar direkta hämtningslänkar för dessa filer under binary-artifacts i /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml. När hämtningen är klar kopierar du filerna till Data Movement gateway-maskinen.
-
Stoppa Gateway för dataflytt-tjänsten:
sudo systemctl stop repagent
-
Bekräfta eventuellt 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 katalogen lib 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 enligt följande:
-
Ändra
ErrorMessagesPathtill sökvägen för XML-filen som innehåller ODBC-meddelandena. Standardplatsen är:ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages - Ändra
DriverManagerEncodingtillUTF-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= 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 -
Installera google-cloud-sdk-<version>-linux-x86_64.tar.gz.
-
Starta Gateway för dataflytt-tjänsten:
sudo systemctl start repagent
-
Bekräfta eventuellt att tjänsten har startat:
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
Installera JDBC-drivrutinen och dess beroenden
-
Hämta följande ZIP-fil och JAR-filer som listas under binary-artifacts i /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
Kopiera JAR-filerna till följande mapp på Data Movement gateway-maskinen och extrahera JAR-filerna i SimbaJDBCDriverforGoogleBigQuery<version>.zip till samma mapp:
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
Starta om Data Movement gateway-tjänsten genom att köra kommandot som beskrivs i Starta om tjänsten
Port
Brandväggsport 443 måste öppnas för utgående kommunikation.
Datatyper
Parametriserad datatypslängd kommer att ställas in med standardvärden:
-
STRING: 8192 (längd)
-
BYTES: 8192 (längd)
-
NUMERIC: Precision: 38, Skala: 9
-
BIGDECIMAL: Precision: 76, Skala: 38
Följande tabell visar de Google BigQuery-datatyper som stöds när du använder 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 |
|
BYTES |
BYTES (längd i byte) |
|
DATE |
DATE |
|
TIME |
TIME |
|
DATETIME |
TIMESTAMP Om skala > 7: STRING(37) Annars är precisionen alltid 6, även om indatakolumnen använder en lägre precision än 6. |
|
INT1 |
TINYINT |
| INT2 | SMALLINT |
|
INT4 |
INTEGER |
| INT8 | BIGINT |
|
NUMERIC |
NUMERIC (precision, skala) |
|
REAL4 |
FLOAT64 |
|
REAL8 |
FLOAT64 |
|
UINT1 |
TINYINT |
|
UINT2 |
SMALLINT |
|
UINT4 |
INTEGER |
|
UINT8 |
BIGINT |
|
STRING |
STRING Om undertypen är JSON, då: JSON |
|
WSTRING |
STRING Om undertypen är JSON, då: JSON |
|
BLOB |
BYTES |
|
NCLOB |
STRING Om undertypen är JSON, då: JSON |
|
CLOB |
STRING Om undertypen är JSON, då: JSON |
| ARRAY | STRING |
| STRUCT | STRING |
| GEOGRAPHY | STRING |
| JSON | JSON |
Begränsningar och överväganden för alla datauppgifter
- Följande DDL:er stöds inte:
- Ta bort kolumn
- Byt namn på kolumn
- Ändra datatyp för kolumn
-
Det går inte att fånga ändringar från källtabeller utan en primärnyckel eller ett unikt index. Om du behöver fånga ändringar från sådana tabeller kan du lägga till en primärnyckel med hjälp av en transformering. Dessutom kan kolumner med primärnyckel eller unikt index inte innehålla NULL-värden. Om du är medveten om att sådana kolumner kommer att fyllas med NULL-värden, definiera en transformering för att ändra NULL-värdena till värden som inte är null.
-
JSON-fält stöds inte som primärnycklar.
Begränsningar och överväganden endast för replikeringsuppgifter
- Läget Tillämpa ändringar Transaktionell stöds inte.
-
Med följande konfiguration av uppgiftsinställningar kommer replikeringsuppgiften att utföra en DELETE-åtgärd följt av en INSERT i stället för en UPDATE:
-
Läget Tillämpa ändringar är inställt på Batchoptimerad.
-
Alternativet Tillämpa ändringar med SQL MERGE är inte valt.
-
Felhantering av UPDATE för tillämpningskonflikter är inställt på: Ingen post hittades för att tillämpa en UPDATE: INSERT den saknade målposten.
Eftersom Google Cloud BigQuery inte stöder återställning (rollback), kommer data att tas bort från målet i händelse av att replikeringsuppgiften inte kan infoga den uppdaterade raden.
-