DSE Search初期データの移行

データをDSE Searchに読み込むためのベスト・プラクティスとガイドライン。

データをDSE Searchに読み込むためのベスト・プラクティスとガイドライン。

データを初めてDataStax Enterprise(DSE)に読み込む際は、リソースの競合が発生するため、パフォーマンスを維持するための計画が必要です。
  • DSEはデータの書き込み時に効率的になります。
  • Apache Solrは検索インデックスの作成時に多くのリソースを消費します。
これらの2つのアクティビティーはリソースを取り合うため、最初のデータ読み込みの効率を最大限に高めるには、リソースを適切に割り当てる必要があります。

推奨事項

  • スループットを最大化するには、検索インデックス・データとDataStax Enterprise(Cassandra)のデータを個別の物理ディスクに格納します。

    個別のディスクを使用できない場合は、最低でも500 MB/秒の読み取り/書き込み速度(帯域幅)のSSDを使用することを推奨します。

  • OpsCenter 6.1 Repair Service(OpsCenter 6.1リペア・サービス)を有効にします。
また、計画ガイドの「メモリーに関する推奨事項」も参照してください。

初回の一括読み込み

DataStaxでは、以下の高レベルの手順に従うことを推奨しています。
  1. DSEをインストールし、検索ワークロード用のノードを構成します。
  2. CQL CREATE SEARCH INDEXコマンドを使用して、検索インデックスを作成します。
  3. インデックスを調整し、インデックス作成のスループットを最大化します。
  4. データ読み込みに関するベスト・プラクティスに従って、データをデータベースに読み込みます。たとえば、整合性レベルをLOCAL_ONE(CL.LOCAL_ONE)に設定し、書き込みタイムアウトを十分に大きい値に設定したドライバーを使用してデータを読み込みます。

    データの読み込みの完了後に時間差が生じる場合があります。これは、インデックスの作成が非同期であるためです。

  5. QueueSizeのインデックス作成をIndexPool MBeanを使用して確認します。インデックスのキュー・サイズが減少した後で、以下のCQLクエリーを実行してレコード数が予想どおりであることを確認します。
    SELECT count(*) FROM ks.table WHERE solr_query = '*:*';

新しいデータのインデックスは自動的に作成されます。

トラブルシューティング

レコード数が安定しない場合:
  • 削除されたミューテーションが一部のノードのnodetool tpstatsの出力に記録され、OpsCenter Repair Service(OpsCenterリペア・サービス)が有効になっていない場合は、これらのノードで手動リペアを実行します。
  • 削除されたミューテーションが存在しない場合は、system.logとSolr検証ログにインデックス作成エラーが記録されていないかどうかを確認します。