2017-05-21 5 views
0

Ich möchte Elasticsearch in meinem Projekt verwenden. Ich benutze Nodejs und postgresql.Elasticsearch jdbc-importer in Nodejs und postgresql

Ich möchte postgresql mit elasticsearch für diese Verbindung verbinden ich verwende jdbc-importer. Ich folgte den Schritten, die in ihren Dokumenten geschrieben wurden, um sich mit postgresql zu verbinden, und ich schaffte es, aber durch Befehlszeile.

Ich mag jdbc-Importeur in meinem Projekt durch NodeJS

commondline Code auszuführen jdbc Importeur verwenden:

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 

obigen Befehl Indexprodukt in Elasticsearch erstellt hat und es hat auch Daten aus Tabelle Products von postgresql.

Nun möchte ich diesen jdbc-Importeur durch nodejs verwenden und wenn jemand andere effiziente Möglichkeit zur Verwaltung meiner postgresql Daten in elasticsearch weiß, sind sie auch willkommen, um zu antworten.

Antwort

0

können Sie Logstash verwenden: https://www.elastic.co/blog/logstash-jdbc-input-plugin

Damit können Sie Daten von Postgres Transfer in Elasticsearch. Das ist meine Konfigurationsdatei:

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}" 
    } 
} 
Verwandte Themen