Неглубокий клон для 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 дней. Если вы неUNDROP
table для этого window, то поверхностный клон перестает функционировать после удаления файлов данных источника table.