【发布时间】:2018-01-10 05:56:30
【问题描述】:
让 Athena 中有一个外部表,它指向 s3 上以 parquet 格式存储的大量数据。它包含很多列,并在一个名为“timeid”的字段上进行分区。现在,还有另一个将 timeid 映射到日期的外部表(小表)。
当较小的表也在 timeid 上进行分区并且我们将它们连接到它们的分区 id (timeid) 并将日期放入 where 子句中时,仅从包含与该日期对应的 timeids 的大表中扫描那些特定的记录。此处不扫描全部数据。
但是,如果较小的表未按 timeid 分区,则即使在日期列存在条件的情况下也会进行完整的数据扫描。
有没有办法避免在大分区表与未分区小表连接时进行全数据扫描?这是必需的,因为小表中每个 timeid 仅包含一条记录,并且可能不会为每个记录创建单独的文件。
【问题讨论】:
标签: amazon-web-services join partitioning amazon-athena