离线数仓0点漂移问题解决:使用拦截器解决0点漂移问题
目录
什么是0点漂移问题?
哪个位置处理?
处理代码/拦截器代码如下:
什么是0点漂移问题?
即:第一天晚上11:59:59产生的数据可能会在第二天的0点左右收到,如果不处理就会当成第二天产生的数据,影响准确性,所以需要处理
哪个位置处理?
如果你的数仓用到flume;一般在flume中的kafkasource下又加了一个拦截器进行处理
处理代码/拦截器代码如下:
public class TimestampAndTableNameInterceptor implements Interceptor {@Overridepublic void initialize() {}@Overridepublic Event intercept(Event event) {//获取头数据Map<String, String> headers = event.getHeaders();//获取body并转为StringString log = new String(event.getBody(), StandardCharsets.UTF_8);//将body转为JSONJSONObject jsonObject = JSONObject.parseObject(log);//获取body的tsLong ts = jsonObject.getLong("ts");//maxwell是10位,但是Flume要求是13位,扩为13位时间戳String timeMills = String.valueOf(ts * 1000);String tableName = jsonObject.getString("table");headers.put("timestamp",timeMills);headers.put("tableName",tableName);return event;}@Overridepublic List<Event> intercept(List<Event> events) {for (Event event : events) {intercept(event);}return events;}@Overridepublic void close() {}public static class Builder implements Interceptor.Builder{@Overridepublic Interceptor build() {return new TimestampAndTableNameInterceptor();}@Overridepublic void configure(Context context) {}}
}
需要注意的是:需要你手动做一个Builder类,然后返回拦截器类
离线数仓0点漂移问题解决:使用拦截器解决0点漂移问题相关推荐
- 离线数仓搭建_02_服务器配置与数据生产
点击右下方:专栏目录查看全文 文章目录 3.0 数据生成模块(P14-P29) 3.1目标数据 3.1.1页面 3.1.2事件(动作) 3.1.3曝光 3.1.4启动 3.1.5错误 3.2 数据埋点 ...
- 【离线数仓-2-数据采集】
离线数仓-2-数据采集 离线数仓-2-数据采集 1.用户行为日志数据模拟 1.用户行为日志的介绍 2.埋点有哪些 3.用户行为日志内容 4.用户行为日志格式 5.用户行为日志数据采集 1.节点之间配置 ...
- 离线数仓(10):ODS层实现之业务数据核对
目录 0. 相关文章链接 1. 目的 2. 调度任务创建 2.1. 概述 2.2. ods_fmys_goods_ext_数据核对_CDM任务 节点说明 2.3. ods_fmys_goods_ext ...
- 尚硅谷-离线数仓-笔记
尚硅谷-离线数仓-笔记 一.数仓建模理论 第一章 数仓概述 1.1 数仓概念 数据仓库是一个为数据分析而设计的企业级数据管理系统.数据仓库可集中.整合多个信息源的大量数据,借助数据仓库的分析能力,企业 ...
- 大数据千亿级离线数仓项目第一天 环境部署和etl
千亿级数仓项目第01天讲义 课程目标 了解大数据离线数仓架构 了解项目部署环境(数据规模和集群规模) 掌握ETL工具 Kettle常用组件的使用 能够掌握kettle作业与转换区别以及linux部署 ...
- 离线数仓搭建_11_DWD层用户行为日志创建
文章目录 13.0 数仓搭建-DWD层 13.1 DWD层(用户行为日志) 13.1.1 日志解析思路 13.1.2 get_json_object函数使用 13.1.3 启动日志表 13.1.4 页 ...
- 离线数仓搭建_14_DWT数据构建
文章目录 15.0 数仓搭建-DWT层 15.1 访客主题 15.2 用户主题 15.3 商品主题 15.4 优惠券主题 15.5 活动主题 15.6 地区主题 15.7 DWT层首日数据导入脚本 1 ...
- 离线数仓建设及技术选型
离线数仓架构设计 1.建设数仓的目的 主要是增加数据计算的复用性.每次新增加统计需求时,不至于从原始数据进行计算,而是从半成品继续加工而成. 2. 数据仓库作用 整合企业业务数据,建立统一的数据中心: ...
- 离线数仓搭建_15_ADS层数据构建
文章目录 16.0 数仓搭建-ADS层 16.1 建表说明 16.2 访客主题 16.2.1 访客统计 16.2.2 路径分析 16.3 用户主题 16.3.1 用户统计 16.3.2 用户变动统计 ...
最新文章
- 英伟达TensorRT 8-bit Inference推理
- Error Kernel Pattern
- GitHub优秀开源项目收集
- atoi实现(考虑足够多种的情况)c++
- 0.IDA-基本的反汇编算法
- windows内核情景分析---进程线程2
- Java 关键字—— static 与 final
- 数字图像处理基础与应用学习,第二章
- ATL offsetofclass 的工作原理
- 一文搞懂C语言回调函数
- 编写自定义的字符串一致性匹配方法,只要两个字符串包含同样的字符, 不管字符的顺序如何,都认为两个字符串一致,如:”aabbcc”和”abcabc”被认为是一致的...
- matlab db(X R),matlab操作sqlite数据库
- 在手动安装 Kubernetes 的基础上搭建微服务
- 黑马程序员java整套视频地址 javaweb+ssh+ssm视频+源码+软件
- web前端工程师眼中的母亲节
- spring终极宝典
- 灵动ICPC冬令营基础-5
- 《SolidWorks 2014中文版完全自学手册》——导读
- Android SwipeRefreshLayout GMail的下拉刷新效果
- word、excel文档内容更新技术方案