Apache Iceberg v3 özelliklerini kullanma

Apache Iceberg v3, sorgu performansını artırır ve Unity Catalog'da Iceberg okumalarıyla Delta Lake veya yönetilen tablolar için yeni yetenekler sunar.

Iceberg v3'ün temel özellikleri şunlardır:

Gereksinimler

Iceberg v3 özelliklerine sahip yönetilen tabloları kullanmak için, örneğin coğrafi tipler gibi, aşağıdaki gereksinimleri karşılamanız gerekir:

  • Unity Kataloğu'nu etkinleştirmiş bir çalışma alanı.
  • Databricks Runtime 18 LTS ve üzeri.

Iceberg v3 ile yeni tablo oluşturma

Iceberg v3 etkinleştirilmiş yeni tablolar oluşturun; hem yönetilen Delta Lake tabloları için hem Iceberg okumaları hem de yönetilen Iceberg tabloları için.

Delta Gölü

Delta Lake kullanarak Iceberg okumaları ve Iceberg v3 etkin olduğu yeni yönetilen bir tablo oluşturmak için aşağıdaki SQL komutunu kullanın:

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

Iceberg okumaları hakkında daha fazla bilgi için, Iceberg müşterileriyle Delta Gölü tablolarını okuma bölümüne bakınız.

Iceberg

Iceberg v3 kullanarak yeni bir yönetilen tablo oluşturmak için aşağıdaki SQL komutunu kullanın:

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

Iceberg tabloları hakkında daha fazla bilgi için bkz. Azure Databricks Apache Iceberg nedir?.

Mevcut tabloyu Iceberg v3'e yükseltme

Mevcut bir tabloyu Iceberg v3'e şu şekilde yükseltebilirsiniz:

  1. Tablodaki herhangi bir v3 özelliğini etkinleştirme.
  2. Bir tablodaki Iceberg biçim sürümünü 3 olarak ayarlama (aşağıda gösterilmiştir).

Important

kullanılarak RESTOREv3'e yükseltmeden önce tablo bir tablo sürümüne geri yüklenerek tablolar v3'ten v2'ye düşürülebilir. Bkz . Tabloyu önceki bir sürüme düşürme.

Delta Gölü

Delta Lake kullanılarak yönetilen bir tabloyu Iceberg okumalarıyla v3'e yükseltmek için aşağıdaki komutu kullanın:

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

Iceberg

Iceberg kullanarak yönetilen bir tabloyu v3'e yükseltmek için aşağıdaki komutu kullanın:

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

Silme vektörlerini etkinleştirme

Silme vektörleri satır düzeyi veri değiştirme işlemlerini iyileştirir ve tüm yeni Iceberg v3 tablolarında varsayılan olarak etkinleştirilir. Bkz . Databricks'te silme vektörleri.

Uyarı

Mevcut bir Iceberg tablosunda silme vektörlerinin etkinleştirilmesi, Iceberg biçimi sürümünü 3'e yükseltiyor.

Delta Gölü

Delta Lake kullanılarak Iceberg okumaları, Iceberg v3 ve silme vektörleri etkin olarak yeni yönetilen bir tablo oluşturmak için aşağıdaki tablo özelliklerini ayarlayın:

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

Iceberg

Silme vektörleri etkinleştirilmiş Iceberg v3 kullanarak yeni bir yönetilen tablo oluşturmak için tablo özelliğini ayarlayın iceberg.enableDeletionVectors :

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

VARIANT veri türünü kullanma

VARIANT veri türü, yarı yapılandırılmış verileri depolamanıza ve sorgulamanıza olanak tanır.

Uyarı

Var olan bir Iceberg tablosunda VARIANT kullanıldığında Iceberg biçim sürümü 3'e yükseltilir.

Delta Gölü

Delta Lake ile yeni yönetilen bir tablo oluşturmak için Iceberg okumaları ve bir VARIANT sütunu:

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

Iceberg

VARIANT sütununa sahip Iceberg v3 kullanarak yeni bir yönetilen tablo oluşturmak için:

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

Var olan bir tabloya VARIANT sütunu eklemek için komutunu ALTER TABLE kullanın:

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

Tabloyu önceki bir Apache Iceberg sürümüne düşürme

Tabloyu Iceberg v3'e yükseltilmeden önce bir duruma döndürmeniz gerekiyorsa komutunu kullanabilirsiniz RESTORE .

set spark.databricks.delta.restore.protocolDowngradeAllowed = true;
RESTORE TABLE catalog.schema.table TO VERSION AS OF 1;
set spark.databricks.delta.restore.protocolDowngradeAllowed = false;

Sınırlamalar

Azure Databricks, aşağıdaki özel durumlar dışında Iceberg belirtiminin 3. sürümünü destekler:

  • Yazma varsayılanları ve ilk varsayılanlar dahil olmak üzere varsayılanlar desteklenmez.
  • Aşağıdaki veri türleri desteklenmez:
    • Bilinmeyen tür
    • Nanosaniye hassasiyet zaman damgası.
  • Birden fazla bağımsız değişkenli dönüşümler desteklenmez.