# Snowflake

Snowflake może służyć 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 Snowflake jako miejsca docelowego obejmuje:

* [Wymagane uprawnienia](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/snowflake-target.htm#Permissi) skonfigurowane w bazie danych.
* Zainstalowanie [wymaganego sterownika](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/snowflake-target.htm#Driver). Pamiętaj, że jest to wymagane tylko w przypadku łączenia się ze Snowflake za pośrednictwem bramy Brama danych ruchu danych.
* Konfiguracja połączenia z Snowflake

## Konfiguracja właściwości połączenia

Aby skonfigurować łącznik, wykonaj następujące czynności:

1. W obszarze Połączenia kliknij Utwórz połączenie.

2. Wybierz łącznik miejsca docelowego Snowflake , a następnie podaj następujące ustawienia:

### Miejsce docelowe danych

#### Brama danych

InformacjaTo pole jest niedostępne w subskrypcji Qlik Talend Cloud Starter, ponieważ brama Brama danych ruchu danych jest nieobsługiwana na tym poziomie subskrypcji.

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?](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#top) i [Typowe zastosowania](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#Common).

Jeśli docelowa baza danych jest bezpośrednio dostępna z Qlik Cloud, wybierz Brak.

InformacjaW celu uzyskiwania dostępu do docelowej bazy danych za pośrednictwem Brama danych ruchu danych należy też zainstalować odpowiedni sterownik na urządzeniu z Brama danych ruchu danych. Szczegółowe informacje zawiera temat [Konfiguracja sterowników](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/snowflake-target.htm#Driver) poniżej.

### Właściwości połączenia

* Serwer: adres URL dostępu do Snowflake. Na przykład: myaccount.snowflakecomputing.com.

* Port: port, przez który chcesz uzyskać dostęp do swojej bazy danych Snowflake. Domyślny numer to 443.

### Uwierzytelnienie

Wybierz metodę uwierzytelniania:

* Nazwa użytkownika i hasło

  InformacjaPo wybraniu tej metody metoda ładowania Snowpipe Streaming na karcie Ogólne ustawień zadania jest nieobsługiwana.

* Para kluczy

  Baza danych Snowflake musi być skonfigurowana do korzystania z uwierzytelniania parami kluczy. Proces ten opisano w temacie [Konfigurowanie uwierzytelniania parą kluczy](https://docs.snowflake.com/en/user-guide/key-pair-auth.html#configuring-key-pair-authentication).

  InformacjaJeśli używasz Brama danych ruchu danych, do korzystania z uwierzytelniania parami kluczy jest wymagana wersja 2024.5.14 lub wyższa.

### Właściwości konta

#### Nazwa użytkownika i hasło

Nazwa użytkownika i Hasło: nazwa użytkownika i hasło użytkownika uprawnionego do dostępu do bazy danych Snowflake.

#### Para kluczy

Właściwości pary kluczy

| Właściwość konta | Opis |
| --- | --- |
| Użytkownik | Użytkownik w Snowflake. |
| Plik klucza prywatnego | Kliknij Przeglądaj, aby wybrać plik klucza prywatnego. |
| Hasło do pliku klucza prywatnego | Hasło do odszyfrowania klucza prywatnego, jeśli jest on zaszyfrowany. |

### Właściwości bazy danych

* Domyślna hurtownia: Nazwa Twojej hurtowni danych Snowflake. Możesz ją zmienić w ustawieniach projektu.

* Nazwa bazy danych: istnieją dwie metody określania bazy danych:

  * Metoda 1 — wybór z listy: Kliknij Load databases, a następnie wybierz bazę danych.

  * Metoda 2 — ręcznie: Wybierz pozycję Wprowadź nazwę bazy danych ręcznie, a następnie wprowadź nazwę bazy danych.

### Dodatkowe właściwości połączenia

W razie potrzeby można określić dodatkowe właściwości połączenia ODBC i JDBC. Właściwości, które są istotne zarówno dla połączeń ODBC, jak i JDBC — na przykład „Rola” — powinny zostać dodane do obu.

Informacja

* W przypadku korzystania z narzędzia Brama danych ruchu danych dodatkowe właściwości połączenia są obsługiwane od wersji 2024.5.54.
* Właściwości zabezpieczeń (na przykład klucze szyfrowania) nie są obsługiwane.
* Nie należy dodawać właściwości, które mają dedykowane pola w ustawieniach połączenia.

#### Właściwości ODBC

Można określić dodatkowe właściwości połączenia, które będą używane przez zadania przenoszenia danych (Umieszczanie, Replikacja i Umieszczanie w jeziorze danych) w przypadku połączenia za pośrednictwem sterownika ODBC.

Użyj przycisków the Utwórz icon i the Anuluj icon znajdujących się po prawej stronie pól, aby dodać lub usunąć właściwości zgodnie z potrzebą.

#### Właściwości JDBC

Można określić dodatkowe właściwości połączenia, które będą używane przez zadania ELT (Rejestracja, Pamięć masowa, Transformacja i Data mart) podczas łączenia za pośrednictwem sterownika JDBC.

Użyj przycisków the Utwórz icon i the Anuluj icon znajdujących się po prawej stronie pól, aby dodać lub usunąć właściwości zgodnie z potrzebą.

### Właściwości wewnętrzne

Właściwości wewnętrzne są przeznaczone dla specjalnych przypadków, w związku z czym nie są ukazywane w oknie dialogowym. Należy ich używać tylko na polecenie Qlik Pomocy technicznej.

Użyj przycisków the Utwórz nowy icon i the Anuluj icon znajdujących się po prawej stronie pól, aby dodać lub usunąć właściwości zgodnie z potrzebą.

### Nazwa

Nazwa wyświetlana dla połączenia.

## Wymagania wstępne

### Wymagane uprawnienia

Wymagane są następujące ustawienia:

Uprawnienia wymagane, jeśli chcesz, aby schematy, które nie istnieją, były tworzone automatycznie

* USAGE ON DATABASE
* CREATE SCHEMA ON DATABASE

Uprawnienia wymagane, jeśli już istnieje schemat

* USAGE ON DATABASE
* USAGE ON SCHEMA
* CREATE FILE FORMAT ON SCHEMA
* CREATE STAGE ON SCHEMA
* CREATE TABLE ON SCHEMA

### Konfiguracja sterowników

Sterownik jest wymagany tylko do uzyskiwania dostępu za pośrednictwem 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 pobieranie sterownika, skopiowanie go do wymaganego folderu (zobacz poniżej) i uruchomienie skryptu, który automatycznie zainstaluje i skonfiguruje wymagany driver. W razie potrzeby można także uruchamiać skrypty, aby zaktualizować i odinstalować driver.

Przygotowanie instalacji

* Na serwerze bramy Data Movement 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

* Pobierz sterownik ODBC Snowflake „snowflake-odbc-&lt;wersja&gt;.x86\_64.rpm”. Łącze do bezpośredniego pobrania obsługiwanej wersji można znaleźć w sekcji binary-artifacts w pliku /opt/qlik/gateway/movement/drivers/manifests/snowflake.yaml. Po zakończeniu pobierania skopiuj plik do:

  /opt/qlik/gateway/movement/drivers/snowflake

Instalowanie aplikacji driver

Aby zainstalować driver:

1. Zatrzymaj usługę Data Movement gateway:

   sudo systemctl stop repagent

2. Opcjonalnie potwierdź, że usługa została zatrzymana:

   sudo systemctl status repagent

   Status powinien być następujący:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. Na urządzenie bramy Data Movement zmień katalog roboczy na:

   opt/qlik/gateway/movement/drivers/bin

4. Wykonaj następujące polecenie:

   Składnia:

   ./install snowflake

   W przeciwnym razie zostanie wyświetlona umowa licencyjna dotycząca driver.

5. 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.

6. 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ą.

   Zostanie zainstalowany driver.

7. Poczekaj na zakończenie instalacji (wskazane komunikatem „Ukończono!”), a następnie uruchom usługę Data Movement gateway:

   sudo systemctl start repagent

8. Opcjonalnie potwierdź, że usługa została uruchomiona:

   sudo systemctl status repagent

   Status powinien być następujący:

   Active: active (running) since &lt;timestamp&gt; ago

driver — aktualizacja

Uruchom polecenie aktualizacji, jeśli chcesz odinstalować driver w poprzedniej wersji, zanim zainstalujesz dostarczony driver.

Aby zaktualizować driver:

1. Zatrzymaj usługę Data Movement gateway:

   sudo systemctl stop repagent

2. Opcjonalnie potwierdź, że usługa została zatrzymana:

   sudo systemctl status repagent

   Status powinien być następujący:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. Na urządzenie bramy Data Movement zmień katalog roboczy na:

   opt/qlik/gateway/movement/drivers/bin

4. Wykonaj następujące polecenie:

   Składnia:

   ./update snowflake

   W przeciwnym razie zostanie wyświetlona umowa licencyjna dotycząca driver.

5. 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.

6. 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.

   Stary driver zostanie odinstalowany, a zainstalowany zostanie nowy driver.

7. Poczekaj na zakończenie instalacji (wskazane komunikatem „Ukończono!”), a następnie uruchom usługę Data Movement gateway:

   sudo systemctl start repagent

8. Opcjonalnie potwierdź, że usługa została uruchomiona:

   sudo systemctl status repagent

   Status powinien być następujący:

   Active: active (running) since &lt;timestamp&gt; ago

driver — odinstalowywanie

Uruchom polecenie odinstalowania, jeśli chcesz odinstalować driver.

Aby odinstalować driver:

1. Zatrzymaj wszystkie zadania skonfigurowane do korzystania z tego łącznika.

2. Na urządzenie bramy Data Movement zmień katalog roboczy na:

   opt/qlik/gateway/movement/drivers/bin

3. Wykonaj następujące polecenie:

   Składnia:

   ./uninstall snowflake

   Sterownik driverzostanie odinstalowany.

#### Ręczne instalowanie sterownika

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

1. Po pobraniu Brama danych ruchu danych pobierz plik sterownika snowflake-odbc-&lt;wersja&gt;x86\_64.rpm wymieniony w sekcji binary-artifacts w pliku /opt/qlik/gateway/movement/drivers/manifests/snowflake.yaml i skopiuj go na komputer z Brama danych ruchu danych.
2. Zainstaluj sterownik na urządzeniu Brama danych ruchu danych.

Instalowanie sterownika JDBC

1. Pobierz plik snowflake-jdbc-&lt;wersja&gt;.jar wymieniony w sekcji binary-artifacts w pliku /opt/qlik/gateway/movement/drivers/manifests/snowflake.yaml i skopiuj go do następującego folderu na komputerze z Brama danych ruchu danych:

   /opt/qlik/gateway/movement/qcs\_agents/qdi-db-commands/lib

2. Uruchom ponownie usługę Brama danych ruchu danych i sprawdź, czy została uruchomiona, używając poleceń opisanych w temacie [Brama danych ruchu danych polecenia usługi](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/dm-gateway-managing.htm#Restarti)

### Port

Należy otworzyć port 443 zapory na potrzeby komunikacji wychodzącej.

## Ograniczenia i uwagi

Podczas przenoszenia danych do celu Snowflake obowiązują następujące ograniczenia:

* Replikacja tabel z ukośnikami wstecznymi w nazwach (np. SPECIAL\\TABLE\N) nie jest obsługiwana.

### Ograniczenia i uwagi dotyczące używania metody ładowania Snowpipe Streaming

W przypadku korzystania ze Snowpipe Streaming jako metody ładowania obowiązują następujące ograniczenia:
* Tylko do zadań umieszczania:

  * Ponieważ Snowpipe obsługuje tylko operacje INSERT, metoda aktualizacji Przeładuj i porównaj nie jest obsługiwana.

* Tylko dla zadań replikacji:

  * Ponieważ Snowpipe obsługuje tylko operacje INSERT, tryb replikacji Zastosuj zmiany nie jest obsługiwany.

  * Zatrzymanie replikacji Zapisz zmiany podczas transakcji i wznowienie jej po 30 lub więcej dniach może powodować duplikowanie rekordów w miejscu docelowym. Snowflake automatycznie usuwa kanały po 30 dniach.

* W przypadku zarówno zadań umieszczania, jak i replikacji:

  * Uwierzytelnianie za pomocą nazwy użytkownika i hasła nie jest obsługiwane.
  * Podtyp danych XML nie jest obsługiwany.

## Typy danych

Następująca tabela pokazuje typy danych Snowflake, 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.

Obsługiwane typy danych

| Typy danych Qlik Cloud | Typy danych Snowflake |
| --- | --- |
| BOOLEAN | BOOLEAN |
| BYTES | BINARY (długość w bajtach) |
| DATE | DATE |
| TIME | TIME (precyzja) |
| DATETIME | Snowflake:<br><br><ul> <li> <p>ZNACZNIK CZASU</p> </li> </ul><br><br>Dla Snowflake Iceberg :<br><br><ul> <li> <p>ZNACZNIK CZASU</p> </li> <li> <p>Jeśli skala &gt; 7: STRING(37)</p> </li> </ul> |
| INT1 | BYTEINT |
| INT2 | SMALLINT |
| INT4 | INTEGER |
| INT8 | BIGINT |
| NUMERIC | NUMBER (precyzja, skala) |
| REAL4 | FLOAT4 |
| REAL8 | FLOAT8 |
| UINT1 | BYTEINT |
| UINT2 | INTEGER |
| UINT4 | INTEGER |
| UINT8 | BIGINT |
| STRING | VARCHAR (długość w bajtach) |
| WSTRING | NVARCHAR (długość w bajtach) |
| BLOB | BINARY (8388608) |
| NCLOB | NVARCHAR (8388608) |
| CLOB | VARCHAR (8388608) |
| JSON | VARIANT |

W Snowflake wszystkie kolumny VARCHAR przechowują znaki UTF-8. Jeśli dane załadowane do kolumny VARCHAR przekroczą jej maksymalną długość 128 MB, wystąpi następujący błąd:

```
        RetCode: SQL_ERROR  SqlState: 22000 NativeError: 100078 Message: String '{"col1": null, "col2": null, "col3": null, "col4' is too long and would be truncated
        
```

Podczas pracy z typami danych tablicy, obiektu lub TIMESTAMP\_TZ w Snowflake należy przekonwertować je na BINARY, jeśli:

* Masz zadanie zarejestrowanych danych z jednym z tych typów, a następnie zadanie, które przechowuje tabele w formacie Iceberg.

* Masz zadanie Iceberg z jednym z tych typów, a następnie zadanie bez Iceberg.