Przyrostowe klonowanie tabel Parquet i Iceberg do Delta Lake
Funkcjonalność klonowania w Azure Databricks umożliwia przyrostowe konwertowanie danych ze źródeł danych Parquet lub Iceberg na zarządzane lub zewnętrzne tabele Delta.
Klon usługi Azure Databricks dla Parquet i Iceberg łączy funkcje używane do klonowania tabel Delta i konwertowania tabel na 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 11.3 LTS lub nowszego.
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 tabeli źródłowej odnosi się do tabeli i plików danych przeznaczonych do klonowania, podczas gdy tabeli docelowej odnosi się do tablicy delta utworzonej lub zaktualizowanej przez operację.
- Przeprowadzasz migrację z Parquet lub Iceberg do Delta Lake, ale musisz nadal korzystać z tabel źródłowych.
- Należy zachować synchronizację jednokierunkową między tabelą docelową a źródłową tabelą produkcyjną, która otrzymuje dodawania, aktualizacje i usuwania.
- 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 korzysta z tej samej podstawowej składni co klonowanie tabel Delta, wspierając jednocześnie płytkie i głębokie klony. 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, zastosuj poniższą 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 wykonać pobieżne klonowanie tabeli 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 Delta.
Podczas klonowania tabel Parquet i Iceberg obowiązują dodatkowe ograniczenia:
- Przed sklonowaniem tabeli i użyciem jej nazwy do identyfikacji tabeli źródłowej, należy zarejestrować tabele Parquet z partycjami w katalogu, takim jak Katalog Unity lub starszy magazyn metadanych Hive. Nie można użyć składni klonowania opartej na ścieżkach dla tabel Parquet z partycjami.
- Nie można sklonować tabel Iceberg, które doświadczyły ewolucji partycji.
- Nie można sklonować tabel Iceberg z funkcją merge-on-read, które doświadczyły aktualizacji, usunięcia lub scalania z odczytem.
- Poniżej przedstawiono ograniczenia dotyczące klonowania tabel Iceberg z partycjami zdefiniowanymi na obciętych kolumnach:
- W środowisku Databricks Runtime 12.2 LTS i poniżej jedynym obsługiwanym typem kolumny obciętej jest
string
. - W środowisku Databricks Runtime 13.3 LTS lub nowszym można pracować z obcinanymi kolumnami typów
string
,long
lubint
. - Usługa Azure Databricks nie obsługuje pracy z obciętymi kolumnami typu
decimal
.
- W środowisku Databricks Runtime 12.2 LTS i poniżej jedynym obsługiwanym typem kolumny obciętej jest
- Klon przyrostowy synchronizuje zmiany schematu i właściwości z tabeli źródłowej. Wszelkie zmiany schematu i pliki danych zapisywane bezpośrednio w sklonowanej tabeli są zastępowane.
- Unity Catalog nie obsługuje płytkich klonów dla tabel Parquet lub Iceberg.
- Nie można używać wzorców glob podczas definiowania ścieżki.
Uwaga
W środowisku Databricks Runtime 11.3 LTS ta operacja nie zbiera statystyk na poziomie plików. W związku z tym tabele docelowe nie korzystają z funkcji pomijania danych w Delta Lake. Statystyki na poziomie plików są zbierane w środowisku Databricks Runtime 12.2 LTS lub nowszym.