Dane strumieniowe | Qlik Cloud Pomoc
Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Dane strumieniowe

Proces wdrażania przesyła dane ze źródła i przechowuje je w tabelach Iceberg. Zmiany ze strumieniowych źródeł danych są w sposób ciągły stosowane do tabel przechowywania w czasie zbliżonym do rzeczywistego.

Wdrażanie danych

Dane są wdrażane w ramach projektu potoku, a zestawy danych są przechowywane w lokalizacji S3 zdefiniowanej w ustawieniach projektu.

  1. W swoim projekcie kliknij Utwórz, a następnie Wdróż dane.

  2. Dodaj Nazwę zadania i opcjonalny Opis dla wdrażania.

    Kliknij Dalej.

  3. Wybierz połączenie źródłowe.

    Możesz wybrać istniejące połączenie ze źródłem strumieniowym lub utworzyć nowe połączenie ze źródłem.

    Więcej informacji zawiera sekcja Łączenie ze strumieniami danych

    Kliknij Dalej i postępuj zgodnie z poniższymi instrukcjami dla swojego źródła danych.

Wybieranie danych

Apache Kafka

Lista wyświetla dostępne tematy Kafka z klastra zdefiniowanego w połączeniu źródłowym.

Podczas wybierania tematów możesz wybrać określone zestawy danych. Możesz również użyć reguł wyboru, aby uwzględnić lub wykluczyć grupy zestawów danych:

  • Użyj % jako symbolu wieloznacznego, aby zdefiniować kryteria wyboru dla zestawów danych.

Jeśli tematy są wybierane przy użyciu reguł wyboru, możesz zdecydować, czy załadować wszystkie zestawy danych do tej samej tabeli docelowej, czy utworzyć oddzielną tabelę docelową dla każdego tematu źródłowego:

  • Domyślnie nazwa docelowej tabeli Iceberg pochodzi od nazwy tematu, sformatowanej zgodnie z konwencjami nazewnictwa, na przykład małe litery, usunięte spacje, myślniki zastąpione znakami podkreślenia. W sekcji Zdefiniuj nazwę docelowego zestawu danych możesz edytować nazwę tabeli docelowej

  • Gdy reguły wyboru są używane do ładowania wielu tematów do jednej tabeli, musisz podać nazwę docelową.

  • Gdy używane są reguły wyboru, a dane są ładowane do oddzielnych tabel (jeden zestaw danych na temat), domyślnymi nazwami docelowymi są nazwy tematów. Na tym etapie nie można edytować nazw w kreatorze, ale można to zrobić później w zadaniu umieszczania.

  • Jeśli reguła jest skonfigurowana do wybierania tematów do pozyskiwania, wszelkie nowe tematy spełniające kryteria reguły są również umieszczane, jeśli zaznaczona jest opcja Nowy temat  > Dodaj do celu w sekcji ewolucji schematu w ustawieniach zadania umieszczania.

Wybierz jeden lub więcej zestawów danych albo użyj reguły wyboru i kliknij Dodaj. Kliknij Dalej.

Amazon Kinesis

Lista wyświetla dostępne strumienie Kinesis zdefiniowane w połączeniu źródłowym.

Wybierz jeden lub więcej zestawów danych i kliknij Dodaj. Dodane zestawy danych można zobaczyć w sekcji Wybrane strumienie. Kliknij Dalej.

Amazon S3

Przeglądarka katalogów wyświetla listę wszystkich katalogów znajdujących się w zasobniku S3 Twojego połączenia źródłowego. 

InformacjaUżycie wzorca danych do wybierania katalogów może poprawić wydajność.
  • Wybierz katalogi do uwzględnienia podczas umieszczania danych:

    • Dla każdego katalogu w polu Dodaj ścieżkę wprowadź ścieżkę i wzorzec nazwy pliku:

      • Użyj * jako symbolu wieloznacznego, aby dopasować dowolny znak.

      • Aby wprowadzić wzorzec daty, użyj <yyyy> jako czterocyfrowego symbolu zastępczego roku, <MM> jako dwucyfrowego symbolu zastępczego miesiąca, <dd> jako dwucyfrowego symbolu zastępczego dnia i <HH> jako dwucyfrowego symbolu zastępczego godziny. Na przykład:

        • MyDir3/<yyyy>_<MM>_<dd>_<HH>_orders.csv

        • MyDir3/<yyyy>/<MM>/<dd>/<HH>_orders.csv

  • Kliknij Podgląd, aby otworzyć okno dialogowe Podgląd danych. Wyświetlona zostanie lista uwzględnionych i wykluczonych plików.

  • Kliknij Sprawdź poprawność, aby sprawdzić, czy ścieżki i wzorce nazw plików są poprawne i funkcjonalne.

  • W sekcji Zdefiniuj nazwę docelowego zestawu danych podaj nazwę, aby zamapować temat na docelową tabelę Iceberg. Kliknij Dalej.

Wybieranie typu zawartości

Wybierz typ zawartości zdarzeń źródłowych.

  • Wybierz typ pozyskiwanych zdarzeń w sekcji Wybierz typ zdarzeń danych.

  • Więcej informacji zawiera sekcja Łączenie ze strumieniami danych.

    Wybrany typ zawartości ma zastosowanie do wszystkich tematów, zestawów danych lub zdarzeń danych. Musisz utworzyć nowe zadanie dla każdego typu zawartości, który chcesz pozyskać.

  • Rozwiń Sprawdź, czy zdarzenia są poprawnie załadowane, aby potwierdzić, że dane mogą zostać przeanalizowane. Warto upewnić się, że dane są poprawne na tym etapie, w przeciwnym razie konieczne będzie ponowne utworzenie potoku i ponowne załadowanie danych. Użyj opcji Wybierz zestaw danych, aby zbadać określone zestawy danych i sprawdzić wszelkie ostrzeżenia, które mogą wpłynąć na ładowanie danych. Kliknij ikonę oka obok dowolnych kolumn struktury, aby wyświetlić dane.

  • Kliknij Dalej.

InformacjaJeśli dla zestawu danych nie wykryto żadnych zdarzeń, w zadaniu umieszczania zostanie wyświetlony komunikat. Konieczne będzie uruchomienie zadania, gdy pojawią się zdarzenia do odczytania, a kolumny zostaną dodane automatycznie.

Ustawianie właściwości pozyskiwania

Skonfiguruj ustawienia dla swojego potoku:

  • Odczytaj dane z

    • Rozpocznij od najwcześniejszego zdarzenia: pozyskaj wszystkie dane historyczne.

    • Rozpocznij od teraz: pozyskaj nowe dane napływające od momentu uruchomienia potoku.

  • Rozwijanie kolumn

    • Zachowaj zagnieżdżone kolumny: nie są stosowane żadne przekształcenia.

    • Rozwiń do oddzielnych kolumn: dane są dzielone na oddzielne kolumny.

  • Ustawienia ładowania dla nowych zestawów danych

    • Tylko dołączaj: zazwyczaj najlepsza opcja dla danych zdarzeń, ponieważ zwykle mają one krótki cykl życia i nie są aktualizowane, na przykład Zamówienia.

    • Zastosuj zmiany: ta opcja najlepiej nadaje się do danych, które są aktualizowane w czasie, na przykład Klienci. Aktualizuje istniejące rekordy i wstawia nowe rekordy na podstawie pól klucza. Pola klucza trzeba będzie określić później podczas definiowania zadania.

  • Partycja tabeli docelowej

    Opcja partycji tabeli docelowej ma zastosowanie do wszystkich tabel w potoku. Możesz to później zastąpić na poziomie tabeli, aby zdefiniować niestandardowe partycjonowanie.

    InformacjaTa opcja jest dostępna tylko wtedy, gdy w sekcji Ustawienia ładowania wybrano opcję Tylko dołączaj.
    • Brak partycji: tabele są tworzone bez żadnego partycjonowania.

    • Partycjonuj według daty pozyskania zdarzenia: tabele są partycjonowane według daty pozyskania zdarzeń.

      InformacjaGdy ta opcja jest wybrana razem z opcją kolumny nagłówka hdr__from_timestamp, hdr__from_timestamp zostanie użyta jako domyślna kolumna partycji. Informacje na temat dodawania kolumny nagłówka hdr__from_timestamp do widoków standardowych zawiera sekcja Definicje tabel.
  • Obsługa zmian danych

    InformacjaTa opcja jest dostępna tylko wtedy, gdy w sekcji Ustawienia ładowania wybrano opcję Zastosuj zmiany.
    • Uwzględnij miękkie usunięcia: Wprowadź wyrażenie, aby zdefiniować, które rekordy mają zostać oznaczone do usunięcia.

    • Utwórz magazyn danych historycznych (Typ 2): Spowoduje to zachowanie poprzednich wersji zmienionych rekordów.

  • Kliknij Dalej.

Podsumowanie

Ekran podsumowania zapewnia wizualną reprezentację Twojego potoku:

  • Opcjonalnie dla zadania umieszczania strumieniowego i przekształcania strumieniowego możesz kliknąć Edytuj nazwę i opis, aby podać nowe wartości.

  • Wybierz opcję określającą, co ma się stać Po utworzeniu potoku.

  • Po skonfigurowaniu wszystkich ustawień kliknij Utwórz, aby utworzyć potok strumieniowy.

  • Po wyświetleniu projektu możesz przygotować i uruchomić każde zadanie, aby rozpocząć pozyskiwanie danych.

Mapowania typów danych

Początkowy schemat źródłowy opiera się na próbce danych pobranej przed fazą PRZYGOTOWANIA podczas tworzenia projektu potoku, a ewolucja schematu jest obsługiwana w czasie odczytu. Zadania lustrzane i inne zadania podrzędne, które nie obsługują typów STRUCT i ARRAY, używają typu JSON. Dane można analizować za pomocą języka SQL.

Poniższe mapowania typów danych mają zastosowanie do wszystkich obsługiwanych źródeł danych, ale różnią się w zależności od typu pliku źródłowego. Należy zwrócić uwagę na następujące kwestie:

  • Typy danych są wnioskowane z próbki wdrażanych danych. Na przykład, jeśli pole zawiera tylko wartości całkowite w próbce, jest tworzone jako INT8 w zadaniach umieszczania strumieniowego i przekształcania. Jeśli kolejne dane zawierają wartości ułamkowe podwójnej precyzji, pliki umieszczania zawierają te wartości; jednak w zadaniu przekształcania strumieniowego, jeśli ustawienie Zmień typ danych pola jest ustawione na Ignoruj, kolumna pozostaje jako INT8, a wartości ułamkowe są obcinane. Aby uniknąć niezamierzonego obcięcia, upewnij się, że dane przykładowe obejmują pełny zakres oczekiwanych wartości przed wdrożeniem, lub skonfiguruj opcję Zmień typ danych pola na Zatrzymaj zadanie na wczesnych etapach i dostosuj typy danych w razie potrzeby.

  • Jeśli pole zostanie dodane do struktury w źródle, jest ono zawsze dodawane do celu umieszczania. W przypadku przekształcania strumieniowego zachowanie jest stosowane zgodnie z opcją wybraną w sekcji Ustawienia zadania przekształcania strumieniowego > Ewolucja schematu > Dodaj pola do struktury (Zastosuj do celu, Ignoruj, Zatrzymaj zadanie).

  • Jeśli w określonym rekordzie brakuje pola lub tablica jest pusta, są one traktowane jako null.

  • Jeśli zestaw danych jest spłaszczany przez tablicę, a nadejdzie rekord, w którym ta tablica jest pusta lub ma wartość null, system tworzy jeden wiersz, a spłaszczone pole ma wartość null. Nie jest to automatycznie wykluczane. Jeśli chcesz wykluczyć te wiersze, ręcznie dodaj filtr, na przykład array_element IS NOT NULL.

  • Typy danych wyświetlane w interfejsie użytkownika odzwierciedlają wybraną szczegółowość zestawu danych. W przypadku spłaszczonych tablic wyświetlany jest typ danych pojedynczego elementu, a nie sama struktura tablicy.

  • Nowego atrybutu nie można dodać wewnątrz struktury w zagnieżdżonym polu JSON, a jedynie na poziomie głównym.

  • W zadaniach przekształcania strumieniowego spłaszczanie jest obsługiwane tylko dla jednego poziomu tablicy. Gdy spłaszczanie jest stosowane do tablicy wielopoziomowej, na przykład ARRAY<ARRAY<STRUCT>>, spłaszczana jest tylko zewnętrzna tablica, co daje w wyniku ARRAY<STRUCT>, a nie w pełni spłaszczoną strukturę STRUCT. Ponadto obecny interfejs użytkownika pozwala na konfigurowanie spłaszczania tylko na poziomie kolumny. W rezultacie wybranie tablicy wielopoziomowej niejawnie stosuje spłaszczanie tylko do pierwszego poziomu tablicy.

  • Gdy odwołujesz się do tablicy typów prostych, używany jest typ danych elementu, jeśli szczegółowością jest tablica. W przeciwnym razie używany jest typ danych tablicy.

    W tym przykładzie OrderDetails ma tablicę CustomerID o typie danych INT. OrderDetails.CustomerID oznacza INT, jeśli szczegółowością jest OrderDetails.CustomerID, oraz ARRAY<INT>, jeśli szczegółowością jest OrderDetails.

JSON

W plikach JSON wartość liczbowa w źródle określa docelowy typ danych:

  • INT8 jest używany dla wartości całkowitych, które mieszczą się w obsługiwanym zakresie liczb całkowitych i nie zawierają części ułamkowej.

  • REAL8 (DOUBLE) jest używany, gdy wartość zawiera część ułamkową (liczba zmiennoprzecinkowa).

  • STRING jest używany, gdy wartość liczbowa przekracza maksymalny obsługiwany zakres liczb całkowitych.

Typy danych są mapowane w następujący sposób:

Źródłowe typy danych Typy danych Qlik Talend Data Integration
STRING STRING
NUMBER INT8
NUMBER REAL8
NUMBER STRING
BOOLEAN BOOLEAN
ARRAY ARRAY
OBJECT STRUCT

CSV, TSV, REGEX i SPLIT

Domyślnie wszystkie źródłowe typy danych są pozyskiwane jako ciąg znaków. Użyj opcji Automatycznie wnioskuj typy, aby zamapować typy źródłowe i docelowe w następujący sposób:

Źródłowe typy danych Typy danych Qlik
NUMERIC INT8/REAL8
True/TRUE/true/False/FALSE/false BOOLEAN
TIMESTAMP Znaczniki czasu w formacie yyyy-MM-dd HH:mm:ss lub yyyy-MM-ddTHH:mm:ssz są analizowane do typu datetime. Jeśli uwzględniono strefę czasową, wartość jest analizowana jako ciąg znaków.

Parquet

Pliki Parquet obsługują fizyczne i logiczne typy danych. Fizyczne typy danych określają, w jaki sposób wartości są przechowywane na dysku, na przykład INT32, DOUBLE lub BYTE_ARRAY. Logiczne typy danych nadają znaczenie semantyczne reprezentacji fizycznej, na przykład identyfikując, czy wartość całkowita reprezentuje datę. Gdy typ logiczny jest dołączony do kolumny Parquet i jest obsługiwany w Qlik Open Lakehouse (jak wymieniono poniżej), zadanie umieszczania strumieniowego używa typu logicznego podczas definiowania schematu docelowego, a nie podstawowego typu fizycznego. Zapewnia to prawidłową interpretację danych, zachowuje zamierzoną semantykę, taką jak precyzja, skala i znaczenie czasowe, a także skutkuje dokładniejszymi schematami, gdy dane są zapisywane w formatach podrzędnych.

Dane pochodzące z plików Parquet są mapowane w następujący sposób:

Źródłowe typy danych Typy logiczne Typy danych Qlik Talend Data Integration
BOOLEAN BOOLEAN
INT32 INT8
INT64 INT8
INT96 DATETIME
FLOAT REAL8
DOUBLE REAL8
BYTE_ARRAY STRING (zakodowane jako Base64)
FIXED_LEN_BYTE_ARRAY STRING (zakodowane jako Base64)
BYTE_ARRAY STRING STRING
BYTE_ARRAY ENUM STRING
INT32 DECIMAL INT8
INT64 DECIMAL INT8
FIXED_LEN_BYTE_ARRAY DECIMAL INT8/REAL8 (zakodowane jako Base64)
BYTE_ARRAY DECIMAL INT8/REAL8 (zakodowane jako Base64)
INT32 DATE DATE
INT32 TIME(MILLIS,true) INT8
INT64 TIME(MICROS,true) TIME
INT64 TIMESTAMP(MICROS,true) DATETIME
INT64 TIMESTAMP(MILLIS,true) DATETIME
NESTED TYPES STRUCT
LIST ARRAY
MAP ARRAY<STRUCT>. Tablica struktur reprezentujących pary klucz-wartość.

Avro

Poniższe mapowania mają zastosowanie do plików Avro z rejestrem schematów.

Źródłowe typy danych Typy logiczne Typy danych Qlik Talend Data Integration
BOOLEAN BOOLEAN
INT INT8
LONG INT8
FLOAT REAL8
DOUBLE REAL8
BYTES STRING
STRING STRING
RECORD STRUCT
ENUM STRING
ARRAY ARRAY
MAP ARRAY<STRUCT>
UNION
FIXED STRING
BYTES DECIMAL DECIMAL
FIXED DECIMAL DECIMAL
INT DATE DATE
INT TIME-MILLIS INT8
INT TIME-MICROS TIME
LONG TIMESTAMP-MILLIS DATETIME
LONG TIMESTAMP-MICROS DATETIME

ORC

Poniższe mapowania mają zastosowanie do plików ORC.

Źródłowe typy danych Typy danych Qlik Talend Data Integration
BOOLEAN BOOLEAN
BYTE INT8
SHORT INT8
INT INT8
LONG INT8
DATE DATE
FLOAT REAL8
DOUBLE REAL8
TIMESTAMP DATETIME
BINARY STRING
DECIMAL REAL8
STRING STRING
VARCHAR STRING
CHAR STRING
LIST ARRAY
MAP ARRAY<STRUCT>. Tablica struktur reprezentujących pary klucz-wartość.
STRUCT STRUCT
UNION

Ograniczenia i uwagi

  • Jeśli struktura lub tablica zostanie zmodyfikowana przez automatyczną ewolucję schematu w umieszczaniu, widoki podrzędne, które nie zostały utworzone przez zadanie strumieniowe Qlik Talend Cloud, mogą wymagać aktualizacji, aby nie były nieaktualne.

  • Jeśli zadanie ma błędy analizy, nie przejdzie w stan błędu i nie zostanie oznaczone jako wymagające uwagi. Ponieważ błędy analizy są stale rosnącą metryką, nie ma kryterium wyjścia dla stanu błędu.

  • Usunięcie możliwości klastra jest dozwolone tylko wtedy, gdy nie ma zadań korzystających z tej możliwości.

  • Aktualizacje i usunięcia rekordu z tym samym kluczem podstawowym nie mogą przekraczać granicy partycji, to znaczy muszą być zamapowane na tę samą partycję.

  • Jeśli źródło zawiera dużą liczbę kolumn, w zadaniach i w katalogu wyświetlanych jest tylko 500 najczęstszych kolumn. Wszystkie kolumny są zapisywane w plikach Avro w umieszczaniu S3, ale tylko 500 najlepszych kolumn jest przechowywanych w tabelach Iceberg. W ewolucji schematu, jeśli zostanie dodana nowa kolumna, nie zostanie ona dodana do najlepszych kolumn, nawet jeśli występuje często.

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać!