《企业数据中台建设方案.docx》由会员分享,可在线阅读,更多相关《企业数据中台建设方案.docx(13页珍藏版)》请在优知文库上搜索。
1、企业数据中台建设方案采购人名称:项目名称:系艇目状:供应商名耻第一章数据中台必须具备4个核心能力11.1. 汇聚整合11.2. 提纯加工21.3. 服务可视化(数据资产服务化能力)2第二章全量数据采集22.1. 数据采集方式22.2. 全量数据库42.2.1. 全量数据库创建标准42.2.2. 数据可视化应用12数据中台是一套可持续“让企业的数据用起来”的机制,一种战略选择和组织形式,是依据企业特有的业务模式和组织架构,通过有形的产品和实施方法论支撑,构建一套持续不断把数据变成资产并服务于业务的机制。数据中台将采集企业的业务、设备相关数据,按照统一数据体系进行数据的建模和萃取,生成不同的数据域
2、,包含人员域、车辆域等多种数据域,通过企业的数据服务中心实现企业数据交换的统一管理、集中控制。通过统一的数据调用接口,供各个前端应用使用数据,形成数据环流,降低跨系统数据交换的复杂性,提高企业数据交换的及时性、准确性和完整性。第一章数据中台必须具备4个核心能力数据中台需要具备数据汇聚整合、数据提纯加工、数据服务可视化、数据价值变现4个核心能力,让企业员工、客户、伙伴能够方便地应用数据。1.1. 汇聚整合数据丰富和完善:多样的数据源进行合并和完善管理易用:可视化任务配置、丰富的监控管理功能数据集成运营:数据接入、转换、写入或缓存内部来源的各来源数据数据目录与治理:用户可以方便定位所需数据,理解数
3、据(技术/业务治理)数据安全:确保数据的访问权限数据可用:用户可简便、可扩展的访问异构数据,可用性和易用性高部署灵活:本地、公有云、私有云等多种署方式1.2. ,提纯加工完善的安全访问控制完善的数据质量保障体系规范的、紧密结合业务的可扩展的标签体系面向业务主题的资产平台智能的数据映射能力,简化数据资产生成1.3. 服务可视化(数据资产服务化能力)提供自然语言等人工智能服务提供丰富的数据分析功能提供友好的数据可视化服务便捷、快速的服务开发环境,方便业务人员开发数据应用提供实时流数据分析提供预测分析、机器学习等高级服务第二章全量数据采集对企业已实现的招商一体化平台、政策采编推茬平台、企业企业服务平
4、台、金融撮合服务平台、IoT物联网平台相关数据通过API对接、ETL采集等多种方式实现业务数据采集工作。2.1 .数据采集方式方式一:读备份库为了不影响业务系统的正常运行,可以采用读备份库的数据,这样能够及时获取数据进行一些分析工作,但是有些从业务也会读取备份数据库,还需要考虑一致性和可用性问题。方式二:埋点(PingbaCk)可以在前端APP上记录用户点击,滑动速度,停留时间,进入的时间段,最后看的新闻等等信息,这些可以通过网络传输将埋点信息记录下来,用于数据分析。但是这种方式有可能会对业务系统代码具有一定的侵入性,同时工作量也比较大,存在一定的安全隐患。方式三:发送消息的方式上述埋点的方式
5、在业务系统繁忙的情况下,会对数据采集系统产生大量的请求,如果数据处理不及时会把数据采集服务打垮,同时为了解耦,这里可以引入消息中间件,如果对时效性要求较高,可以采用推模式对数据采集系统进行推送,如果时效性不是很高,可以采用定时任务拉取数据,再进行分析。同时可以多个系统订阅消息中间件中不同Topic的数据,可以对数据进行重用,后端多个数据分析系统之间互不影响,减轻了从业务系统采集多份数据的压力。方式四:读取MySQL中的binlogMySQL会把数据的变更(插入和更新)保存在binlog中,需要在my.ini中配置开启,因此采用kafka订阅binlog,会将DB中需要的字段抓取出来,保存在备份
6、库中,进行数据分析,工作量较小,安全稳定。2.2 ,全量数据库在数据中台中实现对平台应用数据、企业数据、业务操作数据、设备数据、日志数据等,定义各维度与业务场景的数据存储全量库,实现全数据存储于输出,同时实现数据治理工作。创建中台应用数据、企业数据、业务操作数据、设备数据、日志数据等库表结构。2.2.1, 全量数据库创建标准1)命名规范a.总命名规范不得使用数据库保留关键字,以及php/java等常用语言的保留关键字,或者可能成为关键字的单词作为完整命名。(对于一些疑似关键字的单词,可以在后面加一个下划线来避免,例如“key)o如无特殊说明,名称必须用英文字母开头,采用有特征含义的单词或缩写,
7、单词中间用分割,且只能由英文字母、数字和下划线组成,不能用双引号包含。除数据库名称长度为1至8个字符,其余(包括表、字段、索引等)不超过30个字符,DatabaseIink名称也不要超过30个字符。(30并不是凭空想象出来的,而是参考了OraCle的限制)b.表名建议以2-3字项目名称为前缀开头,紧跟2-5个字符(英文字母或数字,但不得全是数字)的模块名,最后跟上当前表的含义的单词(1-3个单词,用下划线连接),例如:SQ_SYS_CAR,SQ是项目名称的缩写,SYS是模块名称的缩写,CAR表示当前表的具体含义。特别强调:项目名称和模块名用简写(建议长度为2-5个字符),而表含义的名称,可简写
8、、也可以不简写,但是都不能超过3个单词,例如下面两个反面例子: ABF_SUPERVISION_USER,问题:模块名称似乎比较长,建议控制在25个字符,缩写为ABF_SUPVjJSER; ABF_SYS_USER_MANAGE_ORG_ROLE,问题:除去前缀ABF_SYS_,表含义(USER_MANAGE_ORG_ROLE)超过了3个单词。2)字段名a.表的字段数不超过50个。b.类型:各表之间相同含义的字段,类型定义要完全相同(包括精度、默认值等);c.命名: 字段名无单词数的限制,但是名字的字符长度应该符合上面的“总命名规范”。 字段命名及其注释,要做到清楚、无歧义。3)主键名前缀为P
9、KH以PK_+表名+主键字段名构成。如果复合主键的构成字段较多,则只包含第一个字段。表名可以去掉前缀。例如PK_SYS_CARD。4)外键名前缀为FK_。以FK_+外键表名+主键表名+外键字段名构成。表名可以去掉前缀。例如FK_SYS_USR_SYS_CAR_IDO5)普通索引前缀为IDX”以IDX_+表名+索引字段名构成。如果复合索引的构成字段较多,则只包含第一个字段,并添加序号。表名可以去掉前缀。例如IDX_SYS_CAR_DINo6)主键索引前缀为IDX_PK_。以IDX_PK_+表名+索引字段名构成。表名可以去掉前缀。例如IDX_PK_SYS_CARD。7)唯一索引前缀为IDX_UK_
10、。以IDX_UK_+表名+索引字段名构成。表名可以去掉前缀。例如IDX_UK_SYS_CAR_DIN。8)外键索引前缀为IDX_FK_。以IDX_FK_+表名+外键字段名构成。表名可以去掉前缀。例如IDX_FK_SYS_CAR_IDO9)OraCIe序列前缀为SEQ_o以SEQ_+“序列业务名称”构成。如果“序列业务名称”就是某个表名,则使用表的全名,不可去掉前缀。例如SEQ_SQ_SYS_CAR。a.表设计规范采用UTF8字符集。对于数据量可能很大的表(超过2000万),采用分库/分表/分区表,横向拆分控制单表容量。必须为表、字段等添加注释。遵守数据的设计规范3NF规定。表内的每一个记录都只
11、能被表达一次。表内的每一个记录都应该被唯一的标识(有唯一键)。表内不应该存储依赖于其他键的非键信息。反范式化冗余字段使用规范考虑具体使用场景,当SQL关连查询比较频繁,或涉及到4张以上表时可考虑采用冗余字段。必须设置唯一主键,尽量使用自增id作为主键。建议主键为数字类型,且为递增顺序,主键不表示任何业务含义,严禁数据量大的表使用UUID/MD5作为主键。不使用数据库外键,由程序保证。MySQL:使用InnoDB存储引擎。数据库和表字符集类型统一(utf8mb4-UTF-8Unicode),排序规则统一(utf8mb4_unicode_ci);建表语句中强制指定字符集;自增字段类型必须是整型,使
12、用BlGlNT类型。并且自增字段必须是主键或者是主键的一部分。b.字段设计规范凡是可能被索引的字段,必须定义为NC)TNULL,可以设置default值;非负值的数字统一使用unsigned(无符号)类型存储?大对象字段:通常情况下,禁止使用LoB类型保存大文本、图片和文件,建议使用其他方式存储(例如文件系统,数据库只保存其地址信息)。MySQL:尽量不要使用TEXT数据类型,mysql的VarChar类型支持65535字节,满足大多数场景,仅当字符数特别大时,才考虑text类型;禁止使用enum,对于boolean类型或者表示简单状态的字段,MySQL用tinyint,Oracle用NUMB
13、ER(I)建议字段notnull,根据业务要求来设置默认值(例如默认为0)。对于boolean类型,以1代表是(true),0代表否(false)。对于状态类型,注释中应该注明每一种状态的含义,例如“0:编辑中,1:审核中,2:已完成”。数字、小数类型:对于数字、小数类型,不得使用VACHAR等字符串类型来保存,应该使用相应精度的数字、小数类型。尽量确保数值型列都有默认值对于Oracle,确定好Number的精度。对于MySQL,选好数字类型:TlNYlNTSMALLINTMEDIUMINTINTBIGINTDECIMAL(存储空间逐渐变大,而性能却逐渐变小),超过tinyint(256)但不
14、超过65536的使用Smallint;当该字段超过42亿时,才使用bigint;时间类型标准:对于OraCle,有两种时间类型:DATEftTIMESTAMP,DATE的精度只保存到秒,例如“201311-0211:16:36,而TIMESTAMP精度更高可以保存小数秒,u2013-ll-0311:16:36.000000。有时候,DATE只保存到秒,不足够区别出两个事件哪个先发生,这时建议使用TIMESTAMP类型。MySQL:存储年使用year类型,存储日期使用date类型,使用精确时间戳(精确到秒)尽量使用timestamp类型,因为timestamp使用4字节,datetime使用8字
15、节,它们的区别:TlMESTAMP值不能早于1970或晚于2037C1970-01-0100:00:01UTCto,2038-01-1903:14:07,UTC)。必须使用intunsigned存储IPV4;一些常见字段的命名统一为了规范命名,并结合一般命名习惯,指定如下几个字段定义(以OraCIe为例):ID编号NUMBER(22)(Integer)Create-By创建人NUMBER(22)(Integer)Create_Time创建时间TIMESTAMP-默认为系统当前时间Update_By修改人NUMBER(22)(Integer)Update_Time修改时间TlMESTAMP-默认为系统当前时间其他参考命名:Code.编码VARCHAR2(30)1.evel,层级NUMBER(I或2)Delete-Status删除标志NUMBER(I)-1:表示已经删除,默认为0:表示未删除Description.描述或备注VARCHAR2(200)c.索引规范复合索引的字段数不能超过5个。单表的索引数量尽量控制在5个以内。联合索引的字段排列顺序以去重后字段