Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описаны управляемые таблицы каталога Unity в Delta Lake и Apache Iceberg, тип таблицы по умолчанию и рекомендуемый тип таблицы в Azure Databricks. Эти таблицы полностью управляются и оптимизированы каталогом Unity, предлагают производительность, операционные преимущества и более низкие затраты на хранение и вычисления по сравнению с внешними и внешними таблицами, так как управляемые таблицы учатся на основе шаблонов чтения и записи. Каталог Unity управляет всеми обязанностями по чтению, записи, хранению и оптимизации для управляемых таблиц. См. статью "Преобразование внешней разностной таблицы в управляемую таблицу каталога Unity".
Файлы данных для управляемых таблиц хранятся в схеме или каталоге, содержащих их. См. Укажите управляемое расположение хранилища в каталоге Unity.
Databricks рекомендует использовать управляемые таблицы для использования следующих преимуществ:
- Сокращение затрат на хранение и вычислительные ресурсы.
- Более быстрая производительность запросов во всех типах клиентов.
- Автоматическое обслуживание и оптимизация таблиц.
- Безопасный доступ для клиентов, отличных от Databricks, с помощью открытых API.
- Поддержка форматов Delta Lake и Iceberg.
- Автоматическое обновление до последних функций платформы.
Управляемые таблицы поддерживают взаимодействие, разрешая доступ из клиентов Delta Lake и Iceberg. С помощью открытых API и учётных данных Unity Catalog позволяет внешним движкам, таким как Trino, DuckDB, Apache Spark, Daft и Iceberg REST, а также каталожным движкам, интегрированным с Dremio, получать доступ к управляемым таблицам. Для внешних клиентов, не поддерживающих открытые API, можно использовать режим совместимости для чтения управляемых таблиц с помощью любого клиента Delta Lake или Iceberg. Delta Sharing, протокол с открытым исходным кодом, обеспечивает безопасный, управляемый обмен данными с внешними партнерами и платформами.
Вы можете работать с управляемыми таблицами на всех языках и продуктах, поддерживаемых в Azure Databricks. Для создания, обновления, удаления или запроса управляемых таблиц требуются определенные привилегии. См. в каталоге Unity раздел Управление привилегиями.
Note
На этой странице описаны только управляемые таблицы каталога Unity. Для управления таблицами в устаревшем хранилище метаданных Hive см. раздел Объекты базы данных в устаревшем хранилище метаданных Hive.
Зачем использовать управляемые таблицы каталога Unity?
Управляемые таблицы Unity Catalog снижают затраты на хранение и ускоряют выполнение запросов, а также обеспечивают совместимость со сторонними инструментами для Delta Lake и Apache Iceberg. Чтобы упростить управление данными и производительность, эти управляемые таблицы используют технологии искусственного интеллекта, такие как сжатие размера файла и интеллектуальная сбор статистических данных.
Следующие возможности доступны только для управляемых таблиц Unity Catalog и недоступны для внешних и сторонних таблиц:
| Feature | Benefits | Включено по умолчанию? | Конфигурируемый? |
|---|---|---|---|
| Каталог коммитов | Позволяет выполнять многооператорные транзакции для нескольких таблиц, ускорять планирование запросов за счёт получения метаданных непосредственно из Unity Catalog, применять контролируемые изменения схем и ограничений, а также безопасно выполнять запись из внешних движков. | Нет. | Да.delta.feature.catalogManaged Задайте свойство таблицы. См. раздел Включить коммиты каталога. |
| Прогнозная оптимизация | Предиктивная оптимизация автоматически оптимизирует структуру данных и вычислительные ресурсы с помощью искусственного интеллекта без необходимости выполнять операции по ручному обслуживанию. Databricks рекомендует включить прогнозную оптимизацию для всех управляемых таблиц, чтобы снизить затраты на хранение и вычисления. Прогнозная оптимизация автоматически выполняется:
|
Да, для всех новых учетных записей, созданных 11 ноября 2024 г. или после этого. Для текущих учетных записей Azure Databricks постепенно включает прогнозную оптимизацию по умолчанию. Проверьте , включена ли прогнозная оптимизация. |
Да. См. раздел "Включить прогнозную оптимизацию". |
| Многооператорные транзакции | Позволяет выполнять несколько инструкций SQL в одной или нескольких таблицах как одну атомарную фиксацию с гарантиями ACID. Все изменения либо успешно применяются одновременно, либо откатываются вместе. Используйте хранимые процедуры и скрипты SQL в критически важных рабочих нагрузках хранения. Транзакции, записываемые в управляемые таблицы Delta Lake, находятся в общедоступной предварительной версии. Транзакции, записываемые в управляемые таблицы Apache Iceberg, находятся в закрытой предварительной версии. |
Нет. | Да. Используется BEGIN ATOMIC ... END; для неинтерактивных транзакций или BEGIN TRANSACTION; ... COMMIT; для интерактивных транзакций. См. режимы транзакций. |
| Автоматическое кластеризация жидкости | Для таблиц с предсказуемой оптимизацией автоматическое кластеризация жидкости позволяет Azure Databricks интеллектуально выбирать ключи кластеризации. По мере изменения шаблонов запросов Azure Databricks автоматически обновляет ключи кластеризации для повышения производительности и снижения затрат. | Нет. | Да. См. раздел "Включить кластеризацию жидкости". |
| Кэширование метаданных | Кэширование метаданных транзакций в памяти повышает производительность запросов, минимизируя запросы к журналу транзакций, хранящимся в облаке. | Да. | Нет. Кэширование метаданных всегда включено для управляемых таблиц. |
| Индексы полнотекстового поиска | Индексы полнотекстового поиска ускоряют подстроку и поиск ключевых слов в текстовых столбцах управляемых таблиц. При применении индекса Azure Databricks пропускает файлы, которые не могут содержать соответствующие строки, уменьшая объем сканированных данных. Индексы полнотекстового поиска ускоряют поиск подстрок и слов с помощью функций search и isearch.Полнотекстовые индексы поиска находятся в бета-версии и требуют Databricks Runtime 18.2 и более поздних версий. |
Нет. | Да. Создать с помощью CREATE INDEX (вторичного) или CREATE SEARCH INDEX (полнотекстового). |
Автоматическое DROP TABLE удаление файлов после команды |
Если вы DROP управляемую таблицу, Azure Databricks удаляет данные из облачного хранилища через 8 дней, чтобы сократить ваши затраты на хранение. Для внешних таблиц необходимо вручную удалить файлы из контейнера хранилища. | Да. | Нет. Для управляемых таблиц файлы всегда удаляются автоматически через 8 дней. |
Доступ к данным Databricks с помощью внешних систем
Управляемые таблицы поддерживают взаимодействие , разрешая доступ из клиентов Delta Lake и Iceberg. С помощью открытых API-интерфейсов и выдачи учетных данных каталог Unity позволяет внешним движкам, таким как Trino, DuckDB, Apache Spark, Daft и Iceberg, а также каталогам REST, интегрированными с движками, такими как Dremio и Snowflake, получать доступ к управляемым таблицам. Ознакомьтесь с интеграциями, чтобы увидеть список поддерживаемых внешних движков, или проверьте документацию вашего движка, если он не включен в этот список.
Следующие открытые API предоставляют внешним системам доступ к управляемым таблицам каталога Unity:
- REST API Unity: предоставляет доступ для чтения, записи и создания доступа для клиентов Delta к управляемым таблицам Delta.
- Каталог REST Iceberg (IRC): предоставляет доступ на чтение, запись и создание для клиентов Айсберг к управляемым таблицам Айсберг и доступ только для чтения к таблицам Delta с включенной функцией чтения Айсберг (UniForm).
Оба API поддерживают механизм выдачи учетных данных, который предоставляет временные учетные данные с ограниченной сферой действия, наследующие привилегии запрашивающего субъекта Azure Databricks, сохраняя механизмы управления и безопасности.
Кроме того, Delta Sharing — это протокол с открытым исходным кодом, который обеспечивает безопасный и управляемый доступ к внешним партнерам и платформам. Вы можете использовать Delta Sharing для предоставления партнерам временного доступа только для чтения.
Все операции чтения и записи в управляемые таблицы должны использовать имена таблиц, каталогов и схем, при наличии. Например: catalog_name.schema_name.table_name. Доступ на основе пути к управляемым таблицам каталога Unity не поддерживается (за исключением режима совместимости), так как он обходит элементы управления доступом каталога Unity и мешает правильному функционированию функций управляемых таблиц.
Создание управляемой таблицы
Чтобы создать управляемую таблицу, необходимо:
-
USE SCHEMAв родительской схеме таблицы. -
USE CATALOGв родительском каталоге таблицы. -
CREATE TABLEв родительской схеме таблицы.
Используйте следующий синтаксис SQL, чтобы создать пустую управляемую таблицу с помощью SQL. Замените значения заполнителей:
-
<catalog-name>: имя каталога, содержащего таблицу. -
<schema-name>: имя схемы, содержащей таблицу. -
<table-name>: это имя для таблицы. -
<column-specification>: имя и тип данных каждого столбца.
-- Create a managed Delta table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
);
-- Create a managed Iceberg table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
)
USING iceberg;
Чтобы обеспечить производительность операций чтения и записи, Azure Databricks периодически выполняет операции для оптимизации метаданных управляемой таблицы Iceberg. Эта задача выполняется с помощью бессерверных вычислений, имеющих MODIFY разрешения на таблицу Айсберга. Эта операция записывает только в метаданные таблицы, а вычислительная система поддерживает разрешения к таблице только на время выполнения задания.
Note
Чтобы создать таблицу Айсберга, явно укажите USING iceberg. В противном случае Azure Databricks создает таблицу Delta Lake по умолчанию.
Управляемые таблицы можно создавать из результатов запроса или операций записи DataFrame. В следующих статьях демонстрируется несколько шаблонов, которые можно использовать для создания управляемой таблицы в Azure Databricks:
Удалите управляемую таблицу
Чтобы удалить управляемую таблицу, необходимо:
-
MANAGEна столе или ты должен быть владельцем стола. -
USE SCHEMAв родительской схеме таблицы. -
USE CATALOGв родительском каталоге таблицы.
Чтобы удалить управляемую таблицу, выполните следующую команду SQL:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Каталог Unity поддерживает UNDROP TABLE команду для восстановления удаленных управляемых таблиц в течение 8 дней. Через 8 дней Azure Databricks помечает базовые данные для удаления из облачного клиента и удаляет файлы во время автоматического обслуживания таблиц. См. UNDROP.