Google BigQuery
Możesz użyć Google BigQuery jako docelowa platforma danych w potoku danych lub zadaniu replikacji. W potoku danych można wykonywać różne operacje ELT na platformie docelowej, w tym przechowywanie danych, przekształcanie danych, tworzenie data martów oraz rejestrowanie danych. Zadanie replikacji polega natomiast na replikacji danych bezpośrednio z systemu źródłowego do systemu docelowego z podstawowymi możliwościami transformacji, ale bez obsługi operacji ELT.
Konfigurowanie Google BigQuery jako miejsca docelowego obejmuje:
- Spełnienie warunków wstępnych
- Konfiguracja połączenia z Google BigQuery
Konfiguracja połączenia z Google BigQuery
Aby skonfigurować łącznik, wykonaj następujące czynności:
-
W obszarze Połączenia kliknij Utwórz połączenie.
-
Wybierz łącznik miejsca docelowego Google BigQuery , a następnie podaj następujące ustawienia:
Miejsce docelowe danych
Brama danych
Brama Brama danych ruchu danych jest wymagana tylko wtedy, gdy docelowa baza danych nie jest dostępna z Qlik Cloud i można uzyskać do niej dostęp tylko za pośrednictwem łącza prywatnego (na przykład jeśli znajduje się w wirtualnej chmurze prywatnej). W takim przypadku wybierz tę bramę Brama danych ruchu danych, przez którą chcesz uzyskiwać dostęp do docelowej bazy danych.
W zależności od zastosowania będzie to ta sama Brama danych ruchu danych, która została wdrożona do przenoszenia danych ze źródła, lub inna.
Informacje na temat zastosowań związanych z Brama danych ruchu danych zawierają tematy Kiedy jest wymagana brama Brama danych ruchu danych? i Typowe zastosowania.
Jeśli docelowa baza danych jest bezpośrednio dostępna z Qlik Cloud, wybierz Brak.
Właściwości połączenia
Klucz konta usługi: Prześlij plik JSON pobrany podczas tworzenia klucza konta usługi BigQuery.
Lokalizacja: miejsce, do którego należy przesłać zestaw danych utworzony przez Qlik. Jeśli wybierzesz opcję Inne, wprowadź nazwę regionu w polu Nazwa regionu. Listę obsługiwanych nazw regionów znajdziesz w artykule Lokalizacje BigQuery.
Nazwa
Nazwa wyświetlana dla połączenia.
Wymagania wstępne
Uprawnienia wymagane do umieszczania danych
Uprawnienia wymagane do automatycznego tworzenia docelowego zestawu danych:
Jeśli chcesz, aby zestaw danych został utworzony automatycznie, wymagane są następujące uprawnienia:
BigQuery > BigQuery Job User
BigQuery > BigQuery Data Editor
Uprawnienia wymagane, gdy docelowy zestaw danych już istnieje:
Jeśli zestaw danych już istnieje, musisz wykonać następujące czynności:
-
Utwórz konto usługi z następującymi uprawnieniami:
BigQuery > BigQuery Job User
-
Przejdź do zbioru danych, którego chcesz użyć, a następnie:
-
Dodaj właśnie utworzone konto usługi jako główne.
-
Przydziel rolę BigQuery Data Editor.
-
Konfiguracja sterowników
Sterownik jest wymagany tylko do uzyskiwania dostępu za pośrednictwem Brama danych ruchu danych. W takim przypadku należy zainstalować sterownik na urządzeniu Brama danych ruchu danych.
Sterownik driver można zainstalować za pomocą Narzędzia do instalacji sterowników (zalecane) lub ręcznie. Instalacji ręcznej należy próbować tylko w mało prawdopodobnym przypadku wystąpienia problemu z Narzędziem do instalacji sterowników.
Używanie Narzędzia do instalacji sterowników w celu instalacji sterownika
W tej sekcji opisano, jak zainstalować wymagany driver. Proces ten obejmuje uruchomienie skryptu, który automatycznie pobierze, zainstaluje i skonfiguruje wymagany driver. W razie potrzeby można także uruchamiać skrypty, aby zaktualizować i odinstalować driver.
Przygotowanie instalacji
-
Na serwerze bramy Ruch danych musi być zainstalowane środowisko Python 3.6 lub nowsze.
Środowisko Python jest preinstalowane w większości dystrybucji systemu Linux. Aby sprawdzić, która wersja środowiska Pythona jest zainstalowana w Twoim systemie, uruchom następujące polecenie:
python3 --version
Instalowanie aplikacji driver
Aby pobrać i zainstalować driver:
-
Zatrzymaj usługę Data Movement gateway:
sudo systemctl stop repagent
-
Opcjonalnie potwierdź, że usługa została zatrzymana:
sudo systemctl status repagent
Status powinien być następujący:
Active: inactive (dead) since <timestamp> ago
-
Na urządzenie bramy Ruch danych zmień katalog roboczy na:
opt/qlik/gateway/movement/drivers/bin
-
Wykonaj następujące polecenie:
Składnia:
./install gbq
Jeśli driver nie może zostać pobrany (ze względu na ograniczenia dostępu lub problemy techniczne), zostanie wyświetlony komunikat informujący, skąd pobrać driver i dokąd go skopiować na urządzenie bramy Ruch danych. Po wykonaniu tej czynności ponownie uruchom polecenie install gbq.
W przeciwnym razie zostanie wyświetlona umowa licencyjna dotycząca driver.
-
Wykonaj jedną z poniższych czynności:
- Naciśnij klawisz [Enter] wielokrotnie, aby powoli przewinąć treść umowy licencyjnej.
- Naciśnij klawisz spacji wielokrotnie, aby szybko przewinąć treść umowy licencyjnej.
- Naciśnij klawisz „q”, aby zamknąć tekst umowy licencyjnej i wyświetlić opcje jej akceptacji.
-
Wykonaj jedną z poniższych czynności:
- Wpisz „y” i naciśnij klawisz [Enter], aby zaakceptować umowę licencyjną i rozpocząć instalację.
- Wpisz „n” i naciśnij klawisz [Enter], aby odrzucić umowę licencyjną i zakończyć instalację.
-
Wpisz „v” i naciśnij klawisz [Enter], aby ponownie wyświetlić umowę licencyjną.
-
Poczekaj na zakończenie instalacji (wskazane komunikatem „Ukończono!”), a następnie uruchom usługę Data Movement gateway:
sudo systemctl start repagent
-
Opcjonalnie potwierdź, że usługa została uruchomiona:
sudo systemctl status repagent
Status powinien być następujący:
Active: active (running) since <timestamp> ago
Zostanie zainstalowany driver.
driver — aktualizacja
Uruchom polecenie aktualizacji, jeśli chcesz odinstalować driver w poprzedniej wersji, zanim zainstalujesz dostarczony driver.
Aby pobrać i zaktualizować driver:
-
Zatrzymaj usługę Data Movement gateway:
sudo systemctl stop repagent
-
Opcjonalnie potwierdź, że usługa została zatrzymana:
sudo systemctl status repagent
Status powinien być następujący:
Active: inactive (dead) since <timestamp> ago
-
Na urządzenie bramy Ruch danych zmień katalog roboczy na:
opt/qlik/gateway/movement/drivers/bin
-
Wykonaj następujące polecenie:
Składnia:
./update gbq
Jeśli driver nie może zostać pobrany (ze względu na ograniczenia dostępu lub problemy techniczne), zostanie wyświetlony komunikat informujący, skąd pobrać driver i dokąd go skopiować na urządzenie bramy Ruch danych. Po wykonaniu tej czynności ponownie uruchom polecenie update gbq.
W przeciwnym razie zostanie wyświetlona umowa licencyjna dotycząca driver.
-
Wykonaj jedną z poniższych czynności:
- Naciśnij klawisz [Enter] wielokrotnie, aby powoli przewinąć treść umowy licencyjnej.
- Naciśnij klawisz spacji wielokrotnie, aby szybko przewinąć treść umowy licencyjnej.
- Naciśnij klawisz „q”, aby zamknąć tekst umowy licencyjnej i wyświetlić opcje jej akceptacji.
-
Wykonaj jedną z poniższych czynności:
- Wpisz „y” i naciśnij klawisz [Enter], aby zaakceptować umowę licencyjną i rozpocząć instalację.
- Wpisz „n” i naciśnij klawisz [Enter], aby odrzucić umowę licencyjną i zakończyć instalację.
- Wpisz „v” i naciśnij klawisz [Enter], aby wyświetlić umowę licencyjną od początku.
-
Poczekaj na zakończenie instalacji (wskazane komunikatem „Ukończono!”), a następnie uruchom usługę Data Movement gateway:
sudo systemctl start repagent
-
Opcjonalnie potwierdź, że usługa została uruchomiona:
sudo systemctl status repagent
Status powinien być następujący:
Active: active (running) since <timestamp> ago
Stary driver zostanie odinstalowany, a zainstalowany zostanie nowy driver.
driver — odinstalowywanie
Uruchom polecenie odinstalowania, jeśli chcesz odinstalować driver.
Aby odinstalować driver:
-
Zatrzymaj wszystkie zadania skonfigurowane do korzystania z tego łącznika.
-
Na urządzenie bramy Ruch danych zmień katalog roboczy na:
opt/qlik/gateway/movement/drivers/bin
-
Wykonaj następujące polecenie:
Składnia:
./uninstall gbq
Sterownik driverzostanie odinstalowany.
Instalowanie sterownika ręcznie
Sterownik driver należy instalować ręcznie tylko wtedy, gdy automatyczna instalacja nie zakończyła się pomyślnie.
Należy zainstalować sterowniki zarówno ODBC, jak i JDBC.
Instalowanie sterownika ODBC
Po zainstalowaniu Brama danych ruchu danych pobierz pliki SimbaODBCDriverforGoogleBigQuery_<wersja>-Linux.tar.gz i google-cloud-sdk-<wersja>-linux-x86_64.tar.gz. Łącza do bezpośredniego pobrania tych plików można znaleźć w sekcji binary-artifacts w pliku /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml. Po zakończeniu pobierania skopiuj pliki na komputer z Brama danych ruchu danych.
-
Zatrzymaj usługę Data Movement gateway:
sudo systemctl stop repagent
-
Opcjonalnie potwierdź, że usługa została zatrzymana:
sudo systemctl status repagent
-
Wyodrębnienie:
SimbaODBCDriverforGoogleBigQuery_<wersja>.tar.gz
na:
/opt/SimbaODBCDriverforGoogleBigQuery_<wersja>-Linux
-
Przenieś pliki GoogleBigQueryODBC.did i simba.googlebigqueryodbc.ini do katalogu lib w katalogu sterownika Simba ODBC.
Przykład:
Przenieś pliki z:
/opt/SimbaODBCDriverforGoogleBigQuery_<wersja>-Linux/setup
na:
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib
-
Edytuj plik simba.googlebigqueryodbc.ini w następujący sposób:
-
Zmień
ErrorMessagesPath
na ścieżkę dostępu do pliku XML zawierającego komunikaty ODBC. Lokalizacją domyślną jest:ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages
- Zmień
DriverManagerEncoding
naUTF-16
.
-
-
Dodaj następującą ścieżkę do pliku site_arep_login.sh znajdującego się w katalogu Data Movement gateway bin:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/SimbaODBCDriverforGoogleBigQuery_<wersja>-Linux/SimbaODBCDriverforGoogleBigQuery64_<wersja>/lib
-
Edytuj plik /etc/odbcinst.ini i dodaj ścieżkę do sterownika (tj. ścieżkę, gdzie sterownik jest zainstalowany):
[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
-
Zainstaluj Google-Cloud-SDK- <wersja>-linux-x86_64.tar.gz.
-
Uruchom usługę Data Movement gateway:
sudo systemctl start repagent
-
Opcjonalnie potwierdź, że usługa została uruchomiona:
sudo systemctl status repagent
Status powinien być następujący:
Active: active (running) since <timestamp> ago
Status powinien być następujący:
Active: inactive (dead) since <timestamp> ago
Instalowanie sterownika JDBC i jego zależności
-
Pobierz następujący plik ZIP i pliki JAR wymienione w sekcji binary-artifacts w pliku /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml:
- https://repo1.maven.org/maven2/com/google/cloud/google-cloud-bigquery/<wersja>/google-cloud-bigquery-<version>.jar
- https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/<wersja>/google-cloud-storage-<version>.jar
- https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery<wersja>.zip
Skopiuj pliki JAR do następującego folderu na komputerze Brama danych ruchu danych i wyodrębnij pliki JAR w pakiecie SimbaJDBCDriverforGoogleBigQuery<wersja>.zip do tego samego folderu:
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
Uruchom ponownie usługę Brama danych ruchu danych, używając polecenia opisanego w temacie Ponowne uruchamianie usługi.
Port
Należy otworzyć port 443 zapory na potrzeby komunikacji wychodzącej.
Typy danych
Dla długości parametrycznych typów danych zostaną ustawione wartości domyślne:
-
CIĄG: 8192 (długość)
-
BAJTY: 8192 (długość)
-
NUMERIC: precyzja: 38, skala: 9
-
BIGDECIMAL: precyzja: 76, skala: 38
Następująca tabela pokazuje typy danych Google BigQuery, które są obsługiwane podczas używania Qlik Cloud, i domyślne mapowanie z typów danych Qlik Cloud.
Informacje o natywnym typie danych są zachowywane i wyświetlane w widokach zestawu danych w kolumnie Natywny typ danych. Jeśli kolumna nie jest widoczna, otwórz selektor kolumn w widoku zestawu danych i wybierz kolumnę Natywny typ danych.
Typy danych Qlik Cloud | Typy danych Google BigQuery |
---|---|
BOOLEAN |
BOOL |
BYTES |
BYTES (długość w bajtach) |
DATE |
DATE |
TIME |
TIME |
DATETIME |
TIMESTAMP |
INT1 |
TINYINT |
INT2 | SMALLINT |
INT4 |
INTEGER |
INT8 | BIGINT |
NUMERIC |
NUMERIC (precyzja, skala) |
REAL4 |
FLOAT64 |
REAL8 |
FLOAT64 |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INTEGER |
UINT8 |
BIGINT |
STRING |
STRING (długość w bajtach) |
WSTRING |
STRING (długość w bajtach) |
BLOB |
BYTES |
NCLOB |
STRING |
CLOB |
STRING |
Następujące typy danych są konwertowane na STRING:
-
ARRAY
-
STRUCT
-
JSON
-
GEOGRAPHY
Sterownik driver należy instalować ręcznie tylko wtedy, gdy automatyczna instalacja nie zakończyła się pomyślnie.
Ograniczenia i uwagi
Podczas przenoszenia danych do miejsca docelowego Google BigQuery obowiązują następujące ograniczenia:
Ograniczenia i uwagi dotyczące wszystkich zadań danych
- Poniższe DDL nie są obsługiwane:
- Usuń kolumnę
- Zmień nazwę kolumny
- Zmiana typu danych kolumny
- Zmień nazwę tabeli
Przechwytywanie zmian z tabel źródłowych bez klucza głównego lub unikatowego indeksu nie jest obsługiwane. Jeśli potrzebujesz przechwytywać zmiany z takich tabel, możesz dodać klucz główny przy użyciu transformacji. Dodatkowo kolumny klucza głównego lub unikatowego indeksu nie mogą zawierać wartości NULL. Jeśli wiesz, że takie kolumny będą wypełnione wartościami NULL, zdefiniuj transformację, aby zmienić wartości NULL na inne wartości.
Ograniczenia i uwagi dotyczące wyłącznie zadań replikacji
- Transakcyjny tryb „Zastosuj zmiany” nie jest obsługiwany.
Opcja obsługi błędów Zarejestruj rekord w tabeli wyjątków dla konfliktów stosowania i błędów danych nie jest obsługiwana.
Przy następującej konfiguracji ustawień zadania zadanie replikacji wykona operację DELETE, a następnie INSERT zamiast UPDATE:
Tryb stosowania zmian jest ustawiony na Optymalizacja pod kątem partii.
Gdy opcja Zastosuj zmiany za pomocą SQL MERGE nie jest wybrana.
Obsługa błędów operacji UPDATE dla konfliktów stosowania jest ustawiona na: Nie znaleziono rekordu do zastosowania UPDATE: Użyj operacji INSERT do brakującego rekordu docelowego.
Ponieważ Google Cloud BigQuery nie obsługuje wycofywania, jeżeli zadanie replikacji nie będzie w stanie wstawić zaktualizowanego wiersza, dane zostaną usunięte z miejsca docelowego.