Logstash を使用して PostgreSQL (PG) から Elasticsearch (ES) にデータを同期するには、次の手順に従います。
-
Logstash をインストールして構成します。
- Logstash をダウンロードしてインストールします。オペレーティング システムのインストール パッケージは、Elasticsearch の公式 Web サイトから入手できます。
- 新しい Logstash 構成ファイル (例: 「pg_to_es.conf」) を作成します。
- 構成ファイルを開き、次のように構成します。
input { jdbc { jdbc_connection_string => "jdbc:postgresql://<PG_HOST>:<PG_PORT>/<PG_DATABASE>" jdbc_user => "<PG_USERNAME>" jdbc_password => "<PG_PASSWORD>" jdbc_driver_library => "<PATH_TO_PG_JDBC_DRIVER_JAR>" jdbc_driver_class => "org.postgresql.Driver" statement => "SELECT * FROM <PG_TABLE>" schedule => "* * * * *" } } output { elasticsearch { hosts => ["<ES_HOST>:<ES_PORT>"] index => "<ES_INDEX>" document_id => "%{id}" } }
<PG_HOST>
PostgreSQL のホスト名または IP アドレス、<PG_PORT>
PostgreSQL のポート番号、<PG_DATABASE>
データを同期するデータベースの名前、<PG_USERNAME>
および<PG_PASSWORD>
PG 認証情報に置き換えます。は、PostgreSQL JDBC ドライバー JAR ファイルへのパスに置き換えられます
。は、データが同期されるテーブルに置き換えられます。と をElasticsearch のホストとポート番号に置き換えます。データを書き込む Elasticsearch インデックス名に置き換えられます。オプションは同期頻度を設定します。上記の例では、毎分同期するように設定されています。必要に応じて調整できます。<PATH_TO_PG_JDBC_DRIVER_JAR>
<PG_TABLE>
<ES_HOST>
<ES_PORT>
<ES_INDEX>
schedule
-
Logstash を起動します。
- ターミナルまたはコマンド プロンプト ウィンドウを開きます。
- Logstash インストール ディレクトリに移動します。
- 次のコマンドを実行して Logstash を起動し、データ同期を開始します。
bin/logstash -f pg_to_es.conf
Logstash は、PostgreSQL の指定されたテーブルからデータを選択し、Elasticsearch の指定されたインデックスに書き込みます。要件に合わせて、必要に応じて構成ファイル内のオプションを調整できます。
このプロセスが機能するためには、適切なアクセスとネットワーク接続を確保し、正しいバージョンの PostgreSQL JDBC ドライバーと Logstash がインストールされていることを確認する必要があることに注意してください。