如果在创建表时知道理想的数据位置或布局,我想避免 Impala 节点不必要地通过网络从其他节点请求数据。这对于“非加法”操作很有帮助,其中无论如何都需要分区中的所有记录在同一位置(节点)(例如百分位数)。
是否可以告诉 Impala 分区中的所有数据都应该始终位于任何 HDFS 副本的单个节点上?
在 Impala-SQL 中,我不确定“PARTITIONED BY”子句是否提供此功能。据我了解,Impala 将其分区分块到 HDFS 上的单独文件中,但 HDFS 不保证默认情况下相关文件或块的共同位置(而是试图实现相反的效果)。
发现了一些有关 Impala 对 HDFS 开发的影响的信息,但不清楚这些信息是否已经实施或仍在计划中:
http://www.slideshare.net/deview/aaron-myers-hdfs-impala (幻灯片 23-24)
提前谢谢大家。