apachespark数据建模-我应该更喜欢非规范化还是连接来提高查询性能?

at0kjp5o  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(282)

我有两个逻辑数据表-第一个包含原始数据财务数据,每天约有5亿行。第二个是参考数据表,每天包含约10000行,约100列。原始数据中的每一行在引用数据中都有一个对应的行。
我需要运行特殊的spark查询,根据提供的参考数据参数来剪切、切片和聚合原始财务数据。
问题-最好是对数据进行反规范化,使每个原始数据行也包含所有100个引用数据项,还是通过某个键将原始数据连接到引用?

wz8daaqr

wz8daaqr1#

如果完全反规范化数据并将其写入parquet,性能将是最好的。与Parquet柱压缩,你会得到很大的压缩你的维度属性。
如果要连接这两个数据集,请确保使用广播连接。广播联接将把较小的表广播给所有Map器,并且您可以执行Map侧联接而无需无序移动
顺便说一句,测试这两个场景应该很快。然后您可以比较两个用例的性能和数据大小,并做出明智的决定

相关问题