一:数据建模原则
- 高内聚和底耦合
将业务相近或者相关,粒度相同的数据涉及为一个逻辑或者物理模型:高将高概率同时访问的数据放在一起,将低概率同时访问的数据分开存储。
- 核心模型与扩展模型分离
建立核心模型与扩展模型体系,核心模型包括的字段支持常用的核心业务,扩展模型包括的字段支持个性化或者少量应用的需要。
- 公共处理逻辑下沉及单一
越是底层公用的处理逻辑越应该在数据调度依赖的底层进行封装与实现,不要让公用的处理逻辑暴露给应用层实现,不要让公共逻辑多处同时存在 。
- 成本与性能均衡
适当的冗余可以换取查询和刷新性能,不宜过度冗余与数据复制。
- 数据可回滚
处理逻辑不变,在不同时间多次运行数据结果确定不变
- 一致性
具有相同含义的字段在不同表中的命名必须相同,必须使用规范定义中的名称。
- 命名清晰,可理解
表命名需要清晰,一致,表名需要易于消费者理解和使用。
二:星型模型涉及步骤
-
选择需要进行分析决策的业务过程。业务过程可以是单个业务事件,比如交易的支付、退款等;也可以是某个事件的状态,比如当前的账户余额等;还可以是一系列相关业务事件组成的业务流程,具体需要看我们分析的是某些事件发生情况,还是当前状态,或是事件流转效率。
-
选择粒度。在事件分析中,我们要预判所有分析需要细分的程度,从而决定选择的粒度。粒度是维度的一个组合。
-
识别维表。选择好粒度之后,就需要基于此粒度设计维表,包括维度属性,用于分析时进行分组和筛选。
-
选择事实。确定分析需要衡量的指标 。
三:clickhouse简介
ClickHouse是一个完全的列式数据库管理系统,允许运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重新启动服务器,支持线性扩展,简单方便,高可靠性,容错。