阿里云分析型数据库AnalyticDB:使用Logstash插件进行高效数据写入

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介:

前言

AnalyticDB(简称ADB,ADS,早期项目名Garuda)是阿里巴巴自主研发的海量数据实时高并发在线实时分析型数据库(Real-Time OLAP)。自2012年第一次在集团发布上线以来(初期内部命名Garuda),至今已累计迭代发布一百多个版本,支撑起集团内的电商、广告、菜鸟、文娱、飞猪等众多在线数据分析业务。AnalyticDB 于2014年在阿里云开始正式对外输出,包括公共云和专有云,支撑行业既包括传统的大中型企业和政府机构,也包括众多的互联网公司。每年集团双十一、电商、广告投放、游戏和物流等公有云和专有云大量用户和大量业务的实时分析业务高峰都驱动着AnalyticDB不断的架构演进,技术创新。

背景

众所周知,Logstash是一个开源的服务器端数据处理管道,起初是为了处理日志类数据写入到ES中,但随着开源社区的不断发展,如今可以同时从多个数据源获取数据,并对其进行转换,然后将其发送到你想要的“存储”。就日志数据为例,我们如果想要把log数据导入ADB中进行进一步分析,因为ADB支持原生JDBC方式访问,所以目前可以通过开源logstash output插件logstash-output-jdbc进行数据的导入,但是在使用过程中发现,在日志量非常大的情况下,jdbc方式写入ADB的性能是比较低的,并且会非常消耗CPU的资源(因为jdbc是单条记录写入的方式)。在日志量非常大的时候,这种方式性价比明显是很低的,因此,我们基于jdbc插件的方式优化了一个专门支持ADB的聚合写入方式的output plugin——logstash-ouput-analyticdb,在此就简单介绍一下logstash通过logstash-output-analyticdb插件写入ADB的使用方式。

安装

Logstash的安装流程可以参见传送门,这里不多叙,我们主要介绍一下安装logstash-output-analyticdb的流程:

  • 进入logstash根目录:cd logstash
  • 安装logstash-output-analyticdb:bin/logstash-plugin install logstash-output-analyticdb
  • 在logstash目录下创建vendor/jar/jdbc目录:mkdir -p vendor/jar/jdbc
  • 将jdbc jar拷贝到vendor/jar/jdbc中:cd vendor/jar/jdbc; wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.36/mysql-connector-java-5.1.36.jar
    至此,logstash-output-analyticdb的安装步骤就都完成了!

使用方式

上面我们已经安装好了logstash-output-analyticdb插件,下面我们看看怎么使用呢?
和大多数logstash案例的使用方式一样,我们在config目录下创建一个logstash-analyticdb.conf(名字可以自行定义)的配置文件,此处我们贴一个简单的example:

input
{
    stdin { }
}
output {
    analyticdb {
        driver_class => "com.mysql.jdbc.Driver"
        connection_string => "jdbc:mysql://HOSTNAME:PORT/DATABASE?user=USER&password=PASSWORD"
        statement => [ "INSERT INTO log (host, timestamp, message) VALUES(?, ?, ?)", "host", "@timestamp", "message" ]
    }
}

connection_string:连接你的AnalyticDB的jdbc url
statement:insert SQL的声明数组,要提前在你的AnalyticDB上创建对应的表哦,不然往哪儿写呢?
此配置文件的内容只是一个例子,具体配置文件的内容根据各使用者的实际使用场景决定。其他analyticdb相关的配置项请看README
logstash的原有使用配置项,大家可以看看logstash的文档(因为配置项和规则太多了,就不在此赘述了)
至此,我们使用前的配置任务都已经做完,下面我们来启动任务,在logstash安装目录执行:bin/logstash -f config/logstash-analyticdb.conf即可

后记

我们在使用logstash-output-analyticdb写入AnalyticDB的性能相较于logstash-output-jdbc会有5倍的提升,并且对于CPU的使用也有明显的降低。
如果大家在使用过程中遇到任何问题,欢迎issue抛过来

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
7天前
|
存储 人工智能 数据管理
|
2月前
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
186 61
|
2天前
|
SQL 存储 运维
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
14 1
|
6天前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
9天前
|
前端开发 JavaScript 数据库
获取数据库中字段的数据作为下拉框选项
获取数据库中字段的数据作为下拉框选项
37 5
|
21天前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
8天前
|
人工智能 Cloud Native 关系型数据库
双位数增长,阿里云连续五年领跑关系型数据库
阿里云蝉联中国关系型数据库整体市场份额第一,在公有云业务双位数增长的驱动下,阿里云同时在公有云关系型数据库市场取得了38%的市场份额,连续五年位居首位。
|
2月前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
2月前
|
Cloud Native 关系型数据库 Serverless
阿里云数据库获中国计算机学会“科技进步一等奖”!
阿里云数据库获中国计算机学会“科技进步一等奖”!
38 0

相关产品

  • 云原生数据仓库AnalyticDB MySQL版