Я пытаюсь использовать Azure-Data-Explorer для создания временных рядов данных IoT, которые хранятся в Azure-Data-Lake-Gen2. Структура папок в Azure-Data-Lake — «архив/гггг/мм/дд/чч/*.json».
Идея такова:
Я попытался сделать первый шаг (в запросе Azure-Data-Explorer):
.create external table ExternalAdlGen2 (timestamp:datetime, timestamp2:datetime, deviceId:string, telemetry:dynamic)
kind=adl
partition format_datetime = "'year='yyyy/'month='MM/'day='dd/'hour='HH" by bin(timestamp, 1h)
dataformat=json
(
@h'abfss://filesystem@<storage acount name>.dfs.core.windows.net/archive/path;sharedkey=<access key>'
)
а также:
.create external table ExternalAdlGen2 (timestamp:datetime, timestamp2:datetime, deviceId:string, telemetry:dynamic)
kind=adl
partition format_datetime = "'year='yyyy/'month='MM/'day='dd/'hour='HH" by bin(timestamp, 1h)
dataformat=json
(
@h'abfss://filesystem@<storage acount name>.dfs.core.windows.net/archive/path;sharedkey=<access key>'
)
with
(
docstring = "Docs",
folder = "ExternalTables",
namePrefix = "Prefix"
)
Результатом является следующее сообщение об ошибке: "Ошибка. Я не смог проанализировать это, извините. clientRequestId: KustoWebV2; some_guid"
Есть ли у вас какие-либо предложения, как это сделать правильно?
Заранее спасибо.
в документации была ошибка, которая будет исправлена в ближайшее время.
в спецификации URL - замените @h'abfss://...
на h@'abfss://...
Правильно - двоеточие было опечаткой (исправлено в моем ответе) и не требуется. Если это все еще не работает для вас, поделитесь обновленной командой, которую вы пытались запустить.
Пробовал с самого начала без двоеточия. Я также попробовал это с демонстрационными утверждениями из сообщения в блоге связь. До сих пор не работает. Вот пример кода из упомянутого поста:
.create external table ExternalAdlGen2 (Timestamp:datetime, x:long, s:string) kind=adl partition by bin(Timestamp, 1d) dataformat=csv ( @h'abfss://[email protected]/path;secretKey' ) with ( docstring = "Docs", folder = "ExternalTables", namePrefix = "Prefix" )
в вашем примере все еще используется @h'
вместо h@'
- в моем первоначальном ответе я предложил вам использовать последний
Спасибо @Yoni. Я был так сосредоточен на двоеточии, что не узнал положение @
. Теперь это работает. Большое спасибо!
Теперь я столкнулся со следующей проблемой: я не могу создать сопоставление json, как описано в документации. Èrror Syntax error: Query could not be parsed
Я использую следующее сопоставление: .create external table ExternalTableJson json mapping "mappingName" '[{"column":"rownumber","datatype":"int","path":"$.rownumber"},{"column":"rowguid","path":"$.rowguid"}]'
Привет Йони, спасибо за ваш ответ. В документации нет двоеточия перед abfss. Просто для моего понимания: двоеточие нужно или нет? Пробовал уже без двоеточия... Заранее спасибо.