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


Неглубокий клон для Unity Catalogtables

Внимание

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

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

Внимание

Клонировать Unity Catalog управляемый tables в Unity Catalog управляемый tables и Unity Catalog внешний tables в Unity Catalog внешний tables. VACUUM поведение отличается от управляемого и внешнего tables. См. Vacuum и мелкие клоныUnity Catalog.

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

Дополнительные сведения о CatalogtablesUnity см. в разделе Что такое tables и views?.

Создайте поверхностную копию в Unity Catalog

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

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

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

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

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

Примечание.

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

Запрос или изменение мелко клонированного table в Unity Catalog

Внимание

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

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

Ресурс Требуемые разрешения
Catalog USE CATALOG
Schema USE SCHEMA
Table SELECT

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

  • записи Insert
  • Удаление записей
  • записи Update
  • MERGE
  • CREATE OR REPLACE TABLE
  • DROP TABLE

Vacuum и Unity Catalog поверхностные клоны

Внимание

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

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

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

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

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

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

Примечание.

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

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

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

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

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

Ограничения

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