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

简介:

前言

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抛过来

相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
3天前
|
SQL 存储 数据管理
阿里云视觉智能开放平台的逻辑数仓基于统一的SQL语法
【2月更文挑战第9天】阿里云视觉智能开放平台的逻辑数仓基于统一的SQL语法
14 2
|
24天前
|
机器人
阿里云 RPA 的成本效益分析
机器人流程自动化(RPA)技术在企业数字化转型中扮演着越来越重要的角色。阿里云 RPA 作为一种高效的自动化解决方案,不仅可以提高业务效率,还可以降低运营成本。本文将对阿里云 RPA 的成本效益进行分析,帮助企业更好地评估和利用这一技术。
|
2月前
|
存储 关系型数据库 MySQL
在阿里云的AnalyticDB MySQL版中使用CREATE TABLE语句来创建内表
在阿里云的AnalyticDB MySQL版中使用CREATE TABLE语句来创建内表【1月更文挑战第16天】【1月更文挑战第78篇】
183 3
|
5天前
|
存储 数据可视化 数据管理
基于阿里云服务的数据平台架构实践
本文主要介绍基于阿里云大数据组件服务,对企业进行大数据平台建设的架构实践。
211 0
|
21天前
|
存储 运维 关系型数据库
规划阿里云RDS跨区迁移业务需求业务影响分析
规划阿里云RDS跨区迁移业务需求业务影响分析
13 4
|
2月前
|
存储 关系型数据库 分布式数据库
阿里云PolarDB解决乐麦多源数据存储性能问题
乐麦通过使用PolarDB数据库,使整个系统之间的数据查询分析更加高效
379 3
|
2月前
|
存储 NoSQL MongoDB
阿里云 Flink 原理分析与应用:深入探索 MongoDB Schema Inference
本文整理自阿里云 Flink 团队归源老师关于阿里云 Flink 原理分析与应用:深入探索 MongoDB Schema Inference 的研究。
46859 2
阿里云 Flink 原理分析与应用:深入探索 MongoDB Schema Inference
|
2月前
|
SQL 分布式计算 Java
数仓学习---7、数据仓库设计、数据仓库环境准备、模拟数据生成
数仓学习---7、数据仓库设计、数据仓库环境准备
55 2
|
2月前
|
SQL 存储 分布式计算
Hologres实时湖仓能力增强,挑战5分钟加速分析OSS数据
5分钟快速使用Hologres实时湖仓能力,无需移动数据,直接加速读取存储于数据湖OSS上的Hudi、Delta、Paimon等格式类型的数据
|
2月前
|
大数据 数据管理 云计算
瓴羊联合阿里云、大数据技术标准推进委员会发布《基于数据资产全生命周期估值与实践报告》
瓴羊联合阿里云、大数据技术标准推进委员会发布《基于数据资产全生命周期估值与实践报告》
138 0
瓴羊联合阿里云、大数据技术标准推进委员会发布《基于数据资产全生命周期估值与实践报告》

热门文章

最新文章

相关产品

  • 云原生数据仓库AnalyticDB MySQL版