最新要闻
- 环球看点!买部iPhone 14要花你多少年薪?各国对比:国人要12% 印度近50%
- 环球焦点!山东人坐地铁不拉手环直接抓杆引围观:人均身高1米8名不虚传
- 12岁女孩玩手游充值近3万 父亲要求退被拒:网友热议不该退 家长原因
- 中秋节的儿童画怎么画_中秋节的儿童画怎么画简单的
- 今天二月二龙抬头!四六级、考研初试今起可查分 方法来了
- 天天百事通!一加11概念机官宣:背部蓝色灯带抢眼 极具辨识度
- 天天热文:小米13系列本周MWC 2023发布!卢伟冰:海外米粉翘首以盼
- 你怎么看?日本66%的高端外国人才是中国人:远超印度、韩国
- 环球观天下!NVIDIA为游戏玩家做了哪些贡献?DLSS、光追等4项技术还真少不了
- 世界观点:残忍没法看!大白鲨罕见"斩首"潜水员 2023年第一例鲨鱼吃人
- 27岁身高186cm的研究生 想捐精被拒:因为要不了那么多
- 【环球热闻】真服了 到底是谁还在支付宝里种树啊?
- 环球观天下!比亚迪立功 磷酸铁锂电芯份额暴增至67.5% 三元锂被甩远
- 世界热推荐:曲艺杂谈歌曲_曲艺杂谈
- 当前快讯:教育部寒假促就业“暖心行动”超9100家用人单位参加 提供岗位信息超49.1万条
- 全球今亮点!射击游戏大作《原子之心》8分好评 继承《生化奇兵》的遗志
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
当前动态:ETL的架构设计和实现及其优势
- ETL的架构
- ETL架构的优势:
- 离线 ETL 的架构设计
- 离线 ETL 的模块实现
- 数据分片(Split)
- 数据解析清洗(Read)
- 多文件落地(Write)
- 检测数据消费完整性 (Commit)
- 参考链接
ETL的架构
ETL架构的优势:
ETL相对于EL-T架构可以实现更为复杂的数据转化逻辑ETL采用单独的硬件服务器,可以分担数据库系统的负载ETL与底层的数据库数据存储无关,可以保持所有的数据始终在数据库当中,避免数据的加载和导出,从而保证效率,提高系统的可监控性。ELT主要通过数据库引擎来实现系统的可扩展性(尤其是当数据加工过程在晚上时,可以充分利用数据库引擎的资源)ELT可以根据数据的分布情况进行并行处理优化,并可以利用数据库的固有功能优化磁盘I/O。ELT的可扩展性取决于数据库引擎和其硬件服务器的可扩展性。通过对相关数据库进行性能调优,ETL过程获得3到4倍的效率提升一般不是特别困难。
离线 ETL 的架构设计
离线 ETL 采用 MapReduce 框架处理清洗不同业务的数据,主要是采用了分而治之的思想,能够水平扩展数据清洗的能力;
graph LR 1[Input] --> 2[Map] --> 3[Output]如上图所示,离线 ETL 分为三个模块:
(资料图片仅供参考)
- Input(InputFormat):主要对数据来源(Kafka 数据)进行解析分片,按照一定策略分配到不同的 Map 进程处理;创建 RecordReader,用于对分片数据读取解析,生成 key-value 传送给下游处理。
- Map(Mapper):对 key-value 数据进行加工处理。
- Output (OutputFormat):创建 RecordWriter 将处理过的 key-value 数据按照库、表、分区落地;最后在 commit 阶段检测消息处理的完整性。
离线 ETL 的模块实现
数据分片(Split)
我们从 kafka 获取当前 topic&partition 最大的 offset 以及上次消费的截止 offset ,组成本次要消费的[beginOffset、endOffset]kafkaEvent,kafkaEvent 会打散到各个 Mapper 进行处理,最终这些 offset 信息持久化到 mysql 表中。
那么如何保证数据不倾斜呢?首先通过配置自定义 mapper 个数,并创建对应个数的 ETLSplit。由于 kafkaEevent 包含了单个 topic&partition 之前消费的 Offset 以及将要消费的最大 Offset,即可获得每个 kafkaEvent 需要消费的消息总量。最后遍历所有的 kafkaEevent,将当前 kafkaEevent 加入当前最小的 ETLSplit(通过比较需要消费的数据量总和,即可得出),通过这样生成的 ETLSplit 能尽量保证数据均衡。
数据解析清洗(Read)
如上图所示,首先每个分片会有对应的 RecordReader 去解析,RecordReade 内包含多个 KafkaConsumerReader ,就是对每个 KafkaEevent 进行消费。每个 KafkaEevent 会对应一个 KafkaConsumer,拉取了字节数据消息之后需要对此进行 decode 反序列化,此时就涉及到 MessageDecoder 的结构。MessageDecoder 目前支持三种格式:
格式 | 涉及 topic |
---|---|
Avro | android、ios、ad_sdk_android... |
Json | app-server-meipai、anti-spam... |
DelimiterText | app-server-youyan、app-server-youyan-im... |
MessageDecoder 接收到 Kafka 的 key 和 value 时会对它们进行反序列化,最后生成 ETLKey 和 ETLValue。同时 MessageDecoder 内包含了 Injector,它主要做了如下事情:
- 注入 Aid:针对 arachnia agent 采集的日志数据,解析 KafkaKey 注入日志唯一标识 Aid;
- 注入 GeoIP 信息:根据 GeoIP 解析 ip 信息注入地理信息(如 country_id、province_id、city_id);
- 注入 SdkDeviceInfo: 本身实时流 ETL 会做注入 gid、is_app_new 等信息,但是离线 ETL 检测这些信息是否完整,做进一步保障。
过程中还有涉及到 DebugFilter,它将 SDK 调试设备的日志过滤,不落地到 HDFS。
多文件落地(Write)
由于 MapReduce 本身的 RecordWriter 不支持单个落地多个文件,需要特殊处理,并且 HDFS 文件是不支持多个进程(线程)writer、append,于是我们将KafkaKey+ 业务分区+ 时间分区 + Kafka partition定义一个唯一的文件,每个文件都是会到带上 kafka partition 信息。同时对每个文件创建一个RecordWriter。
每个 RecordWriter 包含多个 Writer ,每个 Writer 对应一个文件,这样可以避免同一个文件多线程读写。目前是通过 guava cache 维护 writer 的数量,如果 writer 太多或者太长时间没有写访问就会触发 close 动作,待下批有对应目录的 kafka 消息在创建 writer 进行 append 操作。这样我们可以做到在同一个 map 内对多个文件进行写入追加。
检测数据消费完整性 (Commit)
MapReduce Counter 为提供我们一个窗口,观察统计 MapReduce job 运行期的各种细节数据。并且它自带了许多默认 Counter,可以检测数据是否完整消费:
reader_records: 解析成功的消息条数;
decode_records_error: 解析失败的消息条数;
writer_records: 写入成功的消息条数;
...
最后通过本次要消费 topic offset 数量、reader_records 以及 writer_records 数量是否一致,来确认消息消费是否完整。
允许一定比例的脏数据,若超出限度会生成短信告警
参考链接
https://blog.csdn.net/javastart/article/details/113838240
美图离线ETL实践 - 掘金 (juejin.cn)
当前动态:ETL的架构设计和实现及其优势
K8S-namespace 六大类型
信息:原来建造者模式是这样用的
环球看点!买部iPhone 14要花你多少年薪?各国对比:国人要12% 印度近50%
环球焦点!山东人坐地铁不拉手环直接抓杆引围观:人均身高1米8名不虚传
12岁女孩玩手游充值近3万 父亲要求退被拒:网友热议不该退 家长原因
中秋节的儿童画怎么画_中秋节的儿童画怎么画简单的
今天二月二龙抬头!四六级、考研初试今起可查分 方法来了
天天百事通!一加11概念机官宣:背部蓝色灯带抢眼 极具辨识度
每日消息!读Java实战(第二版)笔记16_组合式异步编程
天天热文:小米13系列本周MWC 2023发布!卢伟冰:海外米粉翘首以盼
你怎么看?日本66%的高端外国人才是中国人:远超印度、韩国
热门:kubernetes二进制部署(单节点)
环球速看:MyBatis plus 代码生成器
【世界聚看点】CSS概念与CSS选择器
环球观天下!NVIDIA为游戏玩家做了哪些贡献?DLSS、光追等4项技术还真少不了
世界观点:残忍没法看!大白鲨罕见"斩首"潜水员 2023年第一例鲨鱼吃人
27岁身高186cm的研究生 想捐精被拒:因为要不了那么多
【环球热闻】真服了 到底是谁还在支付宝里种树啊?
环球观天下!比亚迪立功 磷酸铁锂电芯份额暴增至67.5% 三元锂被甩远
世界热推荐:曲艺杂谈歌曲_曲艺杂谈
天天速递!vue-cli创建前端项目以及前后端交互
世界微动态丨记录一次HAWQ手工启动
当前快讯:教育部寒假促就业“暖心行动”超9100家用人单位参加 提供岗位信息超49.1万条
全球今亮点!射击游戏大作《原子之心》8分好评 继承《生化奇兵》的遗志
【世界播资讯】三步实现在ASP.NET Core Web API集成ChatGPT
环球即时:弯道超车 中国动力电池企业 “狂飙”入欧
全球快消息!i9-13900H+RTX 4060满血加持!华硕天选4酷睿版图赏
AMD不赞同NVIDIA:游戏卡加太多AI徒增成本 玩家买单
环球关注:AtCoder Beginner Contest 289
当前看点!女子因宠物猫去世欲轻生 网友吵翻:猫是“家人”为何不可?
4799元 小米Redmi Book Pro15增强版上架:8核升级12核
6.1英寸小屏手感绝佳!三星Galaxy S23图赏
环球快报:肯德基麦当劳的汉堡越卖越小引热议:20年基本没涨价真良心?
焦点滚动:02月20日20时山东滨州昨日累计报告阳性感染者确诊250例 怎么判断自己是否属于轻型感染者
火山引擎 DataTester:在广告投放场景下的 A/B 实验实践
第120篇: DOM编程(常用操作、动态脚本、样式及动态表格)
世界讯息:可孚医用N95口罩30只装 灭菌独立包装19.9元大促
男子因缺钙CT图像中没有肋骨:“像一个透明人”
全球新消息丨189元 OPPO Enco Air3无线耳机上架:HiFi 5 DSP、支持蓝牙5.3
腾讯XR业务转向:或将合作引进Quest 2头显
闲鱼上买显示器靠谱吗?注意这几点就可以
世界要闻:物联网平台选型葵花宝典:盘点开源、SaaS及通用型平台的优劣对比
【Unity AR】
AR精灵制作学习记录 【天天快播报】项目开发软件架构选择指南
飞利浦推出两款44.5英寸带鱼屏:1500R大曲率、75Hz刷新率
行驶中小车后备箱塞人露双脚!司机称其喝醉了:遭网友谴责
世界播报:低头族注意了!9岁女孩长期低头颈椎老如50岁
领1030元大额券:骆驼户外徒步鞋179元起大促
世界观点:亚马逊要求员工一周到岗工作3天:公司一度像个鬼城
K8S-deployment.yaml文件详解
开心档-Git 基本操作
资讯推荐:制造业做信息化(IT管理、程序员)有前途吗?---浅谈信息系统规划
全球观点:记录--什么时候会阻塞HTML文档渲染过程?
【Oculus Interaction SDK】(十一)关于手势识别中手势设置的详细信息
天天热资讯!埃塞俄比亚政府和“提人阵”武装达成停火协议
天天新消息丨义乌自己的全球支付工具!义支付发布:打通16个币种
这待遇简直了!美团外卖进军香港 正疯狂招骑手:月入3万+
消息!手机套餐费太贵 韩国三大运营商被批:是否串通涨价
与剧版强烈反差!《三体》动画豆瓣跌至3.9分:官方已停播
特斯拉最入门车型国内现身?别被骗了:“披着狼皮的羊”而已
关注:Camunda(一)---安装和简单示例
女子在桃李面包中吃出带锈刀片 官方:不存在使用该刀片的生产环节
环球快看:手机寒气仍存 5G巨头中兴被曝优化人员 回应称正常调整
世界观焦点:蔚来ET9要来了?号称“蔚来版迈巴赫” 屏幕开始横过来
掌权八年后上汽大众换帅:贾健旭接棒
大嘴猴50S精梳棉男士四角裤狂促:券后每条不到10元!
WPF学习_day1
K8S-Service的yaml文件详解
全球时讯:【机器视觉】-什么是机器视觉?
当前报道:游戏王dm新马甲_[游戏王DM]羁绊
全球热点!张艺谋监制!北京冬奥拍成电影了:《北京2022》预告片发布
世界视讯!提前!韩国欲2028年推6G网 速度有多快?5G是高铁 6G就是飞机
全球首发5.5G 高通骁龙X75基带不再公布速率:峰值没啥意义
极氪汽车被指销售欺诈!车主集体投诉:退一赔一
世界新动态:ChatGPT火了 中国电信股价大涨50%:底层技术早有布局
世界观热点:璞华易构低代码平台,真正领跑未来的敏捷软件开发方案!
CXPACKET等待类型分析
华晨宝马第500万辆下线!东北老工业基地全力发展新能源车 沈阳比肩深圳
天天新消息丨印度3年内将成为主要电信出口国 5G堆栈“已准备就绪
光环退却 曝神车雷克萨斯ES 300H大优惠:广州35万可落地
世界新资讯:神似小红书 微信为什么要做“小绿书”?
李安:下部电影《李小龙》不会用120帧 挑战观众习惯
当前信息:【踩坑记录】SpringBoot跨域配置不生效
迈柯唯Maquet协议对接(呼吸机、麻醉机)FLOWi SERVOi
【当前独家】远程服务调用(RPC与Rest本质区别)
王予嘉图片_王予嘉
焦点快报!《消费者报告》:宝马制造的汽车最高 路虎果然名不虚传
讯息:全国110个城市建成千兆城市!运营商喊话继续加速千兆宽带:每月198 还能便宜
要闻速递:K8S-Pod的yaml文件详解
全球热推荐:ChatGPT:HuggingFace使用GPT-2模型并额外语料训练
每日观点:第一周学习--linux
环球速讯:消灭挖孔!努比亚首款屏下摄像头新机Z50 Ultra入网
每日资讯:针对富士X卡口设计:腾龙宣布开发新超广角变焦镜头
通讯!小米汽车全新谍照曝光:定位三厢、车头极长
Redis缓存穿透 && 缓存击穿 && 缓存雪崩
环球热头条丨机器学习-集成学习XGBoost
速读:科创信息:公司目前涉及少量军工业务
世界快报:二月二龙抬头来了!明晚10点龙形天象将出现在夜空 天文专家科普
1899元!小米发布智能门锁M20大屏猫眼版:续航1整年