Поделиться через


Неглубокий клон для таблиц каталога Unity

Внимание

Неглубокая поддержка клона для управляемых таблиц каталога Unity доступна в общедоступной предварительной версии в Databricks Runtime 13.3 и выше. Неглубокая поддержка клона для внешней таблицы каталога Unity доступна в общедоступной предварительной версии в Databricks Runtime 14.2 и выше.

С помощью мелкого клона можно создать новые таблицы каталога Unity из существующих таблиц каталога Unity. Неглубокая поддержка клона для каталога Unity позволяет создавать таблицы с привилегиями управления доступом независимо от родительских таблиц без необходимости копирования базовых файлов данных.

Внимание

Клонировать управляемые таблицы каталога Unity можно только в управляемые таблицы каталога Unity и внешние таблицы каталога Unity в внешние таблицы каталога Unity. VACUUM поведение отличается от управляемых и внешних таблиц. См. раздел " Вакуум" и "Каталог Unity" с мелкими клонами.

Дополнительные сведения о клоне Delta см. в разделе "Клонирование таблицы" в Azure Databricks.

Дополнительные сведения о таблицах каталога Unity см. в статье "Что такое таблицы и представления?".

Создание мелкого клона в каталоге Unity

Вы можете создать неглубокий клон в каталоге Unity с помощью того же синтаксиса, который доступен для мелких клонов на протяжении всего продукта, как показано в следующем примере синтаксиса:

CREATE TABLE <catalog-name>.<schema-name>.<target-table-name> SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>

Чтобы создать неглубокий клон в каталоге Unity, необходимо иметь достаточные привилегии для исходных и целевых ресурсов, как описано в следующей таблице:

Ресурс Требуемые разрешения
Исходная таблица SELECT
Исходная схема USE SCHEMA
Исходный каталог USE CATALOG
Целевая схема USE SCHEMA, CREATE TABLE
Целевой каталог USE CATALOG
Целевое внешнее расположение (только внешние таблицы) CREATE EXTERNAL TABLE

Как и другие инструкции создания таблиц, пользователь, создающий неглубокий клон, является владельцем целевой таблицы. Владелец клонированного клонированного таблицы может управлять правами доступа для этой таблицы независимо от исходной таблицы.

Примечание.

Владелец клонированных таблиц может отличаться от владельца исходной таблицы.

Запрос или изменение неглубокой клонированной таблицы в каталоге Unity

Внимание

Инструкции в этом разделе описывают привилегии, необходимые для вычислений, настроенных в режиме общего доступа. Сведения о режиме доступа с одним пользователем см. в статье "Работа с неглубокими клонированных таблицами в режиме доступа с одним пользователем".

Чтобы запросить неглубокий клон в каталоге Unity, необходимо иметь достаточные привилегии в таблице и содержать ресурсы, как описано в следующей таблице:

Ресурс Требуемые разрешения
Каталог USE CATALOG
Схема USE SCHEMA
Таблица SELECT

Для выполнения следующих действий необходимо также иметь MODIFY разрешения на целевой объект операции клонирования:

  • Вставка записей
  • Удаление записей
  • Записи обновлений
  • MERGE
  • CREATE OR REPLACE TABLE
  • DROP TABLE

Неглубокие клоны каталога вакуума и Unity

Внимание

Это поведение находится в общедоступной предварительной версии в Databricks Runtime 13.3 LTS и выше для управляемых таблиц и Databricks Runtime 14.2 и более поздних версий для внешних таблиц.

При использовании таблиц каталога Unity для источника и целевого объекта неглубокой операции клонирования каталог Unity управляет базовыми файлами данных, чтобы повысить надежность исходной и целевой цели операции клонирования. Выполнение VACUUM на источнике неглубокого клона не нарушает клонированную таблицу.

Обычно при VACUUM определении допустимых файлов для заданного порогового значения хранения считается только метаданные текущей таблицы. Неглубокая поддержка клонирования для каталога Unity отслеживает связи между всеми клонированных таблицами и исходными файлами данных, поэтому допустимые файлы расширяются, чтобы включить файлы данных, необходимые для возврата запросов клонированных таблиц, а также исходной таблицы.

Это означает, что для каталога Unity неглубокая семантика клона VACUUM допустимый файл данных является любым файлом в пределах указанного порога хранения исходной таблицы или любой клонированной таблицы. Управляемые таблицы и внешние таблицы немного отличаются семантикой.

Это улучшенное отслеживание метаданных изменяет способ VACUUM влияния операций на файлы данных, поддерживаемые таблицами Delta, со следующей семантикой:

  • Для управляемых таблиц VACUUM операции с исходным или целевым объектом неглубокой операции клонирования могут удалять файлы данных из исходной таблицы.
  • Для внешних таблиц VACUUM операции удаляют файлы данных только из исходной таблицы при запуске в исходной таблице.
  • Удаляются только файлы данных, которые не считаются допустимыми для исходной таблицы или неглубокого клона в источнике.
  • Если для одной исходной таблицы определены несколько мелких клонов, выполнение VACUUM в любой из клонированных таблиц не удаляет допустимые файлы данных для других клонированных таблиц.

Примечание.

Databricks рекомендует никогда не работать VACUUM с параметром хранения менее 7 дней, чтобы избежать повреждения текущих длительных транзакций. Если необходимо выполнить VACUUM с более низким пороговым значением хранения, убедитесь, что вы понимаете, как VACUUM неглубокие клоны в каталоге Unity отличаются от VACUUM взаимодействия с другими клонированных таблиц в Azure Databricks. См. раздел Клонирование таблицы в Azure Databricks.

Работа с неглубокими клонированных таблицами в режиме доступа к одному пользователю

При работе с каталогом Unity с мелкими клонами в режиме доступа к одному пользователю необходимо иметь разрешения на ресурсы для клонированного источника таблицы, а также целевую таблицу.

Это означает, что для простых запросов в дополнение к необходимым разрешениям в целевой таблице необходимо иметь USE разрешения на исходный каталог и схему и SELECT разрешения на исходную таблицу. Для любых запросов, которые будут обновлять или вставлять записи в целевую таблицу, необходимо также иметь MODIFY разрешения на исходную таблицу.

Databricks рекомендует работать с клонами каталога Unity для вычислений с режимом общего доступа, так как это позволяет независимо эволюции разрешений для неглубоких целевых объектов каталога Unity и их исходных таблиц.

Ограничения

  • Неглубокие клоны во внешних таблицах должны быть внешними таблицами. Неглубокие клоны в управляемых таблицах должны быть управляемыми таблицами.
  • Не удается предоставить общий доступ клонам с помощью разностного общего доступа.
  • Вы не можете вложить мелкие клоны, то есть вы не можете сделать мелкий клон из мелкого клона.
  • Для управляемых таблиц удаление исходной таблицы разбивает целевую таблицу для неглубоких клонов. Файлы данных, резервные копии внешних таблиц не удаляются DROP TABLE операциями, и поэтому неглубокие клоны внешних таблиц не влияют на удаление источника.
  • Каталог Unity позволяет пользователям UNDROP управлять таблицами примерно через 7 дней после DROP TABLE команды. В Databricks Runtime 13.3 LTS и выше управляемые мелкие клоны на основе удаленной управляемой таблицы продолжают работать в течение этого 7 дней. Если в этом окне нет UNDROP исходной таблицы, то неглубокий клон перестает функционировать после сбора мусора файлов данных исходной таблицы.