Přírůstkové klonování tabulek Parquet a Iceberg do Delta Lake

Pomocí funkce klonování Azure Databricks můžete přírůstkově převést data ze zdrojů dat Parquet nebo Iceberg na spravované nebo externí tabulky Delta.

Klon Azure Databricks pro Parquet a Iceberg kombinuje funkce používané ke klonování tabulek Delta a převod tabulek na Delta Lake. Tento článek popisuje případy použití a omezení této funkce a uvádí příklady.

Důležité

Tato funkce je ve verzi Public Preview.

Poznámka:

Tato funkce vyžaduje Databricks Runtime 11.3 nebo vyšší.

Kdy použít klon pro přírůstkový příjem dat Parquet nebo Iceberg

Azure Databricks nabízí řadu možností příjmu dat do jezera. Databricks doporučuje používat klon na ingestování dat Parquet nebo Iceberg v následujících situacích:

Poznámka:

Zdrojová tabulka termínů odkazuje na tabulku a datové soubory, které se mají naklonovat, zatímco cílová tabulka odkazuje na tabulku Delta vytvořenou nebo aktualizovanou operací.

  • Provádíte migraci z Parquet nebo Iceberg do Delta Lake, ale potřebujete dál používat zdrojové tabulky.
  • Mezi cílovou tabulkou a produkční zdrojovou tabulkou, která přijímá připojení, aktualizace a odstranění, musíte udržovat synchronizaci pouze ingestace.
  • Chcete vytvořit snímek zdrojových dat kompatibilní s acid pro generování sestav, strojové učení nebo dávkové ETL.

Jaká je syntaxe klonování?

Clone for Parquet a Iceberg používá stejnou základní syntaxi, která se používá ke klonování tabulek Delta s podporou pro mělké a hluboké klony. Další informace naleznete v tématu Klonování typů.

Databricks doporučuje pro většinu úloh používat klonování přírůstkově. Podpora klonování pro Parquet a Iceberg používá syntaxi SQL.

Poznámka:

Klon pro Parquet a Iceberg má jiné požadavky a záruky než klonování nebo převod na Delta. Viz Požadavky a omezení klonování tabulek Parquet a Iceberg.

Pokud chcete naklonovat tabulku Parquet nebo Iceberg pomocí cesty k souboru, použijte následující syntaxi:

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

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

Pokud chcete naklonovat tabulku Parquet nebo Iceberg pomocí cesty k souboru, použijte následující syntaxi:

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`;

Můžete také vytvořit hluboké nebo mělké klony pro tabulky Parquet zaregistrované v metastoru, jak je znázorněno v následujících příkladech:

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

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

Požadavky a omezení pro klonování tabulek Parquet a Iceberg

Bez ohledu na to, jestli použijete hluboké nebo mělké klony, změny použité v cílové tabulce po klonování se nedají synchronizovat zpět do zdrojové tabulky. Přírůstková synchronizace s klonováním je jednosměrná, což umožňuje automatické použití změn zdrojových tabulek na cílové tabulky Delta.

Při použití klonování s tabulkami Parquet a Iceberg platí následující další omezení:

  • Tabulky Parquet je nutné před klonováním a použitím názvu tabulky zaregistrovat oddíly do katalogu, jako je metastor Hive. Pro tabulky Parquet s oddíly nelze použít syntaxi klonování na základě cesty.
  • Tabulky Iceberg, které mají zkušenosti s vývojem oddílů, nemůžete klonovat.
  • Nelze klonovat tabulky s hromadným čtením icebergu, u kterých došlo k aktualizacím, odstraněním nebo sloučením.
  • Pro klonování tabulek Iceberg s oddíly definovanými ve zkrácených sloupcích platí následující omezení:
    • V Databricks Runtime 12.2 LTS a níže je podporován stringpouze zkrácený typ sloupce .
    • Ve službě Databricks Runtime 13.3 LTS a vyšší můžete pracovat se zkrácenými sloupci typů string, longnebo int.
    • Azure Databricks nepodporuje práci se zkrácenými sloupci typu decimal.
  • Přírůstkové klonování synchronizuje změny schématu a vlastnosti ze zdrojové tabulky, všechny změny schématu a datové soubory zapsané do klonované tabulky se přepíší.
  • Unity Catalog nepodporuje mělké klony.
  • Při definování cesty nelze použít vzory globu.

Poznámka:

V Databricks Runtime 11.3 tato operace neshromažďuje statistiky na úrovni souboru. Cílové tabulky proto nemají prospěch z vynechání dat Delta Lake. Statistiky na úrovni souborů se shromažďují ve službě Databricks Runtime 12.2 LTS a vyšší.