[ElasticStack]MySQLとLogstash
logstashを使用してテーブルからMySQLデータベースを抽出&フレックス検索インデックスに挿入
1.mysql-serverをダウンロードしてMySQLを使用
sudo apt-get update
sudo apt-get install mysql-server
[output]
2.データを読み込み、MySQLでテーブルを作成する
1)movielensからのデータのロード
cd ~
wget http://files.grouplens.org/datasets/movielens/ml-100k.zip
unzip ml-100k.zip
2)MySQLへ
sudo mysql -r root -p
[output]
3)movielensデータベースの作成
CREATE DATABASE movieslens;
[output]
4) movielens.moviesという名前のテーブルを作成し、データベースとそのテーブルのアーキテクチャを定義します。
CREATE TABLE movielens.movies (
movieID INT PRIMARY KEY NOT NULL,
title TEXT,
releaseDate DATE
);
[output]
5)作成したデータのロード
LOAD DATA LOCAL INFILE 'ml-100k/u.item' INTO TABLE movielens.movies FIELDS TERMINATED BY '|'
(movieID, title, @var3)
set releaseDate = STR_TO_DATE(@var3, '%d-%M-%Y');
[output]
サンプルデータセット(movielensのml−100 k)から1682個のレコードが得られた.
6)確認
USE movielens;
スターで始まる映画タイトルSELECTを試してみる
SELECT * FROM movies WHERE title LIKE 'Star%';
[output]
3.MySQLデータをフレックス検索に入れる
1)MySQLステータスの終了
exit
[output]
2)Connector/Jダウンロード
Connector/Jダウンロードショートカット
Select Operating SystemをPlatformから独立したバージョンに変更し、Zip Archiveダウンロードをクリックして次のページに進みます.
Noありがとうございます.just start my downloadを右クリックしてリンクアドレスをコピーします.
次のコマンドを使用するserver shellウィンドウに入力してダウンロードします.
アドレスが異なる場合がありますので、必ず[リンクアドレスをコピー](Copy Link Address)を使用してコピーしてください.
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.26.zip
[output]
3)ダウンロードしたzipファイルを解凍する
バージョンによってファイル名が異なる場合がありますので、ダウンロードしたファイルをコピーしてください.
unzip mysql-connector-java-8.0.26.zip
[output]
4)logstashプロファイルの作成
MySQLデータベースから入力を取得する方法については、logstashを構成します.
jsonとして抽出
sudo nano /etc/logstash/conf.d/mysql.conf
//mysql.conf
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost:3306/movielens"
jdbc_user => "silverpaper"
jdbc_password => "password"
#jdbc_driver_library는 경로와 jar파일 명 확인할 것
jdbc_driver_library => "/home/silverpaper/mysql-connector-java-8.0.26/mysql-connector-java-8.0.26.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
statement => "SELECT * FROM movies"
}
}
output {
stdout { codec => json_lines }
elasticsearch {
hosts => ["localhost:9200"]
index => "movielens-sql"
}
}
[画面例]
5)MySQLにアクセスしてユーザーを作成する
sudo mysql -uroot -p
CREATE USER 'silverpaper'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'silverpaper'@'localhost';
(*.*에 대한 모든 권한을 로컬호스트의 학생에게 부여)
FLUSH PRIVILEGES;
6)quitを使用してMySQLからMySQLを終了します。実行conf
quit
cd /usr/share/logstash
sudo bin/logstash -f /etc/logstash/conf.d/mysql.conf
[output]
7)ElasticSearchで検索できるか
curl -XGET 'localhost:9200/movielens-sql/_search?q=title:Star&pretty'
[output]
Reference
この問題について([ElasticStack]MySQLとLogstash), 我々は、より多くの情報をここで見つけました https://velog.io/@silverpaper/ElasticStack-MySQL과-Logstashテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol