1

我想大致了解具有二级索引的写入重表的 upsert 性能。

索引有表的所有字段(其实非行键字段的个数是1,就是varbinary类型)。

我进行了粗略的测试,结果如下:

  • 具有二级索引的表:4.3 分钟
  • 没有二级索引的表:53 秒

测试是使用带有 PhoenixInputFormat 的 Apache Spark 程序完成的。

二级索引是全局可变的。

对我来说,与没有二级索引的表相比,结果有点太慢了。

它慢了大约 4.7 倍。我希望它会在 2 ~ 2.5 倍左右。(因为它实际上写入 2 个表)

这是典型的性能损失吗?

如果是这样,我认为我必须为写繁重的表放弃一个(全局的、可变的)二级索引。

更新

我的测试集群由 1 个名称节点和 3 个数据节点组成。(很小)

数据节点机器规格如下:(绝不强大)

  • CPU:Core i7-4790(核心数:4,线程数:8)
  • 内存:32GB(8GB x 4)
  • 硬盘:8TB (2TB x 4)
  • 网络:1Gb

软件规格:

  • Hadoop:Hortonworks HDP 2.2(Hadoop 2.6)
  • 阿帕奇星火:1.3.0
  • 阿帕奇凤凰:4.3.1

更新的记录数约为 600 万。它只有一列(数据类型为 varbinary)而且很小。(远低于1k)

4

0 回答 0