数据分析 & 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实现复杂业务逻辑,工程化。

Logo

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

更多推荐