Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Iceberg v3-functies zijn beschikbaar als openbare preview.
Op deze pagina wordt beschreven hoe u Apache Iceberg v3-functies gebruikt met Unity Catalog. Iceberg v3 verbetert de queryprestaties en introduceert nieuwe functies voor beheerde Delta Lake-tabellen met UniForm, beheerde Iceberg-tabellen en buitenlandse Iceberg-tabellen.
De belangrijkste kenmerken van Iceberg v3 zijn:
- Verwijderingsvectoren: Schakel efficiënte verwijderingen op rijniveau in zonder volledige gegevensbestanden te herschrijven.
- VARIANT-gegevenstype: ondersteunt het opslaan en verwerken van semi-gestructureerde gegevens.
- Rijherkomst: houdt incrementele wijzigingen in tabeldata bij.
Rijafstamming is vereist voor alle Iceberg v3 tabellen. Er is geen opdracht om rijherkomst aan of uit te schakelen.
Requirements
Als u iceberg v3-functies wilt gebruiken, moet u voldoen aan de volgende vereisten:
- Een werkruimte waarvoor Unity Catalog is ingeschakeld
- Databricks Runtime 17.3 of hoger voor het lezen en schrijven naar beheerde tabellen met Iceberg v3
Een nieuwe tabel maken met Iceberg v3
Maak nieuwe tabellen met Iceberg v3 ingeschakeld voor zowel beheerde Delta-tabellen met UniForm- als beheerde Iceberg-tabellen.
Beheerde Delta-tabel met UniForm
Als u een nieuwe beheerde Delta-tabel wilt maken waarvoor UniForm en Iceberg v3 zijn ingeschakeld, gebruikt u de volgende SQL-opdracht:
CREATE OR REPLACE TABLE main.schema.table (c1 INT) TBLPROPERTIES(
'delta.universalFormat.enabledFormats' = 'iceberg',
'delta.enableIcebergCompatV3' = 'true'
);
Zie Delta-tabellen lezen met Iceberg-clients voor meer informatie over UniForm.
Beheerde Iceberg-tabel
Gebruik de volgende SQL-opdracht om een nieuwe beheerde Iceberg-tabel te maken met de v3-indeling:
CREATE OR REPLACE TABLE main.schema.table (c1 INT)
USING iceberg
TBLPROPERTIES ('format-version' = 3);
Zie What is Apache Iceberg in Azure Databricks? voor meer informatie over beheerde Iceberg-tabellen.
Een bestaande tabel upgraden naar Iceberg v3
U kunt een bestaande tabel upgraden naar Iceberg v3 door:
- Alle v3-functies in een tabel inschakelen.
- De Iceberg formaatversie op een tabel instellen op 3, (hieronder weergegeven).
Waarschuwing
Tabellen kunnen worden gedowngraded van v3 naar v2 door de tabel te herstellen naar een tabelversie vóór de upgrade naar v3 met behulp van RESTORE. Zie Een tabel downgraden naar een eerdere versie.
Beheerde Delta-tabel met UniForm
Als u een beheerde Delta-tabel wilt upgraden met UniForm naar v3, gebruikt u de volgende opdracht:
ALTER TABLE catalog.schema.table SET TBLPROPERTIES(
'delta.enableIcebergCompatV3' = 'true',
'delta.enableIcebergCompatV2' = 'false'
);
Beheerde Iceberg-tabel
Als u een beheerde Iceberg-tabel wilt upgraden naar v3, gebruikt u de volgende opdracht:
ALTER TABLE catalog.schema.table SET TBLPROPERTIES (
'format-version' = 3
);
Verwijderingsvectoren inschakelen
Verwijderingsvectoren optimaliseren bewerkingen voor het wijzigen van gegevens op rijniveau en worden standaard ingeschakeld voor alle nieuwe Iceberg v3-tabellen. Zie Verwijderingsvectoren in Databricks.
Opmerking
Als u verwijderingsvectoren inschakelt voor een bestaande Iceberg-tabel, wordt het Iceberg-formaat bijgewerkt naar versie 3.
Beheerde Delta-tabel met UniForm
Als u een nieuwe beheerde Delta-tabel wilt maken waarvoor UniForm, Iceberg v3 en verwijderingsvectoren zijn ingeschakeld, stelt u de volgende tabeleigenschappen in:
CREATE TABLE catalog.schema.table (c1 INT) TBLPROPERTIES(
'delta.enableDeletionVectors' = 'true',
'delta.enableIcebergCompatV3' = 'true',
'delta.universalFormat.enabledFormats' = 'iceberg'
);
Beheerde Iceberg-tabel
Als u een nieuwe beheerde Iceberg-tabel wilt maken waarvoor verwijderingsvectoren zijn ingeschakeld, stelt u de iceberg.enableDeletionVectors tabeleigenschap in:
CREATE TABLE catalog.schema.table (c1 INT)
USING ICEBERG TBLPROPERTIES (
'iceberg.enableDeletionVectors' = 'true'
);
Het gegevenstype VARIANT gebruiken
Met het gegevenstype VARIANT kunt u semi-gestructureerde gegevens opslaan en er query's op uitvoeren.
Opmerking
Als u VARIANT in een bestaande Iceberg-tabel gebruikt, wordt de iceberg-indeling bijgewerkt naar versie 3.
Beheerde Delta-tabel met UniForm
Een nieuwe beheerde Delta-tabel maken met UniForm en een VARIANT-kolom:
CREATE TABLE catalog.schema.deltaTable (col VARIANT) TBLPROPERTIES(
'delta.enableIcebergCompatV3' = 'true',
'delta.universalFormat.enabledFormats' = 'iceberg'
);
Beheerde Iceberg-tabel
Ga als volgt te werk om een nieuwe beheerde Iceberg-tabel te maken met een VARIANT-kolom:
CREATE TABLE catalog.schema.icebergTable (col VARIANT) USING iceberg;
Als u een VARIANT-kolom wilt toevoegen aan een bestaande tabel, gebruikt u de ALTER TABLE opdracht:
ALTER TABLE catalog.schema.table ADD COLUMN variant_col VARIANT;
Een tabel downgraden naar een eerdere Apache Iceberg-versie
Als u een tabel wilt terugzetten naar een status voordat deze is bijgewerkt naar Iceberg v3, kunt u de RESTORE opdracht gebruiken.
set spark.databricks.delta.restore.protocolDowngradeAllowed = true;
RESTORE TABLE catalog.schema.table TO VERSION AS OF 1;
set spark.databricks.delta.restore.protocolDowngradeAllowed = false;
Beperkingen
Azure Databricks ondersteunt versie 3 van de Iceberg-specificatie, met de volgende uitzonderingen:
- Standaardinstellingen, waaronder standaardinstellingen voor schrijven en initiële standaardinstellingen, worden niet ondersteund.
- De volgende gegevenstypen worden niet ondersteund:
- Georuimtelijke typen
- Onbekend type
- Nanoseconde-precisietijdstempel.
- Transformaties met meerdere argumenten worden niet ondersteund.