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ú
string
oszlopokkal dolgozhat,long
vagyint
. - Az Azure Databricks nem támogatja a csonkolt típusú oszlopok
decimal
működését.
- A Databricks Runtime 12.2 LTS-ben és alatta az egyetlen csonkolt oszloptípus támogatott.
- 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.