Parquet- en Iceberg-tabellen incrementeel klonen naar Delta Lake
U kunt de kloonfunctionaliteit van Azure Databricks gebruiken om gegevens uit Parquet- of Iceberg-gegevensbronnen incrementeel te converteren naar beheerde of externe Delta-tabellen.
Azure Databricks-kloon voor Parquet en Iceberg combineert functionaliteit die wordt gebruikt om Delta-tabellen te klonen en tabellen te converteren naar Delta Lake. In dit artikel worden gebruiksvoorbeelden en -beperkingen voor deze functie beschreven en vindt u voorbeelden.
Belangrijk
Deze functie is beschikbaar als openbare preview.
Notitie
Voor deze functie is Databricks Runtime 11.3 LTS of hoger vereist.
Wanneer moet u kloon gebruiken voor incrementele opname van Parquet- of Iceberg-gegevens
Azure Databricks biedt een aantal opties voor het opnemen van gegevens in lakehouse. Databricks raadt het gebruik van kloon aan om Parquet- of Iceberg-gegevens op te nemen in de volgende situaties:
Notitie
De termbrontabel verwijst naar de tabel en gegevensbestanden die moeten worden gekloond, terwijl de doeltabel verwijst naar de Delta-tabel die door de bewerking is gemaakt of bijgewerkt.
- U voert een migratie uit van Parquet of Iceberg naar Delta Lake, maar u moet brontabellen blijven gebruiken.
- U moet een synchronisatie met alleen opnemen onderhouden tussen een doeltabel en een productiebrontabel die toevoeg-, updates en verwijderingen ontvangt.
- U wilt een ACID-compatibele momentopname van brongegevens maken voor rapportage, machine learning of batch ETL.
Wat is de syntaxis voor klonen?
Klonen voor Parquet en Iceberg maakt gebruik van dezelfde basissyntaxis die wordt gebruikt voor het klonen van Delta-tabellen, met ondersteuning voor ondiepe en diepe klonen. Zie Kloontypen voor meer informatie.
Databricks raadt aan incrementeel kloon te gebruiken voor de meeste workloads. Kloonondersteuning voor Parquet en Iceberg maakt gebruik van SQL-syntaxis.
Notitie
Klonen voor Parquet en Iceberg heeft verschillende vereisten en garanties dan klonen of converteren naar Delta. Zie Vereisten en beperkingen voor het klonen van Parquet- en Iceberg-tabellen.
Gebruik de volgende syntaxis om een Parquet- of Iceberg-tabel diep te klonen met behulp van een bestandspad:
CREATE OR REPLACE TABLE <target-table-name> CLONE parquet.`/path/to/data`;
CREATE OR REPLACE TABLE <target-table-name> CLONE iceberg.`/path/to/data`;
Als u een Parquet- of Iceberg-tabel ondiep wilt klonen met behulp van een bestandspad, gebruikt u de volgende syntaxis:
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`;
U kunt ook diepe of ondiepe klonen maken voor Parquet-tabellen die zijn geregistreerd bij de metastore, zoals wordt weergegeven in de volgende voorbeelden:
CREATE OR REPLACE TABLE <target-table-name> CLONE <source-table-name>;
CREATE OR REPLACE TABLE <target-table-name> SHALLOW CLONE <source-table-name>;
Vereisten en beperkingen voor het klonen van Parquet- en Iceberg-tabellen
Of u nu diepe of ondiepe klonen gebruikt, wijzigingen die zijn toegepast op de doeltabel nadat de kloon optreedt, kunnen niet worden gesynchroniseerd met de brontabel. Incrementele synchronisatie met kloon is unidirectioneel, zodat wijzigingen in brontabellen automatisch worden toegepast op delta-doeltabellen.
De volgende aanvullende beperkingen zijn van toepassing bij het gebruik van kloon met Parquet- en Iceberg-tabellen:
- U moet Parquet-tabellen met partities registreren voor een catalogus zoals Unity Catalog of de verouderde Hive-metastore voordat u kloont en de tabelnaam gebruikt om de brontabel te idenfiteit. U kunt geen op pad gebaseerde kloonsyntaxis gebruiken voor Parquet-tabellen met partities.
- U kunt Iceberg-tabellen die ervaring hebben met de evolutie van partities niet klonen.
- U kunt iceberg-merge-on-read-tabellen met updates, verwijderingen of samenvoegingen niet klonen.
- Hier volgen beperkingen voor het klonen van Iceberg-tabellen met partities die zijn gedefinieerd voor afgekapte kolommen:
- In Databricks Runtime 12.2 LTS en hieronder wordt
string
het enige afgekapte kolomtype ondersteund. - In Databricks Runtime 13.3 LTS en hoger kunt u werken met afgekapte kolommen van typen
string
,long
ofint
. - Azure Databricks biedt geen ondersteuning voor het werken met afgekapte kolommen van het type
decimal
.
- In Databricks Runtime 12.2 LTS en hieronder wordt
- Incrementele kloon synchroniseert de schemawijzigingen en eigenschappen uit de brontabel. Alle schemawijzigingen en gegevensbestanden die rechtstreeks naar de gekloonde tabel worden geschreven, worden overschreven.
- Unity Catalog biedt geen ondersteuning voor ondiepe klonen voor Parquet- of Iceberg-tabellen.
- U kunt geen glob-patronen gebruiken bij het definiƫren van een pad.
Notitie
In Databricks Runtime 11.3 LTS verzamelt deze bewerking geen statistieken op bestandsniveau. Als zodanig profiteren doeltabellen niet van het overslaan van Delta Lake-gegevens. Statistieken op bestandsniveau worden verzameld in Databricks Runtime 12.2 LTS en hoger.