Azure Synapse无服务器.HashBytes:查询引用的对象在分布式处理模式下不受支持



我收到错误"该查询引用一个在分布式处理模式下不受支持的对象";当使用HASHBYTES((函数对Synapse无服务器SQL池中的行进行散列时。

最终目标是解析json,并将其与json文档的哈希一起存储为parquet。哈希将用于未来导入新快照以识别差异。

下面是一个产生错误的示例查询:

SELECT HASHBYTES('sha2_256', csvdata.rec)
FROM OPENROWSET(
BULK 'json/*/*/*/*/*.json.gz',
DATA_SOURCE = 'landingzone',
FORMAT = 'csv',
fieldterminator ='0x0b',
fieldquote = '0x0b'
) with (rec nvarchar(max)) as csvdata;

此示例还产生错误:

SELECT HASHBYTES('sha2_256', '{"mydoc": {"key":"value"}}')
FROM OPENROWSET(
BULK 'json/*/*/*/*/*.json.gz',
DATA_SOURCE = 'landingzone',
FORMAT = 'csv',
fieldterminator ='0x0b',
fieldquote = '0x0b'
) with (rec nvarchar(max)) as csvdata;

这个例子产生了一个预期的散列:

SELECT HASHBYTES('sha2_256', '{"mydoc": {"key":"value"}}');

如果我第一次创建一个外部表并在从外部表查询时使用hashbytes((函数,我也会收到错误。

提前感谢你的建议。

我想宣布,在Azure Synapse中的无服务器SQL池中,分布式查询(与外部表或openrowset一起使用时(现在支持Hashbytes函数!

在此链接上,您可以看到Azure Synapse SQL中支持的Transact-SQL功能。

Jason,很抱歉,外部表不支持hashbytes((。

此处提供了无服务器环境中支持的T-SQL命令列表。本文特别指出,诸如HASHBYTES((之类的加密函数(此处也列出(还不受支持。

相关内容

  • 没有找到相关文章

最新更新