有人知道在使用 impala 时如何选择数据模型吗?

Does anybody know how to choose the data model when using impala?

有几种文件格式,例如 impala 内部 table 或外部 table 格式,例如 csv、parquet、hbase。现在我们需要保证平均插入率是50K row/s 并且每行大约是1K。并且,一些数据还可以偶尔更新。我们还需要对这些数据做一些聚合操作。

我认为当使用 impala 和外部 table 时,Hbase 不是大型聚合计算的好选择。有人对此有什么建议吗?

谢谢,陈。

我从未使用过 Impala,但我可以根据我使用 Hive 的经验告诉您一些事情。

如果你有一个好的键设计和一个合适的模式,HBase 会更快,因为就像 Hive 一样,Impala 会将你的 WHERE 翻译成扫描过滤器,这在很大程度上取决于类型查询你运行。有多种技术可以减少作业读取的数据量:从提供开始和停止行键、时间范围、仅读取一些 families/columns、已经提到的过滤器等简单技术到更复杂的解决方案,例如执行实时汇总您的数据 (*) 并将其作为计数器。

关于你的插入率,它可以通过适当的基础设施完美地处理它(最好使用 HBase 本机 JAVA API),此外,你可以缓冲你的写入以获得更好的性能.

*不确定 Impala 是否支持 HBase 计数器。