Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внимание
Эта функция доступна в общедоступной предварительной версии.
Внимание
Поддержка поверхностного клонирования имеет различия для управляемых и внешних таблиц каталога Unity. Для управляемых таблиц используйте Databricks Runtime 13.3 и более поздних версий, а для внешних таблиц — Databricks Runtime 14.2 и более поздних версий.
Клонировать управляемые таблицы каталога Unity можно только в управляемые таблицы каталога Unity, а внешние таблицы каталога Unity — во внешние таблицы каталога Unity.
VACUUM поведение отличается между управляемыми и внешними таблицами. См. статью "Использование VACUUM с каталогом Unity с мелкими клонами".
С помощью мелкого клона можно создать новые таблицы каталога Unity из существующих таблиц каталога Unity. Неглубокая поддержка клона для каталога Unity позволяет создавать таблицы с привилегиями управления доступом независимо от родительских таблиц без необходимости копирования базовых файлов данных.
Сведения о клонировании таблицы см. в разделе "Клонирование таблицы" в Azure Databricks.
Создание управляемого поверхностного клона Unity Catalog
Создайте неглубокий клон управляемой таблицы в каталоге Unity.
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
Чтобы создать управляемый мелкий клон в каталоге Unity, необходимо иметь следующие привилегии для исходных и целевых ресурсов.
| Ресурс | Требуемые разрешения |
|---|---|
| Исходная схема | USE SCHEMA |
| Исходный каталог | USE CATALOG |
| Целевая схема |
USE SCHEMA, CREATE TABLE |
| Целевой каталог | USE CATALOG |
Как и другие инструкции создания таблиц, пользователь, создающий неглубокий клон, владеет целевой таблицей. Владелец клонированных целевых таблиц управляет правами доступа для этой таблицы независимо от исходной таблицы. Это означает, что владелец клонированных таблиц может отличаться от владельца исходной таблицы.
Создание внешнего поверхностного клона каталога Unity
Создайте внешний поверхностный клон Unity Catalog, указав внешнее расположение.
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
LOCATION 's3://<bucket-name>/<path-name>/<target-table-name>'
Чтобы создать внешний неглубокий клон в каталоге Unity, необходимо иметь следующие привилегии для исходных и целевых ресурсов.
| Ресурс | Требуемые разрешения |
|---|---|
| Исходная схема | USE SCHEMA |
| Исходный каталог | USE CATALOG |
| Целевая схема |
USE SCHEMA, CREATE TABLE |
| Целевой каталог | USE CATALOG |
| Целевое внешнее местоположение | CREATE EXTERNAL TABLE |
Работа с неглубоко клонированными таблицами в стандартном режиме доступа
Чтобы запросить неглубокий клон в стандартном режиме доступа (ранее режим общего доступа), необходимо иметь следующие привилегии для таблицы и связанных ресурсов.
| Ресурс | Требуемые разрешения |
|---|---|
| Каталог | USE CATALOG |
| Схема | USE SCHEMA |
| Стол | SELECT |
Для выполнения следующих действий необходимо также иметь MODIFY разрешения на целевой объект операции клонирования.
- Вставка записей
- Удаление записей
- Обновить записи
MERGECREATE TABLEDROP TABLE
Работа с неглубокими клонированных таблицами в выделенном режиме доступа
При работе с Unity Catalog с мелкими клонами в выделенном режиме доступа (ранее – режим единственного доступа пользователя) необходимо иметь разрешения на ресурсы исходной таблицы для клонирования, а также на целевую таблицу.
Это означает, что для простых запросов в дополнение к необходимым разрешениям в целевой таблице необходимо иметь USE разрешения на исходный каталог и схему и SELECT разрешения на исходную таблицу. Для любых запросов, которые будут обновлять или вставлять записи в целевую таблицу, необходимо также иметь MODIFY разрешения на исходную таблицу.
Databricks рекомендует работать с клонами каталога Unity для вычислений с стандартным режимом доступа, так как это позволяет независимо эволюции разрешений для мелких целевых объектов каталога Unity и их исходных таблиц.
Использование VACUUM с каталогом Unity с мелкими клонами
При использовании таблиц каталога Unity для источника и целевого объекта неглубокой операции клонирования каталог Unity управляет базовыми файлами данных, чтобы повысить надежность исходной и целевой цели операции клонирования. Выполнение VACUUM на источнике неглубокого клона не нарушает клонированную таблицу.
Обычно при VACUUM определении допустимых файлов для заданного порога хранения данных, учитываются только метаданные текущей таблицы. Однако неглубокая поддержка клонирования для каталога Unity отслеживает связи между всеми клонированных таблицами и файлами исходных данных, поэтому допустимые файлы расширяются, чтобы включить файлы данных, необходимые для возврата запросов клонированных таблиц, а также исходной таблицы.
Это означает, что для каталога Unity семантика неглубокого клона VACUUM считается действительным файлом данных любой файл в пределах указанного порога удержания для исходной таблицы или любой клонированной таблицы. Управляемые таблицы и внешние таблицы немного отличаются семантикой.
Улучшенное отслеживание изменений метаданных изменяет то, как операции VACUUM влияют на основные файлы данных таблиц Delta, в соответствии со следующей семантикой.
- Для управляемых таблиц
VACUUMоперации с исходным или целевым объектом неглубокой операции клонирования могут удалять файлы данных из исходной таблицы. - Для внешних таблиц
VACUUMоперации удаляют файлы данных только из исходной таблицы при выполнении над исходной таблицей. - Удаляются только файлы данных, которые не считаются допустимыми для исходной таблицы или любого неглубокого клона исходной таблицы.
- Если для одной исходной таблицы определены несколько мелких клонов, выполнение
VACUUMв любой из клонированных таблиц не удаляет допустимые файлы данных для других клонированных таблиц.
Примечание.
Databricks рекомендует никогда не работать VACUUM с параметром хранения менее 7 дней, чтобы избежать повреждения текущих длительных транзакций. Если вам нужно запустить VACUUM с более низким порогом хранения, убедитесь, что вы понимаете, как VACUUM действует на неглубокие копии в Unity Catalog в отличие от того, как VACUUM взаимодействует с другими клонированными таблицами в Azure Databricks. Дополнительные сведения см. в разделе "Клонирование таблицы" в Azure Databricks.
Кроме того, даже если неглубокая клонированная таблица удалена, может потребоваться SELECT доступ к неглубокой клонированной таблице для запуска VACUUM в базовой таблице. Databricks считывает журнал мелкого клона, чтобы проверить, на какие файлы базовой таблицы клон по-прежнему ссылается перед их очисткой. Databricks сохраняет эту ссылку в течение 7 дней после удаления неглубоко клонированной таблицы, чтобы поддерживать операцию UNDROP. Однако в стандартном режиме доступа это разрешение не требуется.
Удалите базовую таблицу для создания мелкого клона
Если базовая таблица неглубокого клона удаляется, клон становится непригодным для использования. По умолчанию Databricks блокирует удаление базовой таблицы, если она по-прежнему имеет поверхностные клоны, ссылающиеся на неё.
Чтобы переопределить эту защиту, используйте DROP TABLE ... FORCE синтаксис. Если вы используете FORCE:
- Базовая таблица немедленно удаляется.
- Все ссылки на поверхностные клоны становятся недействительными и:
- Сбой операций, требующих чтения данных или метаданных (например, ,
SELECT,INSERTUPDATE,DESCRIBE HISTORY.CLONE - По-прежнему отображаются с помощью операций уровня метаданных (например,
SHOW TABLES,DROP TABLE), чтобы обеспечить возможность очистки.
- Сбой операций, требующих чтения данных или метаданных (например, ,
Это поведение применяется только к управляемым таблицам каталога Unity. Дополнительные сведения см. в разделе DROP TABLE.
Ограничения
- Неглубокие клоны во внешних таблицах должны быть внешними таблицами. Неглубокие клоны в управляемых таблицах должны быть управляемыми таблицами.
- Вы не можете использовать
REPLACEилиCREATE OR REPLACEдля перезаписи существующего неполного клона. Вместо этогоDROPнеглубокого клона и выполните новую инструкциюCREATE. - Невозможно поделиться мелкими клонами с использованием Delta Sharing.
- Вы не можете создавать вложенные поверхностные клоны, то есть нельзя сделать поверхностный клон из другого поверхностного клона.
- Для управляемых таблиц удаление исходной таблицы разбивает целевую таблицу для неглубоких клонов. Базовые файлы данных для внешних таблиц не удаляются
DROP TABLEоперациями, поэтому мелкие клоны внешних таблиц не влияют на удаление источника. - Каталог Unity позволяет пользователям
UNDROPуправлять таблицами примерно через 7 дней послеDROP TABLEкоманды. В Databricks Runtime 13.3 LTS и более поздних версиях управляемые неглубокие клоны удаленной исходной таблицы продолжают функционировать в течение 7-дневного периода, в течение которого каталог Unity поддерживаетUNDROP. Если исходная таблица не восстанавливается в этом окне, то неглубокий клон перестает работать при удалении исходных файлов данных во время сборки мусора.