• db mysql / mysql cluster 5.7.19 / my.cnf / group_concat_max_len


    s

    https://www.cnblogs.com/silentmuh/p/9473557.html

    MySQL提供的group_concat函数可以拼接某个字段值成字符串,如 select group_concat(user_name) from sys_user,默认的分隔符是 逗号,即"," ,如果需要自定义分隔符可以使用 SEPARATOR

    如:select group_concat(user_name SEPARATOR '_')  from sys_user

    但是如果 user_name  拼接的字符串的长度字节超过1024 则会被截断。

    通过命令 "show variables like 'group_concat_max_len' " 来查看group_concat 默认的长度:

    操作方法:

    (1)在MySQL配置文件中加入:

    group_concat_max_len = 102400

    (2)更简单的操作方法,执行SQL语句:

    SET GLOBAL group_concat_max_len = 102400;

    SET SESSION group_concat_max_len = 102400;

    注意:该方法缺点是重启服务后设置失效

    案例一:

    1、如果存在group_concat,最好在jdbc链接后增加长度参数

    jdbc:mysql://127.0.0.1:3306/mylindows?sessionVariables=group_concat_max_len=102400

    2、ES中想用JSON数组可以通过filter插件

    filter {

            json {

                   add_tag =>[]

                   source => "rel"

                   target => "relLabel"

                   remove_field=>["rel"]

           }

    }

    示例:

    input {
            jdbc {
                    jdbc_driver_library => "/root/mysql-connector-java-5.1.22.jar"
                    jdbc_driver_class => "com.mysql.jdbc.Driver"
                    jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/mylindows?sessionVariables=group_concat_max_len=102400"
                    jdbc_user => "root"
                    jdbc_password => "123456"
                    schedule => "* * * * *" #cron表达式,设置多久调度一次
                    jdbc_default_timezone => "Asia/Shanghai"
                    jdbc_paging_enabled => "true" #开启分页查询
                    jdbc_page_size => "10000" #每页10000条数据
                    statement_filepath => "/opt/lindows.sql" #自定义查询sql
                    lowercase_column_names => false #关闭自动小写转化,如果开启,诸如commId会被转化成commid
                    use_column_value => false #如果开启则是用指定value作为最后查询的条件,默认使用当时时间
                    last_run_metadata_path => "/opt/lindows.txt" #记录最后一次查询的条件,默认是时间
            }
    }
    
    filter {
            json {
                    add_tag =>[]
                    source => "rel"
                    target => "relLabel"
                    remove_field=>["rel"]
        }
    }
    
    output {
            elasticsearch {
                    hosts => [ "192.168.1.2:9200","192.168.1.3:9200","192.168.1.4:9200" ] #集群地址
                    index => "lindows_index" #指定索引名称
                    document_id => "%{newsId}" #指定文档名称,需要和mysql.sql中的一个字段名相同
                    document_type => "news" #指定类型名
            }
    
    }

    end

    
    
  • 相关阅读:
    SpringBoot构建大数据开发框架
    阿里云 docker连接总报超时 registry.cn-hangzhou.aliyuncs.com (Client.Timeout exceeded while awaiting headers
    这些保护Spring Boot 应用的方法,你都用了吗?
    那些年让你迷惑的阻塞、非阻塞、异步、同步
    spring data jpa 分页查询
    如何在Windows 10上运行Docker和Kubernetes?
    Spring Mvc和Spring Boot配置Tomcat支持Https
    Why I don't want use JPA anymore
    Spring Data JPA Batch Insertion
    MySQL 到底能不能放到 Docker 里跑?
  • 原文地址:https://www.cnblogs.com/lindows/p/13334322.html
Copyright © 2020-2023  润新知