2016-12-23 15 views
0

私は弾性インデックスを作成するためにlogstashを使用しています。手順は次のとおり 1. 3 DATASプラグインJDBC入力で取得さ 2 DATASは、(テンプレートの別名を含んで) 4. logstashログスタッシュ古いインデックスを置き換えます。

時間を停止elasticsearch出力プラグインで索引付けされ始めるlogstash私はインデックスmyindex-1を持っています。これは別名myindexでリクエストできます。 2回目に、インデックスmyindex-2を呼び出しました。このインデックスは別名myindexで要求できます。最初のインデックスは廃止予定です。削除する前に(またはステップ4の後)削除する必要があります。

あなたはこれを行う方法を知っていますか?

答えて

0

まず物事あなたは推奨されないインデックス名を知っていれば最初に、それはステップ5を追加するだけの問題だ:

curl -XDELETE 'http://localhost:9200/myindex-1' 

ですから、この追加のステップをスクリプトに実行し、あなたのlogstashをラップしたいです - 私の知る限り、索引を削除するためのlogstashのオプションはありません。単にその目的ではありません。

あなたの状況を説明する方法から、新しいインデックスの作成中にデータを利用可能にしているようですが、ユースケースについて少し詳しく説明できますか?

現在の手順では、インデックス作成期間中に重複データ(旧バージョンと新バージョン)が発生する可能性があります。

そこにデータを更新する必要性は確かにある、とあなたは別のアプローチを検討するかもしれない DBから取得したデータのidを持っていると仮定した場合:アクションを使用してlogstashで2つのelasticsearch出力を設定し、 最初の1以前のインデックスの古いエントリをターゲットにして "削除"に設定し、新しいインデックスに標準作成する 秒を設定します。

データの性質によっては、他の可能性もあります。

+0

そうです。私は、新しいインデックス作成中にデータを利用可能にしたいと思います。 2つの出力を持つソリューションは完全に完璧ではありません。例:表には1と2の2つの行が含まれています。したがって、最初の索引にはその2つの行が含まれています。 次に、行1が削除されます。最初の出力は、最初の出力ではなく、2番目の行のみを削除します(これ以上DBではないため)。 – 1lexis

+0

私はあなたが完璧な解決策を見つけるとは思わない。しかし私の提案に関しては、あなたはまだ古いインデックスの削除を保つだろう。 「最良の」ソリューションは、新しいインデックスの作成にどれくらいの時間がかかりますか、エンドユーザーの移行中に結果に重複が残るかどうか、保存する価値がある場合データの歴史(私の提案は本当に悪いだろう)、... – Olivier

関連する問題