Обновление таблиц и представлений 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, которые находятся в формате Delta, Parquet или Iceberg. Клонирование исходных таблиц Parquet и Iceberg имеет определенные требования и ограничения: см . сведения о требованиях и ограничениях для клонирования таблиц Parquet и Iceberg. Управляемое только Вы хотите перенести управляемые таблицы 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 с помощью Обозреватель каталога:

  1. Щелкните Значок каталогакаталог на боковой панели.
  2. В области каталога перейдите к каталогу hive_metastore и разверните узлы схемы.

Можно также найти определенную таблицу с помощью поля фильтра в области каталога.

Обновление схемы или нескольких таблиц из хранилища метаданных Hive до внешних таблиц каталога Unity с помощью мастера обновления

Вы можете скопировать полные схемы (базы данных) и несколько внешних или управляемых таблиц из хранилища метаданных Hive по умолчанию Azure Databricks в хранилище метаданных каталога Unity с помощью мастера обновления каталога Обозреватель каталога. Обновленные таблицы будут внешними таблицами в каталоге Unity.

Сведения о том, когда следует использовать мастер обновления, см. в разделе Hive по параметрам миграции каталога Unity.

Требования

Требования к формату данных:

Требования к вычислениям:

Требования к объекту и разрешениям каталога Unity:

  • Учетные данные хранилища для управляемого удостоверения Azure или субъекта-службы, который разрешает каталогу Unity получить доступ к пути расположения таблиц.
  • Внешнее расположение, которое использует только что созданные учетные данные хранилища и путь к данным в облачном арендаторе.
  • Разрешение CREATE EXTERNAL TABLE на обновление внешних расположений таблицы.

Требования к доступу к таблице Hive:

  • Если вычислительные ресурсы используют режим общего доступа, вам потребуется доступ к таблицам в хранилище метаданных Hive, предоставленный с помощью устаревшего управления доступом к таблице. См . статью "Перед началом работы".

Процесс обновления

  1. Щелкните Значок каталогакаталог на боковой панели, чтобы открыть Обозреватель каталога.

  2. Выберите hive_metastore в качестве каталога и укажите схему (базу данных), которую вы хотите обновить.

    Выбор базы данных

  3. Щелкните Обновить в правом верхнем углу представления сведений о схеме.

  4. Выберите все таблицы, которые требуется обновить, и щелкните Далее.

    С помощью мастера обновления можно обновить только внешние таблицы в форматах, поддерживаемых каталогом Unity.

  5. Задайте целевой каталог, схему (базу данных) и владельца для каждой таблицы.

    Пользователи смогут получить доступ к созданной таблице в контексте своих привилегий в каталоге и схеме.

    Владельцы таблиц имеют все права на таблицу, включая SELECT и MODIFY. Если вы не выберете владельца, управляемые таблицы создаются вместе с вами в качестве владельца. Databricks обычно рекомендует предоставить права владения таблицами группам. Дополнительные сведения о владении объектами в каталоге Unity см. в статье "Управление владением объектами каталога Unity".

    Чтобы назначить один и тот же каталог и схему нескольким таблицам, выберите таблицы и нажмите кнопку "Задать назначение ".

    Чтобы назначить одного владельца нескольким таблицам, выберите таблицы и нажмите кнопку "Задать владельца ".

  6. Просмотрите конфигурации таблицы. Чтобы изменить их, щелкните Назад.

  7. Щелкните Создать запрос на обновление.

    Появится редактор запросов с созданными инструкциями SQL.

  8. Выполните запрос.

    После выполнения запроса метаданные каждой таблицы копируются из хранилища метаданных Hive в каталог Unity. Эти таблицы помечаются как обновленные в мастере обновления.

  9. Определите избирательный контроль доступа с помощью вкладки Разрешения каждой новой таблицы.

  10. (Необязательно) Добавьте примечания к каждой обновленной таблице Hive, которая указывает пользователям на новую таблицу каталога Unity.

    Вернитесь к исходной таблице в каталоге hive.metastore , чтобы добавить комментарий к таблице.

    Если вы используете следующий синтаксис в примечании таблицы, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления на Databricks Assistant, которая может обновить код для ссылки на новую таблицу.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.

  11. Измените рабочие нагрузки, чтобы использовать новые таблицы.

    Если вы добавили комментарий в исходную таблицу Hive, например ту, которая указана на необязательном предыдущем шаге, вы можете использовать ссылку "Быстрое исправление " и помощник по Databricks, чтобы помочь вам найти и изменить рабочие нагрузки.

Обновление одной таблицы Hive до внешней таблицы каталога Unity с помощью мастера обновления

Вы можете скопировать одну таблицу из хранилища метаданных Hive по умолчанию в хранилище метаданных каталога Unity с помощью мастера обновления в каталоге Обозреватель

Сведения о том, когда следует использовать мастер обновления, см. в разделе Hive по параметрам миграции каталога Unity.

Требования

Требования к формату данных:

Требования к вычислениям:

Требования к объекту и разрешениям каталога Unity:

  • Учетные данные хранилища для управляемого удостоверения Azure или субъекта-службы, который разрешает каталогу Unity получить доступ к пути расположения таблицы.
  • Внешнее расположение, которое использует только что созданные учетные данные хранилища и путь к данным в облачном арендаторе.
  • Разрешение CREATE EXTERNAL TABLE на обновление внешних расположений таблицы.

Процесс обновления

Чтобы обновить внешнюю таблицу:

  1. Щелкните Значок каталогакаталог на боковой панели, чтобы открыть Обозреватель каталога.

  2. Выберите базу данных и таблицу, которую необходимо перевести.

  3. Щелкните "Обновить" в правом верхнем углу представления сведений о таблице.

  4. Выберите таблицу для обновления и нажмите кнопку "Далее".

  5. Выберите целевой каталог, схему (базу данных) и владельца.

    Пользователи смогут получить доступ к созданной таблице в контексте своих привилегий в каталоге и схеме.

    Владельцы таблиц имеют все права на таблицу, включая SELECT и MODIFY. Если вы не выберете владельца, управляемая таблица создается с вами в качестве владельца. Databricks обычно рекомендует предоставить права владения таблицами группам. Дополнительные сведения о владении объектами в каталоге Unity см. в статье "Управление владением объектами каталога Unity".

  6. Щелкните "Обновить" в правом верхнем углу представления сведений о таблице.

  7. Выберите таблицу для обновления и нажмите кнопку "Далее".

    Теперь метаданные таблицы копируются в каталог Unity, а новая таблица создана. Теперь можно использовать вкладку "Разрешения" для определения точного управления доступом.

  8. Используйте вкладку "Разрешения" , чтобы определить точное управление доступом.

  9. (Необязательно) Добавьте комментарий в таблицу Hive, которая указывает пользователям на новую таблицу каталога Unity.

    Вернитесь к исходной таблице в каталоге hive.metastore , чтобы добавить комментарий к таблице.

    Если вы используете следующий синтаксис в примечании таблицы, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления на Databricks Assistant, которая может обновить код для ссылки на новую таблицу.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.

  10. Измените существующие рабочие нагрузки, чтобы использовать новую таблицу.

    Если вы добавили комментарий в исходную таблицу 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:

  • Учетные данные хранилища для управляемого удостоверения Azure или субъекта-службы, который разрешает каталогу Unity получить доступ к пути расположения таблиц.
  • Внешнее расположение, которое использует только что созданные учетные данные хранилища и путь к данным в облачном арендаторе.
  • Разрешение CREATE EXTERNAL TABLE на обновление внешних расположений таблицы.

Требования к доступу к таблице Hive:

  • Если вычислительные ресурсы используют режим общего доступа, вам потребуется доступ к таблицам в хранилище метаданных Hive, предоставленный с помощью устаревшего управления доступом к таблице. См . статью "Перед началом работы".

Процесс обновления

Чтобы обновить таблицы в хранилище метаданных Hive до внешних таблиц каталога Unity, выполните SYNCследующее:

  1. В записной книжке или редакторе запросов 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>;
    
  2. Предоставьте пользователям или группам на уровне учетной записи доступ к новой таблице. См. статью Управление привилегиями в каталоге Unity.

  3. (Необязательно) Добавьте комментарий в исходную таблицу Hive, которая указывает пользователям на новую таблицу каталога Unity.

    Вернитесь к исходной таблице в каталоге hive.metastore , чтобы добавить комментарий к таблице. Сведения о добавлении примечаний к таблицам с помощью Обозреватель каталога см. в статье "Добавление комментариев markdown к объектам данных с помощью Обозреватель каталога". Сведения о добавлении примечаний к таблицам с помощью инструкций SQL в записной книжке или редакторе SQL-запросов см. в разделе COMMENT ON.

    Если вы используете следующий синтаксис в примечании таблицы, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления на Databricks Assistant, которая может обновить код для ссылки на новую таблицу.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.

  4. После переноса таблицы пользователи должны обновить существующие запросы и рабочие нагрузки для ее использования.

    Если вы добавили комментарий в исходную таблицу Hive, например ту, которая указана на необязательном предыдущем шаге, вы можете использовать ссылку "Быстрое исправление " и помощник по Databricks, чтобы помочь вам найти и изменить рабочие нагрузки.

  5. Перед удалением старой таблицы проверьте зависимости, отменив доступ к ней и повторно выполнив связанные запросы и рабочие нагрузки.

    Не удаляйте старую таблицу, если вы по-прежнему полагаетесь на устаревшие комментарии, чтобы помочь вам найти и обновить существующий код, ссылающийся на старую таблицу. Аналогичным образом, не удалите старую таблицу, если эта таблица изменилась с момента исходной синхронизации: SYNC можно использовать для обновления существующих таблиц каталога Unity с изменениями из исходных таблиц Hive.

Обновление управляемой таблицы Hive до управляемой таблицы каталога Unity с помощью CLONE

Используется CREATE TABLE CLONE для обновления управляемых таблиц в хранилище метаданных Hive до управляемых таблиц в каталоге Unity. Клонировать отдельные таблицы можно. Глубокие клоны копируют исходные данные таблицы в целевой объект клона в дополнение к существующим метаданным таблицы. Используйте глубокий клон, если планируется удалить исходную таблицу Hive. Неглубокие клоны не копируют файлы данных в целевой объект клонирования, но предоставляют им доступ по ссылке на исходные данные: метаданные таблицы эквивалентны источнику. Мелкие клоны являются более дешевыми для создания, но требуют, чтобы пользователи, запрашивающие данные в целевом объекте клонирования, также имели доступ к исходным данным.

Сведения о том, когда следует использовать CLONE, см. в статье Hive по параметрам миграции каталога Unity. Сведения о том, какой тип клона следует использовать, см. в разделе "Клонирование таблицы" в Azure Databricks.

Требования

Требования к формату данных:

Требования к вычислениям:

Требования к разрешениям:

  • USE SCHEMA Права USE CATALOG и привилегии каталога и схемы, к которым добавляется таблица, наряду с CREATE TABLE схемой, или вы должны быть владельцем каталога или схемы. См. статью Защищаемые объекты и привилегии Unity Catalog.
  • Если вычислительные ресурсы используют режим общего доступа, вам потребуется доступ к таблицам в хранилище метаданных Hive, предоставленный с помощью устаревшего управления доступом к таблице. См . статью "Перед началом работы".

Процесс обновления

Чтобы обновить управляемые таблицы в хранилище метаданных Hive до управляемых таблиц в каталоге Unity:

  1. В записной книжке или редакторе запросов SQL выполните одно из следующих действий:

    Глубокая клонирование управляемой таблицы в хранилище метаданных Hive:

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    DEEP CLONE hive_metastore.<source-schema>.<source-table>;
    

    Неглубокое клонирование управляемой таблицы в хранилище метаданных Hive:

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    SHALLOW CLONE hive_metastore.<source-schema>.<source-table>;
    

    Дополнительные сведения о дополнительных параметрах, включая свойства таблицы, см. в разделе CREATE TABLE CLONE.

  2. Предоставьте пользователям или группам на уровне учетной записи доступ к новой таблице. См. статью Управление привилегиями в каталоге Unity.

  3. (Необязательно) Добавьте комментарий в исходную таблицу Hive, которая указывает пользователям на новую таблицу каталога Unity.

    Вернитесь к исходной таблице в каталоге hive.metastore , чтобы добавить комментарий к таблице. Сведения о добавлении примечаний к таблицам с помощью Обозреватель каталога см. в статье "Добавление комментариев markdown к объектам данных с помощью Обозреватель каталога". Сведения о добавлении примечаний к таблицам с помощью инструкций SQL в записной книжке или редакторе SQL-запросов см. в разделе COMMENT ON.

    Если вы используете следующий синтаксис в примечании таблицы, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления на Databricks Assistant, которая может обновить код для ссылки на новую таблицу.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.

  4. После переноса таблицы пользователи должны обновить существующие запросы и рабочие нагрузки для ее использования.

    Если вы добавили комментарий в исходную таблицу Hive, например ту, которая указана на необязательном предыдущем шаге, вы можете использовать ссылку "Быстрое исправление " и помощник по Databricks, чтобы помочь вам найти и изменить рабочие нагрузки.

  5. Перед удалением старой таблицы проверьте зависимости, отменив доступ к ней и повторно выполнив связанные запросы и рабочие нагрузки.

    Не удаляйте старую таблицу, если вы по-прежнему полагаетесь на устаревшие комментарии, чтобы помочь вам найти и обновить существующий код, ссылающийся на старую таблицу. Аналогичным образом, не сбрасывайте старую таблицу, если вы выполнили неглубокий клон. Мелкие клоны ссылают данные из исходной таблицы 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.

Требования

Требования к вычислениям:

Требования к разрешениям:

  • USE SCHEMA Права USE CATALOG и привилегии каталога и схемы, к которым добавляется таблица, наряду с CREATE TABLE схемой, или вы должны быть владельцем каталога или схемы. См. статью Защищаемые объекты и привилегии Unity Catalog.
  • Если вычислительные ресурсы используют режим общего доступа, вам потребуется доступ к таблицам в хранилище метаданных Hive, предоставленный с помощью устаревшего управления доступом к таблице. См . статью "Перед началом работы".

Процесс обновления

Обновление таблицы в хранилище метаданных Hive до управляемой таблицы в каталоге Unity с помощью CREATE TABLE AS SELECT:

  1. Создайте новую таблицу каталога 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.

  2. Предоставьте пользователям или группам на уровне учетной записи доступ к новой таблице. См. статью Управление привилегиями в каталоге Unity.

  3. (Необязательно) Добавьте комментарий в исходную таблицу Hive, которая указывает пользователям на новую таблицу каталога Unity.

    Вернитесь к исходной таблице в каталоге hive.metastore , чтобы добавить комментарий к таблице. Сведения о добавлении примечаний к таблицам с помощью Обозреватель каталога см. в статье "Добавление комментариев markdown к объектам данных с помощью Обозреватель каталога". Сведения о добавлении примечаний к таблицам с помощью инструкций SQL в записной книжке или редакторе SQL-запросов см. в разделе COMMENT ON.

    Если вы используете следующий синтаксис в примечании таблицы, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью зачеркнутого текста, отображать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления на Databricks Assistant, которая может обновить код для ссылки на новую таблицу.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    См. статью "Добавление комментариев", чтобы указать, что таблица Hive перенесена.

  4. После переноса таблицы пользователи должны обновить существующие запросы и рабочие нагрузки для ее использования.

    Если вы добавили комментарий в исходную таблицу Hive, например ту, которая указана на необязательном предыдущем шаге, вы можете использовать ссылку "Быстрое исправление " и помощник по Databricks, чтобы помочь вам найти и изменить рабочие нагрузки.

  5. Перед удалением старой таблицы проверьте зависимости, отменив доступ к ней и повторно выполнив связанные запросы и рабочие нагрузки.

    Не удаляйте старую таблицу, если вы по-прежнему полагаетесь на устаревшие комментарии, чтобы помочь вам найти и обновить существующий код, ссылающийся на старую таблицу.

Перевод представления в каталог Unity

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

Добавление комментариев, чтобы указать, что таблица Hive перенесена

При добавлении комментария в нерекомендуемую таблицу Hive, указывающую пользователей на новую таблицу каталога Unity, записные книжки и запросы редактора запросов SQL, ссылающиеся на устаревшую таблицу Hive, будут отображать нерекомендуемое имя таблицы с помощью нерекомендуемого текста, отображать комментарий в виде предупреждения и предоставлять ссылку быстрого исправления в Databricks Assistant, которая может обновить код для ссылки на новую таблицу.

Предупреждение об отмене таблицы Hive

Комментарий должен использовать следующий формат:

This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

Сведения о добавлении примечаний к таблицам с помощью Обозреватель каталога см. в статье "Добавление комментариев markdown к объектам данных с помощью Обозреватель каталога". Сведения о добавлении примечаний к таблицам с помощью инструкций SQL в записной книжке или редакторе SQL-запросов см. в разделе COMMENT ON.

Обновление устаревшей ссылки на таблицу с помощью Помощника по Databricks

Если вы видите зачеркнутый текст по имени таблицы в ячейке записной книжки или инструкции в редакторе запросов SQL, наведите указатель мыши на имя таблицы, чтобы отобразить предупреждение. Если это предупреждение описывает таблицу как нерекомендуемую и отображает новое имя таблицы, нажмите кнопку "Быстрое исправление", а затем исправление не рекомендуется. Откроется помощник по Databricks, предлагающий заменить устаревшее имя таблицы на новое имя таблицы каталога Unity. Следуйте инструкциям, чтобы завершить задачу.

Видео с обновлением таблицы Hive с помощью Помощника по Databricks

См. также помощник по Databricks.