2017-01-05 5 views
0

I 2.0 Elasticsearch verwenden, i logtash verwenden die Daten in es .Die Daten zu setzen Clustergröße 98gb ist und es dauert fast einen Tag dieses Konfigurationsskriptelastische Server Bestücken logtash mit

# logstash -f logstash-all.conf file: simple-out.conf 
input { 
    jdbc { 
     # sqlserver jdbc connection string to our database, DB 
     jdbc_connection_string => "jdbc:sqlserver://dbaddress:1433;databaseName=DB" 
     # The user we wish to execute our statement as 
     jdbc_user => "abc" 
     jdbc_password => "[email protected]" 
     # The path to our downloaded jdbc driver 
     jdbc_driver_library => "C:/es/elasticsearch-2.2.0/elasticsearch-2.2.0/plugins/jdbc/sqljdbc4-4.0.jar" 
     # The name of the driver class for sql server 
     jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver" 
     # our query 
     statement => "SELECT * from abc" 
    } 
} 
output { 
    elasticsearch { 
     index => "reporting" 
     document_type => "perm" 
     document_id => "%{elasticid}" 
     hosts => "localhost" 
    } 
} 

Ist mit gibt es einen schnelleren Weg, um die Daten in elastischen Server von SQL Server abzuladen? ? Was ist Bedeutung der Datenordner in Elasticsearch bin-Verzeichnis Es scheint bevölkert werden, wenn das obige Skript

Dank läuft

+0

Müssen Sie alle Daten aus der Datenbank herunterladen, oder gibt es ein Zeitstempelfeld, in dem Sie einfach die neuen Daten abrufen können? –

+0

Ich muss die ganzen Daten herunterladen – baiduXiu

Antwort

0

Sie können Ihre Daten in ES mit einfachen Bash setzen, wie folgt aus:

curl -XPUT localhost:9200/megacorp/employee/3 -d '{ 
    "first_name" : "Douglas", 
    "last_name" : "Fir", 
    "age" : 35 
}' 

aber hier müssen Sie Ihren Datensatz von db in JSON exportieren.

Sie können auch Bulk-Einsatz, wie folgt verwenden:

curl -XPOST 'localhost:9200/megacorp/employee/_bulk?pretty' \ 
--data-binary "@/tmp/data.json" 

und Ihre @/tmp/data.json sollte aussehen wie:

{"index":{"_id":"11"}} 
{"name":"Amber","age":32} 
{"index":{"_id":"12"}} 
{"name":"Hattie","age":36} 

Hier können Sie nur Ihre Daten aus SQL Server in eine solche JSON-Datei Dump müssen.

+0

Dies ist die Verwendung der Curl Weg, ist nicht logtash bietet etwas aus der Box, um die großen Daten in ES – baiduXiu

+0

@Srisf Ich denke logstash unter der Haube Verwendung Curl zu ... nicht sicher, aber ich denke so ... –

+0

also, wenn ich eine Tabelle zu dump der Größe 100 GB habe, sollte ich 1 JSON-Datei erstellen, die alle Datensätze enthält und dann _bulk Befehl verwenden – baiduXiu