Совместимость формата таблицы Delta Lake

В Microsoft Fabric формат таблицы Delta Lake является стандартным для аналитики. Delta Lake — это слой хранения с открытым исходным кодом, который обеспечивает транзакции ACID (атомарность, согласованность, изоляция, устойчивость) к большим данным и рабочим нагрузкам аналитики.

Все интерфейсы Fabric изначально создают и используют таблицы Delta Lake, предоставляя унифицированный интерфейс продукта. Таблицы Delta Lake, созданные одним вычислительным ядром, например хранилищем данных Fabric или Synapse Spark, могут использоваться любым другим ядром, например Power BI. При приеме данных в Fabric данные хранятся в виде разностных таблиц по умолчанию. Вы можете легко интегрировать внешние данные, содержащие таблицы Delta Lake, с помощью сочетаний клавиш OneLake.

Функции Delta Lake и опыт работы с Fabric

Для обеспечения взаимодействия все возможности Fabric соответствуют возможностям Delta Lake и Fabric. Некоторые интерфейсы могут записывать только в таблицы Delta Lake, а другие могут читать из него.

  • Писатели: хранилища данных, потоки событий и экспортированные семантические модели Power BI в OneLake
  • Читатели: конечная точка аналитики SQL и семантические модели Power BI для прямого доступа к озеру данных
  • Авторы и читатели: среда выполнения Fabric Spark, потоки данных, конвейеры и базы данных языка запросов Kusto (KQL)

В следующей матрице показаны ключевые функции Delta Lake и их доступность для каждого интерфейса Fabric.

Возможности Fabric Сопоставления столбцов Векторы удаления Написание в V-порядке Оптимизация таблиц и обслуживание Перегородки
Экспорт хранилища данных Delta Lake Имя: Да
Идентификатор: Нет
Да Да Да Чтение: N/A (неприменимо)
Запись: Нет
Конечная точка аналитики SQL Имя: Да
Идентификатор: Нет
Да N/A (неприменимо) N/A (неприменимо) Прочитано: Да
Введите: N/A (неприменимо)
Обозреватель Lakehouse и предварительная версия Имя: Да
Идентификатор: Нет
Да N/A (неприменимо) Да Прочитано: Да
Введите: N/A (неприменимо)
Среда выполнения Fabric Spark 2.0 (предварительная версия) Имя: Да
Идентификатор: Да
Да Да Да Прочитано: Да
Запись: Да
Среда выполнения Fabric Spark 1.3 Имя: Да
Идентификатор: Да
Да Да Да Прочитано: Да
Запись: Да
Среда выполнения Spark Fabric 1.2 Имя: Да
Идентификатор: Да
Да Да Да Прочитано: Да
Запись: Да
Среда выполнения Spark Fabric 1.1 Имя: Да
Идентификатор: Да
Нет Да Да Прочитано: Да
Запись: Да
записные книжки Python Имя: Нет
Идентификатор: Нет
Нет Нет Да Прочитано: Да
Запись: Да
Потоки данных 2-го поколения Имя: Да
Идентификатор: Нет
Да Да Нет Прочитано: Да
Запись: Да
Трубопроводы Имя: Нет
Идентификатор: Нет
Нет Да Нет Прочитано: Да
Запись: Да, только перезапись
Модели семантики прямого подключения к озеру данных Power BI Имя: Да
Идентификатор: Да
Да N/A (неприменимо) N/A (неприменимо) Прочитано: Да
Введите: N/A (неприменимо)
Экспорт семантических моделей Power BI в OneLake Имя: Да
Идентификатор: Нет
N/A (неприменимо) Да Нет Чтение: N/A (неприменимо)
Запись: Нет
Базы данных KQL Имя: Да
Идентификатор: Нет
Да Нет Нет 1 Прочитано: Да
Запись: Да
Потоки событий Имя: Нет
Идентификатор: Нет
Нет Нет Нет Чтение: N/A (неприменимо)
Запись: Да

1 базы данных KQL предоставляют определенные возможности обслуживания таблиц, такие как хранение. Данные удаляются в конце периода хранения из OneLake. Дополнительные сведения см. в разделе "Одна логическая копия".

Возможности Fabric Кластеризация Жидкости TIMESTAMP_NTZ Версия Delta для чтения и записи и функции таблицы по умолчанию Расширение типов
Экспорт хранилища данных Delta Lake Нет Нет Читатель: 3
Писатель: 7
Векторы удаления,
Сопоставления столбцов (наименование)
Да
Конечная точка аналитики SQL Да Нет N/A (неприменимо) Да
Обозреватель Lakehouse и предварительная версия Да Да N/A (неприменимо) Да
Среда выполнения Fabric Spark 2.0 (предварительная версия) Да Да Читатель: 3
Писатель: 7
Векторы удаления
Да
Среда выполнения Fabric Spark 1.3 Да Да Читатель: 1
Писатель: 2
Нет
Среда выполнения Spark Fabric 1.2 Да, только для чтения Да Читатель: 1
Писатель: 2
Нет
Среда выполнения Spark Fabric 1.1 Да, только для чтения Нет Читатель: 1
Писатель: 2
Нет
записные книжки Python Нет Да Читатель: 1
Писатель: 2
Нет
Потоки данных 2-го поколения Да, только для чтения Нет Читатель: 1
Писатель: 2
Да
Трубопроводы Да, только для чтения Нет Читатель: 1
Писатель: 2
Да: конвейеры данных DI (действие копирования, действие поиска)
Нет: конвейеры копирования заданий DI
Модели семантики прямого подключения к озеру данных Power BI Да Нет N/A (неприменимо) Да
Экспорт семантических моделей Power BI в OneLake Нет Нет Читатель: 2
Писатель: 5
Сопоставления столбцов (наименование)
Нет
Базы данных KQL Нет Нет Читатель: 1
Писатель: 1
Нет
Потоки событий Нет Нет Читатель: 1
Писатель: 2
Нет

Заметка

  • Структура не записывает сопоставления столбцов по умолчанию, за исключением отмеченных. Интерфейс Fabric по умолчанию создает таблицы, совместимые со службой. Таблицы Delta Lake, созданные сторонними службами, могут иметь несовместимые особенности таблиц.
  • Некоторые интерфейсы Fabric не предлагают возможности оптимизации таблиц и обслуживания, такие как bin-compaction, V-order, удаление векторного слияния (PURGE) и очистка старых нерелентованных файлов (VACUUM). Чтобы поддерживать оптимальную работу таблиц Delta Lake для аналитики, следуйте методам Run Delta table maintenance в Lakehouse для таблиц, загруженных с использованием этих возможностей.
  • Подробные рекомендации по межнагрузочным стратегиям обслуживания и оптимизации таблиц для различных сценариев потребления см. в разделе Межнагрузочное обслуживание и оптимизация таблиц в Microsoft Fabric.

Текущие ограничения

В настоящее время Fabric не поддерживает следующие функции Delta Lake:

  • Контрольные точки версии 2 не доступны во всех сценариях использования. Только блокноты Spark и задания Spark могут считывать данные из таблиц и записывать их с помощью контрольных точек V2. Конечные точки аналитики Lakehouse и SQL некорректно перечисляют таблицы, содержащие контрольные файлы V2 в папке __delta_log.
  • Delta Lake 3.x Uniform. Эта функция поддерживается только в вычислительных средах Spark для инженерии данных (ноутбуки, задания Spark).
  • Записи колонок идентификаторов (функция Azure Databricks).
  • Декларативные конвейеры Spark Lakeflow (функция Azure Databricks).
  • Функции Delta Lake 4.x за пределами Lakehouse и ноутбуков Spark: сортировки, тип variant, координированные коммиты и многое другое. Расширение типов поддерживается там, где это указано в матрице описанных выше функций в этой статье.
  • Поддержка функций Delta Lake в записных книжках Python: записные книжки Python используют delta-rs (deltalake), DuckDB и Polars вместо средств чтения и записи Spark Delta Lake для работы с таблицами Delta Lake. В настоящее время версии deltalake, закрепленные в Fabric, не поддерживают некоторые функции таблиц Delta Lake, включая векторы удаления, сопоставление столбцов, операции записи с использованием ликвидной кластеризации, оптимизацию и расширение типов. Полары read_delta и write_delta используют deltalake в качестве серверной части, поэтому у них одинаковые ограничения.
  • Обходные решения и резервные меры для Delta Lake в Jupyter ноутбуках Python: Функция DuckDB delta_scan может предоставить обходное решение только для чтения для некоторых таблиц, которые deltalake не могут быть прочитаны, например, для таблиц с векторами удаления. Если возможность Delta Lake недоступна или не работает в записной книжке Python, используйте записную книжку PySpark. Записные книжки PySpark предоставляют наиболее полную поддержку Delta Lake в Fabric и включают сценарии Delta Lake, перечисленные для среды выполнения Spark в указанных таблицах. Дополнительные сведения см. в разделе Взаимодействие с данными в записных книжках Python и Выбор между записными книжками Python и PySpark в Microsoft Fabric.

Специальные символы в именах таблиц

Fabric поддерживает специальные символы в составе имен таблиц. Эта функция позволяет использовать символы Юникода для создания имен таблиц в Fabric интерфейсах.

Следующие специальные символы являются зарезервированными или несовместимы по крайней мере с одним из технологий Fabric и не должны использоваться в качестве части имени таблицы: " (двойные кавычки), ' (одинарные кавычки), #, %, +, :, ? или ` (обратная кавычка).