azure-data-explorer - 无法使用 ADX 外部表“虚拟列”访问 ADLS Gen 2 中的文件
问题描述
我在 Azure Data Lake Gen 2 中有一个简单的文件夹树,它按日期分区,具有以下标准文件夹结构:{yyyy}/{MM}/{dd}。例如 /Container/folder1/sub_folder/2020/11/01
在每个叶子文件夹中,我有一些列数很少但没有时间戳的 CSV 文件(因为日期已经嵌入在文件夹名称中)。
我正在尝试创建一个包含日期虚拟列的 ADX 外部表,然后按日期查询 ADX 中的数据(这通常是 Hive 和大数据中众所周知的模式)。
.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:
如文档中所述,我尝试遵循多种类型的路径格式和 datetime_pattern,但没有任何效果。
有任何想法吗?
解决方案
根据您的描述,以下定义应该有效:
.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')
推荐阅读
- python - Python 章节分隔符
- c# - 将每个 xml 节点插入到 sql server 2008 表中
- c# - Windows 控制台奇怪的行为。C# 中的 Console.SetWindowSize 错误
- c# - C# WebApi 将请求转发到另一个域
- python - 该图没有相同的 x 和 y 维度?我不明白
- c# - 在 WPF 控件中嵌入 Windows 窗体面板
- python - 如何将dict转换为系列(dtype:object)
- python - 将 Paramiko AutoAddPolicy 与 pysftp 一起使用
- microsoft-graph-api - Microsoft Graph API:“更新事件”中的“responseRequested”属性不起作用
- javascript - 在 iphone chrome 浏览器中未使用 BLOB 对象下载文件