Smart Community(1)之设计规范

通过前面大数据开发相关知识的学习,准备做一个项目进行练习---我给他起了一个响亮的名字:基于HadoopHA的智慧社区服务平台

设计规范:

做一个项目之前肯定要先规定一些开发过程中的设计规范

(一)数据埋点规范:

数据埋点:是一种在软件、应用程序或网站中插入代码的技术,用于收集和跟踪用户行为和事件的数据。通过在关键位置插入代码片段(埋点),可以记录用户在应用程序中的操作和交互,以及其他有关系统和用户行为的信息。

(1)确保灵活、高可扩展

(2)兼顾后续的处理、分析的方便性

(3)确保可跟踪、数据正确性

(4)业务数据打通

(5)考虑不同C端产品特性与用户体验

(6)确保性能、敏感数据安全性

(二)数仓层次设计规范:

ODS层:是原始数据层,是最接近数据源的一层,将数据源中的数据经过ETL之后装入ODS层,ODS的数据结构一般与数据来源保持一致,便于减少ETL工作的复杂性。

DWD层:是明细数据层,进行维度建模,该层的表结构和粒度与原始表保持一致,不过对ODS层数据进行清洗、维度退化、脱敏等,最终得到的数据是干净的,完整的,一致的数据。一般采用星型模型,呈现的状态一般为星座模型。 维度建模一般分为四步: 选择业务过程(先选择容易实现的)、 声明粒度(以最低的原子粒度处理数据)、 确认维度(考虑其他维度是否可以被属性化)、 确认事实(确认将那些事实---(指的是度量值,一些具体数据)放入事实表中)。

DWS层:服务数据层,基于DWD层的明细数据,按天轻度汇总成某一个主题域的服务数据,一般是宽表。DWS层统计各个主题对象的当天行为,以及一些业务明细数据,服务于DM(数据集市)层的某个主题。

(三)表命名规范:

英文在不是原意的情况下采用缩写,避免数字开头

能够合理的区分出表所描述的数据域、数据周期等。 命名规范设定:

层次_数据域_修饰/描述_范围/周期

订单相关数据表

dwd层: d_ord_info_d

dws层: s_ord_st_d

维度表(dimension

用户维度: dim_user_d

商品缓慢渐变维表: dim_product_l

ods层

对于ods层表,最好能够区分数据来源,包括在来自什么系统、源数据名称。

eg 从业务系统全量采集订单(loan_order)数据到ods层 业务系统编码: buss 业务系统订单表: loan_order ods层表命名: o_buss_loan_order_d

(四)脚本命名规范:

•ETL脚本名称尽可能和所产出的表同名 •数据采集、 数据推送脚本尽可能标识数据去向

•ETL脚本若产生多个表, 采用对应的数据域和语义描述命名

•Jar包命名以实际的业务处理逻辑语义描述为主,调度任务命名同样尽量以产出表名命名。

eg:

订单ETL过程 从表o_buss_loan_order_d整理数据并且装载到dwd层表d_ord_info_d中。

ETL脚本命名: d_ord_info_d.sh

ETL任务命名: d_ord_info_d 一个ETL脚本产出多个表,比如从商品表中分离出商品维度、厂家维度。

ETL脚本命名: dim_product_mfrs_d.sh

ETL任务名称: dim_product_mfrs_d 采集数据到ods层的表o_buss_loan_order_d imp_o_buss_loan_order_d.sh

数据表dm_ord_trsfm_d推送到BI系统 exp_bi_dm_ord_trsm_d.sh

(五)开发规范:

数仓中MR程序尽可能统一输入参数、输出参数,单个jar程序的功能模块清晰,避免多种处理逻辑写入一个jar包。

每个ETL脚本尽可能产出一张数仓表,方便任务排查,同时也减少数仓表的耦合性。

ETL脚本格式、备注清晰,避免大范围、格式杂乱的脚本,合理利用临时表。

字段列对齐 关键字列对齐

禁止使用Tab, 全部使用4个空格代替

相关推荐
Wpa.wk3 小时前
自动化测试-三种等待的使用方式 (强制等待,显示等待,隐式等待)
microsoft·自动化·设计规范·显示等待·隐式等待·强制等待
数智研发说3 小时前
智汇电器携手鼎捷PLM:从“制造”迈向“智造”,构建高效协同研发新范式
大数据·人工智能·设计模式·重构·制造·设计规范
Slow菜鸟2 天前
Java开发规范(五)| 接口设计规范—前后端/跨服务协作的“架构级契约”
java·状态模式·设计规范
帅次2 天前
系统分析师:系统规划与分析的业务流程分析、业务流程图、数据与数据流程分析和系统方案建议
流程图·软件工程·软件构建·需求分析·敏捷流程·设计规范·规格说明书
帅次8 天前
系统分析师:系统规划与分析的系统规划概述、项目的提出和选择、系统分析概述以及问题分析
软件工程·团队开发·软件构建·需求分析·敏捷流程·设计规范·规格说明书
brave and determined9 天前
可编程逻辑器件学习(day34):半导体编年史:从法拉第的意外发现到塑造现代文明的硅基浪潮
人工智能·深度学习·fpga开发·verilog·fpga·设计规范·嵌入式设计
Wpa.wk10 天前
编写测试用例过程,测试用例编写模版示例
测试用例·设计规范·测试用例设计过程
brave and determined11 天前
可编程逻辑器件学习(day29):Verilog HDL可综合代码设计规范与实践指南
深度学习·fpga开发·verilog·fpga·设计规范·硬件编程·嵌入式设计
奋进的电子工程师16 天前
如何实现开源组件的安全与合规治理?
安全·开源·代码规范·设计规范·代码复审
施嘉伟16 天前
中间件设计规范及安装手册
中间件·设计规范