《数据中台》读书笔记(2)

数据汇聚联通:打破企业数据孤岛
数据采集需要注意安全和隐私。
线上采集:客户端埋点(全埋点、可视化埋点和代码埋点),服务端埋点。
全埋点:将终端设备上用户的所有操作和内容都记录下来。适合于设计一套标准化统一的接口,通过事件捕获,在事件发生时,调用埋点相关逻辑记录保存。
可视化埋点:将终端设备上用户的部分操作,通过服务端配置的方式有选择地记录。类似全埋点,只是在服务端加了配置。
代码埋点:根据需求定制每次收集的内容,需要对相应的终端模块进行升级。非标准化的采集方式。
服务端埋点:比如web服务器的日志,内部耗时,包大小,请求成功率等。
线下采集:主要通过一些硬件,如WiFi探针、摄像头、传感器等硬件去采集。
互联网数据采集:爬虫。
数据建设过程中有ELT(Extract-Load-Transfrom)和ETL(Extract-Transfrom-Load)2种方式。
构建数据交换中心,要基于异构数据源,异构厂商集群,数据应用时效性和技术栈去考虑。采取实时同步和离线同步。
异构数据源的同步,最好使用插件的方式,可插拔,支持多种数据源。

数据开发:数据价值提炼工厂
计算能力根据场景划分:批计算、流计算、在线查询、即席分析。
批计算:高延时场景,离线数据处理。用MapReduce、Hive、Spark等计算框架。
流计算:实时,监控告警。Flink,Spark Streaming、Storm等。
在线查询:对数据结果在线查询,条件过滤筛选。数据检索。Redis、Tair、HBase、MySQL、Elasticsearch等。
即席分析:分析型场景和经验统计。提前固定计算维度,根据需求任意维度的交叉分析(如group by、sum、avg、count等)。Kylin、Impala、ClickHouse、Hawk等。常见实现方式:ROLAP(以RDB为核心,进行多维的数据表示和存储,结合星型和雪花模式)、MOLAP(基于多维数据组织,形成“立方块”的结构,通过对“立方块”进行处理,产生多维数据报表)
离线开发需要的核心功能:
作业调度(依赖性,时间顺序性)、基线控制(通过控制作业的优先级,完成时间,告警等方式保证需要的数据得到保证,甚至使用智能预测,如果作业无法完成,及时告警等)、异构存储、代码校验(对输入的SQL语法,不同数据库的SQL语法不完全一样和是否符合作业的规则做校验)、多环境级联(即分测试环境,生产环境,灰度环境等等)、推荐依赖(在作业中找到依赖的作业,而且保证不形成环路的依赖)、数据权限(因为涉及多模块和不同数据源,需要设计总体的数据权限,可视化界面,可审计。主要有2中策略:RBAC,基于角色。PBAC,基于策略)
实时开发是对流计算能力的封装,具备三大特点:实时且无界的数据流(按照时间发生的顺序)、持续且高效的计算(事件触发)、流式且实时的数据集成。核心功能:元数据管理(根据topic做数据格式映射解析)、SQL驱动(SQL的方式,降低入门门槛)、组件化开发(为了更便捷开发,需要将流计算的输入源、转换逻辑、UDF函数,结果持久化等封装为组件。通过拖曳组件和SQL编写创建具体任务。基于窗口的计算往往基于时间,需要统一eventTime。配置延迟告警,统计流计算的各组件吞吐、流速,分析优化)
算法开发:使用NoteBook建模和可视化建模方式降低AI门槛,零代码开发,构建企业场景的核心AI算法。可视化建模:拖曳式实验流、丰富的算法组件、实验周期调度、告警通知、多角色协同。NoteBook建模:提供了一个集成Jupyter工具,提供专业算法开发环境和主流算法框架。JupyterLab在线编程、支持通过API方式调用标准算法组件、支持多语言、高可用。
数据集管理:数据接入(支持多类型数据接入)、数据标注(抽检,多重审核把控标注结果的准确性)、数据探查(快速判别数据集的质量和可用性。对数据进行预览和用统计分析组件进行可视化展示)。
核心的算法组件:数据获取和存储、数据预处理、特征工程、统计分析(相关性分析、分布、参数校验,如直方图、协方差、正态校验、皮尔森系数、洛伦兹曲线、经验概率密度图等)、机器学习(分类:对输入进行分类、回归:线性回归和非线性回归、聚类:无监督学习)、深度学习、文本分析(文本分类、词频统计、分词等等)、网络分析(比如最短路径,风控、社群发现)、工具类(解决组件间数据格式不一致)。而且还要支持多算法框架和算法框架多版本(基于Conda的隔离和基于Docker的隔离)支持。

数据体系建设
中台数据体系应具备:覆盖全域数据、结构层次清晰、数据准确一致、性能提升、降低成本、方便易用。数据体系架构是一套指导规范(数据分层以及每层的规范),实施过程中应严格按照架构执行。
贴源数据层:各业务系统数据采集,仅作简单整合,非结构化转结构化,增加数据日期,不做深度清洗。仅作业务数据的同步和存储。跟企业相关的所有数据都应该汇聚到贴源数据层,包括业务系统数据、业务运行的日志、网络爬虫等等。ELT的方式。贴源数据层的数据表与对应的业务系统表原则上保持一致。
表设计规范:1、命名采用前缀+业务系统表名的方式。2、表的字段与业务系统字段名保持一致,字段类型兼容。3、对于数据量较大的业务表,如果采用增量同步,要同时建立增量表和全量表,增量表利用后缀标识(增量表最后汇聚成全量表)。4、对于日志、文件等,不仅要存储原始数据,还要对数据结构化并存储。原始数据按行存储,再解析成结构化数据,存储到表中。
统一数仓层:细分为明细数据层和汇总数据层。对全历史业务数据进行建模,从业务的视角重新组织数据,业务域设置一致的指标和维度。目标是建立一套覆盖全域全历史的企业数据体系,能还原企业任意时刻的业务运转状态。
维度建模:使用事实表、维度表来组织数据。模型简单易理解、性能好、可扩展性好、数据冗余。数据域划分,指标设计、维度表设计、事实表设计、模型落地。
标签数据层:面向对象建模,跨业务板块进程,通过ID-Mapping方式,把各业务的同一对象数据打通。标签归属到一个对象,标签可分为:属性、统计和算法(AI)标签(如信用指数,购买能力)。对典型的对象(人、物、关系)建立标签体系。
设计过程:确定对象、对象ID打通、标签类目设计、标签设计(业务需要,有数据支撑)、标签融合表设计、标签融合表实现。
应用数据层:按照业务需求,从统一数仓层和标签数据层抽取数据,组装提供给特定应用。强业务驱动,业务部门需要参与。
数据读取要严格规范:贴源数据层只能被统一数仓层使用,统一数仓层只被标签数据层和应用数据层使用。贴源数据层和统一数仓层只保存历史数据以及被标签层和应用层引用,不直接支撑业务,所有业务使用的数据都来及标签层和应用层。

posted @ 2020-10-09 12:02  DevinDC  阅读(288)  评论(0编辑  收藏  举报