Я получаю сообщение об ошибке. Запрос ссылается на объект, который не поддерживается в режиме распределенной обработки при использовании функции HASHBYTES () для хеширования строк в Synapse Serverless SQL Pool.
Конечная цель - разобрать json и сохранить его как паркет вместе с хешем документа json. Хэш будет использоваться в будущем импорте новых снимков для идентификации различий.
Вот пример запроса, который вызывает ошибку:
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 () при запросе из внешней таблицы.
Заранее благодарю за совет.
BULK 'json/*/*/*/*/*.json.gz'
, а затемFORMAT = 'csv',
. Это верно? Также вы можете опубликовать пример значения столбцаrec
? Что за тип? Кстати, я видел ответ Рона, но мне было любопытно. - person Kashyap   schedule 07.01.2021{"mydoc": {"key":"value"}}
. Это то же самое, что и выше - я только что создал файл с несколькими сотнями строк для тестирования. - person jason   schedule 07.01.2021