@[toc]
数据仓库 、数据中心相关技术知识和生态相关了解
1、数据仓库 数仓
数仓的分层
1、ODS 层:Operation Data Store 原始数据层 加载原始数据不做处理
2、DWD 层:Data Warehouse Detail 明细数据层 对 ODS 层数据进行清洗,去除空值、脏数据、超过极限范围的数据,对敏感数据进行脱敏
3、DWS 层:Data Warehouse Service 服务数据层 以 DWD 数据为基础,按天进行轻度汇总
4、DWT 层:Data Warehouse Topic 数据主题层 以 DWT 数据为基础,按主题进行汇总
5、ADS 层:Application Data Store 数据应用层 为各种报表提供数据
分层的目的
1、简化复杂任务,方便定位问题
2、减少重复开发
3、隔离原始数据
数据集市(Data Market)
和数据仓库
1、数据集市是数据仓库的 Mini 版本,主要服务于部门
2、数据仓库是企业级的,为企业的各个部门提供决策支持手段
一些数仓处理相关的技术框架
1、Azkaban 一套简单的任务调度服务,整体包括三部分webserver、dbserver、executorserver
参考 https://blog.csdn.net/wt334502157/article/details/116891032
Azkaban的功能特点
1、 Web用户界面
2、 方便上传工作流
3、 方便设置任务之间的关系
4、 工作流调度
5、 认证/授权
6、 能够杀死并重启工作流
7、 模块化和可插拔的插件机制
8、 项目工作区
9、 工作流和任务的日志记录和审计
2、数据处理 ETL
ETL 相关技术
1、Kettle 一个开源的 ETL 工具,后面改名为 Pentaho Data Integration (但是国内仍然喜欢叫 Kettle)
参考 https://baike.baidu.com/item/Kettle/5920713?fr=aladdin
1、以 Java 开发,支持跨平台运行
2、支持 100% 无编码、拖拽方式开发ETL数据管道
3、可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源
4、支持ETL数据管道加入机器学习算法
3、数据湖
参考 https://blog.csdn.net/jyj1100/article/details/104692133
可以使用 Delta Lake
构建湖仓一体
Apache Hudi
(简称Hudi)提供在DFS上存储超大规模数据集,同时使得流式处理如果批处理一样,该实现主要是通过如下两个原语实现。
1、Update/Delete记录: Hudi支持更新/删除记录,使用文件/记录级别索引,同时对写操作提供事务保证。查询可获取最新提交的快照来产生结果。
2、Change Streams: Hudi也支持增量获取表中所有更新/插入/删除的记录,从指定时间点开始进行增量查询
Hudi 支持
1、快照查询
2、增量查询
3、读优化查询
4、数据中心相关
参考 https://www.jianshu.com/p/68aba8d09a89
Camel 框架的核心是一个路由引擎,或者更确切地说是一个路由引擎构建器。它允许您定义自己的路由规则,决定从哪个源接收消息,并确定如何处理这些消息并将其发送到其他目标。
Camel 提供更高层次的抽象,使您可以使用相同的API与各种系统进行交互,而不管系统使用的协议或数据类型如何。
Camel 中的组件提供了针对不同协议和数据类型的API的特定实现。开箱即用,Camel支持80多种协议和数据类型。
Maven 依赖
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.15.6</version>
</dependency>
</dependencies>
canal 是为了解决 MySql 增量数据同步问题的工具,otter 基于 canal
canal 用于对 MySql 的增量数据订阅和消费
canal 通过 MySql binlog 拿到变更数据,再发送给 MySql Kafka ES 等
使用场景
1、作为 otter 的一部分
2、更新缓存