我们是否能够使用 Azure Synapse sql 池(T-SQL 查询)和复杂查询来组合来自 datalake 的数据查询以读取 parquet 文件(使用 openrowset)和 Azure sql 数据库等其他来源。
这个想法是在同一个脚本查询中使用从 parquet 文件中提取数据以及从其他服务器(即 Synapse 中的 Azure sql)中提取数据。
我搜索了 Synapse 中的链接,但这需要将我们需要的所有表复制到 Synapse 数据库中。 你有什么建议吗? 谢谢。
Azure Synapse 工作区允许我们创建构建在数据湖之上的 SQL 数据库,但它不利用 Spark 进行管理。这种类型的数据库只能与无服务器 SQL 池一起使用。
以下是在 Synapse 无服务器 SQL 池中查询数据的示例:
SELECT *
FROM OPENROWSET(
BULK 'https://stgsynp.dfs.core.windows.net/folder02/employee/*.parquet',
FORMAT = 'PARQUET'
) AS rows;
正如您所提到的,ADLS 中有镶木地板文件。您还可以按照以下步骤操作并使用
OPENROWSET
:
第 1 步: 指向包含镶木地板文件的文件夹。
右键单击文件夹 选择文件格式。
它创建自动生成的代码,如下所示:
SELECT
TOP 100 *
FROM
OPENROWSET(
BULK 'https://stgsynp.dfs.core.windows.net/folder02/employee/**',
FORMAT = 'PARQUET'
) AS [result]
结果:
参考: 在 Azure Synapse 中使用 SQL 数据库查询数据湖 – 第 2 部分
注意:Azure Synapse 中的专用 SQL 池不支持 OPENROWSET 函数。