Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Функции Айсберга версии 3 доступны в общедоступной предварительной версии.
На этой странице описывается использование функций Apache Iceberg версии 3 с каталогом Unity. Айсберг версии 3 повышает производительность запросов и предоставляет новые возможности для управляемых таблиц Delta Lake с помощью UniForm, управляемых таблиц Айсберга и внешних таблиц Iceberg.
Ключевыми функциями Айсберга версии 3 являются:
- Векторы удаления: Обеспечение эффективного удаления на уровне строк без перезаписи всех файлов данных.
- Тип данных VARIANT: поддерживает хранение и обработку полуструктурированных данных.
- История строк: отслеживает инкрементные изменения данных таблицы.
Для всех таблиц Iceberg версии 3 требуется потомственность строк. Команда для включения или отключения версионирования строк отсутствует.
Требования
Чтобы использовать функции Айсберга версии 3, необходимо выполнить следующие требования:
- Рабочая область с включенным каталогом Unity
- Databricks Runtime 17.3 или более поздней версии для чтения и записи в управляемые таблицы с использованием Iceberg v3
Создание таблицы с помощью Iceberg версии 3
Создайте новые таблицы с поддержкой Iceberg версии 3 для управляемых таблиц Delta с помощью UniForm и управляемых таблиц Iceberg.
Таблица Delta, управляемая с помощью UniForm
Чтобы создать новую управляемую таблицу Delta с поддержкой UniForm и Iceberg версии 3, используйте следующую команду SQL:
CREATE OR REPLACE TABLE main.schema.table (c1 INT) TBLPROPERTIES(
'delta.universalFormat.enabledFormats' = 'iceberg',
'delta.enableIcebergCompatV3' = 'true'
);
Дополнительные сведения о ЮниФорме см. в разделе "Чтение таблиц Delta" с клиентами Iceberg.
Таблица Iceberg с управлением
Чтобы создать новую управляемую таблицу Iceberg с форматом версии 3, используйте следующую команду SQL:
CREATE OR REPLACE TABLE main.schema.table (c1 INT)
USING iceberg
TBLPROPERTIES ('format-version' = 3);
Дополнительные сведения об управляемых таблицах Iceberg см. в разделе Что такое Apache Iceberg в Azure Databricks?.
Обновление существующей таблицы до Iceberg версии 3
Вы можете обновить существующую таблицу до Айсберга версии 3 следующими способами:
- Включение любой функции v3 в таблице базы данных.
- Установка версии формата Iceberg для таблицы на 3 (как показано ниже).
Предупреждение
Таблицы можно понизить с версии 3 до версии 2 путем восстановления таблицы к версии до обновления до v3 с использованием RESTORE. См. понижение таблицы до предыдущей версии.
Таблица Delta, управляемая с помощью UniForm
Чтобы обновить управляемую таблицу Delta с юниформой до версии 3, используйте следующую команду:
ALTER TABLE catalog.schema.table SET TBLPROPERTIES(
'delta.enableIcebergCompatV3' = 'true',
'delta.enableIcebergCompatV2' = 'false'
);
Таблица Iceberg с управлением
Чтобы обновить управляемую таблицу Айсберга до версии 3, используйте следующую команду:
ALTER TABLE catalog.schema.table SET TBLPROPERTIES (
'format-version' = 3
);
Включение векторов удаления
Векторы удаления оптимизируют операции изменения данных на уровне строк и включены по умолчанию во всех новых таблицах Iceberg версии 3. См. векторы удаления в Databricks.
Замечание
Включение векторов удаления в существующей таблице Айсберга обновляет версию формата Айсберга до 3.
Таблица Delta, управляемая с помощью UniForm
Чтобы создать новую управляемую таблицу Delta с поддержкой UniForm, Iceberg версии 3 и векторами удаления, задайте следующие свойства таблицы:
CREATE TABLE catalog.schema.table (c1 INT) TBLPROPERTIES(
'delta.enableDeletionVectors' = 'true',
'delta.enableIcebergCompatV3' = 'true',
'delta.universalFormat.enabledFormats' = 'iceberg'
);
Таблица Iceberg с управлением
Чтобы создать управляемую таблицу Iceberg с включенными векторами удаления, задайте iceberg.enableDeletionVectors свойство таблицы:
CREATE TABLE catalog.schema.table (c1 INT)
USING ICEBERG TBLPROPERTIES (
'iceberg.enableDeletionVectors' = 'true'
);
Использование типа данных VARIANT
Тип данных VARIANT позволяет хранить и запрашивать полуструктурированные данные.
Замечание
Использование VARIANT в существующей таблице Iceberg обновляет версию формата Iceberg до третьей.
Таблица Delta, управляемая с помощью UniForm
Чтобы создать новую управляемую таблицу Delta с юниформой и столбцом VARIANT:
CREATE TABLE catalog.schema.deltaTable (col VARIANT) TBLPROPERTIES(
'delta.enableIcebergCompatV3' = 'true',
'delta.universalFormat.enabledFormats' = 'iceberg'
);
Таблица Iceberg с управлением
Чтобы создать новую управляемую таблицу Iceberg с столбцом VARIANT:
CREATE TABLE catalog.schema.icebergTable (col VARIANT) USING iceberg;
Чтобы добавить столбец VARIANT в существующую таблицу, используйте ALTER TABLE команду:
ALTER TABLE catalog.schema.table ADD COLUMN variant_col VARIANT;
Понижение версии таблицы до предыдущей версии Apache Iceberg
Если необходимо вернуть таблицу в состояние, прежде чем она была обновлена до Iceberg версии 3, можно использовать 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;
Ограничения
Azure Databricks поддерживает спецификацию Iceberg версии 3 со следующими исключениями:
- Значения по умолчанию, включая записи по умолчанию и начальные значения по умолчанию, не поддерживаются.
- Следующие типы данных не поддерживаются:
- Геопространственные типы
- Неизвестный тип
- Метка времени наносекундной точности.
- Преобразования с несколькими аргументами не поддерживаются.