阿里云分析型数据库AnalyticDB:使用Logstash插件进行高效数据写入-阿里云开发者社区

开发者社区> chasewu> 正文

阿里云分析型数据库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抛过来

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
利用Weblogic的iisproxy、iisforward插件实现IIS转发
默认情况下,IIS只能提供http重定向功能,而无法满足转发需求。 举例:http://localhost/app1 利用http重定向到 http://www.abc.com/app1 访问 http://loalhost/app1/abc.html 最终浏览器地址栏里的url会变成http://www.abc.com/app1/abc.html 这就是重定向(类似jsp中的SendRedirect),如果浏览器地址栏不变,那才叫转发(类似jsp中的forward)。
784 0
Python数据分析之anaconda安装和使用
今天开始学习Python数据分析了,说到Python数据分析,大家都会推荐使用anaconda,但作为一个初学者,总是很多疑虑,但在实践中解决了一部分,先和大家分享分享。
989 0
使用loadrunner进行压力测试之----post请求
1. 发送post请求时使用web_submit_data  如: 1 web_submit_data("create",//事务名 2 "Action=http://bizhi.
826 0
Observability:使用 Elastic Stack 分析地理空间数据
在今天的文章中,我们将参考之前的文章 “如何使用 Elasticsearch ingest 节点来丰富日志和指标”。我们可以利用 Elasticsearch ingest 节点来更加丰富我们的数据,并对这些数据做更进一步的的分析。
1277 0
从 0 到 1 通过 Flink + Tablestore 进行大数据处理与分析
阿里云实时计算Flink版是一套基于 Apache Flink 构建的⼀站式实时大数据分析平台。在大数据场景下,实时计算 Flink 可提供端到端亚秒级实时数据流批处理能力。表格存储 Tablestore (又名 OTS)是阿里云自研的多模型结构化数据存储,可提供海量结构化数据的存储、查询分析服务。表格存储的双引擎架构支持千万TPS和毫秒级延迟的服务能力,可作为大数据计算的极佳上下游存储。
336 0
+关注
chasewu
专注于分布式在线分析型数据库
5
文章
0
问答
来源圈子
更多
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载