Обновление таблиц и представлений Hive до каталога Unity
В этой статье описывается обновление таблиц и представлений, зарегистрированных в существующем хранилище метаданных Hive рабочей области в каталог Unity. Вы можете обновить таблицу Hive до управляемой таблицы или внешней таблицы в каталоге Unity.
Управляемые таблицы — это предпочтительный способ создания таблиц в каталоге Unity. Каталог Unity полностью управляет жизненным циклом, макетом файлов и хранилищем. Каталог Unity также оптимизирует их производительность автоматически. Управляемые таблицы всегда используют формат таблицы Delta .
Управляемые таблицы находятся в управляемом расположении хранилища, резервируемого для каталога Unity. Из-за этого требования к хранилищу необходимо использовать CLONE или CREATE TABLE AS SELECT (CTAS), если вы хотите скопировать существующие таблицы Hive в каталог Unity в качестве управляемых таблиц.
Внешние таблицы — это таблицы , жизненный цикл данных, макет файла и расположение хранилища не управляются каталогом Unity. Для внешних таблиц поддерживаются несколько форматов данных.
Обычно внешние таблицы используются только в том случае, если вам также нужен прямой доступ к данным с помощью вычислений, отличных от Databricks (то есть не с помощью кластеров Databricks или хранилищ SQL Databricks). Внешние таблицы также удобны в сценариях миграции, так как можно быстро зарегистрировать существующие данные в каталоге Unity без необходимости копировать данные. Благодаря тому, что данные во внешних таблицах не должны находиться в зарезервированном управляемом хранилище.
Дополнительные сведения об управляемых и внешних таблицах в каталоге Unity см. в статье "Что такое таблицы и представления?".
Параметры миграции каталога 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, которые находятся в разностном формате. | Управляемое только | Вы хотите перенести управляемые таблицы Hive в управляемые таблицы каталога Unity, чтобы воспользоваться полным преимуществом управления данными каталога Unity, а таблицы Hive соответствуют критериям, перечисленным в ячейке "Требования к таблице Hive". Если таблицы Hive не соответствуют требованиям к таблице Hive, можно использовать команду CREATE TABLE AS SELECT SQL для обновления таблицы Hive до управляемой таблицы каталога Unity. Однако CLONE почти всегда предпочтительнее. Клонирование имеет более простой синтаксис, чем CREATE TABLE AS SELECT : вам не нужно указывать секционирование, формат, инвариантность, nullability, stream COPY INTO и другие метаданные, так как они клонируются из исходной таблицы. |
В этой статье описывается, как выполнить все, кроме процесса обновления на основе UCX. Databricks рекомендует UCX для большинства сценариев обновления рабочей области. Однако для более простых вариантов использования можно использовать один или несколько инструментов, описанных здесь.
Перед началом работы
В этом разделе описываются некоторые последствия миграции, которые необходимо подготовить, а также разрешения и требования к вычислительным ресурсам.
Общие сведения о влиянии
Следует учитывать, что при изменении рабочих нагрузок для использования новых таблиц каталога Unity может потребоваться изменить некоторые действия:
- Каталог Unity управляет секциями по-разному, чем Hive. Команды Hive, которые напрямую управляют секциями, не поддерживаются в таблицах, управляемых каталогом Unity.
- Журнал таблиц не переносится при запуске
CREATE TABLE CLONE
. Все таблицы в хранилище метаданных Hive, клонированные в каталог Unity, обрабатываются как новые таблицы. Невозможно выполнить путешествие по времени Delta Lake или другие операции, основанные на журнале предварительной миграции.
Дополнительные сведения см. в статье "Работа с каталогом Unity" и устаревшим хранилищем метаданных Hive.
Требования
Для выполнения миграции необходимо:
Рабочая область с хранилищем метаданных каталога Unity и по крайней мере одним каталогом каталога Unity. См. статью "Настройка каталога Unity" и управление ими.
Привилегии каталогов каталога Unity, в которые переносятся таблицы. Эти требования привилегий перечисляются в начале каждой процедуры, описанной в этой статье.
Для миграции в внешние таблицы каталога Unity: учетные данные хранения и внешние расположения, определенные в каталоге Unity, и
CREATE EXTERNAL TABLE
привилегии во внешнем расположении.Доступ к вычислительным ресурсам Azure Databricks, отвечающим обоим из следующих требований:
- Поддерживает каталог Unity (хранилища SQL или вычислительные ресурсы, использующие один пользователь или режим общего доступа).
- Разрешает доступ к таблицам в хранилище метаданных Hive.
Так как вычислительные ресурсы, использующие режим общего доступа, включены для управления доступом к устаревшим таблицам по умолчанию, это означает, что при использовании этого режима доступа необходимо иметь права управления доступом к таблицам в хранилище метаданных Hive, из которых выполняется миграция. Вы можете предоставить себе доступ с помощью следующей команды SQL:
GRANT ALL PRIVILEGES ON catalog hive_metastore TO `<user>`
Кроме того, вы можете использовать вычислительный ресурс в режиме однопользовательского доступа.
Дополнительные сведения об управлении привилегиями для объектов в хранилище метаданных Hive см. в разделе "Привилегии хранилища метаданных Hive" и защищаемые объекты (устаревшие версии). Дополнительные сведения об управлении привилегиями для объектов в хранилище метаданных каталога Unity см. в разделе "Управление привилегиями" в каталоге Unity.
Определение таблиц, управляемых хранилищем метаданных Hive
Чтобы определить, зарегистрирована ли таблица в каталоге Unity, проверьте имя каталога. Таблицы в каталоге hive_metastore
регистрируются в локальном хранилище метаданных Hive рабочей области. Все остальные каталоги, перечисленные в списке, управляются каталогом Unity.
Чтобы просмотреть таблицы в каталоге hive_metastore
с помощью обозревателя каталогов, выполните следующие действия.
- Щелкните каталог на боковой панели.
- В области каталога перейдите к каталогу
hive_metastore
и разверните узлы схемы.
Можно также найти определенную таблицу с помощью поля фильтра в области каталога.
Обновление схемы или нескольких таблиц из хранилища метаданных Hive до внешних таблиц каталога Unity с помощью мастера обновления
Вы можете скопировать полные схемы (базы данных) и несколько внешних или управляемых таблиц из хранилища метаданных Hive по умолчанию Azure Databricks в хранилище метаданных каталога Unity с помощью мастера обновления обозревателя каталогов. Обновленные таблицы будут внешними таблицами в каталоге Unity.
Сведения о том, когда следует использовать мастер обновления, см. в разделе Hive по параметрам миграции каталога Unity.
Требования
Требования к формату данных:
- См. статью " Работа с внешними таблицами".
Требования к вычислениям:
- Вычислительный ресурс, поддерживающий каталог Unity. См . статью "Перед началом работы".
Требования к объекту и разрешениям каталога Unity:
- Учетные данные хранилища для управляемого удостоверения Azure или субъекта-службы, который разрешает каталогу Unity получить доступ к пути расположения таблиц.
- Внешнее расположение, которое использует только что созданные учетные данные хранилища и путь к данным в облачном арендаторе.
- Разрешение
CREATE EXTERNAL TABLE
на обновление внешних расположений таблицы.
Требования к доступу к таблице Hive:
- Если вычислительные ресурсы используют режим общего доступа, вам потребуется доступ к таблицам в хранилище метаданных Hive, предоставленный с помощью устаревшего управления доступом к таблице. См . статью "Перед началом работы".
Процесс обновления
Щелкните каталог на боковой панели, чтобы открыть обозреватель каталогов.
Выберите
hive_metastore
в качестве каталога и укажите схему (базу данных), которую вы хотите обновить.Щелкните Обновить в правом верхнем углу представления сведений о схеме.
Выберите все таблицы, которые требуется обновить, и щелкните Далее.
С помощью мастера обновления можно обновить только внешние таблицы в форматах, поддерживаемых каталогом Unity. См. статью " Работа с внешними таблицами".
Задайте целевой каталог, схему (базу данных) и владельца для каждой таблицы.
Пользователи смогут получить доступ к созданной таблице в контексте своих привилегий в каталоге и схеме.
Владельцы таблиц имеют все права на таблицу, включая
SELECT
иMODIFY
. Если вы не выберете владельца, управляемые таблицы создаются вместе с вами в качестве владельца. Databricks обычно рекомендует предоставить права владения таблицами группам. Дополнительные сведения о владении объектами в каталоге Unity см. в статье "Управление владением объектами каталога Unity".Чтобы назначить один и тот же каталог и схему нескольким таблицам, выберите таблицы и нажмите кнопку "Задать назначение ".
Чтобы назначить одного владельца нескольким таблицам, выберите таблицы и нажмите кнопку "Задать владельца ".
Просмотрите конфигурации таблицы. Чтобы изменить их, щелкните Назад.
Щелкните Создать запрос на обновление.
Появится редактор запросов с созданными инструкциями SQL.
Выполните запрос.
После выполнения запроса метаданные каждой таблицы копируются из хранилища метаданных Hive в каталог Unity. Эти таблицы помечаются как обновленные в мастере обновления.
Определите избирательный контроль доступа с помощью вкладки Разрешения каждой новой таблицы.
(Необязательно) Добавьте примечания к каждой обновленной таблице Hive, которая указывает пользователям на новую таблицу каталога Unity.
Вернитесь к исходной таблице в каталоге
hive.metastore
, чтобы добавить комментарий к таблице.Если вы используете следующий синтаксис в примечании таблицы, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления на Databricks Assistant, которая может обновить код для ссылки на новую таблицу.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.
Измените рабочие нагрузки, чтобы использовать новые таблицы.
Если вы добавили комментарий в исходную таблицу Hive, например ту, которая указана на необязательном предыдущем шаге, вы можете использовать ссылку "Быстрое исправление " и помощник по Databricks, чтобы помочь вам найти и изменить рабочие нагрузки.
Обновление одной таблицы Hive до внешней таблицы каталога Unity с помощью мастера обновления
Вы можете скопировать одну таблицу из хранилища метаданных Hive по умолчанию в хранилище метаданных каталога Unity с помощью мастера обновления в обозревателе каталогов
Сведения о том, когда следует использовать мастер обновления, см. в разделе Hive по параметрам миграции каталога Unity.
Требования
Требования к формату данных:
- См. статью " Работа с внешними таблицами".
Требования к вычислениям:
- Вычислительный ресурс, поддерживающий каталог Unity. См . статью "Перед началом работы".
Требования к объекту и разрешениям каталога Unity:
- Учетные данные хранилища для управляемого удостоверения Azure или субъекта-службы, который разрешает каталогу Unity получить доступ к пути расположения таблицы.
- Внешнее расположение, которое использует только что созданные учетные данные хранилища и путь к данным в облачном арендаторе.
- Разрешение
CREATE EXTERNAL TABLE
на обновление внешних расположений таблицы.
Процесс обновления
Чтобы обновить внешнюю таблицу:
Щелкните каталог на боковой панели, чтобы открыть обозреватель каталогов.
Выберите базу данных и таблицу, которую необходимо перевести.
Щелкните "Обновить" в правом верхнем углу представления сведений о таблице.
Выберите таблицу для обновления и нажмите кнопку "Далее".
Выберите целевой каталог, схему (базу данных) и владельца.
Пользователи смогут получить доступ к созданной таблице в контексте своих привилегий в каталоге и схеме.
Владельцы таблиц имеют все права на таблицу, включая
SELECT
иMODIFY
. Если вы не выберете владельца, управляемая таблица создается с вами в качестве владельца. Databricks обычно рекомендует предоставить права владения таблицами группам. Дополнительные сведения о владении объектами в каталоге Unity см. в статье "Управление владением объектами каталога Unity".Щелкните "Обновить" в правом верхнем углу представления сведений о таблице.
Выберите таблицу для обновления и нажмите кнопку "Далее".
Теперь метаданные таблицы копируются в каталог Unity, а новая таблица создана. Теперь можно использовать вкладку "Разрешения" для определения точного управления доступом.
Используйте вкладку "Разрешения" , чтобы определить точное управление доступом.
(Необязательно) Добавьте комментарий в таблицу Hive, которая указывает пользователям на новую таблицу каталога Unity.
Вернитесь к исходной таблице в каталоге
hive.metastore
, чтобы добавить комментарий к таблице.Если вы используете следующий синтаксис в примечании таблицы, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления на Databricks Assistant, которая может обновить код для ссылки на новую таблицу.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.
Измените существующие рабочие нагрузки, чтобы использовать новую таблицу.
Если вы добавили комментарий в исходную таблицу Hive, например ту, которая указана на необязательном предыдущем шаге, вы можете использовать ссылку "Быстрое исправление " и помощник по Databricks, чтобы помочь вам найти и изменить рабочие нагрузки.
Примечание.
Если вам больше не нужна старая таблица, ее можно удалить из хранилища метаданных Hive. Удаление внешней таблицы не влияет на файлы данных в облачном арендаторе.
Обновление таблицы Hive до внешней таблицы каталога Unity с помощью SYNC
С помощью команды SQL можно скопировать внешние SYNC
таблицы в хранилище метаданных Hive в внешние таблицы в каталоге Unity. Вы можете синхронизировать отдельные таблицы или целые схемы.
Можно также использовать SYNC
для копирования управляемых таблиц Hive, хранящихся вне хранилища рабочей области Databricks (иногда называемого корневым каталогом DBFS) во внешние таблицы в каталоге Unity. Его нельзя использовать для копирования управляемых таблиц Hive, хранящихся в хранилище рабочей области. Чтобы скопировать эти таблицы, используйте вместо этого команду CREATE TABLE CLONE .
Команда SYNC
выполняет операцию записи в каждую исходную таблицу, в которой она обновляется, чтобы добавить дополнительные свойства таблицы для ведения книги, включая запись внешней таблицы каталога Unity.
SYNC
также можно использовать для обновления существующих таблиц каталога Unity при изменении исходных таблиц в хранилище метаданных Hive. Это делает его хорошим инструментом для перехода в каталог Unity постепенно.
Дополнительные сведения см. в разделе SYNC. Сведения о том, когда следует использовать мастер обновления, см. в разделе Hive по параметрам миграции каталога Unity.
Требования
Требования к формату данных:
- См. статью " Работа с внешними таблицами".
Требования к вычислениям:
- Вычислительный ресурс, поддерживающий каталог 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, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления на Databricks Assistant, которая может обновить код для ссылки на новую таблицу.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.
После переноса таблицы пользователи должны обновить существующие запросы и рабочие нагрузки для ее использования.
Если вы добавили комментарий в исходную таблицу Hive, например ту, которая указана на необязательном предыдущем шаге, вы можете использовать ссылку "Быстрое исправление " и помощник по Databricks, чтобы помочь вам найти и изменить рабочие нагрузки.
Перед удалением старой таблицы проверьте зависимости, отменив доступ к ней и повторно выполнив связанные запросы и рабочие нагрузки.
Не удаляйте старую таблицу, если вы по-прежнему полагаетесь на устаревшие комментарии, чтобы помочь вам найти и обновить существующий код, ссылающийся на старую таблицу. Аналогичным образом, не удалите старую таблицу, если эта таблица изменилась с момента исходной синхронизации:
SYNC
можно использовать для обновления существующих таблиц каталога Unity с изменениями из исходных таблиц Hive.
Обновление управляемой таблицы Hive до управляемой таблицы каталога Unity с помощью CLONE
Используйте CREATE TABLE CLONE
для обновления управляемых таблиц Delta в хранилище метаданных Hive до управляемых таблиц в каталоге Unity. Клонировать отдельные таблицы можно. При клонировании таблиц из устаревшего хранилища метаданных Hive в каталог Unity необходимо использовать глубокие клоны.
Сведения о том, когда следует использовать CLONE
, см. в статье Hive по параметрам миграции каталога Unity. Дополнительные сведения см. в CLONE
разделе "Клонирование таблицы" в Azure Databricks.
Требования
Требования к формату данных:
- Управляемые таблицы Hive в разностном формате.
Требования к вычислениям:
- Вычислительный ресурс, поддерживающий каталог Unity. См . статью "Перед началом работы".
Требования к разрешениям:
USE SCHEMA
ПраваUSE CATALOG
и привилегии каталога и схемы, к которым добавляется таблица, наряду с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, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления на Databricks Assistant, которая может обновить код для ссылки на новую таблицу.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.
После переноса таблицы пользователи должны обновить существующие запросы и рабочие нагрузки для ее использования.
Если вы добавили комментарий в исходную таблицу Hive, например ту, которая указана на необязательном предыдущем шаге, вы можете использовать ссылку "Быстрое исправление " и помощник по Databricks, чтобы помочь вам найти и изменить рабочие нагрузки.
Перед удалением старой таблицы проверьте зависимости, отменив доступ к ней и повторно выполнив связанные запросы и рабочие нагрузки.
Не удаляйте старую таблицу, если вы по-прежнему полагаетесь на устаревшие комментарии, чтобы помочь вам найти и обновить существующий код, ссылающийся на старую таблицу. Аналогичным образом, не сбрасывайте старую таблицу, если вы выполнили неглубокий клон. Мелкие клоны ссылают данные из исходной таблицы 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.
Требования
Требования к вычислениям:
- Вычислительный ресурс, поддерживающий каталог Unity. См . статью "Перед началом работы".
Требования к разрешениям:
USE SCHEMA
ПраваUSE CATALOG
и привилегии каталога и схемы, к которым добавляется таблица, наряду с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
.Примечание.
Команды, представленные здесь, создают управляемую таблицу, в которой данные копируются в выделенное управляемое хранилище. Если вместо этого вы хотите создать внешнюю таблицу, где таблица зарегистрирована в каталоге Unity без перемещения данных в облачном хранилище, см. статью "Обновление одной таблицы Hive до внешней таблицы каталога Unity с помощью мастера обновления". См. также раздел "Указание расположения управляемого хранилища" в каталоге Unity.
Предоставьте пользователям или группам на уровне учетной записи доступ к новой таблице. См. статью Управление привилегиями в каталоге Unity.
(Необязательно) Добавьте комментарий в исходную таблицу Hive, которая указывает пользователям на новую таблицу каталога Unity.
Вернитесь к исходной таблице в каталоге
hive.metastore
, чтобы добавить комментарий к таблице. Сведения о добавлении примечаний к таблицам с помощью обозревателя каталогов см. в статье "Добавление комментариев к данным и ресурсам ИИ". Сведения о добавлении примечаний к таблицам с помощью инструкций SQL в записной книжке или редакторе SQL-запросов см. в разделе COMMENT ON.Если вы используете следующий синтаксис в примечании таблицы, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления на Databricks Assistant, которая может обновить код для ссылки на новую таблицу.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.
После переноса таблицы пользователи должны обновить существующие запросы и рабочие нагрузки для ее использования.
Если вы добавили комментарий в исходную таблицу Hive, например ту, которая указана на необязательном предыдущем шаге, вы можете использовать ссылку "Быстрое исправление " и помощник по Databricks, чтобы помочь вам найти и изменить рабочие нагрузки.
Перед удалением старой таблицы проверьте зависимости, отменив доступ к ней и повторно выполнив связанные запросы и рабочие нагрузки.
Не удаляйте старую таблицу, если вы по-прежнему полагаетесь на устаревшие комментарии, чтобы помочь вам найти и обновить существующий код, ссылающийся на старую таблицу.
Перевод представления в каталог Unity
После переноса всех таблиц, на которые ссылается представление, в одно хранилище метаданных каталога Unity вы можете создать новое представление, которое будет ссылаться на новые таблицы.
Добавление комментариев, чтобы указать, что таблица Hive перенесена
При добавлении комментария в нерекомендуемую таблицу Hive, указывающую пользователей на новую таблицу каталога Unity, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью нерекомендуемого текста, отображать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления в Databricks Assistant, которая может обновить код для ссылки на новую таблицу.
Комментарий должен использовать следующий формат:
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Сведения о добавлении примечаний к таблицам с помощью обозревателя каталогов см. в статье "Добавление комментариев к данным и ресурсам ИИ". Сведения о добавлении примечаний к таблицам с помощью инструкций SQL в записной книжке или редакторе SQL-запросов см. в разделе COMMENT ON.
Обновление устаревшей ссылки на таблицу с помощью Помощника по Databricks
Если вы видите зачеркнутый текст по имени таблицы в ячейке записной книжки или инструкции в редакторе запросов SQL, наведите указатель мыши на имя таблицы, чтобы отобразить предупреждение. Если это предупреждение описывает таблицу как нерекомендуемую и отображает новое имя таблицы, нажмите кнопку "Быстрое исправление", а затем исправление не рекомендуется. Откроется помощник по Databricks, предлагающий заменить устаревшее имя таблицы на новое имя таблицы каталога Unity. Следуйте инструкциям, чтобы завершить задачу.
См. также помощник по Databricks.