数据中台(五)数据开发:数据价值提炼工厂
数据中台(五)数据开发:数据价值提炼工厂
目的:数据开发(离线开发、实时开发、和算法开发)将数据转化为数据资产,转换成业务需要的新形态,提炼数据价值
一、数据计算能力的4种类型
批计算:主要应用于数据高延时场景,例如:大规模的数据清洗、数据挖掘。MapReduce、hive、Spark等计算框架,吞吐量大、延时高
- 1、MapReduce:分布式编程,分而治之
- 2、Spark:优势
- 数据处理技术:DAG执行计划
- 数据格式和内存布局:Spark RDD分布式索引
- 执行策略:Spark 支持Hash分布式聚合,调度采用更为通用任务执行DAG,每一轮输出结果都可缓存
流计算:主要应用于数据加工处理和较强时效性要求场景,例如:双11可视化大屏。Flink、SparkStreaming 和Storm计算框架
- 1、流式ETL:集成计算诸多通道与SQL灵活加工,流式数据进行实时清洗、归并、结构化处理,补充优化离线数仓,提供可计算通道
- 2、流式报表:实时采集、加工数据,监控展现各类指标BI,让数据运营实时化
- 3、监控预警:实时检测分析,实时检测发现危险
- 4、在线系统:实时计算各类数据指标
在线查询:主要用于数据在线查询的场景,例如:数据检索、条件过滤等。缓存性存储计算Redis、Tair;延时正常HBase、MySQL;条件检索用Elasticsearch等,企业多套并用。
- 1、画像服务:Redis可提供低延迟、高并发的查询服务能力;Hbase提供大规模数据查询服务能力;
- 2、搜索应用场景:提供搜索引擎能力,为用户提供模糊匹配、意图识别检索能力,快速检所需要的内容,如文档搜索、商品搜索等
- 3、圈人场景:条件规则,快速筛选业务所需群体,向运营、营销提供数据支撑
即席分析:分析与经验统计场景,例如:任意维度的交叉分析。用Kylin、Impala、ClickHouse等
- 1、ROLAP:以关系性数据库为核心
- 2、MOLAP:基于多维数据组织的实现,伊多为数据组织为核心,形成“立方块”的结构,通过立方块进行各类处理来产生多维数据报表;
- 3、交互式数据分析
- 4、群体对比分析场景
二、离线开发
作业调度(DAG有向无环图)
- 依赖调度:节点作业上下游
- 时间调度:指定具体时间执行
基线控制
- 大数据离线计算场景,基线管控方法用于统一管理数据处理作业的完成时间、优先级、告警策略,保障数据加工按时完成
异构存储
- 多种数据库并存场景,自定义创建作业类型,执行时自动根据作业的类型寻找相应的插件来执行作业,例如Hadoop——Hive、Spark、MapReduce
代码校验
- 语法校验
- 规则校验:安全脱敏加密
多环境级联
- 单一环境
- 经典环境:
- 复杂环境:研发人员在研发态测试数据模型,从研发态Dev发布到生产态Pro;同理数据管理员从生产态Pro数据同步加密脱敏到研发态Dev,
推荐依赖
- 智能推荐表上下游依赖
数据权限
- RBAC:基于角色的访问控制,比如Cloudera的Sentry、华为的FusionInsight
- PBAC:基于策略的访问控制,比如:Hortonworks 的Ranger
三、实时开发
元数据管理:管理选择数据存储格式,缓解资源压力,例如:JSON、AVRO等
SQL驱动:利用SQL普适性,流计算SQL可提高开发效率,将Hbase、CSV文件、MySq的表注册为临时视图,视图SQL转化处理,最后写入结果
组件开发:将流计算的输入源、转换逻辑、UDF函数、结果持久化封装为组件,通过直接拖拽组件来进行SQL代码编写与简单配置,同时可以对组件的数据量的吞吐、流速、做指标的统计分析,分析计算瓶颈,准确定位问题
实时计算必备的特点:Spark Streaming
- 实时且无界
- 持续且高效的计算
- 流式且实时的数据集成
四、算法开发
问题与挑战:
- 数据处理难度加大
- 业务处理要求高
- 烟囱式的开发模型
- 散落各地的模型服务
- 模型研发环节繁多
- 冗余分散的基础设施
- 特征工程\数据预处理
- 多角色企业研发团队
算法开发套件架构图
算法常见应用场景
- 金融风控和反欺诈:关联分析、标签传播、PageRank和社团发现等图算法组件,例如:Neo4j知识图谱的,构建金融反欺能力,鉴别数据真伪
- 文本挖掘分析:命名实体识别(NER)、图挖掘等文本算法能力,分析非结构化文本信息,构建关系网
- 广告精准营销:根据客户历史偏好、行为数据,利用特征分箱、LightGBM、PMI等算法组件构建的机器学习模型来挖掘潜在的客户,实现精准营销,提高点击率
- 个性化推荐:利用协同过滤、XBoost等推荐场景组件,分析海量数据构建多维用户画像,实时千人面的推荐,提高转化率
可视化建模
- 拖拽式实验流:机器学习\深度学习等算法组件
- 丰富算法组件:
- 实验周期调度:需支持细粒度的调度周期:分钟、小时、天、周、月等级别
- 告警通知:邮件、短信、钉钉,灵活适配用户习惯
- 多角色协同:权限分组算法建模开发、节点运维,专注工作、隔离数据安全
NoteBook建模
- jupyterLab在线编程:
- 支持通过API方式调用标准算法组件
- 支持多言语:Scala、Python、R、Shell
- 高可用:支持共享存储,实现数据高可用和数据隔离;支持Kubernetes集群,保证服务的高可用和资源隔离
数据集管理
- 数据接入
- 数据标注
- 数据探查
核心算法组件
- 数据获取及存储:HDFS等平台读写保存数据
- 数据预处理:随机采样、加权采样、分层采样、拆分、join、归一化、标准化、缺失值填充、类型转换
- 特征工程
- 主成分分析PCA
- 特征维度、尺度变化
- 特征离散
- 特征异常平滑
- 奇异值分解
- one-hot编码
- 统计分析:直方图、协方差、相关系数、正态分布、皮尔森系数、T检测、百分位、经验概率密度图等
- 机器学习
- 分类:GBDT二分类、线性支持SVM向量机、K邻值、决策时分类、多层感知分类(XGboost)、朴素贝叶斯分类、LightGBM分类(垂直地生长树)、随机森林分类、逻辑回归分析等……
- 回归:GBDT回归、随机森林回归、线性回归、LightGBM回归
- 聚类:Kmeans、高斯混合聚类……
- 深度学习框架
- TensorFlow
- Mxnet、PaddlePaddle
- PyTorch、XGboost
- ……
-
- 文本分析
- PLDA
- TF-IDF
- Word2Vec
- 词频统计、去停词、分词处理和关键词抽取
- ……
- 网状关系分析:提供图数据结构分析组件,标签传播分类、标签传播聚类、Modularity、树深度等,例如:医疗、金融风控知识图谱
- 工具类:自定义SQL、PySpark、表转文件、文件转表等组件
- 文本分析
多算法框架
- TensorFlow:谷歌,丰富API接口,常用必须掌握
- CNTK
- PyTorch:Facebook,动态计算图架构
- paddlepaddle
- Spark
- XGboost
- LightGBM:梯度Boosting框架,基于决策树
中台手记(三):选择适合自己的技术平台
系统必须具备三个条件:
- 丰富足够的存储形式
- 可拓展,至少未来5只够支持数据增量需求
- 良好的生态与工具支持
Hadoop开源架构需求的两大类工具
- 数据采集交换类
- 数据库数据同步:开源Sqoop、商业阿里DataX
- 系统日志的同步:开源Flume、logstash等,商业阿里loghub
- 非结构数据同步:阿里OSS数据到MaxCompute
- 互联网爬取:商业Nutch
- 数据开发类
- 开源数据开发:hadoop的HUE、zepplelin、Kettle等
- 商业数据开发:阿里DataWorks、Dataphin;数澜的数栖