Megosztás a következőn keresztül:


Parquet- és Iceberg-táblák növekményes klónozása a Delta Lake-be

Az Azure Databricks klónozási funkcióval növekményesen konvertálhat adatokat Parquet- vagy Iceberg-adatforrásokból felügyelt vagy külső Delta-táblákká.

Az Azure Databricks Parquethez és Iceberghez készült klónozása egyesíti a Delta-táblák klónozásához és a táblák Delta Lake-be való konvertálásához használt funkciókat. Ez a cikk a funkció használati eseteit és korlátozásait ismerteti, és példákat tartalmaz.

Fontos

Ez a funkció a nyilvános előzetes verzióban érhető el.

Feljegyzés

Ehhez a funkcióhoz a Databricks Runtime 11.3 LTS vagy újabb verziója szükséges.

Mikor érdemes klónozni a Parquet- vagy Iceberg-adatok növekményes betöltéséhez?

Az Azure Databricks számos lehetőséget kínál az adatok tóházba való betöltésére. A Databricks a parquet- vagy Iceberg-adatok klónozását javasolja a következő helyzetekben:

Feljegyzés

A forrástábla kifejezés a klónozni kívánt táblára és adatfájlokra hivatkozik, míg a céltábla a művelet által létrehozott vagy frissített Delta-táblára vonatkozik.

  • Parquetből vagy Icebergből a Delta Lake-be migrál, de továbbra is forrástáblákat kell használnia.
  • Csak betöltési szinkronizálást kell fenntartania egy céltábla és az éles forrástábla között, amely hozzáfűzéseket, frissítéseket és törléseket fogad.
  • Acid-kompatibilis pillanatképet szeretne létrehozni a forrásadatokról jelentéskészítéshez, gépi tanuláshoz vagy kötegelt ETL-hez.

Mi a klónozás szintaxisa?

A Parquet és Iceberg klónozása ugyanazt az alapszintaxist használja a Delta-táblák klónozásához, amely támogatja a sekély és mély klónokat. További információ: Klóntípusok.

A Databricks azt javasolja, hogy a legtöbb számítási feladathoz növekményesen használja a klónozást. A Parquet és iceberg klónozási támogatása SQL-szintaxist használ.

Feljegyzés

A Parquet és Iceberg klónozásának különböző követelményei és garanciái vannak, mint a klónozás vagy a Delta-ra való konvertálás. Lásd a Parquet- és Iceberg-táblák klónozására vonatkozó követelményeket és korlátozásokat.

Egy Parquet- vagy Iceberg-tábla fájlelérési útvonallal történő mély klónozásához használja az alábbi szintaxist:

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

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

A Parquet- vagy Iceberg-táblák fájlútvonallal történő klónozásához használja az alábbi szintaxist:

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ély vagy sekély klónokat is létrehozhat a metaadattárban regisztrált Parquet-táblákhoz, ahogyan az alábbi példákban is látható:

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

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

Parquet- és Iceberg-táblák klónozására vonatkozó követelmények és korlátozások

Akár mély, akár sekély klónokat használ, a céltáblán a klónozás után alkalmazott módosítások nem szinkronizálhatók vissza a forrástáblába. A klónral való növekményes szinkronizálás egyirányú, így a forrástáblák módosításai automatikusan alkalmazhatók a cél deltatáblákra.

A parquet- és Iceberg-táblák klónozása esetén a következő további korlátozások érvényesek:

  • Klónozás előtt regisztrálnia kell a Parquet-táblákat partíciókkal egy katalógusban, például a Unity Catalogban vagy az örökölt Hive-metaadattárban, és a tábla nevének használatával idenfityizálnia kell a forrástáblát. A partíciókkal rendelkező Parquet-táblák elérési útalapú klónozási szintaxisa nem használható.
  • Nem klónozhat olyan Iceberg-táblákat, amelyek partíciófejlődést tapasztaltak.
  • Nem klónozhat olyan Iceberg-körlevélkészítési táblákat, amelyeken frissítések, törlések vagy egyesítések találhatók.
  • Az alábbiakban a csonkolt oszlopokon definiált partíciókkal rendelkező Iceberg-táblák klónozására vonatkozó korlátozásokat ismertetjük:
    • A Databricks Runtime 12.2 LTS-ben és alatta az egyetlen csonkolt oszloptípus támogatott.string
    • A Databricks Runtime 13.3 LTS és újabb verzióiban csonkolt típusú stringoszlopokkal dolgozhat, longvagy int.
    • Az Azure Databricks nem támogatja a csonkolt típusú oszlopok decimalműködését.
  • A növekményes klón szinkronizálja a séma módosításait és tulajdonságait a forrástáblából. A klónozott táblába közvetlenül írt sémamódosítások és adatfájlok felül lesznek bírálva.
  • A Unity Catalog nem támogatja a parquet- vagy Iceberg-táblák sekély klónjait.
  • Elérési út definiálásakor nem használhat glob mintákat.

Feljegyzés

A Databricks Runtime 11.3 LTS-ben ez a művelet nem gyűjt fájlszintű statisztikákat. Ezért a céltáblák nem élvezik a Delta Lake-adatok kihagyását. A fájlszintű statisztikákat a Databricks Runtime 12.2 LTS és újabb verziókban gyűjtjük.