Datenübertragung von SQL Server zum ElasticSearch-Knoten

8

Ich habe die Version Elastic Search 1.7 für meine Anwendung verwendet und unter Verwendung des Flusskonzepts habe ich die Daten von SQL Server für ElasticSearch mit dem folgenden Artikel aufgefüllt: Ссылка

%Vor%

Aber in der Dokumentation von elastic search 2.0 heißt es, dass die Flüsse veraltet sind. Gibt es eine bessere Möglichkeit, die Daten von SQL Server mit elastic search 2.0 nach elastic zu kopieren

Jedes alternative Codebeispiel wäre wirklich hilfreich

Danke

    
andy 20.03.2016, 07:38
quelle

3 Antworten

11

Sie sollten einen Blick darauf werfen: Ссылка

BEARBEITEN: Dies ist, was ich Schritt für Schritt getan habe, um Daten von SQL Server zu ElasticSearch ohne den veralteten Fluss zu synchronisieren. Ich habe es von Grund auf neu gemacht. Möglicherweise haben Sie bereits einige dieser Schritte ausgeführt, wenn Sie bereits einen Fluss eingerichtet haben.

  • Laden Sie den JDBC-Importer für Ihre Version von elasticsearch herunter: Ссылка
  • Entpacken Sie es im Elasticsearch-Ordner. Beachten Sie, dass Sie es überall entpacken können, aber nicht in {elasticsearch} / plugin oder, da es kein Plugin ist, würde elasticsearch beim Start abstürzen.
  • JDBC-Treiber von Microsoft herunterladen: Ссылка (I heruntergeladene ".exe" Version)
  • Führe es aus. Es erstellt einen entpackten Ordner. Öffne es und kopiere sqljdbc4.jar, sqljdbc41.jar und sqljdbc42.jar nach {elasticsearch-jdbc} / lib (sei vorsichtig, sqljdbc.jar nicht zu kopieren)
  • Aktivieren Sie die TCP / IP-Verbindung zu SQL Server (siehe zum Beispiel Ссылка )
  • Im Verzeichnis Elasticsearch erstellen Sie das Verzeichnis {elasticsearch} \ bin \ feeder
  • Erstellen Sie die Datei jdbc_sqlserver.json mit folgendem Inhalt:
%Vor%
  • Erstellen Sie die Datei jdb_sqlserver.ps1 mit folgendem Inhalt:
%Vor%
  • Führe jdb_sqlserver.ps1 mit powershell
  • aus

Dieser Artikel war sehr hilfreich: Ссылка

    
Fl4v 18.05.2016, 14:06
quelle
3

Unser Plan dafür ist, dass wenn wir den Datensatz in SQL schreiben; Dann nehmen wir den Primärschlüssel und legen ihn in ein Warteschlangensystem (RabbitMQ in unserem Fall). Dann gibt es einen Verbraucher in dieser Warteschlange (oder viele Verbraucher), der die Daten aus SQL extrahiert und in ES einfügt.

Mit einer Zwischenwarteschlange haben wir eine Reihe von Vorteilen:

  1. Wir können viel mehr Zeit aufwenden, um alle Daten zu sammeln, die wir in ES einfügen möchten, ohne dass unsere Kunden warten müssen
  2. Wenn wir ES jemals mit mehr / anderen Daten neu indizieren wollen, können wir diesen Primärschlüssel einfach wieder in die Warteschlange stellen und die Daten wieder zusammentragen.
  3. Wenn ES jemals gewartet wurde, waren die Daten immer noch in der Warteschlange und würden wieder abgerufen, wenn ES wieder online war.
jhilden 20.03.2016 16:18
quelle
0

Wenn Sie diesen Beitrag jetzt beziehen (wie ich), ist ElasticSearch weitergegangen und es gibt ein Kompatibilitätsproblem mit dem Springboot-Client, der dafür verwendet wird, der ES 5.x.x nicht unterstützt. Sie müssen also Ihren eigenen Spring Boot-Client erstellen, der kompatibel ist / darauf warten, dass ES die Unterstützung bietet / eine alternative Lösung zur Verbindung von SQL Server mit ES verwenden.

Siehe: Ссылка

    
banavalikar 02.03.2017 16:27
quelle