Parquet 或 Avro 数据格式的外部 Table 抛出错误

External Table for Parquet or Avro data format throws error

我创建了一个外部 table 来从 ADLS 中获取 Parquet 数据,但抛出了以下错误。

Query execution has resulted in error (0x80131500): Partial query failure: 0x80131500 (message: 'Input parquet file is ill-formed and cannot be processed: 'not a Parquet file (size too small)'.: ', details: 'Source: Kusto.Common.Svc [0]Kusto.Common.Svc.Exceptions.IngestionSourceParquetReaderException: Input parquet file is ill-formed and cannot be processed: 'not a Parquet file (size too small)'. Timestamp=2020-05-07T11:22:42.0340199Z

ADLS 文件夹结构:- 日志/{AppId}/2020/05/07

外部Table定义:

.create external table ExTParquet (AppId:string,UserId:string,Email:string,RoleName:string,Operation:string,EntityId:string,EntityType:string,EntityName:string,TargetTitle:string,Params:string,EventProcessedUtcTime:datetime,PartitionId:string,EventEnqueuedUtcTime:datetime) 
kind=blob
partition by 
   AppId,
   bin(EventProcessedUtcTime,1d)
dataformat=parquet
( 
   h@'https://streamoutalds2.blob.core.windows.net/stream-api-raw-parquet/logs;secret_key'
)
with 
(
   folder = "ExternalTables"   
)

注意:如果我提供完整的文件路径并从外部 Table 定义中删除源目录分区,则效果很好。 但是我需要为目录中的所有文件准备数据,而不仅仅是一个文件。

非常感谢任何帮助。

这是一个正在解决的已知问题。您可以打开支持票证 (Azure Data Explorer)。问题解决后,该团队也会 post 在这里更新。

[编辑]问题应该已经解决了。