当前位置: 首页 > news >正文

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个空格代替

相关文章:

Smart Community(1)之设计规范

通过前面大数据开发相关知识的学习,准备做一个项目进行练习---我给他起了一个响亮的名字:基于HadoopHA的智慧社区服务平台 设计规范: 做一个项目之前肯定要先规定一些开发过程中的设计规范 (一)数据埋点规范&#xf…...

爬虫工作者必备:使用爬虫IP轻松获得最强辅助

目录 一、爬虫IP的作用与优势 二、选择合适的爬虫IP服务商 三、使用爬虫IP的注意事项和技巧 代码示例 四、合法合规使用爬虫IP 总结 随着互联网的发展,数据已经成为企业竞争的核心资源。而获取这些数据的有效方式,就是通过爬虫技术。但是&#xff…...

工作比读研简单多了

工作比读研简单多了,因为至少有人能解答 工作遇到的问题相比读研时遇到的问题幸福太多,简单太多。因为读研时遇到的更多是未知的问题,是科学问题,是论文中也没有答案的问题,问不着答案,搜不着结果&#xf…...

【音视频】H264视频压缩格式

H264简介 H.264从1999年开始,到2003年形成草案,最后在2007年定稿有待核实。在ITU的标准里称为H.264, 在MPEG的标准里是MPEG-4的一个组成部分-MPEG-4 Part 10,又叫Advanced Video Codec,因此常常称为MPEG-4AVC或直接叫AVC。 压缩算…...

Windows【工具 04】WinSW官网使用说明及实例分享(将exe和jar注册成服务)实现服务器重启后的服务自动重启

官方Github;官方下载地址。没有Git加速的话很难下载,分享一下发布日期为2023.01.29的当前最新稳定版v2.12.0网盘连接。 包含文件: WinSW-x64.exesample-minimal.xmlsample-allOptions.xml 链接:https://pan.baidu.com/s/1sN3hL5H…...

【C++面向对象侯捷】3.构造函数

文章目录 class 的声明inline(内联)函数access level(访问级别)构造函数构造函数可以有多个- 重载! class 的声明 inline(内联)函数 access level(访问级别) 构造函数 构…...

GE WESDAC D20ME 模拟输入电子模块

GE WESDAC D20ME 是一款模拟输入电子模块,通常用于工业自动化和控制系统中,用于采集模拟信号和传感器数据。以下是该模块的一些主要产品功能: 模拟输入通道:WESDAC D20ME 模块通常具有多个模拟输入通道,用于接收模拟信…...

GE WES5302-150 数字量控制模块

GE WES5302-150 是一款数字量控制模块,通常用于工业自动化和控制系统中,主要用于数字信号的输入和输出控制。以下是该模块的一些主要产品功能: 数字量输入:WES5302-150 模块通常具有多个数字输入通道,用于接收数字信号…...

Redis-渐进式遍历scan的使用

目录 1、为什么使用渐进式遍历? 2、scan的使用 3、渐进式遍历的缺点 4、补充知识点:redis中也区分database 1、为什么使用渐进式遍历? 前面的博客中,我们有提到使用keys *来获取所有的key,但这种办法,…...

数据结构——查找

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、查找的基本概念二、顺序查找&&折半查找顺序查找顺序表的查找折半查找折半查找算法例题总结前言 查找的基本概念 顺序查找 折半查找 一、查找的基本概念 1.基本概念 查找:指定某…...

设计模式六大原则

设计模式6大原则 1. 单一职责原则 单一职责原则定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。另外一种定义:就一个类而言,应该仅有一个引起它变化的原因自己理解: 也就一个类只能是一个物体的抽象&…...

Docker 安装

Docker 官网:Docker: Accelerated Container Application Development Docker Hub官网:https://hub.docker.com/ 前提说明 CentOS Docker 安装 前提条件 目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在CentOS 7 (64-bit)上&…...

国外发达国家码农是真混得好么?

来看看花旗工作十多年的码农怎么说吧! 美国最大的论坛 Reddit,之前有一个热帖: 一个程序员说自己喝醉了,软件工程师已经当了10年,心里有 好多话想说,“我可能会后悔今天说了这些话。”他洋洋洒洒写了 一大堆&#xff…...

构造函数不能做为虚函数

引用:windows程序员面试指南 构造函数不能做为虚函数 从存储空间角度 虚函数对应一个虚函数表,这大家都知道,可是这个虚函数表其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过虚函数表来调…...

持续集成实战 —— Jenkins自动化测试环境搭建

1.目的 在日常的项目测试过程中,搭建与维护测试环境是广大测试同学的一个基础技能,相信也很少会有公司完全不让测试去碰自己的测试环境。那么工作中大量的创建、部署、管理、维护等一系列的重复操作就成为了整个测试项目中一个巨大的工作量。 面对这样…...

ajax上传文件

背景 采用ajax传递表单内容和上传的文件 实现原理 使用FormData模拟表单数据,实现异步上传图片 代码 var formData new FormData(); formData.append("serviceId", param.serviceId); formData.append("keyId", param.keyId); formData.a…...

使用jib-maven-plugin插件构建镜像并推送至私服Harbor

jib-maven-plugin 插件配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apa…...

道路空间功率谱密度与时间功率谱密度(笔记)

0.随机路面 仿真时间200秒 车速15m/s 采样间隔0.25秒&#xff08;4Hz&#xff09; A级路面平均振幅&#xff1a;0.0044米 B级路面平均振幅&#xff1a;0.0087米 C级路面平均振幅&#xff1a;0.0173米 D级路面平均振幅&#xff1a;0.0346米 1.先上代码其中之一 clc clear clo…...

JMeter接口测试之文件上传

最近用JMeter做接口测试&#xff0c;频繁遇到了文件上传的接口&#xff0c;与其他一般接口的处理方式不一样&#xff0c;想着分享下&#xff0c;希望能给测试同学一点启发。 文章将围绕三个部分进行展开&#xff1a; 一、用户场景 二、接口请求参数 三、JMeter脚本编写步骤…...

自动化测试需知的4项测试工具!

一般来说学自动化会建议大家先学selenium&#xff0c;因为最早的时候&#xff0c;自动化就代表selenium&#xff0c;进入测试行业就开始做接口测试&#xff0c;而且现在基本每个公司都需要接口测试。今天就和大家聊一下接口测试的工具。 一、Robot Framework 机器人框架。之所…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...