Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

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.

InformacjaJeśli korzystasz z Data Movement gateway, ta funkcja jest obsługiwana od wersji 2024.5.35.

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.

  • IBM DB2 for LUW
  • IBM DB2 for z/OS

    Informacja

    Segmentacja 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

    Informacja

    Segmentacja 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)
  • 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:

  1. Na karcie Zestawy danych kliknij menu Ikona Więcej po prawej stronie zestawu danych i wybierz Ustawienia.

    Zostanie otwarte okno dialogowe Ładowanie równoległe.

  2. Wybierz metodę segmentacji Zakresy danych.

  3. Kliknij Wybierz kolumny.

    Zostanie otwarte okno dialogowe Kolumny segmentacji tabeli.

  4. 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)

  5. Kliknij Dodaj zakres danych, aby dodać segment zakresu danych.

    Zostanie otwarte okno dialogowe Dodaj zakres danych z wybranymi kolumnami.

  6. Dla każdej kolumny wprowadź górny zakres danych segmentu.

    Informacja

    Wartoś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'

  7. Kliknij przycisk OK, aby zapisać ustawienia i zamknąć okno dialogowe.

    Każda z wybranych kolumn pojawi się z określonym zakresem.

  8. Powtórz kroki 3–6 odpowiednio do potrzeb, aby dodać kolumny i zakresy danych.
  9. Kliknij przycisk Sprawdź poprawność, aby sprawdzić, czy wprowadzone dane odpowiadają typowi danych kolumny źródłowej i czy wszystkie zdefiniowane segmenty zawierają wartości.
Informacja

Metoda segmentacji Zakresy danych powoduje replikację wszystkich dane tabeli, nawet jeśli nie dla wszystkich kolumn zdefiniowano zakresy danych.

Aby edytować zakres danych:

  1. Kliknij menu Ikona Więcej na końcu wiersza i wybierz pozycję Edytuj.
  2. Edytuj zakres danych zgodnie z wymaganiami i kliknij OK, aby zapisać zmiany.

Aby usunąć zakres danych:

  1. Kliknij menu Ikona Więcej na końcu wiersza i wybierz pozycję Usuń.
  2. 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:

Przykładowa tabela danych
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.

Informacja
  • 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:

  1. Na karcie Zestawy danych kliknij menu Ikona Więcej po prawej stronie zestawu danych i wybierz Ustawienia.

    Zostanie otwarte okno dialogowe Ładowanie równoległe.

  2. Wybierz metodę segmentacji Partycje.

  3. Wybierz jedną z następujących opcji:

    • Użyj wszystkich partycji głównych

    • Użyj wszystkich podpartycji

      Informacja

      Ta opcja jest wyłączona, jeżeli źródło danych nie obsługuje podpartycji.

  4. Kliknij przycisk OK.

Korzystanie z określonych partycji

Aby zdefiniować granice segmentów według określonych partycji:

  1. Na karcie Zestawy danych kliknij menu Ikona Więcej po prawej stronie zestawu danych i wybierz Ustawienia.

    Zostanie otwarte okno dialogowe Ładowanie równoległe.

  2. Wybierz metodę segmentacji Partycje.

  3. Wybierz Określ partycje.

    Informacja

    Jeśli jednak wybierzesz Określ partycje, będą replikowane tylko określone partycje.

  4. Kliknij Dodaj partycję.

    Zostanie otwarte okno dialogowe Dodaj partycję.

  5. Określenie nazwy istniejącej partycji lub podpartycji.

    W przypadku dodawania podpartycji zaznacz pole wyboru Podpartycja.

  6. Kliknij przycisk OK, aby zapisać ustawienia.
  7. W zależności od potrzeb powtórz kroki 4–6, aby dodać partycje lub podpartycje.

Aby edytować partycję:

  1. Kliknij menu Ikona Więcej na końcu wiersza i wybierz pozycję Edytuj.
  2. Edytuj informacje o partycji zgodnie z wymaganiami i kliknij OK, aby zapisać zmiany.

Aby usunąć partycję:

  1. Kliknij menu na końcu wiersza i wybierz pozycję Usuń.
  2. 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.

InformacjaKażdy segment jest ładowany przy użyciu dedykowanego podzadania, więc na przykład, jeśli wybierzesz opcję Użyj wszystkich głównych partycji, a źródłowy zestaw danych będzie mieć 20 głównych partycji, zwiększenie wartości Maksymalna liczba tabel do załadowania równolegle do 15 spowoduje równoległe załadowanie 15 segmentów (partycji). Gdy podzadania zakończą swoje działanie, zostaną przypisane do ładowania pozostałych 5 partycji.

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ć, co możemy poprawić!