前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[平台建设] 日志数据同步数仓设计

[平台建设] 日志数据同步数仓设计

作者头像
awwewwbbb
发布2022-04-27 09:06:29
2350
发布2022-04-27 09:06:29
举报
文章被收录于专栏:chaplinthink的专栏

背景

主要针对用户流量数据、风控数据、人物画像等数据进行同步至数仓, 制定数据传输格式为json,将用户数据解析写入Hive中,以T+1形式交付给用户,以便用户后续统计分析.

架构设计

TvswE4.png
TvswE4.png

实现细节

  1. 创建工作目录,用于记录kafka消费偏移量, 如果消费完毕将tmp后缀改为success, 第二次消费根据最后一个success后缀文件与kafka 接口计算出下次消费的偏移量数据数据.
  2. 任务启动创建lock 文件,避免调度时任务冲突,只有当第一批次任务成功完成时,再删除lock文件
  3. 自适应匹配添加字段, 通过数据字段与原始schema对比自动添加字段
  4. 在driver端代码内添加必要的日志,如消费的条数, 通过spark累加器计算executor处理失败的条数数据
  5. 针对流量数据等需要添加过滤功能, 避免测试数据或者大量的异常数据过来导致任务失败、消耗资源过多等情况,算是一个兜底的方案, 可以根据时间字段过滤特定时间段数据 或者根据某个字段关键字进行过滤
  6. 小文件处理, 主要是在写入hdfs时候, 对写入数据进行repartition 操作,根据期望分区文件数(并行度),根据下面的udf函数随机将数据打散写入hdfs文件中
代码语言:javascript
复制
 val udf_shuffle_partition = udf((partitions: String) => {
        partitions + new Random().nextInt(parallelismPerPartiton)
     })

总结

本文主要针对日志数据接入数据仓库场景进行设计, 同时介绍了下在设计接入时的一些细节,针对可能出现的问题进行必要的处理.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 架构设计
  • 实现细节
  • 总结
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档