Przyrostowe klonowanie tabel Parquet i Iceberg do delta Lake

Funkcja klonowania usługi Azure Databricks umożliwia przyrostowe konwertowanie danych ze źródeł danych Parquet lub Iceberg na zarządzane lub zewnętrzne tabele różnicowe.

Klon usługi Azure Databricks dla Parquet i Iceberg łączy funkcje używane do klonowania tabel delty i konwertowania tabel na usługę Delta Lake. W tym artykule opisano przypadki użycia i ograniczenia dotyczące tej funkcji oraz przedstawiono przykłady.

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

Uwaga

Ta funkcja wymaga środowiska Databricks Runtime w wersji 11.3 lub nowszej.

Kiedy używać klonu do przyrostowego pozyskiwania danych Parquet lub Iceberg

Usługa Azure Databricks oferuje wiele opcji pozyskiwania danych do usługi Lakehouse. Usługa Databricks zaleca używanie klonu do pozyskiwania danych Parquet lub Iceberg w następujących sytuacjach:

Uwaga

Termin tabela źródłowa odnosi się do tabeli i plików danych do sklonowania, podczas gdy tabela docelowa odwołuje się do tabeli delty utworzonej lub zaktualizowanej przez operację.

  • Przeprowadzasz migrację z Parquet lub Iceberg do usługi Delta Lake, ale musisz nadal korzystać z tabel źródłowych.
  • Należy zachować synchronizację tylko do pozyskiwania między tabelą docelową a produkcyjną tabelą źródłową, która odbiera dołączania, aktualizacje i usuwanie.
  • Chcesz utworzyć zgodną ze standardem ACID migawkę danych źródłowych na potrzeby raportowania, uczenia maszynowego lub procesu ETL wsadowego.

Jaka jest składnia klonowania?

Klonowanie dla Parquet i Iceberg używa tej samej podstawowej składni używanej do klonowania tabel delty z obsługą płytkich i głębokich klonów. Aby uzyskać więcej informacji, zobacz Klonowanie typów.

Usługa Databricks zaleca używanie klonowania przyrostowo w przypadku większości obciążeń. Obsługa klonowania dla parquet i góry lodowej używa składni SQL.

Uwaga

Klonowanie dla Parquet i Góry Lodowej ma inne wymagania i gwarancje niż klonowanie lub konwertowanie na delta. Zobacz Wymagania i ograniczenia dotyczące klonowania tabel Parquet i Iceberg.

Aby głęboko sklonować tabelę Parquet lub Iceberg przy użyciu ścieżki pliku, użyj następującej składni:

CREATE OR REPLACE TABLE <target-table-name> CLONE parquet.`/path/to/data`;

CREATE OR REPLACE TABLE <target-table-name> CLONE iceberg.`/path/to/data`;

Aby pobieżnie sklonować tabelę Parquet lub Iceberg przy użyciu ścieżki pliku, użyj następującej składni:

CREATE OR REPLACE TABLE <target-table-name> SHALLOW CLONE parquet.`/path/to/data`;

CREATE OR REPLACE TABLE <target-table-name> SHALLOW CLONE iceberg.`/path/to/data`;

Można również utworzyć głębokie lub płytkie klony dla tabel Parquet zarejestrowanych w magazynie metadanych, jak pokazano w poniższych przykładach:

CREATE OR REPLACE TABLE <target-table-name> CLONE <source-table-name>;

CREATE OR REPLACE TABLE <target-table-name> SHALLOW CLONE <source-table-name>;

Wymagania i ograniczenia dotyczące klonowania tabel Parquet i Iceberg

Niezależnie od tego, czy używasz klonów głębokich, czy płytkich, zmiany zastosowane do tabeli docelowej po sklonowania nie mogą zostać zsynchronizowane z powrotem do tabeli źródłowej. Synchronizacja przyrostowa z klonowaniem jest jednokierunkowa, umożliwiając automatyczne stosowanie zmian w tabelach źródłowych do docelowych tabel delty.

Podczas korzystania z klonowania z tabelami Parquet i Iceberg obowiązują następujące dodatkowe ograniczenia:

  • Przed sklonowaniem należy zarejestrować tabele Parquet z partycjami w katalogu, takim jak magazyn metadanych Programu Hive, a następnie użyć nazwy tabeli do dopasowania tabeli źródłowej. Nie można użyć składni klonowania opartej na ścieżkach dla tabel Parquet z partycjami.
  • Nie można sklonowania tabel góry lodowej, które doświadczyły ewolucji partycji.
  • Nie można sklonć tabel scalania góry lodowej, które doświadczyły aktualizacji, usunięcia lub scalania.
  • Poniżej przedstawiono ograniczenia dotyczące klonowania tabel góry lodowej z partycjami zdefiniowanymi na obcinanych kolumnach:
    • W środowisku Databricks Runtime 12.2 LTS i poniżej obsługiwanym jedynym obcinanym typem kolumny jest string.
    • W środowisku Databricks Runtime 13.3 LTS i nowszym można pracować z obciętymi kolumnami typów string, longlub int.
    • Usługa Azure Databricks nie obsługuje pracy z obciętymi kolumnami typu decimal.
  • Klon przyrostowy synchronizuje zmiany schematu i właściwości z tabeli źródłowej, wszelkie zmiany schematu i pliki danych zapisane lokalnie w sklonowanej tabeli są zastępowane.
  • Wykaz aparatu Unity nie obsługuje płytkich klonów.
  • Nie można używać wzorców glob podczas definiowania ścieżki.

Uwaga

W środowisku Databricks Runtime 11.3 ta operacja nie zbiera statystyk na poziomie plików. W związku z tym tabele docelowe nie korzystają z pomijania danych usługi Delta Lake. Statystyki na poziomie plików są zbierane w środowisku Databricks Runtime 12.2 LTS lub nowszym.