2017-05-21 12 views
0

自分のプロジェクト内でElasticsearchを使いたいです。私はNodejsとpostgresqlを使用しています。NodejsとpostgresqlのElasticsearch jdbc-importer

私はelasticsearchとpostgresqlを接続したいのですが、私はjdbc-importerを使っています。私はpostgresqlに接続するために彼らの文書に書かれた手順に従って、私はこれにsuccededしかし、コマンドラインを介して。

私はnodejsを通じて私のプロジェクト内のJDBCインポートツールを実行するための

commondlineコードをJDBC-インポートツールを使用したい:コマンド上記

bin=/Users/mac/Documents/elasticsearch-jdbc-2.3.4.1/bin 
lib=/Users/mac/Documents/elasticsearch-jdbc-2.3.4.1/lib 
echo '{ 
    "type" : "jdbc", 
    "jdbc" : { 
     "url" : 
     "jdbc:postgresql://localhost:5432/development", 
     "sql" : "select * from \"Products\"", 
     "index" : "product", 
     "type" : "product", 
    "elasticsearch" : { 
    "cluster" : "elasticsearch", 
    "host" : "localhost", 
    "port" : 9300 
} 
    } 
}' | java \ 
     -cp "${lib}/*" \ 
     org.xbib.tools.Runner \ 
     org.xbib.tools.JDBCImporter 

がelasticsearchで、インデックスの製品を作成して、それはまた、Productsテーブルからデータを持っていますpostgresqlの

ここで、nodejsでjdbcインポーターを使いたいと思います。もしelsoがelasticsearchで自分のpostgresqlデータを管理するための効率的な方法を知っているのであれば、それも歓迎します。あなたはElasticSearchへのPostgresからデータを転送することができ、それによって https://www.elastic.co/blog/logstash-jdbc-input-plugin

答えて

0

あなたはLogstashを使用することができます。これは私の設定ファイルです:

input { 
    jdbc { 
    # Postgres jdbc connection string to our database, mydb 
    jdbc_connection_string => "jdbc:postgresql://localhost:5432/MyDB" 
    # The user we wish to execute our statement as 
    jdbc_user => "postgres" 
    jdbc_password => "" 
    # The path to our downloaded jdbc driver 
    jdbc_driver_library => "postgresql-42.1.1.jar" 
    # The name of the driver class for Postgresql 
    jdbc_driver_class => "org.postgresql.Driver" 
    # our query 
    statement => "SELECT * from contacts" 
    } 
} 
output { 
    elasticsearch { 
    hosts => ["localhost:9200"] 
    index => "contacts" 
    document_type => "contact" 
    document_id => "%{uid}" 
    } 
} 
関連する問題