我想大致了解具有二级索引的写入重表的upsert性能。
索引包含表的所有字段(实际上,非行键字段的数量是一个,这是varbinary类型)。
我进行了粗略测试,结果如下:
使用带有PhoenixInputFormat的Apache Spark程序完成测试。
二级索引是全局可变的。
对于我来说,与没有二级索引的表相比,结果有点太慢了。
慢了大约4.7倍。我希望它会是2~2.5倍左右。 (因为它实际写入2个表)
这是典型的性能损失吗?
如果是这样,我认为我必须放弃一个(全局的,可变的)二次索引,用于写入繁重的表。
更新
我的测试集群由1个名称节点和3个数据节点组成。 (它很小)
数据节点机器规格如下:(绝不强大)
软件规格:
上传的记录数约为600万。它只有一列(数据类型为varbinary),它很小。 (远低于1k)