Snowflake 数据仓库开发规范 v1.0

版本号 修订日期 修订人 修订说明
v1.0 2024-01-13 LiuZhu 初步拟定命名规范、分层规范、代码格式规范等

1. 命名规范

1.1 数据库命名规范

  • 所有的数据库名称应 全部大写,使用下划线分隔词语。
  • 避免使用保留关键字作为数据库名。

例如:RAW_DATA

1.2 表命名规范

  • 所有的表名 全部大写,使用下划线分隔词语。
  • 表名应该清晰地反映表的内容。
  • 避免使用保留关键字作为表名。

例如:CUSTOMER_DETAILS

1.3 列命名规范

  • 所有的列名 全部大写,使用下划线分隔词语。
  • 列名应该清晰地反映列的内容。
  • 避免使用保留关键字作为列名。

例如:CUSTOMER_ID

1.4 事实表命名规范

  • 事实表的名字应该以 FACT_ 开头,后接表达该表内容的名词,使用大写字母并用下划线分隔词语。
  • 事实表的名字应该清晰地反映表的内容。

例如:FACT_SALES

1.5 维度表命名规范

  • 维度表的名字应该以 DIM_ 开头,后接表达该表内容的名词,使用大写字母并用下划线分隔词语。
  • 维度表的名字应该清晰地反映表的内容。

例如:DIM_CUSTOMER

1.6 映射表命名规范

  • 映射表的名字应该以 MAP_ 开头,后接表达该表内容的名词,使用大写字母并用下划线分隔词语。
  • 映射表的名字应该清晰地反映表的内容。

例如:MAP_PRODUCT_CATEGORY

1.7 函数命名规范

  • 函数名应清晰地描述函数的功能。
  • 函数名应以 F动词 开始,以表明它们执行的操作。

例如:F_CALCULATE_TOTAL_REVENUE

1.8 存储过程命名规范

  • 存储过程名称应清楚地描述它们执行的操作。
  • 存储过程名称应以 SP_ 为前缀。

例如:SP_UPDATE_CUSTOMER_STATUS

1.9 视图命名规范

  • 视图名称应清楚地描述它们所显示的数据。
  • 视图名称应以 V_ 为前缀。

例如:V_SALES_SUMMARY

2. 数据仓库分层规范

2.1 原始层 (Raw Layer)

  • 这一层是数据仓库的入口,应该包含所有源系统的数据的完整复制品。
  • 数据应该以最原始的形式存储,不进行任何转换或清洗。
  • 数据库名:RAW_DATA

2.2 清洗层 (Clean Layer)

  • 在这一层,数据应该进行清洗和转换,以满足业务需求。
  • 清洗过程包括数据质量检查、缺失值处理、错误值处理等。
  • 数据库名:CLEAN_DATA

2.3 业务层 (Business Layer)

  • 在这一层,数据应该根据业务需求进行进一步的转换和聚合。
  • 这一层的数据应该满足大部分报表和分析的需求。
  • 数据库名:BUSSINESS_DATA

2.4 展示层 (Presentation Layer)

  • 这一层的数据应该是为最终用户准备的,应该直接满足报表和分析的需求。
  • 应该尽可能地简化这一层的数据结构,使其易于理解和使用。
  • 数据库名:REPORTING_DATA

3. 代码格式规范

以下是一些基本的SQL代码格式规范,适用于Snowflake:

3.1 关键字

SQL关键字应全部大写,如SELECTFROMWHERE等。

3.2 缩进

使用缩进来提高代码的可读性。例如,FROMWHEREGROUP BY等子句应当在新的一行开始,并且相对于SELECT关键字缩进。

3.3 别名

在查询中使用别名时,别名应清晰地描述列或表的内容。

3.4 注释

应使用注释来解释代码的功能和目的。注释应以--开始,放在需要解释的代码行的上一行。

3.5 空格

在操作符两侧使用空格,如=, <, >, +, -, *, /

4. 其他规范

  • 应该定期备份数据,以防数据丢失。
  • 应该定期检查数据质量,以确保数据的准确性。
  • 在开发过程中,应该遵循最佳实践,包括使用版本控制、编写可读的代码、进行单元测试等。

以上规范只是一个基本的指南,实际的开发规范应该根据具体的项目需求和团队习惯进行调整。