GaussDB 简介

GaussDB 数据库分为 GaussDB T 和 GaussDB A,分别面向 OLTP 和 OLAP 的业务用户。

GaussDB T 数据库是华为公司全自研的分布式数据库,支持x86和华为鲲鹏硬件架构。基于创新性数据库内核,提供高并发事务实时处理能力、两地三中心金融级高可用能力和分布式高扩展能力。

GaussDB A 是一款具备分析及混合负载能力的分布式数据库,支持x86和华为鲲鹏硬件架构,支持行存储与列存储,提供PB级数据分析能力、多模分析能力和实时处理能力,用于数据仓库、数据集市、实时分析、实时决策和混合负载等场景,广泛应用于金融、政府、电信等行业核心系统。

Logstash 的 jdbc input plugin

参考 Logstash的 Jdbc input plugin 的官方文档,该插件可以通过JDBC接口将任何数据库中的数据导入 Logstash。周期性加载或一次加载,每一行是一个 event,列转成 filed。我们先解读下文档里提到的重要配置项。

jdbc_driver_library:JDBC驱动包路径。
jdbc_driver_class:JDBC驱动程序类。
jdbc_connection_string:JDBC连接串。
jdbc_user:数据库用户名。
jdbc_password:数据库用户口令。
statement_filepath:SQL语句所在文件路径。
scheduler:调度计划。

以上参数已经支持了周期性加载或一次性加载。如果想按字段的自增列或时间戳来集成数据,还需要以下参数:

sql_last_value:这个参数内置在sql语句里。作为条件的变量值。
last_run_metadata_path:sql_last_value 上次运行值所在的文件路径。
use_column_value:设置为时true时,将定义的 tracking_column 值用作 :sql_last_value。默认false。
tracking_column:值设置为将被跟踪的列。
tracking_column_type:跟踪列的类型。目前仅支持数字和时间戳。
record_last_run:上次运行 sql_last_value 值是否保存到 last_run_metadata_path。默认true。
clean_run:是否应保留先前的运行状态。默认false。

另外如果想使用预编译语句,语句里用?作为占位符,再增加以下参数:

use_prepared_statements:设置为 true 时,启用预编译语句。
prepared_statement_name:预编译语句名称。
prepared_statement_bind_values:数组类型,存放绑定值。:sql_last_value 可以作为预定义参数。

参考:https://www.elastic.co/guide/en/logstash/7.5/plugins-inputs-jdbc.html

对接 GaussDB T

按每分钟一次频率的周期性来加载 GaussDB T 的会话信息到 Elasticsearch 中,input 区域的配置如下:

input {
jdbc {
jdbc_connection_string => "jdbc:zenith:@vip:40000"
jdbc_user => "omm"
jdbc_password => "omm_password"
jdbc_driver_library => "/opt/gs/com.huawei.gauss.jdbc.ZenithDriver-GaussDB_100_1.0.1.SPC2.B003.jar"
jdbc_driver_class => "com.huawei.gauss.jdbc.ZenithDriver"
statement_filepath => "/opt/statement_filepath/gs_100_session.sql"
schedule => "*/1 * * * *"
}
}

statement_filepath 路径文件里配置的sql如下:

select * from dv_sessions

启动 logstash,可以看到logstash 日志中显示有select * from dv_sessions的信息

对接 GaussDB A

按字段的时间戳来增量加载数据,注意 GaussDB A 的驱动和 GaussDB T 是不同的。input 区域的配置如下:

input {
jdbc {
jdbc_connection_string => "jdbc:postgresql://vip:25308/postgres"
jdbc_user => "monitor"
jdbc_password => "monitor_password"
jdbc_driver_library => "/opt/gsdriver/gsjdbc4.jar"
jdbc_driver_class => "org.postgresql.Driver"
statement_filepath => "/opt/statement_filepath/gauss_active_session.sql"
schedule => "*/1 * * * *"
record_last_run => "true"
use_column_value => "true"
tracking_column => "sample_time"
tracking_column_type => "timestamp"
clean_run => "false"
last_run_metadata_path => "/opt/last_run_metadata_path/gauss_last_sample_time"
}
}

statement_filepath 路径文件里配置的sql如下,注意里面的预定义变量 :sql_last_value。

select clustername,coorname,sample_time,datid,datname,pid,usesysid,usename,application_name,abbrev(client_addr) AS client_addr,client_hostname,client_port,backend_start,xact_start,query_start,state_change,waiting,enqueue,state,resource_pool,query_id,query from monitor.ash_pg_stat_activity_r where sample_time > :sql_last_value

last_run_metadata_path 路径下的文件内容:

--- 2020-02-05 12:10:00.000000000 +08:00

启动 logstash,可以看到 logstash 日志,注意 :sql_last_value的地方

数据 output 到 Elasticsearch

logstash 的 output 区域的配置如下:

output {
elasticsearch {
hosts => ["https://vip:9200"]
index => "gauss_active_session-%{+YYYY.MM.dd}"
document_type => "gauss_active_session"
user => "elastic"
password => "elastic_password"
ssl => true
cacert => "../es_client-ca.cer"
}
}

登入 kibana 查看,按每分钟增量加载的会话表数据已经集成到了 elasticsearch,后续就可以开始做数据分析和可视化了。

文章转载自:https://mp.weixin.qq.com/s/EJJAGVfIFbgKqOSjbrAGTA

Logstash集成GaussDB(高斯DB)数据到Elasticsearch的更多相关文章

  1. 使用logstash同步mysql 多表数据到ElasticSearch实践

    参考样式即可,具体使用配置参数根据实际情况而定 input { jdbc { jdbc_connection_string => "jdbc:mysql://localhost/数据库 ...

  2. Logstash 6.4.3 导入 csv 数据到 ElasticSearch 6.4.3

    本文实践最新版的Logstash从csv文件导入数据到ElasticSearch. 本文目录: 1.初始化ES.Kibana.Logstash 2.安装logstash文件导入.过滤器等插件 3.配置 ...

  3. 使用Logstash同步数据至Elasticsearch,Spring Boot中集成Elasticsearch实现搜索

    安装logstash.同步数据至ElasticSearch 为什么使用logstash来同步,CSDN上有一篇文章简要的分析了以下几种同步工具的优缺点:https://blog.csdn.net/la ...

  4. elasticsearch -- Logstash实现mysql同步数据到elasticsearch

    配置 安装插件由于这里是从mysql同步数据到elasticsearch,所以需要安装jdbc的入插件和elasticsearch的出插件:logstash-input-jdbc.logstash-o ...

  5. 如何通过 Docker 部署 Logstash 同步 Mysql 数据库数据到 ElasticSearch

    在开发过程中,我们经常会遇到对业务数据进行模糊搜索的需求,例如电商网站对于商品的搜索,以及内容网站对于内容的关键字检索等等.对于这些高级的搜索功能,显然数据库的 Like 是不合适的,通常我们采用 E ...

  6. Logstash学习之路(四)使用Logstash将mysql数据导入elasticsearch(单表同步、多表同步、全量同步、增量同步)

    一.使用Logstash将mysql数据导入elasticsearch 1.在mysql中准备数据: mysql> show tables; +----------------+ | Table ...

  7. Logstash : 从 SQL Server 读取数据

    有些既存的项目把一部分日志信息写入到数据库中了,或者是由于其它的原因我们希望把关系型数据库中的信息读取到 elasticsearch 中.这种情况可以使用 logstash 的 jdbc input ...

  8. spring与logstash整合,并将数据传输到Elasticsearch

    logstash是一个开源的数据收集引擎,支持各种输入选择,能够同时从多个来源采集数据,将数据转发到想存储的“库”中,例如,可以转发存储到Elasticsearch,也可以转发到kafka等消息中间件 ...

  9. 华为高斯DB(for MySQL)搭建演示

    产品架构 云数据库 GaussDB(for MySQL)整体架构自下向上分为三层. 存储层: 基于华为DFV存储,提供分布式.强一致和高性能的存储能力,此层来保障数据的可靠性以及横向扩展能力. 存储抽 ...

随机推荐

  1. 静态代码块和数组工具类Arrays

    静态代码块 静态代码块:定义在成员位置,使用static修饰的代码块{ }. ~位置:类中方法外. ~执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行 格式: public cl ...

  2. sudoer文件配置错误修复

    以错误配置权限为例,如果是sudoer文件内容配置错误,替换步骤(4)中相关命令即可 (1)建立两个ssh连接,分别记为A.B (2)A:echo $$获取ID (3)B:pkttyagent --p ...

  3. 从编译器对指令集的要求看API设计原则

    摘要:最近看<计算机体系结构:量化研究方法(第五版)>,发现指令集设计中的一些原则,对API设计也同样适用,给大家分享一下. 本文中的所有内容来自工作和学习过程中的心得整理,如需转载请注明 ...

  4. 强化版按键消抖Verilog实现

    介绍:按键的物理结构导致了会有抖动现象的出现,判断按键是否真正按下,需要把抖动的部分滤波.根据经验可知,抖动一般在20ms内,所以常规的消抖方法是从变化沿出现时刻开始,延时20ms后判断按键的状态.这 ...

  5. Scala 练习题 学生分数案例

    一.相关信息题目:1.统计班级人数2.统计学生的总分3.统计总分年级排名前十学生各科的分数4.统计总分大于年级平均分的学生5.统计每科都及格的学生6.统计偏科最严重的前100名学生数据样例(部分数据) ...

  6. 流程控制语句continue

    continue语句 用于结束当前循环,进入下一次循环,同样通常与if分支结构一起使用 (这边和前面的break可以结合在一起与C中的一样的理解) 注意这个不是终止整个循环只是终止当前循环进行下一次循 ...

  7. 在Linux虚拟机中添加多个固定ip地址

    1.右键点击设置2.点击添加,再点击网络适配器,最后点击完成.3.选择完成后的网络适配器,选择仅主机模式.4.用roott身份登录,用nmtui进行设置 systemctl start Network ...

  8. nginx的高级用法

    一.根据url中的参数来确定缓存的key set_by_lua_block $dataArg { local enc = ngx.req.get_uri_args()["enc"] ...

  9. Win10系统下搭建Go lang开发环境更换国内源并且体验宇宙最快框架Iris

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_156 最近有同学开始尝试接触Go lang,拥抱新技术永远都会是一个好习惯,之前的一篇文章介绍了如何在Mac os系统下配置Go ...

  10. JavaWeb--Cookie与Session

    前言 Java Web 其实就是一个技术的总和,把Web看成一个容器而已主要使用JavaEE技术来实现.在加上各种中间件. 整个javaWeb阶段的内容通过实际的案例贯穿学习, 所涉及到的技术知识点会 ...