问题描述
在使用 HASHBYTES() 函数对 Synapse Serverless 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',fieldquote = '0x0b'
) with (rec nvarchar(max)) as csvdata;
此示例按预期生成哈希:
SELECT HASHBYTES('sha2_256','{"mydoc": {"key":"value"}}');
如果我首先创建一个外部表并在从外部表查询时使用 hashbytes() 函数,我也会收到错误。
预先感谢您的建议。