gpt4 book ai didi

mysql - 通过具有多对多关联的 Logstash 将 MySQL 数据迁移到 Elasticsearch

转载 作者:行者123 更新时间:2023-11-29 07:30:43 24 4
gpt4 key购买 nike

尝试使用 Logstash 创建从我的 MySQL 数据库到 Elasticsearch 索引的数据迁移。

我有这种数据库模式:

My db schema

item 这里是主表。我打算搜索 item。每个 item 都有 city。它有许多颜色。它有许多规范,每一个都有一些被设置在连接表中。

目前,我通过 LEFT JOINcity 合并到 item 表,成功完成了迁移。

我的迁移声明如下所示:

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}"
}
}

想知道如何迁移 colourspecification 及其 value 以通过这些属性搜索我的 item

例如,如果有一个 item,它与 city = 'London' 关联,并且 colour = 'blue' 并且colour = 'red' 和 colour = 'yellow',并且 specification = 'material' with value = 'ceramic',它应该被“London AND blue AND ceramic”和“London AND red AND ceramic”搜索查询找到。

最佳答案

您可以使用 LEFT JOIN 来连接剩余的表并获取它们的值,如下所示 -

SELECT item.id, 
item.title,
item.description,
city.name AS city,
spec.name as specificationName,
ispec.value as specificationValue,
color.name as color
FROM item
LEFT JOIN city ON city.id = item.city
LEFT JOIN Item_has_Color ic on ic.item = item.id
LEFT JOIN Item_has_Specification as ispec on ispec.item = item.id
LEFt JOIN color on color.id = ic.color
LEFT JOIN specification as spec on spec.id = ispec.specification

关于mysql - 通过具有多对多关联的 Logstash 将 MySQL 数据迁移到 Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51404133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com