Читать таблицы Delta Lake (Synapse или внешнее расположение)
Важный
Azure HDInsight на AKS будет прекращено 31 января 2025 г. Узнайте больше о из этого объявления.
Необходимо перенести рабочие нагрузки в Microsoft Fabric или эквивалентный продукт Azure, чтобы избежать резкого завершения рабочих нагрузок.
Важный
Эта функция сейчас доступна в предварительной версии. Дополнительные условия использования для предварительных версий Microsoft Azure включают дополнительные юридические термины, применимые к функциям Azure, которые находятся в бета-версии, в предварительной версии или в противном случае еще не выпущены в общую доступность. Сведения об этой конкретной предварительной версии см. в Azure HDInsight в предварительной версии AKS. Для вопросов или предложений по функциям отправьте запрос на AskHDInsight с подробными сведениями и подписывайтесь на обновления в Azure HDInsight Community.
В этой статье представлен обзор чтения таблицы Delta Lake без доступа к хранилищу метаданных (Synapse или других хранилищ метаданных без общедоступного доступа).
Вы можете выполнять следующие операции с таблицами, используя Trino с HDInsight на базе AKS.
- УДАЛИТЬ
- ОБНОВЛЯТЬ
- ВСТАВКА
- ОБЪЕДИНЯТЬ
Необходимые условия
Создание схем и таблиц Delta Lake
В этом разделе показано, как создать таблицу Delta в существующем месте, предполагая, что у вас уже настроен каталог Delta Lake.
Используйте
Storage browser
на портале Azure, чтобы просмотреть учетную запись хранения, в которой находится базовый каталог вашей таблицы. Скорее всего, если эта таблица происходит из Synapse, она находится в каталогеsynapse/workspaces/.../warehouse/
, будет названа в соответствии с вашей таблицей и содержать каталог_delta_log
. ВыберитеCopy URL
из трех точек, расположенных рядом с папкой.Этот http-путь необходимо преобразовать в путь ABFS (файловая система Azure Blob):
Http-путь хранилища структурирован следующим образом:
https://{{AZURE_STORAGE_ACCOUNT}}.blob.core.windows.net/{{AZURE_STORAGE_CONTAINER}}/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/
Пути ABFS должны выглядеть следующим образом:
abfss://{{AZURE_STORAGE_CONTAINER}}@{{AZURE_STORAGE_ACCOUNT}}.dfs.core.windows.net/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/
Пример:
abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/
Создайте схему Delta Lake в Trino.
CREATE SCHEMA delta.default;
Кроме того, можно создать схему в определенной учетной записи хранения:
CREATE SCHEMA delta.default WITH (location = 'abfss://container@storageaccount.dfs.core.windows.net/trino/');
Используйте процедуру
register_table
для создания таблицы.CALL delta.system.register_table(schema_name => 'default', table_name => 'table_name', table_location => 'abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/');
Запросите таблицу для проверки.
SELECT * FROM delta.default.table_name
Сохранение таблиц Delta Lake в Synapse Spark
Используйте format("delta")
для сохранения кадра данных в виде разностной таблицы, а затем можно использовать путь, в котором вы сохранили кадр данных в виде разностного формата, чтобы зарегистрировать таблицу в Trino.
my_dataframe.write.format("delta").save("abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name")