数仓采集通道的设计

简介: 数仓采集通道的设计

数仓采集通道的设计


a53fa7633514475fa766316fab7a2e3e.jpeg



写在前面

  • 离线和实时数仓共用一套数据采集通道系统
  • 数据采集存储到HDFS上
  • 完全分布式(三个节点)


方案一:


(node01)Flume(TailDir Source) + Kafka Channel + HDFS Sink +  Kafka --> Kafka(node02)


架构图:

1.png


Kafka Channel有一个参数: parseAsFlumeAgent = true ,即 数据以Event的方式发送给Kafka 


Event 格式 : Header + Body 


数据发送到 HDFS Sink ,下游可以解析出Body数据,Event数据存储在node02节点的kafka主题TopicA中,离线数仓这样设计没有问题


但是对于实时数仓那个来说,header的数据是不需要的,这样就导致多存储了一些无用的数据


如果将参数 parseAsFlumeAgent 设置为false,这样实时数仓就可以只读取到body的数据,看起来似乎就完美解决了这个问题,其实不然。


因为我们需要实现Flume中`拦截器`的功能,而拦截器的实现需要 结合header 来使用,故此种实时和离线共用的数据采集系统不合适,会丢失header数据。


方案二:


(node01)FLume(TailDir Source) + Kafka Channel + Kafka --> Kafka(node02)


架构图:

2.png3e.png


参数 parseAsFlumeAgent 设置为false


此方案数仓采集过程一共4个链路(数据传输环节)

如下图:

4.png


方案三:


(node01)FLume(TailDir Source) + Kafka Channel + Kafka Sink + Kafka --> Kafka(node02)


架构图:

5c.png

参数 parseAsFlumeAgent 设置为false


上游:数据通过node01的Kafka Channel存储到node02的Kafka主题(只有body数据)中,再从Kafak主题中读取数据


下游:拦截器处理,利用Kafka Channel将数据从Kafak主题中读取出来,


此方案数仓采集过程一共3个链路(数据传输环节)

如下图:

6.png


与方案二相比,该方案节省一个Sink,节省一个数据传输环节,相应地提高了性能


最终方案


方案三的采集设计通道更符合本项目的需求,架构图:


7c.png



结束!

相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
9月前
|
消息中间件 数据采集 SQL
1、电商数仓(用户行为采集平台)数据仓库概念、用户行为日志、业务数据、模拟数据、用户行为数据采集模块、日志采集Flume(一)
1、电商数仓(用户行为采集平台)数据仓库概念、用户行为日志、业务数据、模拟数据、用户行为数据采集模块、日志采集Flume(一)
|
9月前
|
SQL 消息中间件 JSON
4、离线数仓数据同步策略(全量表数据同步、增量表数据同步、首日同步、采集通道脚本)(二)
4、离线数仓数据同步策略(全量表数据同步、增量表数据同步、首日同步、采集通道脚本)(二)
|
9月前
|
消息中间件 SQL JSON
3、数仓之采集工具MaxWell(MaxWell简介、MaxWell原理、MaxWell部署、MaxWell使用)
3、数仓之采集工具MaxWell(MaxWell简介、MaxWell原理、MaxWell部署、MaxWell使用)
|
9月前
|
消息中间件 数据采集 JSON
1、电商数仓(用户行为采集平台)数据仓库概念、用户行为日志、业务数据、模拟数据、用户行为数据采集模块、日志采集Flume(二)
1、电商数仓(用户行为采集平台)数据仓库概念、用户行为日志、业务数据、模拟数据、用户行为数据采集模块、日志采集Flume(二)
|
3月前
|
SQL 存储 数据管理
阿里云视觉智能开放平台的逻辑数仓基于统一的SQL语法
【2月更文挑战第9天】阿里云视觉智能开放平台的逻辑数仓基于统一的SQL语法
56 2
|
4月前
|
存储 关系型数据库 MySQL
在阿里云的AnalyticDB MySQL版中使用CREATE TABLE语句来创建内表
在阿里云的AnalyticDB MySQL版中使用CREATE TABLE语句来创建内表【1月更文挑战第16天】【1月更文挑战第78篇】
218 3
|
5月前
|
关系型数据库 MySQL BI
用友畅捷通基于阿里云 EMR StarRocks 搭建实时湖仓实战分享
本文从用友畅捷通公司介绍及业务背景;数据仓库技术选型、实际案例及未来规划等方面,分享了用友畅捷通基于阿里云 EMR StarRocks 搭建实时湖仓的实战经验。
614 0
用友畅捷通基于阿里云 EMR StarRocks 搭建实时湖仓实战分享
|
13天前
|
Cloud Native 关系型数据库 OLAP
云原生数据仓库产品使用合集之阿里云云原生数据仓库AnalyticDB PostgreSQL版的重分布时间主要取决的是什么
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
5月前
电子好书发您分享《阿里云云原生一体化数仓新能力解读》
电子好书发您分享《阿里云云原生一体化数仓新能力解读》
268 2
|
2月前
|
分布式计算 关系型数据库 OLAP
阿里云AnalyticDB基于Flink CDC+Hudi实现多表全增量入湖实践
阿里云AnalyticDB基于Flink CDC+Hudi实现多表全增量入湖实践
88 0