【发布时间】:2017-03-29 10:20:24
【问题描述】:
在我的应用程序中,需要为 Map of Map(4 级嵌套地图)的 Map of Map 定义 Avro Schema。除了最后一个地图(最终内部地图)之外,我在每个级别都使用键。我想知道模式的优缺点是什么。性能有问题吗?
【问题讨论】:
-
无法回答。这取决于数据。如果绝对必要,4 级地图不一定是问题,但我怀疑不是。
-
应用程序的性能如何?
在我的应用程序中,需要为 Map of Map(4 级嵌套地图)的 Map of Map 定义 Avro Schema。除了最后一个地图(最终内部地图)之外,我在每个级别都使用键。我想知道模式的优缺点是什么。性能有问题吗?
【问题讨论】:
始终避免使用嵌套地图。
AVRO 文件格式是基于模式的。如果您使用嵌套映射,则设计模式将变得困难。 avro 也基于序列化技术工作。如果您要使用“字符串”,它可以正常工作,但不适用于其他数据类型。
【讨论】:
查看您的 Schema Map 的选择>>这意味着对于给定的键,您有很多值。
这是一个经典案例,您应该开始寻找像 parquet 这样的列式数据存储。
将 AVRO 与 parquet 混合使用并展平 Avro 架构。
parquet 是 Columnar 数据格式,它不会多次存储重复的数据,而只会存储一次。
使用 ORC,您最终会得到一个简单的 AVRO 架构
http://bytepadding.com/big-data/spark/read-write-parquet-files-using-spark/
【讨论】: