数据分析 & Snowflake
OLTP(Online Transaction Processing在线事务处理)和 OLAP(Online Analytical Processing在线分析处理)是两种主要的数据处理模式。
数据分析 & Snowflake
1.数据分析基础
- 数据流向 :MySQL等传统业务数据(结构、半结构、非结构) → ETL(Extract, Transform, Load) → 数据仓库 / 数据计算 → BI(BI也提供计算能力)
sequenceDiagram
MySQL->>+Kafka: 实时数据变更
Kafka->>+Snowflake: 批量加载
Snowflake->>BI工具(阿里Quick BI): 分析报表
- OLTP(Online Transaction Processing在线事务处理)和 OLAP(Online Analytical Processing在线分析处理)是两种主要的数据处理模式
举个例子:MySQL 之类的关系型数据库,MongDB 之类的NoSQL的OLTP。ES之类的算OLAP。
- 关系型数据库一般结构
├── Database
├── Schema
├── Table
├── View
├── Object
- 数仓建设的星型/雪花模型:优化分析查询性能;事实表+维度表;读操作高效。
Tips: OLTP关系型数据库范式(123NF):保证数据一致性,减少冗余;多表关联;读写均衡。
星型模型(Star Schema)
graph TD
A[事实表] --> B[维度表1]
A --> C[维度表2]
A --> D[维度表3]
雪花模型(Snowflake Schema)
graph TD
A[事实表] --> B[维度表1]
B --> C[子维度表1]
B --> D[子维度表2]
- 数据仓库-模型设计-最佳实践(分层架构)(Modeling Design)
(LANDING层:手工数据)
STAGING层(暂存层):直接引用源系统数据,保持原始状态不做转换,仅做基础清洗。如非法值替换。
TRANSFER层 (传输层)- MD层 (Master Data):主数据层,整合各系统的核心业务实体数据。企业级主数据统一视图。
TRANSFER层 (传输层)- TD层 (Transaction Data):交易数据层,存储业务过程数据。按业务过程组织数据,保留完整的交易流水。
TRANSFER层 (传输层)- APS层 (Application Processing Service):应用处理层,基于MD和TD进行业务逻辑处理。
Distribution层 (分发层):仅通过 SELECT * FROM APS 方式对外提供数据,可同时通过视图实现列级权限控制。
清晰的数据流转路径:STAGING → MD/TD → APS → DIST
Tips:
小型项目:可合并MD/TD层
超大型项目:可增加DQM(数据质量监控层)
可通过SQL配置调度定时任务
- 三种核心SQL查操作(Modeling)
projection: 投影。基础操作
aggregation:聚合。如group by with count等等。
join: 尤其left join
上面三种结合:
1.Subquery 子查询
2.CTE(Common Table Expression) :大部分情况复杂时CTE比子查询好,性能、执行计划和可读性一般都要好。with表达式。
- 业务(朴素理念)
1.数据本身是客观的,数据分析可以是有视角的(最简单的例子,薪资平均值对外,薪资中位数对内;做图关注加速度和速度,即关注差距还是斜率;朴素数学原理)。
2.数据需要产生业务价值,所以老板想要较深度的数据分析。
3.回归到职业力、业务能力、Manage Up、情绪价值。
2.Snowflake
-
Snowflake: cloud-native data warehouse.
-
Snowsight: Snowflake web interface.
-
架构(三层):
– 云服务(认证管理操作)
– 计算(virtual warehouse,计算单位/资源集合),这里的计算指查询query
– 存储(表现特征参考数据库,内部实现肯定有区别) -
特点:存储计算分离,存储计算尤其是计算可以分别弹性(scale up / scale out),云原生,云平台操作。
-
运行SQL需要:角色权限 & Virtual Warehouse(计算资源) & Database(数据)
-
dbt(Data Build Tool): 工程开发在线IDE(可连CI/CD,可配置连snowflake)。dbt实现复杂业务逻辑,工程化。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)