1

セカンダリ インデックスを持つ書き込み負荷の高いテーブルでの upsert のパフォーマンスについて大まかに把握したいと思います。

インデックスには、テーブルのすべてのフィールドがあります (実際には、非行キー フィールドの数は 1 つ、これは varbinary 型です)。

大まかなテストを実行しましたが、結果は次のとおりです。

  • セカンダリ インデックスを持つテーブル: 4.3 分
  • セカンダリ インデックスのないテーブル: 53 秒

このテストは、PhoenixInputFormat を使用した Apache Spark プログラムで行われます。

セカンダリ インデックスはグローバルに変更可能です。

結果は、私にとっては、セカンダリ インデックスのないテーブルに比べてやや遅すぎます。

約 4.7 倍遅いです。2~2.5倍くらいにしてほしいです。(実際には2つのテーブルに書き込むため)

これは典型的なパフォーマンスの低下ですか?

もしそうなら、書き込みの多いテーブルの (グローバルで変更可能な) セカンダリ インデックスをあきらめる必要があると思います。

アップデート

私のテスト クラスタは、1 つの名前ノードと 3 つのデータ ノードで構成されています。(小さいです)

データ ノード マシンの仕様は次のとおりです: (決して強力ではありません)

  • CPU: Core i7-4790 (コア数: 4、スレッド数: 8)
  • RAM:32GB(8GB×4)
  • HDD:8TB(2TB×4)
  • ネットワーク: 1Gb

ソフトウェア仕様:

  • Hadoop: Hortonworks HDP 2.2 (Hadoop 2.6)
  • アパッチ スパーク: 1.3.0
  • アパッチ フェニックス: 4.3.1

アップサートされたレコードの数は約 600 万です。列が 1 つしかなく (データ型は varbinary)、小さいです。(1k を大きく下回る)

4

0 に答える 0