Równoległe ładowanie segmentów zestawu danych
Podczas pełnego ładowania można przyspieszyć ładowanie dużych zestawów danych, dzieląc zestaw danych na segmenty, które będą ładowane równolegle. Tabele można dzielić według zakresów danych, wszystkich partycji, wszystkich podpartycji lub określonych partycji.
Każdy segment zestawu danych jest ładowany przy użyciu oddzielnego podzadania. Dlatego przy podejmowaniu decyzji o sposobie podziału zestawu danych należy zawsze brać pod uwagę dostępność bazy danych i zasobów sieciowych. Podział tabeli na zbyt wiele segmentów może wpłynąć negatywnie na wydajność bazy danych i przeciążyć przepustowość sieci. W przypadku wybrania metody segmentacji Zakresy danych z partycjonowanym zestawem danych najlepszą praktyką jest ustawienie zakresów tak, aby każdy zakres obejmował jedną lub więcej całych partycji. Przyspieszy to wyszukiwanie danych i zminimalizuje wpływ na zasoby przetwarzania bazy danych.
Obsługiwane źródła danych i miejsca docelowe
Zadanie danych musi być zdefiniowane za pomocą kombinacji następujących źródeł danych i łączników miejsc docelowych.
Obsługiwane łączniki źródeł danych
- IBM DB2 for LUW
-
IBM DB2 for z/OS
InformacjaSegmentacja tabel według partycji lub podpartycji nie jest obsługiwana przez łącznik źródła IBM DB2 for z/OS.
- Microsoft SQL Server (na podstawie dzienników)
- MySQL
- Oracle
-
PostgreSQL
InformacjaSegmentacja tabel według partycji lub podpartycji nie jest obsługiwana przez łącznik źródła PostgreSQL.
- SAP (aplikacja)Informacja
Tabele ze źródłowym punktem końcowym SAP (Aplikacja) są domyślnie zależne od klienta. Kolumna MANDT jest automatycznie pobierana bezpośrednio z łącznika.
- SAP HANA (baza danych)
Obsługiwane łączniki miejsc docelowych
- Amazon Redshift
- Amazon S3
- Google Cloud BigQuery
- Google Cloud Storage
- Hurtownia danych Microsoft Fabric
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
- Snowflake
Konfiguracja obciążenia równoległego
Tabelę można podzielić przy użyciu jednej z dwóch metod: Zakresy danych lub Partycje. Metoda Zakresy danych dzieli tabelę według zakresów danych, podczas gdy metoda Partycje dzieli tabelę według partycji.
Korzystanie z metody zakresów danych
Aby zdefiniować granice segmentów według zakresu danych:
-
Na karcie Zestawy danych kliknij menu
po prawej stronie zestawu danych i wybierz Ustawienia.
Zostanie otwarte okno dialogowe Ładowanie równoległe.
-
Wybierz metodę segmentacji Zakresy danych.
-
Kliknij Wybierz kolumny.
Zostanie otwarte okno dialogowe Kolumny segmentacji tabeli.
-
Dla wszystkich obsługiwanych źródeł danych automatycznie wybierana jest kolumna Unikatowy indeks. Wybierz dodatkowe kolumny z danymi, których chcesz użyć do wyznaczenia zakresów, a następnie kliknij przycisk OK.
Informacja-
Zaleca się używanie kolumn, które nie dopuszczają wartości NULL i które nie są aktualizowane podczas normalnych operacji na źródłowej bazie danych (na przykład kolumna klucza podstawowego lub kolumna daty ze stałą datą). Użycie kolumny, która jest aktualizowana podczas pełnego ładowania, może powodować duplikaty w docelowej bazie danych.
-
Zaleca się korzystanie z indeksowanych kolumn źródłowych, ponieważ zoptymalizuje to wydajność wyszukiwania danych.
-
Można wybrać do dziesięciu kolumn
-
Rekordy z wartościami null nie będą replikowane.
-
Następujące typy danych nie mogą być używane do definiowania segmentów według zakresów: DOUBLE, FLOAT i LOB (BLOB, CLOB, NCLOB)
-
-
Kliknij Dodaj zakres danych, aby dodać segment zakresu danych.
Zostanie otwarte okno dialogowe Dodaj zakres danych z wybranymi kolumnami.
-
Dla każdej kolumny wprowadź górny zakres danych segmentu.
InformacjaWartości w kolumnach DATE muszą być wprowadzane w formacie obsługiwanym przez źródło. Na przykład w przypadku źródła Oracle poprawnym formatem będzie:
-
ALTER SESSION SET NLS_DATE_FORMAT:
'YYYY-MM-DD HH24:MI:SS' (prawidłowe jest również podanie tylko YYYY-MM-DD )
-
ALTER SESSION SET NLS_TIMESTAMP_FORMAT:
'YYYY-MM-DD HH24:MI:SS.FF9'
-
ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT:
'YYYY-MM-DD HH24:MI:SS.FF9 TZH:TZM'
-
-
Kliknij przycisk OK, aby zapisać ustawienia i zamknąć okno dialogowe.
Każda z wybranych kolumn pojawi się z określonym zakresem.
- Powtórz kroki 3–6 odpowiednio do potrzeb, aby dodać kolumny i zakresy danych.
- Kliknij przycisk Sprawdź poprawność, aby sprawdzić, czy wprowadzone dane odpowiadają typowi danych kolumny źródłowej i czy wszystkie zdefiniowane segmenty zawierają wartości.
Metoda segmentacji Zakresy danych powoduje replikację wszystkich dane tabeli, nawet jeśli nie dla wszystkich kolumn zdefiniowano zakresy danych.
Aby edytować zakres danych:
- Kliknij menu
na końcu wiersza i wybierz pozycję Edytuj.
- Edytuj zakres danych zgodnie z wymaganiami i kliknij OK, aby zapisać zmiany.
Aby usunąć zakres danych:
- Kliknij menu
na końcu wiersza i wybierz pozycję Usuń.
- Gdy zostanie wyświetlona prośba o potwierdzenie usunięcia, kliknij przycisk Usuń.
Przykład użycia
Załóżmy, że zdefiniowano następujące segmenty:
Column_1 | Column_2 | Column_3 |
---|---|---|
10 |
30 |
105 |
20 |
20 |
120 |
100 |
12 |
99 |
W takim przypadku dla każdego segmentu ładowania zostaną utworzone następujące klauzule „WHERE”:
- Segment 1:((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105)))
- Segment 2:NOT ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105))) AND ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120)))
- Segment 3:NOT ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 30) AND (COL2 = 20) AND (COL3 < 120))) AND ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
- Segment 4:NOT ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
Korzystanie z metody partycji
Granice segmentów można definiować według wszystkich partycji tabeli, wszystkich podpartycji tabeli (jeśli źródło danych obsługuje podpartycje) lub według określonych partycji.
- Tej metody można użyć tylko wtedy, gdy zestaw danych jest już podzielony na partycje.
- Jeśli masz zadanie, które istniało przed wydaniem tej funkcji, i albo zadanie nie zostało jeszcze uruchomione, albo chcesz równolegle przeładować jedną lub więcej tabel danych za pomocą tej metody, musisz najpierw odświeżyć metadane, jak opisano to w temacie Rejestrowanie danych, które już istnieją na platformie danych (Proces odświeżania metadanych opisany w tym temacie jest taki sam dla wszystkich typów zadań danych).
Używanie wszystkich partycji
Aby zdefiniować granice segmentów dla wszystkich partycji lub podpartycji tabeli:
-
Na karcie Zestawy danych kliknij menu
po prawej stronie zestawu danych i wybierz Ustawienia.
Zostanie otwarte okno dialogowe Ładowanie równoległe.
-
Wybierz metodę segmentacji Partycje.
-
Wybierz jedną z następujących opcji:
-
Użyj wszystkich partycji głównych
-
Użyj wszystkich podpartycji
InformacjaTa opcja jest wyłączona, jeżeli źródło danych nie obsługuje podpartycji.
-
- Kliknij przycisk OK.
Korzystanie z określonych partycji
Aby zdefiniować granice segmentów według określonych partycji:
-
Na karcie Zestawy danych kliknij menu
po prawej stronie zestawu danych i wybierz Ustawienia.
Zostanie otwarte okno dialogowe Ładowanie równoległe.
-
Wybierz metodę segmentacji Partycje.
-
Wybierz Określ partycje.
InformacjaJeśli jednak wybierzesz Określ partycje, będą replikowane tylko określone partycje.
-
Kliknij Dodaj partycję.
Zostanie otwarte okno dialogowe Dodaj partycję.
-
Określenie nazwy istniejącej partycji lub podpartycji.
W przypadku dodawania podpartycji zaznacz pole wyboru Podpartycja.
- Kliknij przycisk OK, aby zapisać ustawienia.
- W zależności od potrzeb powtórz kroki 4–6, aby dodać partycje lub podpartycje.
Aby edytować partycję:
- Kliknij menu
na końcu wiersza i wybierz pozycję Edytuj.
- Edytuj informacje o partycji zgodnie z wymaganiami i kliknij OK, aby zapisać zmiany.
Aby usunąć partycję:
- Kliknij menu
na końcu wiersza i wybierz pozycję Usuń.
- Gdy zostanie wyświetlona prośba o potwierdzenie usunięcia, kliknij przycisk Usuń.
Dostosowanie liczby segmentów, które mogą być ładowane równolegle
Liczbę segmentów, które będą ładowane równolegle, można zwiększyć lub zmniejszyć. Wartość ta jest dziedziczona z pola Pełne ładowanie > Strojenie wydajności > Maksymalna liczba tabel do załadowania równoległego w ustawieniach zadania danych. Bieżąca wartość jest wyświetlana w polu „Można załadować do <n> segmentów równolegle” w oknie dialogowym Ładowanie równoległe. Zwiększenie liczby może zwiększyć wydajność, gdy zestaw danych jest podzielony na wiele segmentów, ale spowoduje również większe obciążenie zasobów bazy danych i przepustowości sieci.