Этап 3. Хранилище метаданных Hive и миграция данных

Эта статья является 3-й фазой из 4 серий рекомендаций по лучшим практикам миграции от Azure Synapse Spark к Microsoft Fabric.

Используйте эту статью, когда вы будете готовы перенести каталог хранилища метаданных Hive и запланировать доступ к данным в Fabric. В этой статье рассматриваются два решения: миграция метаданных таблицы и использование ярлыков OneLake (без копирования) или перемещение данных в доступное хранилище.

В этой статье вы узнаете, как:

  • Оцените управляемые и внешние таблицы, чтобы определить подход к миграции.
  • Экспорт и импорт метаданных Hive Metastore с помощью рабочих процессов ноутбука.
  • Создайте сочетания клавиш OneLake для доступа к существующим источникам данных с нулевой копией.
  • Выберите сочетания клавиш, конвейеры копирования и средства массовой передачи данных для перемещения данных.

Подсказка

Создайте целевой Lakehouse с включенными схемами. Схемы Lakehouse позволяют упорядочивать таблицы в именованные коллекции (например, продажи, маркетинг, hr). Ассистент миграции Spark сопоставляет базу данных Synapse по умолчанию со схемой dbo, а дополнительные базы данных — с дополнительными схемами в том же Lakehouse. Схемы включены по умолчанию при создании нового Lakehouse на портале Fabric.

Полное руководство по миграции HMS см. в разделе "Миграция метаданных хранилища метаданных Hive".

Оценка управляемых и внешних таблиц

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

  • Внешние таблицы: Если данные находятся в ADLS 2-го поколения в формате Delta, создайте ярлыки OneLake, ведущие непосредственно к путям ADLS 2-го поколения. Перемещение данных не требуется.
  • Управляемые таблицы: Данные хранятся в внутреннем каталоге хранилища Synapse. Необходимо создать ярлыки OneLake для этого пути или скопировать данные в доступное расположение Azure Data Lake Storage второго поколения (ADLS Gen2).

Путь к каталогу управляемого хранилища таблиц Synapse:

abfss://<container>@<storage>.dfs.core.windows.net/synapse/workspaces/<workspace>/warehouse

Рабочий процесс миграции

Microsoft предоставляет записные книжки для экспорта и импорта при миграции хранилища метаданных Hive. Процесс состоит из двух этапов.

Полное руководство по миграции HMS см. в разделе "Миграция метаданных хранилища метаданных Hive".

Этап 1. Экспорт метаданных из Synapse

  1. Импортируйте экспортную записную книжку HMS в рабочую область Azure Synapse. Эта записная книжка запрашивает и экспортирует метаданные HMS баз данных, таблиц и секций в промежуточный каталог в OneLake.

  2. Настройка параметров. Задайте имя рабочей области Synapse, имена баз данных для экспорта и целевой Объект OneLake lakehouse для промежуточного хранения. API внутреннего каталога Spark используется для чтения объектов каталога.

  3. Запустите экспорт. Выполните все ячейки записной книжки. Метаданные записываются в раздел "Файлы" Fabric Lakehouse в структурированной иерархии папок.

Этап 2. Импорт метаданных в Fabric Lakehouse

  1. Создайте ярлыки для доступа к данным. Создайте ярлык в разделе "Файлы" в Lakehouse, указывая на каталог хранилища Synapse Spark. Это делает данные управляемой таблицы доступными для Fabric.

  2. Настройка сопоставлений хранилища. Для управляемых таблиц укажите WarehouseMappings для замены старых путей к каталогу хранилища Synapse на краткие пути в Fabric. Все управляемые таблицы преобразуются во внешние таблицы во время импорта.

  3. Запустите записную книжку импорта в Fabric для создания объектов каталога (баз данных, таблиц, секций) в Lakehouse с помощью API внутреннего каталога Spark.

  4. Проверяем подлинность. Убедитесь, что все импортированные таблицы отображаются в разделе таблиц пользовательского интерфейса Обозревателя Lakehouse.

Ограничения и рекомендации

  • Скрипты миграции используют внутренний API каталога Spark, а не прямые подключения к базе данных HMS. Это может не масштабироваться для очень крупных каталогов — для больших сред рассмотрите возможность изменения логики экспорта для запроса базы данных HMS напрямую.

  • Во время экспорта не гарантируется изоляция. Если вычисление Synapse Spark изменяет хранилище метаданных одновременно, могут появиться несогласованные данные. Запланируйте миграцию во время окна технического обслуживания.

  • Функции не включены в текущие скрипты миграции.

  • После миграции сочетания клавиш OneLake предоставляют текущий доступ к данным. Если Synapse продолжает запись в те же пути ADLS 2-го поколения, Fabric отображает обновленные данные с помощью сочетаний клавиш автоматически (синхронизация на уровне данных). Однако новые таблицы или изменения схемы в Synapse HMS не будут распространяться автоматически. Необходимо повторно запустить скрипты миграции или вручную создать новые таблицы в Fabric Lakehouse.

  • External Hive Metastore (Azure SQL DB/MySQL): Некоторые рабочие области Synapse используют внешний HMS, поддерживаемый База данных SQL Azure или База данных Azure для MySQL для сохранения метаданных каталога вне рабочей области и совместного использования с HDInsight или Databricks. Fabric не поддерживает подключение к внешнему хранилищу метаданных Hive— оно использует каталог Lakehouse исключительно. При использовании внешнего HMS необходимо перенести метаданные в каталог Fabric Lakehouse. Это можно сделать, запросив внешнюю базу данных HMS напрямую (через JDBC), чтобы экспортировать определения таблиц, а затем воссоздать их в Fabric с помощью Spark SQL или записных книжек импорта HMS. Обратите внимание, что внешняя поддержка HMS в Synapse устарела после Spark 3.4.

Подсказка

Для текущей синхронизации при активном использовании Synapse и Fabric: используйте сочетания клавиш OneLake для синхронизации на уровне данных (автоматически) и запланируйте периодические повторные запуски записных книжек экспорта и импорта HMS или создайте записную книжку выверки для обнаружения и синхронизации новых таблиц.

Параметры миграции данных

У вас есть данные в ADLS 2-го поколения, связанные с рабочей областью Synapse, которую необходимо сделать доступной в Fabric Lakehouse без ненужных дублирований данных. Выберите один из следующих подходов.

  • Ярлыки OneLake (рекомендуется, ноль-копия): Создание ярлыков в Fabric Lakehouse, указывающих на существующие пути ADLS Gen2. Данные в Delta-формате в разделе "Таблицы" автоматически регистрируются в каталоге Lakehouse. Данные CSV/JSON/Parquet приведены в разделе "Файлы". Перемещение данных не требуется.

  • mssparkutils fastcp: Для копирования данных из ADLS 2-го поколения в OneLake в записных книжках.

  • AzCopy: служебная программа командной строки для массового копирования данных из ADLS 2-го поколения в OneLake.

  • Data Factory Copy Activity: Используйте инструмент обработки данных Fabric (или существующие конвейеры ADF/Synapse) для копирования данных в Lakehouse.

  • Обозреватель службы хранилища Azure: Визуальный инструмент для перемещения файлов из ADLS 2-го поколения в OneLake.

Подсказка

По возможности отдавайте предпочтение быстрому доступу вместо перемещения данных. Ярлыки помогают избежать дублирования данных и затрат на хранение, а таблицы Delta в разделе "Таблицы" автоматически обнаруживаются в конечной точке аналитики SQL и Power BI.