尝试使用logstash创建从mysql数据库到elasticsearch索引的数据迁移。
我有这样的数据库模式:item
这是主桌。我打算搜查 item
s。每个 item
有 city
. 它有很多 colours
. 它有很多 specifications
,每个都有一些 value
正在联接表中设置。
目前我只成功迁移了 city
把它和 item
表由 LEFT JOIN
.
我的迁移语句如下所示:
statement => "SELECT `item`.`id`, `item`.`title`, `item`.`description`, `city`.`name` AS `city` FROM `item` LEFT JOIN `city` ON `city`.`id` = `item`.`city`"
我的全部 logstach.conf
:
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost:3306/testdb?useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
jdbc_user => "root"
jdbc_password => ""
jdbc_driver_library => "/some/local/path/mysql-connector-java-8.0.11.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
statement => "SELECT `item`.`id`, `item`.`title`, `item`.`description`, `city`.`name` AS `city` FROM `item` LEFT JOIN `city` ON `city`.`id` = `item`.`city`"
}
}
output {
stdout { codec => json_lines }
elasticsearch {
"hosts" => "localhost:9200"
"index" => "test-migrate"
"document_type" => "data"
"document_id" => "%{id}"
}
}
不知道我怎样才能迁移 colour
以及 specification
用它的 value
搜索我的 item
也被这些属性?
例如,如果有 item
,与 city
='伦敦',和 colour
='蓝色'和 colour
='红色'和 colour
='黄色',与 specification
='材料'和 value
='陶瓷',应该通过“london and blue and ceramic”和“london and red and ceramic”搜索查询找到。
1条答案
按热度按时间8ehkhllq1#
你可以用
LEFT JOIN
连接其余的表并获得如下所示的值-