logstash mysql 2 elasticsearch utf8 latin1问题

时间:2020-07-25 21:37:57

标签: mysql elasticsearch

我的MySQL数据库有些混乱!

实际信息以UTF8格式存储在拉丁字段中

字段编码:cp1252 整理:latin1_swedish_ci

内部存储的实际信息看起来像ΠΕ000002

这是一个php应用程序,因此使用SET NAME UTF8似乎可以解决我的大多数问题! 当然,通过具有惊人选项/功能的SequelPRO浏览数据 数据库>使用编码的视图>通过latin1的UTF8 Unicode似乎可以再次解决该问题!

但是现在该继续前进了,我正在尝试将此mysql移入elasticsearch 而且我认为使用logstash可能真的很容易

我使用了以下直接配置

input {
    jdbc {
        jdbc_driver_library => "/path/to/drive/mysql-connector-java-8.0.21/mysql-connector-java-8.0.21.jar"
        jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
        jdbc_connection_string => "jdbc:mysql://localhost:3306/database?zeroDateTimeBehavior=convertToNull&useUnicode=true"
        jdbc_user => "user"
        jdbc_password => "password"
        statement => "select customer_no from clients LIMIT 1"
    }
}

output {
    stdout { codec => rubydebug } 
}

(出于演示原因,请注意将输出设置为此,以便能够更快地查看结果,而不是将其发送到ES)

,结果(按预期)与我在数据库中看到的相似,但编码没有任何变化,即: "customer_no" => "ΠΕ000001",

我尝试使用一些jdbc选项来解决此问题,例如:

columns_charset => { 
  "customer_no" => "ISO-8859-7"
}

或其他编码,但似乎没有使它按预期工作!

任何想法/建议/指标将不胜感激!

提前谢谢

0 个答案:

没有答案
相关问题