Azure 时序见解预览版编写的 Parquet 文件不可读

Parquet file written by Azure Time Series Insights Preview is not readable

我们有一个连接到事件中心的 Azure 时序见解预览版实例。传入的事件作为 parquet 文件写入相关的冷存储数据帐户。当我尝试使用各种阅读器(如 parquet-[head|cat|etc] cmd 工具)打开 parquet 文件时,出现错误。

parquet-head

的输出

org.apache.parquet.io.ParquetDecodingException: Can not read value at 0 in block -1 in file file:20200123140854700_c8876d10_01.parquet

这里是更详细的问题示例。这是 parquet-dump

的输出

$ parquet-dump 20200123140854700_c8876d10_01.parquet
row group 0 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- timestamp: INT64 SNAPPY DO:0 FPO:4 SZ:100/850/8.50 VC:100 ENC:PLAIN,RLE ST:[min: 2020-01-23T14:08:52.583+0000, max: 2020-01-23T14:08:52.583+0000, num_nulls: 0] id_string: BINARY SNAPPY DO:167 FPO:194 SZ:80/76/0.95 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[min: dabas96, max: dabas96, num_nulls: 0] dabasuploader_time_string: BINARY SNAPPY DO:313 FPO:855 SZ:705/2177/3.09 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[num_nulls: 0, min/max not defined] dabasuploader_prod_kwh_string: BINARY SNAPPY DO:1118 FPO:1139 SZ:62/58/0.94 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[min: 0, max: 0, num_nulls: 0] dabasuploader_pred_nxd_kwh_string: BINARY SNAPPY DO:1252 FPO:1488 SZ:319/390/1.22 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[num_nulls: 0, min/max not defined] dabasuploader_pred_today_kwh_string: BINARY SNAPPY DO:1650 FPO:1903 SZ:336/404/1.20 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[num_nulls: 0, min/max not defined] java.lang.IllegalArgumentException: [solpos_altitude_double] optional double solpos_altitude_double is not in the store: [[dabasuploader_time_string] optional binary dabasuploader_time_string (STRING), [dabasuploader_pred_nxd_kwh_string] optional binary dabasuploader_pred_nxd_kwh_string (STRING), [id_string] optional binary id_string (STRING), [timestamp] optional int64 timestamp (TIMESTAMP(MILLIS,true)), [dabasuploader_pred_today_kwh_string] optional binary dabasuploader_pred_today_kwh_string (STRING), [dabasuploader_prod_kwh_string] optional binary dabasuploader_prod_kwh_string (STRING)] 100

solpos_altitude_double 来自我们上传到 eventhub 的事件。我的意思是,我们称之为 solpos_altitude。根据文档,_double 后缀来自 TSI。

根据我能找到的所有 MS Azure 文档,读取 parquet 文件应该没有问题。

有人知道哪里出了问题吗? 如果需要更多信息,我很乐意提供。

我认为这是一个由更改数据架构(漂移架构)引起的已知问题。我们目前正在修复它。