Elastische Suche in MySQL
Wir werden lernen, wie man ElasticSearch
mit MySQL integriert. Wir werden auch einige wichtige Unterschiede zwischen Datenbanken im JSON-Format und relationalen Datenbanken untersuchen.
Integrieren Sie ElasticSearch
mit MySQL
Wie wir wissen, ist MySQL ein relationales Datenverwaltungssystem, das Daten im Schema speichert.
Auf der anderen Seite ist Elastic Search (ES) NoSQL-basiert auf dem Datenspeicher. Es ist eine verteilte Open-Source-Suchmaschine.
Es bietet eine Echtzeit-Datenanalyse. Daher ist es in einigen Fällen effizienter als RDBMS.
Es durchsucht Websites/Anwendungen, sammelt und analysiert Protokolldaten, Datenanalyse und Visualisierung. Der grundlegende Terminologieunterschied zwischen einer DB im JSON-Format und einer relationalen Datenbank ist: Datenbank gleich Cluster, Tabellen gleich Indizes (Datenorganisationsmechanismus, speichert komplexe Datenstruktur in JSON-Dokument), Zeile gleich Dokumente und Spalten gleich Felder.
Die Sammlung von Knoten wird als Cluster bezeichnet; Shards sind Datenstücke. Die Voraussetzung hier ist, dass MySQL installiert sein muss.
Eine Open-Source-Version finden Sie im Abschnitt MySQL Community Server
, den Sie auf der MySQL-Downloadseite finden können.
Als nächstes erstellen wir eine Tabelle in MySQL.
CREATE DATABASE info_cus;
DROP TABLE IF EXISTS info_cus;
CREATE TABLE info_cus(
id integer NOT NULL,
PRIMARY KEY (id),
employe_n VARCHAR(32) NOT NULL,
update_time datetime NOT NULL
);
Abfrage einfügen
Jetzt gehen wir zum MySQL-Server und fügen diese Datensätze ein:
INSERT INTO info_cus (id, employe_n,update_time)
VALUES (1,'ali',CURDATE()),
(2,'Ayesha',CURDATE()),
(3,'Rizwan',CURDATE()),
(4,'Tanveer',CURDATE());
Jetzt prüfen wir durch:
select * from info_cus;
Ausgang:
id employe_n update_time
1 ali 2022-11-13 15:31:05
2 Ayesha 2022-11-13 15:31:05
3 Rizwan 2022-11-13 15:31:05
4 Tanveer 2022-11-13 15:31:05
Wir können loslegen, wenn wir die richtige Tabelle mit Datensätzen bekommen.
Wir müssen den JDBC-Connector herunterladen, um die beiden zu verbinden, da das ES auf Java basiert. Diese Verbindung hilft dabei, die erforderlichen Daten aus dem Datenspeicher zu extrahieren und an Elastic Search weiterzuleiten.
Um den JDBC-Connector herunterzuladen, gehen Sie zu diesem Link. Es wird eine jar
-Datei geben; Da es universell ist, läuft es auf jedem Betriebssystem - Windows, macOS usw.
Als nächstes extrahieren wir die Datei und stellen sicher, dass wir die Datei bin.jar
verwenden, egal welche Version Sie installiert haben, kopieren Sie diese Datei in das Stammverzeichnis mit einem Namen, der jdbc.jar
lautet. Generieren Sie in <localpath>/logstash-7.12.0/
eine neue Textdatei mit dem Namen jdbc_conn.conf
.
Verwenden Sie den folgenden unten angegebenen Code in dieser neuen Textdatei. Es erstellt eine Logstash-Pipeline über ein JDBC-Plugin.
input {
jdbc {
jdbc_driver_library => "<driverpath>/mysql-connector-java-<versionNumber>.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://<MySQL host>:3306/es_db"
jdbc_user => "<myusername>"
jdbc_password => "<mypassword>"
jdbc_paging_enabled => true
tracking_column => "unix_ts_in__seconds"
use_column_value => true
tracking_column_type => "numeric"
schedule => "*/5 * * * * *"
statement => "select *, unix_timestamp AS unix_ts_in__seconds FROM elas_table where (unix_timestamp > :sql_last_value AND modification_time < NOW()) ORDER BY modification_time ASC"
}
}
filter {
mutate {
copy => { "id" => "[@metadata][_id]"}
remove_field => ["id", "@version", "unix_ts_in__seconds"]
}
}
Ausgang:
{
stdout { codec => "rubydebug"}
}
Öffnen Sie nun Logstash mit Ihrer neuen JDBC_conn
-Konfigurationsdatei: bin/logstash -f jdbc_conn.conf
. Schließlich gehen wir zu Logstash, um die Daten zu verschieben, und melden uns bei Elastic Search an, um die Daten in Kibana zu authentifizieren.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn