我一直在查看Athena和PrestoDB文档,找不到关于数组列中元素数量限制和/或最大总大小的任何引用。文件将采用Parquet格式,但是如果Parquet是限制因素,则可以协商。
这是已知的吗?
更多内容:
我将把数据推送到Fire Hose中,它将把Parquet文件发送到我计划使用Athena查询的S3。数据是S3 URI到一组ID的一对多映射,例如
s3://bucket/key_one, 123
s3://bucket/key_one, 456
....
s3://bucket/key_two, 321
s3://bucket/key_two, 654
...
或者,我可以用以下形式存储:
s3://bucket/key_one, [123, 456, ...]
s3://bucket/key_two, [321, 654, ...]
由于Parquet被压缩,所以我不关心S3上文件的大小。重复的URI应该通过压缩来处理。
更令人担忧的是,为了插入记录,我需要拨打Firehose的电话数量。在第一种情况下,每个(对象,ID)元组都有记录,其中每个对象大约有6000条记录。有一个“批处理”调用,但每个批处理限制为500条记录,因此我最终要进行多个调用。这段代码将在我试图节省执行时间的Lambda函数中执行。
答案 0 :(得分:0)
对于数组列类型中的元素数,从Presto / Athena一侧不应该有任何明确的限制。最终,它深入到了JVM限制,这将是巨大的。只要确保您有足够的节点内存来处理这些字段即可。如果您可以查看用例并避免存储非常大的列值(数组类型),那将是很好的选择