基于CLICKHOUSE的数据仓库分层规范
(相关资料图)
数据仓库分层架构
数据仓库我们一般分为接入层、明细层、实体层、主题层、应用层。各层存储的数据粒度不同。
接入层:一般存储接收的原始数据,并给接入的数据打上接收时间戳。
明细层:一般存储合并后的全量原始数据。
实体层:按照业务实体生成的宽表。
主题层:按照业务主题汇聚的数据集。
应用层:按照具体应用汇聚的数据集。
下面我们逐层介绍各层数据表的应用标准规范。
接入层
从源系统接入的数据,数据格式与源系统保持一致,每次增量插入。
(1)建表规范:
字段基础类型以“select toTypeName({col}) from jdbc(‘{datasource}’,’select {col} from {table}’) limit 1”查询结果为准。
添加入库时间odgTime数据类型为时间类型,用来与源库中的数据进行对账。
建表时排序键处理:以 CityHash64(*)as __allCityHash64作为排序键。
需设置采样键为,__allCityHash64。
(2)数据清理策略:
保留时长:7天(入仓时间),自动删除语句为 “TTL odgTime + toIntervalDay(7)”。
(3)数据模型设计流程:
1)确定数据源表
2)通过JDBC获取技术元数据
3)创建物理表
4)添加数据表、字段、表关系元数据
明细层
明细层中的数据是基于接入层的原始数据进行数据清洗,去重等处理过程,得到拥有高质量的数据。
(1)建表规则:
所有表必备三个字段:pkTuple(由主键字段组成的元组,Tuple类型);pkHash(pkTuple通过cityHash64计算值,Int64类型); odgTime(更新时间,DateTime类型)。
建表时排序键处理:用源表业务主键作为排序键。
(2)去重规则:
按照业务主键取最新,若无明确业务主键情况,则所有业务数据列为业务主键。
(3)数据清理策略:
永久保存。
(4)数据模型设计流程:
1)根据接入层对应数据表创建物理表
2)添加数据表、字段、表关系元数据
实体层
按照业务域,以逻辑实体为基础,增加技术属性生成的物理表。
(1)实体设计原则:
遵从业务模型,兼顾数据来源。维度原则性不退化,不丢属性。
(2)合宽表原则:
被合并的实体存在共同的业务主键。
(3)更新规范:
增量更新,相同业务主键,数据取最新。
(4)数据清理策略:
数据永久保存
(5)建表规则:
所有表必备三个字段:pkTuple(由主键字段组成的元组,Tuple类型);pkHash(pkTuple通过cityHash64计算值,Int64类型); odgTime(更新时间,DateTime类型)。
建表时排序键:实体主键。
(6)数据模型设计流程:
1)根据逻辑模型添加数仓必需字段信息,创建物理表
2)添加数据表、字段、表关系元数据
主题层
按照业务域,依据指标说明进行汇总。
(1)设计原则:
按照“实体基本信息+维度+统计指标集”原则设计主题层表。例如生产厂指标集表,由生产厂编号、名称等基本信息,月份、取值科目(业务收入类型)等维度,产值、生产成本等指标构成。
(2)更新规则:
全量更新为主,增量(数据量超千万时)更新为辅。
(3)转存规则:
落表后推送交互区。
(4)建表规则:
所有表必备三个字段:pkTuple(由主键字段组成的元组,Tuple类型);pkHash(pkTuple通过cityHash64计算值,Int64类型); odgTime(更新时间,DateTime类型)。
(5)数据模型设计流程:
1)梳理指标集,按照实体确定业务字段信息
2)按照建表规则创建物理表
3)添加数据表、字段、表关系元数据
应用层
应用层的数据是经过最终汇总出来的数据,用来支撑前端报表、BI系统、分析系统的展示。
(1)设计原则:
报表类数据表,以报表展示的数据列为列,行按照报表筛选条件展开。
详细数据类数据表,以前台使用为基础定义列,建立分布式表,直接从实体层或主题层取数。
(2)更新规则:
报表类数据表全量更新。
详细数据类型数据表,由实体层、主题层更新。
(3)转存规则:
报表类数据表落表后推送交互区。
原则严禁存详细数据,详细数据均由分布式表实现。
(4)建表规则:
原则上按照筛选条件、汇总条件设计预计算规则,必须存在能标识数据唯一性的主键。
(6)数据模型设计流程:
1)梳理应用需求,确定字段信息
2)按照建表规则创建物理表
3)添加数据表、字段、表关系元数据
知识库
知识库可以被各层使用,由代码表、映射表构成。
(1)维护策略:
原则上,每个知识库每张表来源唯一,且有责任人。
(2)设计规范:
维度代码为数字(现状多以字母加数字,不调整)。
(3)设计规范:
1)需建立对应的字典。
2)通过字典函数调用,不应通过JOIN表方式调用。
3)同一个代码对应该多个属性时,应合并到一个字典。
4)字典调用方式为dictGet("dict_name", attr_names, toUInt64(expr))
5)若代码不为数字时,调用方式为dictGet("dict_name", attr_names, cityHash64(expr))
6)默认值为空字符串(非NULL)。
元数据
(1)数据表元数据
(2)字段元数据
(3)数据表关系
一组关系由两个表的字段组成,为确保字段的唯一性,需要明确字段所有的数据库、数据表。系统根据表关系自动生成关系图谱。
关键词:
推荐阅读
月壤形成的主要原因 月壤与土壤有什么区别
月壤形成的主要原因月壤形成过程没有生物活动参与,没有有机质,还极度缺水干燥;组成月壤的矿物粉末基本是由陨石撞击破砰形成,因此,粉末 【详细】
域名抢注是是什么意思?投资角度来看什么域名好?
域名抢注是是什么意思域名抢注是通过抢先注册的方式获得互联网删除的域名的使用权。域名是由点分隔的一串数字,用于标记一台计算机或一组计 【详细】
捷达保养费用是多少?捷达是哪个国家的品牌?
捷达保养费用是多少?全新捷达的保修期为2年或6万公里,以先到者为准,新车可享受一次免费保养,首次免费保养在5000-7500km或1年内进行。如 【详细】
天然气泄露会造成爆炸吗?天然气泄漏怎么办?
天然气泄露会造成爆炸吗?家里用的天然气如果泄露是会发生爆炸的。当空气中含有混合天然气时,在与火源接触的一系列爆炸危险中,就会发生爆 【详细】
四部门明确App收集个人信息范围 个人信息保护范围判断标准
四部门明确App收集个人信息范围近日,国家互联网信息办公室、工业和信息化部、公安部、国家市场监督管理总局联合印发《常见类型移动互联网 【详细】
相关新闻
- 基于CLICKHOUSE的数据仓库分层规范
- iPhone 15系列于9月13日发布 9月22日发售:7大升级、或售5999元起
- 这5种家用电器正处在“淘汰边缘”,劝你捂紧钱包,别再入坑了!
- 火山小视频有钱赚吗 火山小视频能赚钱吗
- 苹果手机音乐下载(手机音乐下载)
- 国际领先!自主创新高铁声屏障填补国内空白,声屏障究竟有何用处
- 转扩!10秒开启地震预警功能
- 华为鸿蒙4.0系统强势来袭,升级信息全面汇总,好不好用看完就懂
- 海南试点推出旅游客运综合服务结算平台
- 格力空调和美的空调哪个质量好?你也在纠结吗?
- 无线电爱好者有相同的爱好,相似的艰辛,同样的乐趣
- 探秘旧时代的奇特手机
- 幸福很突然!华为正式宣布:鸿蒙4.0发布,新功能有这些!
- 盘点国产最佳和最坑手机
- 下达“逐客令”?中企取消2392亿芯片订单,外媒:拜登心要碎了
- 我们对16元兴业银行采取的两种估值逻辑
- 为更多更快完成救援任务 他连续5天几乎没睡
- 成都大运会期间,超过3600名外国人首次体验移动支付
- 非熟勿接!必要时可关闭该功能!
- 天门纺机:用五年时间脱胎换骨的智慧工厂计划已进入精品冲刺年