Kusto外部表路径格式:避免虚拟列补零匹配ADL分区
Kusto外部表无补零分区的pathformat正确写法
问题根源
你之前使用带补零的格式符(MM/dd/HH),会让Kusto去匹配如month=09这类带前导零的路径,但你的ADL分区是无补零的(如month=9),导致路径匹配失败。
正确格式符替换
将datetime_pattern中的补零格式符替换为不带补零的版本:
- 月份:
MM→M(匹配1-12的无补零月份) - 日期:
dd→d(匹配1-31的无补零日期) - 小时:
HH→H(匹配0-23的无补零小时)
完整创建语句示例
.create external table ExternalADLData ( EventTime: datetime, MetricValue: long, City: string ) kind=blob partition by ( EventTimePartition: datetime = bin(EventTime, 1h), City: string ) pathformat = ( "year=" datetime_pattern("yyyy", EventTimePartition) "/month=" datetime_pattern("M", EventTimePartition) "/day=" datetime_pattern("d", EventTimePartition) "/hour=" datetime_pattern("H", EventTimePartition) "/city=" City ) dataformat=csv storageaccount = "your_adl_storage_account" container = "your_container_name" folder = "ExternalTables"
注意事项
- 格式符必须和ADL分区目录的格式严格一致,Kusto会依据
pathformat定义的规则精准匹配分区路径,实现正确的分区裁剪。 - 虚拟列
EventTimePartition通过bin(EventTime, 1h)与小时分区对齐,能大幅提升查询效率,避免扫描无关分区。
内容的提问来源于stack exchange,提问作者Dhiraj
相关产品推荐
相关产品推荐

