如果我事先不知道查询,我应该如何对 AWS Athena (Presto) 的数据进行分区?



我需要查询大数据事件 (TB(,并且我正在尝试正确分区。

我有客户,每个客户都有很多游戏。问题是我们查询的某些字段在某些事件中可能为 null,因此它们不能用作分区(例如:段(。

我想到了两个策略:

  1. 分区依据:客户端/游戏/日期 (S3(
  2. 每个客户端或游戏的表不同,并且仅按日期分区。 不同的桶。

选项 1,很简单 - 我在 where 子句中过滤。备选方案2,将要求工会。

对此类数据进行分区的正确方法是什么?我说的对了,是指最有效和最具成本效益?

里加德斯,伊多语

就大数据事件而言,事件的行为如下:多个客户端,每个客户端有多个游戏,每个游戏有多个事件,可以在日期上分区。

现在,对于不同的游戏,事件架构可能不同,因此,查询可能会以 null 值返回。不依赖于客户端。因此,对于不同的客户端和相同的游戏,事件架构应该是相同的。

因此,在客户端/游戏/日期和游戏/客户端/日期

之间,更好的方法是使用游戏/客户端/日期进行分区,因为上述分区会更有帮助,因为在分区的第一级之后,事件模式将是相同的。从查询的角度来看,对于没有游戏字段分区的查询,这不会有任何区别,但如果在查询中使用游戏分区字段,那么它会导致更高的效率。

相关内容

  • 没有找到相关文章