Не удается получить доступ к файлам в ADLS Gen 2 с помощью внешней таблицы ADX "Виртуальные столбцы"
У меня есть простое дерево папок в Azure Data Lake Gen 2, которое разбито по дате со следующей стандартной структурой папок: {yyyy} / {MM} / {dd}. например, / Контейнер / папка1/ подпапка /2020/11/01
В каждой конечной папке у меня есть несколько файлов CSV с несколькими столбцами, но без отметки времени (поскольку дата уже встроена в имя папки).
Я пытаюсь создать внешнюю таблицу ADX, которая будет включать виртуальный столбец даты, а затем запрашивать данные в ADX по дате (это хорошо известный шаблон в Hive и Big data в целом).
.create-or-alter external table TableName (col1:double, col2:double, col3:double, col4:double)
kind=adl
partition by (Date:datetime)
pathformat = ("/date=" datetime_pattern("year={yyyy}/month={MM}/day={dd}", Date))
dataformat=csv
(
h@'abfss://container@datalake_name.dfs.core.windows.net/folder1/subfolder/;{key}'
)
with (includeHeaders = 'All')
К сожалению, запрос к таблице завершается неудачно, а показ артефактов возвращает пустой список.
external_table("Table Name")
| take 10
.show external table Walmart_2141_OEE artifacts
за следующим исключением:
Query execution has resulted in error (0x80070057): Partial query failure: The parameter is incorrect. (message: 'path2
Parameter name: Argument 'path2' failed to satisfy condition 'Can't append a full path': at Concat in C:\source\Src\Common\Kusto.Cloud.Platform\Utils\UriPath.cs: line 25:
Я пытался следовать многим типам pathformats и datetime_pattern, как описано в документации, но ничего не помогло.
Есть идеи?
1 ответ
Согласно вашему описанию, следующее определение должно работать:
.create-or-alter external table TableName (col1:double, col2:double, col3:double, col4:double)
kind=adl
partition by (Date:datetime)
pathformat = (datetime_pattern("yyyy/MM/dd", Date))
dataformat=csv
(
h@'abfss://container@datalake_name.dfs.core.windows.net/folder1/subfolder;{key}'
)
with (includeHeaders = 'All')