Parquet 文件逻辑类型映射

Parquet file logical type mapping

在 parquet 文件中,数据存储在少量原始类型中。但是,存在高阶逻辑类型(也称为转换类型)的概念。例如,DECIMAL(10,2) 可以存储为长度为 3 的字节数组,即整数,其中除以 100 到固定精度小数由模式定义。

我的问题是:哪里有数值逻辑类型到DECIMAL等标识符的映射,又是如何进一步指定的? 据我了解,模式节俭规范块如下所示: thrift_spec = (0, type(I32), type_length(I32), repetition_type(I32), name(string), num_children(I32), converted_type(I32), ... ) 这是我所追求的最后一个变量的含义,规范中可能会包含哪些进一步的信息。

这里给出了一个简短的描述,所以我对 DECIMALs 的看法是正确的。其他的究竟如何使用仍然有些不透明。

https://github.com/Parquet/parquet-format/blob/master/src/thrift/parquet.thrift#L65

具体来说,要乘以的比例是 10**b,其中 b 是规范块中的下一个 32 位整数。