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

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
2月前
|
存储 人工智能 OLAP
AI Agent越用越笨?阿里云AnalyticDB「AI上下文工程」一招破解!
AI上下文工程是优化大模型交互的系统化框架,通过管理指令、记忆、知识库等上下文要素,解决信息缺失、长度溢出与上下文失效等问题。依托AnalyticDB等技术,实现上下文的采集、存储、组装与调度,提升AI Agent的准确性与协同效率,助力企业构建高效、稳定的智能应用。
|
3月前
|
存储 人工智能 关系型数据库
阿里云AnalyticDB for PostgreSQL 入选VLDB 2025:统一架构破局HTAP,Beam+Laser引擎赋能Data+AI融合新范式
在数据驱动与人工智能深度融合的时代,企业对数据仓库的需求早已超越“查得快”这一基础能力。面对传统数仓挑战,阿里云瑶池数据库AnalyticDB for PostgreSQL(简称ADB-PG)创新性地构建了统一架构下的Shared-Nothing与Shared-Storage双模融合体系,并自主研发Beam混合存储引擎与Laser向量化执行引擎,全面解决HTAP场景下性能、弹性、成本与实时性的矛盾。 近日,相关研究成果发表于在英国伦敦召开的数据库领域顶级会议 VLDB 2025,标志着中国自研云数仓技术再次登上国际舞台。
394 0
|
4月前
|
存储 人工智能 分布式计算
数据不用搬,AI直接炼!阿里云AnalyticDB AI数据湖仓一站式融合AI+BI
阿里云瑶池旗下的云原生数据仓库AnalyticDB MySQL版(以下简称ADB)诞生于高性能实时数仓时代,实现了PB级结构化数据的高效处理和分析。在前几年,为拥抱大数据的浪潮,ADB从传统数仓拓展到数据湖仓,支持Paimon/Iceberg/Delta Lake/Hudi湖格式,为开放的数据湖提供数据库级别的性能、可靠性和管理能力,从而更好地服务以SQL为核心的大规模数据处理和BI分析,奠定了坚实的湖仓一体基础。
|
SQL 数据库
MySQL---数据库从入门走向大神系列(一)-基础入门(3)
MySQL---数据库从入门走向大神系列(一)-基础入门
188 0
MySQL---数据库从入门走向大神系列(一)-基础入门(3)
|
5月前
|
运维 算法 机器人
阿里云AnalyticDB具身智能方案:破解机器人仿真数据、算力与运维之困
本文将介绍阿里云瑶池旗下的云原生数据仓库AnalyticDB MySQL推出的全托管云上仿真解决方案,方案采用云原生架构,为开发者提供从开发环境、仿真计算到数据管理的全链路支持。
|
5月前
|
存储 人工智能 关系型数据库
从“听指令”到“当参谋”,阿里云AnalyticDB GraphRAG如何让AI开窍
阿里云瑶池旗下的云原生数据仓库 AnalyticDB PostgreSQL 版 GraphRAG 技术,创新融合知识图谱动态推理+向量语义检索,通过实体关系映射与多跳路径优化,构建可应对复杂场景的决策引擎。本文将通过家电故障诊断和医疗预问诊两大高价值场景,解析其如何实现从“被动应答”到“主动决策”的跨越。
|
6月前
|
分布式计算 运维 监控
Fusion 引擎赋能:流利说如何用阿里云 Serverless Spark 实现数仓计算加速
本文介绍了流利说与阿里云合作,利用EMR Serverless Spark优化数据处理的全过程。流利说是科技驱动的教育公司,通过AI技术提升用户英语水平。原有架构存在资源管理、成本和性能等痛点,采用EMR Serverless Spark后,实现弹性资源管理、按需计费及性能优化。方案涵盖数据采集、存储、计算到查询的完整能力,支持多种接入方式与高效调度。迁移后任务耗时减少40%,失败率降低80%,成本下降30%。未来将深化合作,探索更多行业解决方案。
387 1
|
6月前
|
SQL 存储 缓存
海量数据分页查询效率低?一文解析阿里云AnalyticDB深分页优化方案
本文介绍了AnalyticDB(简称ADB)针对深分页问题的优化方案。深分页是指从海量数据中获取靠后页码的数据,常导致性能下降。ADB通过快照缓存技术解决此问题:首次查询生成结果集快照并缓存,后续分页请求直接读取缓存数据。该方案在数据导出、全量结果分页展示及业务报表并发控制等场景下表现出色。测试结果显示,相比普通分页查询,开启深分页优化后查询RT提升102倍,CPU使用率显著降低,峰值内存减少至原方案的几分之一。实际应用中,某互联网金融客户典型慢查询从30秒优化至0.5秒,性能提升60+倍。
487 1

热门文章

最新文章

相关产品

  • 云原生数据仓库AnalyticDB MySQL版