Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается обновление таблиц и представлений, зарегистрированных в существующем хранилище метаданных Hive рабочей области в каталог Unity.
Note
В качестве альтернативы процессам миграции таблиц, описанным в этой статье, можно использовать федерацию хранилища метаданных Hive для создания каталога в каталоге Unity, который отражает хранилище метаданных Hive. См. федерацию хранилища метаданных Hive: включите Unity Catalog для управления таблицами в хранилище метаданных Hive, зарегистрированными в нем.
Вы можете обновить таблицу Hive до управляемой таблицы или внешней таблицы в каталоге Unity.
Управляемые таблицы — это предпочтительный способ создания таблиц в каталоге Unity. Каталог Unity полностью управляет жизненным циклом, макетом файлов и системой хранения. Каталог Unity также оптимизирует их производительность автоматически. Управляемые таблицы всегда используют формат таблицы Delta .
Управляемые таблицы находятся в управляемом расположении хранилища, резервируемого для каталога Unity. Из-за этого требования к хранилищу необходимо использовать CLONE или CREATE TABLE AS SELECT (CTAS), если вы хотите скопировать существующие таблицы Hive в каталог Unity в качестве управляемых таблиц.
Таблицы с внешним управлением данными — это таблицы, у которых жизненный цикл данных, макет файла и расположение хранилища не управляются каталогом Unity. Для внешних таблиц поддерживаются несколько форматов данных.
Обычно внешние таблицы используются только в том случае, если вам также нужен прямой доступ к данным с помощью вычислений, отличных от Databricks (то есть не с помощью кластеров Databricks или хранилищ SQL Databricks). Внешние таблицы также удобны в сценариях миграции, так как можно быстро регистрировать существующие данные в Unity Catalog без необходимости их копировать. Благодаря тому, что данные во внешних таблицах не должны находиться в зарезервированном управляемом хранилище.
Дополнительные сведения об управляемых и внешних таблицах в каталоге Unity см. в таблицах Azure Databricks.
Параметры миграции каталога Hive в каталог Unity
Когда вы будете готовы перенести таблицы Hive в каталог Unity, у вас есть несколько вариантов в зависимости от варианта использования:
| Средство миграции | Description | Требования к таблице Hive | Создана таблица в каталоге Unity | Почему я должен использовать его? |
|---|---|---|---|---|
| UCX | Полный набор служебных программ командной строки и других средств, которые оценивают готовность рабочей области к миграции на каталог Unity и выполняют рабочие процессы, которые переносят удостоверения, разрешения, местоположения хранилища и таблицы в каталог Unity. UCX доступен на сайте GitHub в databrickslabs/ucx. | Управляемые или внешние таблицы Hive | Управляемые или внешние | Требуется комплексное средство планирования обновления рабочей области, которое выходит за рамки обновления таблиц Hive до каталога Unity. Вы хотите обновить рабочие области с большими объемами данных в хранилище метаданных Hive. Вы комфортно работаете с скриптами. Если вы хотите выполнить массовое обновление таблиц Hive до управляемых таблиц каталога Unity, это единственный вариант. UCX, как и все проекты Databricks Labs, — это общедоступный репозиторий GitHub, который не поддерживается непосредственно Databricks. |
| Мастер обновления каталога Unity | Функция обозревателя каталогов, позволяющая массово копировать все схемы (базы данных) и несколько управляемых и внешних таблиц из хранилища метаданных Hive в хранилище метаданных каталога Unity в качестве внешних таблиц. Мастер обновления выполняет SYNC команду в избранных таблицах, оставляя исходные таблицы Hive нетронутыми. Вы можете запланировать регулярные обновления, чтобы получить изменения в исходных таблицах Hive. |
Управляемые или внешние таблицы Hive | Только внешнее использование | Вы хотите быстро обновить таблицы Hive до внешних таблиц в каталоге Unity, и вы предпочитаете визуальный интерфейс. Возможность регулярного планирования синхронизации при изменении исходной таблицы Hive делает его полезным инструментом для управления рабочей областью "гибридного" Hive и каталога Unity во время перехода в каталог Unity. |
| SYNC команда SQL |
SYNC позволяет копировать внешние таблицы и управляемые таблицы (если управляемые таблицы хранятся вне хранилища рабочих областей Databricks, иногда известного как корневой каталог DBFS) в хранилище метаданных Hive в внешние таблицы в каталоге Unity. Вы можете синхронизировать отдельные таблицы или целые схемы.SYNC предназначен для запуска по расписанию для получения новых изменений в хранилище метаданных Hive и синхронизации их с каталогом Unity. |
Управляемые или внешние таблицы Hive | Только внешнее использование | Вы хотите быстро обновить таблицы Hive до внешних таблиц в каталоге Unity, и вы предпочитаете использовать команды SQL, а не визуальный интерфейс. Планирование регулярных SYNC запусков для обновления существующих таблиц каталога Unity при изменении исходной таблицы Hive делает его удобным инструментом для управления рабочей областью, сочетающей Hive и каталог Unity, в процессе перехода к каталогу Unity.Так как нельзя использовать SYNC для обновления управляемых таблиц, которые находятся в хранилище рабочих областей Databricks, используйте CREATE TABLE CLONE для этих таблиц. |
| CREATE TABLE CLONE команда SQL |
CREATE TABLE CLONE позволяет обновить управляемые таблицы в хранилище метаданных Hive до управляемых таблиц в каталоге Unity. Клонировать отдельные таблицы можно.Глубокие клоны копируют данные исходной таблицы и метаданные в целевой объект клонирования. |
Управляемые таблицы Hive, в формате Delta. | Только управляемое | Вы хотите перенести управляемые таблицы Hive в управляемые таблицы каталога Unity, чтобы воспользоваться полным преимуществом управления данными каталога Unity, а таблицы Hive соответствуют критериям, перечисленным в ячейке "Требования к таблице Hive". Если таблицы Hive не соответствуют требованиям к таблицам Hive, можно использовать команду CREATE TABLE AS SELECT SQL для обновления таблицы Hive до управляемой таблицы Unity Catalog. Однако CLONE почти всегда предпочтительнее. Клонирование имеет более простой синтаксис, чем CREATE TABLE AS SELECT: вам не нужно указывать секционирование, формат, инвариантность, nullability, stream COPY INTOи другие метаданные, так как они клонируются из исходной таблицы. |
В этой статье описывается, как выполнить все, кроме процесса обновления на основе UCX. Databricks рекомендует UCX для большинства сценариев обновления рабочей области. Однако для более простых вариантов использования можно использовать один или несколько инструментов, описанных здесь.
Перед началом работы
В этом разделе описываются некоторые последствия миграции, которые необходимо подготовить, а также разрешения и требования к вычислительным ресурсам.
Понять влияние
Следует учитывать, что при изменении рабочих нагрузок для использования новых таблиц каталога Unity может потребоваться изменить некоторые действия:
- Каталог Unity управляет секциями по-разному, чем Hive. Команды Hive, которые напрямую управляют секциями, не поддерживаются в таблицах, управляемых каталогом Unity.
- Журнал таблиц не переносится при запуске
CREATE TABLE CLONE. Все таблицы в хранилище метаданных Hive, клонированные в каталог Unity, обрабатываются как новые таблицы. Невозможно выполнить путешествие по времени Delta Lake или другие операции, основанные на журнале предварительной миграции.
Дополнительные сведения см. в статье "Работа с устаревшим хранилищем метаданных Hive вместе с каталогом Unity".
Requirements
Для выполнения миграций необходимо следующее:
Рабочее пространство с метахранилищем Unity Catalog и как минимум одним каталогом Unity Catalog. См. статью "Начало работы с каталогом Unity".
Привилегии на каталоги Unity Catalog, в которые переносятся таблицы. Эти требования привилегий перечисляются в начале каждой процедуры, описанной в этой статье.
Для миграции во внешние таблицы Unity Catalog: учетные данные хранения и внешние расположения, определенные в Unity Catalog, и привилегии
CREATE EXTERNAL TABLEна внешнем расположении.Доступ к вычислительным ресурсам Azure Databricks, отвечающим обоим из следующих требований:
- Поддерживает каталог Unity (хранилища SQL или вычислительные ресурсы, использующие стандартный или выделенный режим доступа).
- Разрешает доступ к таблицам в хранилище метаданных Hive.
Так как вычислительные ресурсы, использующие стандартный режим доступа, включены для управления доступом к устаревшим таблицам по умолчанию, это означает, что при использовании этого режима доступа необходимо иметь права управления доступом к таблицам в хранилище метаданных Hive, из которых выполняется миграция. Вы можете предоставить себе доступ с помощью следующей команды SQL:
GRANT ALL PRIVILEGES ON catalog hive_metastore TO `<user>`Кроме того, вы можете использовать вычислительный ресурс в выделенном режиме доступа.
Note
Демонстрации обновления вычислительных ресурсов для Unity Catalog см. в разделе:
Дополнительные сведения об управлении привилегиями для объектов в хранилище метаданных Hive см. в разделе "Привилегии хранилища метаданных Hive" и защищаемые объекты (устаревшие версии). Дополнительные сведения об управлении привилегиями для объектов в хранилище метаданных каталога Unity см. в разделе "Управление привилегиями" в каталоге Unity.
Определение таблиц, управляемых хранилищем метаданных Hive
Чтобы определить, зарегистрирована ли таблица в каталоге Unity, проверьте имя каталога. Таблицы в каталоге hive_metastore регистрируются в метасторе Hive, локальном для рабочей области. Все остальные каталоги, перечисленные в списке, управляются каталогом Unity.
Чтобы просмотреть таблицы в каталоге hive_metastore с помощью обозревателя каталогов, выполните следующие действия.
- Щелкните
Каталог на боковой панели.
- В области каталога перейдите к каталогу
hive_metastoreи разверните узлы схемы.
Можно также найти определенную таблицу с помощью поля фильтра в области каталога.
Обновление схемы или таблиц из хранилища метаданных Hive до внешних таблиц каталога Unity с помощью мастера обновления
Вы можете скопировать целые схемы (базы данных) и несколько внешних или управляемых таблиц из хранилища метаданных Hive по умолчанию Azure Databricks в мета-хранилище Unity Catalog с помощью мастера обновления Catalog Explorer. Обновленные таблицы будут внешними таблицами в каталоге Unity.
Сведения о том, когда следует использовать мастер обновления, см. в разделе варианты миграции из Hive в каталог Unity.
Requirements
Требования к формату данных:
- См. статью " Работа с внешними таблицами".
Требования к вычислениям:
- Вычислительный ресурс, поддерживающий каталог Unity. См . статью "Перед началом работы".
Требования к объекту и разрешениям каталога Unity:
- Учетные данные хранилища для управляемого удостоверения Azure или служебного принципала, который разрешает каталогу Unity получить доступ к пути расположения таблиц.
- Внешнее расположение, которое ссылается на только что созданные учетные данные хранилища и путь к данным у облачного клиента.
- Разрешение
CREATE EXTERNAL TABLEна доступ к внешним расположениям таблиц, которые нужно обновить.
Требования к доступу к таблице Hive:
- Если вычислительные ресурсы используют стандартный режим доступа, вам потребуется доступ к таблицам в хранилище метаданных Hive, предоставленный с помощью устаревшего управления доступом к таблице. См . статью "Перед началом работы".
Процесс обновления
Щелкните
Каталог на боковой панели, чтобы открыть обозреватель каталогов.
Выберите
hive_metastoreв качестве каталога и укажите схему (базу данных), которую вы хотите обновить.
Щелкните Обновить в правом верхнем углу представления сведений о схеме.
Выберите все таблицы, которые требуется обновить, и щелкните Далее.
С помощью мастера обновления можно обновить только внешние таблицы в форматах, поддерживаемых каталогом Unity. См. статью " Работа с внешними таблицами".
Задайте целевой каталог, схему (базу данных) и владельца для каждой таблицы.
Пользователи смогут получить доступ к созданной таблице в контексте своих привилегий в каталоге и схеме.
Владельцы таблиц имеют полные привилегии на таблицу, включая
SELECTиMODIFY. Если вы не выберете владельца, управляемые таблицы создаются вместе с вами в качестве владельца. Databricks обычно рекомендует предоставить права владения таблицами группам. Дополнительные сведения о владении объектами в каталоге Unity см. в статье "Управление владением объектами".Чтобы назначить один и тот же каталог и схему нескольким таблицам, выберите таблицы и нажмите кнопку "Задать назначение ".
Чтобы назначить одного владельца нескольким таблицам, выберите таблицы и нажмите кнопку "Задать владельца ".
Просмотрите конфигурации таблицы. Чтобы изменить их, щелкните Назад.
Нажмите кнопку "Выполнить обновление ", чтобы сразу запустить обновление или нажмите кнопку "Создать записную книжку для обновления".
При создании записной книжки для обновления назовите записную книжку и выберите путь для его сохранения. Затем запустите записную книжку.
После обновления метаданные каждой таблицы копируются из хранилища метаданных Hive в каталог Unity. Эти таблицы помечаются как обновленные в мастере обновления.
Определите избирательный контроль доступа с помощью вкладки Разрешения каждой новой таблицы.
(Необязательно) Добавьте примечания к каждой обновленной таблице Hive, которая указывает пользователям на новую таблицу каталога Unity.
Вернитесь к исходной таблице в каталоге
hive.metastore, чтобы добавить комментарий к таблице.Если вы используете следующий синтаксис в примечании таблицы, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий как предупреждение и предоставлять ссылку быстрого исправления в Genie Code, которая может обновить код для ссылки на новую таблицу.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.
Измените рабочие нагрузки, чтобы использовать новые таблицы.
Если вы добавили комментарий в исходную таблицу Hive, например в приведенном на предыдущем шаге, можно использовать Genie Code для поиска и изменения рабочих нагрузок. См. статью "Использование кода Genie" для обновления устаревшей ссылки на таблицу.
Note
Если старые таблицы больше не нужны, их можно удалить из хранилища метаданных Hive. Удаление внешней таблицы не влияет на файлы данных в облачном арендаторе.
Переведите таблицу Hive на внешнюю таблицу Unity Catalog с помощью SYNC
С помощью SQL-команды SYNC можно скопировать внешние таблицы из хранилища метаданных Hive во внешние таблицы в Unity Catalog. Вы можете синхронизировать отдельные таблицы или целые схемы.
Можно также использовать SYNC для копирования управляемых таблиц Hive, хранящихся вне хранилища рабочей области Databricks (иногда называемого корневым каталогом DBFS) во внешние таблицы в каталоге Unity. Его нельзя использовать для копирования управляемых таблиц Hive, хранящихся в хранилище рабочей области. Чтобы скопировать эти таблицы, используйте вместо этого CREATE TABLE CLONE.
Команда SYNC выполняет операцию записи в каждую исходную таблицу, обновляемую для добавления дополнительных свойств таблицы для ведения учета, включая запись о целевой внешней таблице каталога Unity.
SYNC также можно использовать для обновления существующих таблиц каталога Unity при изменении исходных таблиц в хранилище метаданных Hive. Это делает его хорошим инструментом для постепенного перехода в каталог Unity.
- Демонстрация использования
SYNCдля обновления внешних таблиц см. в каталоге Unity — внешняя таблица в HMS. - Для демонстрации обновления управляемых таблиц с помощью
SYNCсмотрите Unity Catalog - управляемые таблицы в HMS.
Дополнительные сведения см. в SYNC. Сведения о том, когда следует использовать мастер обновления, см. в разделе варианты миграции из Hive в каталог Unity.
Requirements
Требования к формату данных:
- См. статью " Работа с внешними таблицами".
Требования к вычислениям:
- Вычислительный ресурс, поддерживающий каталог Unity. См . статью "Перед началом работы".
Требования к объекту и разрешениям каталога Unity:
- Учетные данные хранилища для управляемого удостоверения Azure или служебного принципала, который разрешает каталогу Unity получить доступ к пути расположения таблиц.
- Внешнее расположение, которое ссылается на только что созданные учетные данные хранилища и путь к данным у облачного клиента.
- Разрешение
CREATE EXTERNAL TABLEна доступ к внешним расположениям таблиц, которые нужно обновить.
Требования к доступу к таблице Hive:
- Если вычислительные ресурсы используют стандартный режим доступа, вам потребуется доступ к таблицам в хранилище метаданных Hive, предоставленный с помощью устаревшего управления доступом к таблице. См . статью "Перед началом работы".
Процесс обновления
Чтобы преобразовать таблицы в хранилище метаданных Hive в внешние таблицы каталога Unity с использованием SYNC, выполните следующие действия:
В записной книжке или редакторе запросов SQL выполните одно из следующих действий:
Синхронизация внешней таблицы Hive:
SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> FROM hive_metastore.<source-schema>.<source-table> SET OWNER <principal>;Синхронизация внешней схемы Hive и всех ее таблиц:
SYNC SCHEMA <uc-catalog>.<new-schema> FROM hive_metastore.<source-schema> SET OWNER <principal>;Синхронизация управляемой таблицы Hive, хранящейся вне хранилища рабочей области Databricks:
SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> AS EXTERNAL FROM hive_metastore.<source-schema>.<source-table> SET OWNER <principal>;Синхронизация схемы, содержащей управляемые таблицы Hive, которые хранятся вне хранилища рабочей области Databricks:
SYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema> SET OWNER <principal>;Предоставьте пользователям или группам на уровне учетной записи доступ к новой таблице. См. статью Управление привилегиями в каталоге Unity.
(Необязательно) Добавьте комментарий в исходную таблицу Hive, которая указывает пользователям на новую таблицу каталога Unity.
Вернитесь к исходной таблице в каталоге
hive.metastore, чтобы добавить комментарий к таблице. Сведения о добавлении примечаний к таблицам с помощью обозревателя каталогов см. в статье "Добавление комментариев к данным и ресурсам ИИ". Сведения о добавлении примечаний к таблицам с помощью инструкций SQL в записной книжке или редакторе sql-запросов см. в COMMENT ON.Если вы используете следующий синтаксис в примечании таблицы, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий как предупреждение и предоставлять ссылку быстрого исправления в Genie Code, которая может обновить код для ссылки на новую таблицу.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.
После переноса таблицы пользователи должны обновить существующие запросы и рабочие нагрузки для ее использования.
Если вы добавили комментарий в исходную таблицу Hive, например в приведенном на предыдущем шаге, можно использовать Genie Code для поиска и изменения рабочих нагрузок. См. статью "Использование кода Genie" для обновления устаревшей ссылки на таблицу.
Перед удалением старой таблицы проверьте зависимости, отменив доступ к ней и повторно выполнив связанные запросы и рабочие нагрузки.
Не удаляйте старую таблицу, если вы по-прежнему полагаетесь на устаревшие комментарии, чтобы помочь вам найти и обновить существующий код, ссылающийся на старую таблицу. Аналогичным образом, не удалите старую таблицу, если эта таблица изменилась с момента исходной синхронизации:
SYNCможно использовать для обновления существующих таблиц каталога Unity с изменениями из исходных таблиц Hive.
Преобразование управляемой таблицы Hive в управляемую таблицу каталога Unity с использованием CLONE
Используйте CREATE TABLE CLONE для перевода управляемых таблиц Delta из вашего хранилища метаданных Hive в управляемые таблицы в каталоге Unity. Клонировать отдельные таблицы можно. При клонировании таблиц из устаревшего хранилища метаданных Hive в каталог Unity необходимо использовать глубокие клоны.
Для получения помощи в принятии решения, когда использовать CLONE, смотрите варианты миграции Hive на каталог Unity. Дополнительные сведения см. в CLONEразделе "Клонирование таблицы" в Azure Databricks.
Requirements
Требования к формату данных:
- Управляемые таблицы Hive в формате Delta.
Требования к вычислениям:
- Вычислительный ресурс, поддерживающий каталог Unity. См . статью "Перед началом работы".
Требования к разрешениям:
- Права
USE CATALOGиUSE SCHEMAна каталог и схему, к которой вы добавляете таблицу, а такжеCREATE TABLEна схему, или вы должны быть владельцем каталога или схемы. Смотрите справочник по привилегиям Unity Catalog. - Если вычислительные ресурсы используют стандартный режим доступа, вам потребуется доступ к таблицам в хранилище метаданных Hive, предоставленный с помощью устаревшего управления доступом к таблице. См . статью "Перед началом работы".
Процесс обновления
Чтобы обновить управляемые таблицы в хранилище метаданных Hive до управляемых таблиц в каталоге Unity:
В записной книжке или редакторе запросов SQL выполните одно из следующих действий:
Глубокое клонирование управляемой таблицы в метахранилище Hive.
CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table> DEEP CLONE hive_metastore.<source-schema>.<source-table>;Сведения о дополнительных параметрах, включая свойства таблицы, см. в CREATE TABLE CLONE.
Предоставьте пользователям или группам на уровне учетной записи доступ к новой таблице. См. статью Управление привилегиями в каталоге Unity.
(Необязательно) Добавьте комментарий в исходную таблицу Hive, которая указывает пользователям на новую таблицу каталога Unity.
Вернитесь к исходной таблице в каталоге
hive.metastore, чтобы добавить комментарий к таблице. Сведения о добавлении примечаний к таблицам с помощью обозревателя каталогов см. в статье "Добавление комментариев к данным и ресурсам ИИ". Сведения о добавлении примечаний к таблицам с помощью инструкций SQL в записной книжке или редакторе sql-запросов см. в COMMENT ON.Если вы используете следующий синтаксис в примечании таблицы, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий как предупреждение и предоставлять ссылку быстрого исправления в Genie Code, которая может обновить код для ссылки на новую таблицу.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.
После переноса таблицы пользователи должны обновить существующие запросы и рабочие нагрузки для ее использования.
Если вы добавили комментарий в исходную таблицу Hive, например в приведенном на предыдущем шаге, можно использовать Genie Code для поиска и изменения рабочих нагрузок. См. статью "Использование кода Genie" для обновления устаревшей ссылки на таблицу.
Перед удалением старой таблицы проверьте зависимости, отменив доступ к ней и повторно выполнив связанные запросы и рабочие нагрузки.
Не удаляйте старую таблицу, если вы по-прежнему полагаетесь на устаревшие комментарии, чтобы помочь вам найти и обновить существующий код, ссылающийся на старую таблицу. Аналогичным образом, не удаляйте старую таблицу, если вы выполнили поверхностное клонирование. Мелкие клоны ссылают данные из исходной таблицы Hive.
Обновление таблицы Hive в управляемую таблицу каталога Unity посредством CREATE TABLE AS SELECT
Если вы не можете использовать или не хотите использовать CREATE TABLE CLONE для переноса таблицы в хранилище метаданных Hive в управляемую таблицу в каталоге Unity, вы можете создать новую управляемую таблицу в каталоге Unity, запросив таблицу Hive с помощью CREATE TABLE AS SELECT. Дополнительные сведения о различиях между CREATE TABLE CLONE и CREATE TABLE AS SELECT см. в вариантах миграции Hive в каталог Unity.
Демонстрация обновления управляемой таблицы с помощью CREATE TABLE AS SELECTсм. в разделе "Управляемые таблицы в HMS без SYNC".
Requirements
Требования к вычислениям:
- Вычислительный ресурс, поддерживающий каталог Unity. См . статью "Перед началом работы".
Требования к разрешениям:
- Права
USE CATALOGиUSE SCHEMAна каталог и схему, к которой вы добавляете таблицу, а такжеCREATE TABLEна схему, или вы должны быть владельцем каталога или схемы. Смотрите справочник по привилегиям Unity Catalog. - Если вычислительные ресурсы используют стандартный режим доступа, вам потребуется доступ к таблицам в хранилище метаданных Hive, предоставленный с помощью устаревшего управления доступом к таблице. См . статью "Перед началом работы".
Процесс обновления
Обновление таблицы в хранилище метаданных Hive до управляемой таблицы в каталоге Unity с помощью CREATE TABLE AS SELECT:
Создайте новую таблицу каталога Unity, выполнив запрос к существующей таблице. Замените значения переменных.
-
<uc-catalog>: каталог Unity для новой таблицы. -
<uc-schema>: схема каталога Unity для новой таблицы. -
<new-table>: имя таблицы каталога Unity. -
<source-schema>: схема для таблицы Hive, напримерdefault. -
<source-table>: имя таблицы Hive.
SQL
CREATE TABLE <uc-catalog>.<new-schema>.<new-table> AS SELECT * FROM hive_metastore.<source-schema>.<source-table>;Python
df = spark.table("hive_metastore.<source-schema>.<source-table>") df.write.saveAsTable( name = "<uc-catalog>.<uc-schema>.<new-table>" )R
%r library(SparkR) df = tableToDF("hive_metastore.<source-schema>.<source-table>") saveAsTable( df = df, tableName = "<uc-catalog>.<uc-schema>.<new-table>" )Scala
val df = spark.table("hive_metastore.<source-schema>.<source-table>") df.write.saveAsTable( tableName = "<uc-catalog>.<uc-schema>.<new-table>" )Если требуется перенести только некоторые столбцы или строки, измените инструкцию
SELECT.Note
Команды, представленные здесь, создают управляемую таблицу, в которой данные копируются в выделенное управляемое хранилище. Если вместо этого вы хотите создать внешнюю таблицу, где таблица зарегистрирована в каталоге Unity без перемещения данных в облачном хранилище, см. статью "Обновление схемы или таблиц из хранилища метаданных Hive до внешних таблиц каталога Unity" с помощью мастера обновления. См. также раздел "Указание расположения управляемого хранилища" в каталоге Unity.
-
Предоставьте пользователям или группам на уровне учетной записи доступ к новой таблице. См. статью Управление привилегиями в каталоге Unity.
(Необязательно) Добавьте комментарий в исходную таблицу Hive, которая указывает пользователям на новую таблицу каталога Unity.
Вернитесь к исходной таблице в каталоге
hive.metastore, чтобы добавить комментарий к таблице. Сведения о добавлении примечаний к таблицам с помощью обозревателя каталогов см. в статье "Добавление комментариев к данным и ресурсам ИИ". Сведения о добавлении примечаний к таблицам с помощью инструкций SQL в записной книжке или редакторе sql-запросов см. в COMMENT ON.Если вы используете следующий синтаксис в примечании таблицы, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий как предупреждение и предоставлять ссылку быстрого исправления в Genie Code, которая может обновить код для ссылки на новую таблицу.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.
После переноса таблицы пользователи должны обновить существующие запросы и рабочие нагрузки для ее использования.
Если вы добавили комментарий в исходную таблицу Hive, например в приведенном на предыдущем шаге, можно использовать Genie Code для поиска и изменения рабочих нагрузок. См. статью "Использование кода Genie" для обновления устаревшей ссылки на таблицу.
Перед удалением старой таблицы проверьте зависимости, отменив доступ к ней и повторно выполнив связанные запросы и рабочие нагрузки.
Не удаляйте старую таблицу, если вы по-прежнему полагаетесь на устаревшие комментарии, чтобы помочь вам найти и обновить существующий код, ссылающийся на старую таблицу.
Перевод представления в каталог Unity
После обновления всех таблиц, на которые ссылается представление, до одного хранилища метаданных каталога Unity, можно создать новое представление , которое ссылается на новые таблицы.
Добавьте комментарии, чтобы указать, что таблица Hive была мигрирована
При добавлении комментария к устаревшей таблице Hive, который направляет пользователей на новую таблицу каталога Unity, записные книжки и запросы редактора запросов SQL, ссылающиеся на эту устаревшую таблицу Hive, будут отображать имя таблицы зачеркнутым текстом, показывать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления в Genie Code, которая может обновить ваш код для ссылки на новую таблицу.
Комментарий должен использовать следующий формат:
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Сведения о добавлении примечаний к таблицам с помощью обозревателя каталогов см. в статье "Добавление комментариев к данным и ресурсам ИИ". Сведения о добавлении примечаний к таблицам с помощью инструкций SQL в записной книжке или редакторе sql-запросов см. в COMMENT ON.
Использование Genie Code для обновления устаревшей ссылки на таблицу
Вы можете использовать Код Genie для замены ссылок на устаревшие таблицы хранилища метаданных Hive эквивалентами каталога Unity. Genie Code имеет расширенные возможности поиска таблиц, которые могут найти эквивалентную таблицу каталога Unity, даже если вы не знаете, где находится каталог. Попросите Genie Code заменить hive_metastore таблицу эквивалентной таблицей в каталоге Unity, и она выполняет поиск в каталоге, определяет лучшее соответствие на основе сходства схемы и обновляет код.
См. также функции и возможности Genie Code.