数仓项目的架构设计实施的标准输出模板
数仓项目架构设计实施的标准输出模板
一,什么是数仓架构?
逻辑架构、数据架构、开发架构、运行架构、物理架构
二,技术架构:
1,开发平台选择
阿里云 : 云平台, 花费高。 开发部署管理难度最小,快速实现业务价值
Apache : 大厂选择, 自由度高
CDH : 国内普遍使用多,一套产品,开发部署管理难度小
国外:有些公司选择商业数仓平台
2,根据平台选择技术组件选型 (以开源平台为例)
数据采集传输:Flume、Kafka、Sqoop、Logstash、DataX、kettle
依据;是否开源或商业 流式或批量 ? 数据源特征(日志,rmdbs, IOT)
sqoop : 数据源单一,官方推荐,稳定
dataX: 灵活性好,功能强大,数据源扩展性好
数据存储:MySQL、postgresql、Greenplum、HDFS、HBase、Redis、MongoDB
选型依据:文件, 关系表 , nosql , 文档数据库 ,KV ,数据量, 数据特征 ,CURD效率
数据计算:Hive、Tez、Spark、Flink、Storm
选型依据:批量/流式 计算速度 延迟 开发难度要求
数据查询:Presto、Kylin、Impala、Druid、ElasticSearch clickhouse
数据可视化:Echars、Superset、FineReport、QuickBI、DataV
任务调度:Azkaban、Oozie、airflow
集群监控:Zabbix
元数据管理:Atlas
输出:各种功能组件选型对照表
三,数仓技术架构图
数据链,图式展示
举例:(web/app- nginx- logfile- flume-kafka -(hdfs , hbase) - hive - mysql
mysql - sqoop - hdfs
输出: 直观技术架构图
四,数据模型设计 data modeling
主题域划分
建模方法:维度建模
数据模型类型: 星座模型
建模过程:
1,概念模型建模
2,逻辑模型建模
3,物理模型建模
维度建模过程:
1,业务过程
2,粒度
3,维度
4,事实表
输出:主题域划分清单
3种建模文档清单
数据表清单(维度表和事实表)
五,数据分层模型设计
分层原则:
分层模型:多少层 ,层内表
输出:分层架构图 (多少层,层说明,每层的表清单)
六,数仓/数据中台物理架构:
服务器规划;
个数 资源配置 组件部署(节点内的哪些组件 ,组件有哪些节点)
组件部署特性
输出: 服务器节点规划表 (节点 ,节点资源配置(内存,cpu , 网络),组件分配,组件的子进程分配,以及高可用配置等)
大数据集群网络规划表
七:数仓设计规范:
输出清单:
库设计规范
表设计规范 (表命名规范 ,字段类型, 表约束项)
数仓分层规范
代码设计规范(sql代码规范、 SHELL脚本 、Java规范 、 python 、 scala )
主题域划分规范
八,ETL架构设计:
数据源列表:列表 数据量 数据特征 数据目的地 采集工具
抽取加载策略 :(采集方式和采集策略(周期,全量,增量 ,是否保持历史记录,))
任务调度规范 (工作流编排 支持并行? 支持重复执行? 时机 周期)
ETL映射设计清单: (字段map , source -> target )
任务流清单:功能说明 job 工作流 节点名 参数命名
日志输出规范(节点名称 job 失败/成功 ,)
任务部署清单( 工作流 服务器 目录 目录结构 )