Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Начальный шаг миграции хранилища метаданных Hive (HMS) включает определение баз данных, таблиц и секций, которые требуется перенести. Не обязательно переносить все. можно выбрать определенные базы данных. При идентификации баз данных для миграции убедитесь, что существуют ли управляемые или внешние таблицы Spark.
Рекомендации по HMS см. в различиях между Azure Synapse Spark и Fabric.
Примечание.
Кроме того, если ADLS 2-го поколения содержит таблицы Delta, можно создать ярлык OneLake для таблицы Delta в ADLS 2-го поколения.
Предварительные условия
- Если у вас еще нет, создайте Fabric рабочую область в вашем тенанте.
- Если у вас еще нет, создайте в вашем рабочем пространстве Fabric lakehouse.
Вариант 1. Экспорт и импорт HMS в хранилище метаданных Lakehouse
Выполните следующие ключевые действия для миграции:
- Шаг 1. Экспорт метаданных из исходного HMS
- Шаг 2. Импорт метаданных в Fabric lakehouse
- Этапы после миграции. Проверка содержимого
Примечание.
Скрипты копируют только объекты каталога Spark в Fabric lakehouse. Предполагается, что данные уже скопированы (например, из расположения склада в ADLS Gen2) или доступны для управляемых и внешних таблиц (например, через предпочтительные ссылки) в Fabric lakehouse.
Шаг 1. Экспорт метаданных из исходного HMS
На шаге 1 основное внимание уделяется экспорту метаданных из исходной системы HMS в раздел "Файлы" вашего Fabric lakehouse. Этот процесс выглядит следующим образом:
1.1) Импортируйте записную книжку экспорта метаданных HMS в рабочую область Azure Synapse. Эта записная книжка запрашивает и экспортирует метаданные HMS баз данных, таблиц и секций в промежуточный каталог в OneLake (функции, которые еще не включены). API внутреннего каталога Spark используется в этом скрипте для чтения объектов каталога.
1.2) Настройте параметры в первой команде для экспорта метаданных в промежуточное хранилище (OneLake). Следующий фрагмент кода используется для настройки параметров источника и назначения. Обязательно замените их собственными значениями.
// Azure Synapse workspace config var SynapseWorkspaceName = "<synapse_workspace_name>" var DatabaseNames = "<db1_name>;<db2_name>" var SkipExportTablesWithUnrecognizedType:Boolean = false // Fabric config var WorkspaceId = "<workspace_id>" var LakehouseId = "<lakehouse_id>" var ExportFolderName = f"export/${SynapseWorkspaceName}/sparkCatalogMetadata" var OutputFolder = f"abfss://${WorkspaceId}@onelake.dfs.fabric.microsoft.com/${LakehouseId}/Files/${ExportFolderName}/"1.3) Выполните все команды записной книжки для экспорта объектов каталога в OneLake. После завершения ячеек создается эта структура папок в промежуточном выходном каталоге.
Шаг 2. Импорт метаданных в Fabric lakehouse
Шаг 2 заключается в том, что фактические метаданные импортируются из промежуточного хранилища в Fabric lakehouse. Выходные данные этого шага — все метаданные HMS (базы данных, таблицы и секции) перенесены. Этот процесс выглядит следующим образом:
2.1) Создайте ярлык в разделе "Файлы" лейкхауса. Этот ярлык должен указывать на исходный каталог хранилища Spark и позже используется для замены управляемых таблиц Spark. См. примеры сочетаний клавиш, указывающие на каталог хранилища Spark:
- Краткий путь к каталогу директории хранилища Azure Synapse Spark:
abfss://<container>@<storage_name>.dfs.core.windows.net/synapse/workspaces/<workspace_name>/warehouse - Краткий путь к каталогу хранилища Azure Databricks:
dbfs:/mnt/<warehouse_dir> - Краткий путь к каталогу хранилища HDInsight Spark:
abfss://<container>@<storage_name>.dfs.core.windows.net/apps/spark/warehouse
- Краткий путь к каталогу директории хранилища Azure Synapse Spark:
2.2) Импортируйте в ваш рабочий стол Fabric блокнот с метаданными HMS. Импортируйте эту записную книжку , чтобы импортировать объекты базы данных, таблицы и секционирования из промежуточного хранилища. API внутреннего каталога Spark используется в этом скрипте для создания объектов каталога в Fabric.
2.3) Настройка параметров в первой команде. В Apache Spark при создании управляемой таблицы данные для этой таблицы хранятся в расположении, управляемом самой Spark, как правило, в каталоге хранилища Spark. Точное расположение определяется программой Spark. Это контрастирует с внешними таблицами, где вы указываете расположение и управляете базовыми данными. При переносе метаданных управляемой таблицы (без перемещения фактических данных) метаданные по-прежнему содержат исходные сведения о расположении, указывающие на старый каталог хранилища Spark. Поэтому для управляемых таблиц
WarehouseMappingsиспользуется для выполнения замены с помощью ярлыка, созданного на шаге 2.1. Все управляемые исходные таблицы преобразуются в внешние таблицы с помощью этого скрипта.LakehouseIdотносится к lakehouse, созданному на этапе 2.1, содержащему ярлыки.// Azure Synapse workspace config var ContainerName = "<container_name>" var StorageName = "<storage_name>" var SynapseWorkspaceName = "<synapse_workspace_name>" // Fabric config var WorkspaceId = "<workspace_id>" var LakehouseId = "<lakehouse_id>" var ExportFolderName = f"export/${SynapseWorkspaceName}/sparkCatalogMetadata" var ShortcutName = "<warehouse_dir_shortcut_name>" var WarehouseMappings:Map[String, String] = Map( f"abfss://${ContainerName}@${StorageName}.dfs.core.windows.net/synapse/workspaces/${SynapseWorkspaceName}/warehouse"-> f"abfss://${WorkspaceId}@onelake.dfs.fabric.microsoft.com/${LakehouseId}/Files/${ShortcutName}" ) var OutputFolder = f"abfss://${WorkspaceId}@onelake.dfs.fabric.microsoft.com/${LakehouseId}/Files/${ExportFolderName}/" var DatabasePrefix = "" var TablePrefix = "" var IgnoreIfExists = true2.4) Выполните все команды записной книжки для импорта объектов каталога из промежуточного пути.
Примечание.
При импорте нескольких баз данных можно (i) создать отдельный lakehouse для каждой базы данных (подход, используемый здесь) или (ii) переместить все таблицы из разных баз данных в один lakehouse. В последнем случае все перенесенные таблицы могут быть <lakehouse>.<db_name>_<table_name>, и необходимо изменить настройку тетради импорта соответствующим образом.
Шаг 3. Проверка содержимого
Шаг 3 — это проверка успешности переноса метаданных. См. различные примеры.
Базы данных, импортированные, можно просмотреть, выполнив следующие действия:
%%sql
SHOW DATABASES
Чтобы проверить все таблицы в lakehouse (базе данных), выполните следующие действия:
%%sql
SHOW TABLES IN <lakehouse_name>
Подробные сведения о конкретной таблице можно просмотреть, выполнив следующую команду:
%%sql
DESCRIBE EXTENDED <lakehouse_name>.<table_name>
Кроме того, все импортированные таблицы отображаются в разделе "Таблицы пользовательского интерфейса обозревателя Lakehouse" для каждого озера.
Другие вопросы
- Масштабируемость: решение использует внутренний API каталога Spark для импорта и экспорта, но оно не подключается непосредственно к HMS для получения объектов каталога, поэтому решение не может масштабироваться, если каталог велик. Необходимо изменить логику экспорта с помощью базы данных HMS.
- Точность данных: нет гарантии изоляции, что означает, что если подсистема вычислений Spark выполняет одновременные изменения в хранилище метаданных во время выполнения записной книжки миграции, несогласованные данные могут быть представлены в Fabric lakehouse.
Связанный контент
- Fabric и Azure Synapse Spark
- Дополнительные сведения о вариантах миграции для пулов Spark, конфигураций, библиотек, ноутбуков и определение задания Spark