Udostępnij przez


Korzystanie z funkcji Platformy Apache Iceberg w wersji 3

Ważne

Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.

Na tej stronie opisano, jak używać funkcji Apache Iceberg wersji 3 z Unity Catalog. Iceberg w wersji 3 zwiększa wydajność zapytań i wprowadza nowe funkcje dla zarządzanych tabel Delta Lake z tabelami UniForm, zarządzanych tabel Iceberg oraz obcych tabel Iceberg.

Kluczowe cechy Iceberg v3 to:

  • Wektory usuwania: umożliwia wydajne usuwanie na poziomie wiersza bez ponownego zapisywania całych plików danych.
  • Typ danych VARIANT: obsługuje przechowywanie i przetwarzanie częściowo ustrukturyzowanych danych.
  • Pochodzenie wierszy: śledzi przyrostowe zmiany danych tabeli.

Pochodzenie wierszy jest wymagane dla wszystkich tabel Iceberg v3. Nie ma polecenia do włączania lub wyłączania śledzenia pochodzenia wierszy.

Requirements

Aby korzystać z funkcji Iceberg v3, należy spełnić następujące wymagania:

  • Obszar roboczy z włączonym Unity Catalog
  • Środowisko Databricks Runtime w wersji 17.3 lub nowszej do odczytu i zapisu w zarządzanych tabelach w platformie Iceberg v3

Utwórz nową tabelę z użyciem Iceberg v3

Utwórz nowe tabele z włączoną wersją Iceberg v3 dla zarządzanych tabel Delta z UniForm oraz zarządzanych tabel Iceberg.

Zarządzana tabela Delta z UniForm

Aby utworzyć nową zarządzaną tabelę delty z włączoną funkcją UniForm i Iceberg v3, użyj następującego polecenia SQL:

CREATE OR REPLACE TABLE main.schema.table (c1 INT) TBLPROPERTIES(
  'delta.universalFormat.enabledFormats' = 'iceberg',
  'delta.enableIcebergCompatV3' = 'true'
);

Aby uzyskać więcej informacji na temat programu UniForm, zobacz Odczytywanie tabel Delta za pomocą klientów Iceberg.

Zarządzana tabela Iceberg

Aby utworzyć nową zarządzaną tabelę Iceberg w formacie v3, użyj następującego polecenia SQL:

CREATE OR REPLACE TABLE main.schema.table (c1 INT)
USING iceberg
TBLPROPERTIES ('format-version' = 3);

Aby uzyskać więcej informacji na temat zarządzanych tabel gór lodowych, zobacz Co to jest Apache Iceberg w usłudze Azure Databricks?.

Aktualizacja istniejącej tabeli do Iceberg w wersji 3

Istniejącą tabelę można uaktualnić do wersji Iceberg v3, wykonując następujące czynności:

  1. Włączanie dowolnej funkcji v3 w tabeli.
  2. Ustawianie wersji formatu Iceberg w tabeli na 3 (pokazano poniżej).

Ostrzeżenie

Nie można obniżyć wersji zarządzanych tabel Iceberg, które zostały zaktualizowane do wersji 3. Zarządzane tabele delty z wykorzystaniem UniForm można bezpiecznie zdegradować.

Zarządzana tabela Delta z UniForm

Aby uaktualnić zarządzaną tabelę delty za pomocą programu UniForm do wersji 3, użyj następującego polecenia:

ALTER TABLE catalog.schema.table SET TBLPROPERTIES(
  'delta.enableIcebergCompatV3' = 'true',
  'delta.enableIcebergCompatV2' = 'false'
);

Zarządzana tabela Iceberg

Aby uaktualnić zarządzaną tabelę Iceberg do wersji 3, użyj następującego polecenia:

ALTER TABLE catalog.schema.table SET TBLPROPERTIES (
  'format-version' = 3
);

Włącz wektory usuwania

Wektory usuwania optymalizują operacje modyfikacji danych na poziomie wiersza i są domyślnie włączone we wszystkich nowych tabelach Iceberg v3. Zobacz Wektory usuwania w usłudze Databricks.

Uwaga / Notatka

Włączenie wektorów usuwania w istniejącej tabeli Iceberg uaktualnia wersję formatu Iceberg do 3.

Zarządzana tabela Delta z UniForm

Aby utworzyć nową zarządzaną tabelę Delta z włączonymi UniForm, Iceberg v3 i wektorami usuwania, ustaw następujące właściwości tabeli:

CREATE TABLE catalog.schema.table (c1 INT) TBLPROPERTIES(
  'delta.enableDeletionVectors' = 'true',
  'delta.enableIcebergCompatV3' = 'true',
  'delta.universalFormat.enabledFormats' = 'iceberg'
);

Zarządzana tabela Iceberg

Aby utworzyć nową zarządzaną tabelę Iceberg z włączonymi wektorami usuwania, ustaw iceberg.enableDeletionVectors właściwość tabeli:

CREATE TABLE catalog.schema.table (c1 INT)
USING ICEBERG TBLPROPERTIES (
  'iceberg.enableDeletionVectors' = 'true'
);

Używanie typu danych VARIANT

Typ danych VARIANT umożliwia przechowywanie danych częściowo ustrukturyzowanych i wykonywanie względem ich zapytań.

Uwaga / Notatka

Użycie VARIANT w istniejącej tabeli Iceberg podnosi wersję formatu do 3.

Zarządzana tabela Delta z UniForm

Aby utworzyć nową zarządzaną tabelę delty z funkcją UniForm i kolumną VARIANT:

CREATE TABLE catalog.schema.deltaTable (col VARIANT) TBLPROPERTIES(
  'delta.enableIcebergCompatV3' = 'true',
  'delta.universalFormat.enabledFormats' = 'iceberg'
);

Zarządzana tabela Iceberg

Aby utworzyć nową zarządzaną tabelę Iceberg z kolumną VARIANT:

CREATE TABLE catalog.schema.icebergTable (col VARIANT) USING iceberg;

Aby dodać kolumnę VARIANT do istniejącej tabeli, użyj ALTER TABLE polecenia :

ALTER TABLE catalog.schema.table ADD COLUMN variant_col VARIANT;

Przywracanie tabeli do poprzedniej wersji

Jeśli musisz przywrócić tabelę do stanu przed uaktualnieniem do wersji Iceberg v3, możesz użyć RESTORE polecenia .

RESTORE TABLE catalog.schema.table TO VERSION AS OF 1;

Ograniczenia

Usługa Azure Databricks obsługuje wersję 3 specyfikacji Iceberg z następującymi wyjątkami:

  • Wartości domyślne, w tym domyślne wartości zapisu i początkowe wartości, nie są obsługiwane.
  • Następujące typy danych nie są obsługiwane:
    • Typy geoprzestrzenne
    • Nieznany typ
    • Znacznik czasu o dokładności do nanosekund.
  • Przekształcenia z wieloma argumentami nie są obsługiwane.