admin 管理员组

文章数量: 887007

数据计算技术的归纳

数据汇聚:是数据中台必须提供的核心工具,把各种异构网络、异构数据源的数据方便地采集到数据中台中进行集中存储,为后续的加工建模做准备。数据汇聚方式一般有数据库同步、埋点、网络爬虫、消息队列等;从汇聚的时效性来分,有离线批量汇聚和实时采集。企业内部的存储计算引擎呈多元化趋势。离线开发中心针对每种类型的计算引擎会开发不同的组件,例如,针对Oracle开发Oracle插件,针对Hadoop体系分别开发出Hive、Spark、MR等插件。用户在界面新建各种作业类型,在执行时自动根据作业的类型寻找相应的插件来运行作业。获取推荐依赖的核心原理在于上下游作业输入和输出的表级血缘依赖图;通过血缘分析当前作业的输入和输出,找到合适的上游作业;对合适的作业进行环路检测,剔除存在闭环的作业;返回合适的节点列表。

数据权限:部分引擎拥有独立的权限管理系统(例如Oracle、HANA、LibrA),导致权限申请需要到每一种引擎上单独操作,让使用变得复杂。同一种计算引擎,不同厂商的权限系统有多种,例如Hadoop自身无数据权限系统,由不同厂商各自去实现,目前主要有两种策略:RBAC(Role-Based Access Control):如Cloudera用的是Sentry,华为的FI也是类似的机制PBAC(Policy-Based Access Control):如Hortonworks用的Ranger•数据权限是由大数据集群或数据库运维人员管理的,开发人员无法直接操作或者接触,所有的权限申请都需要运维人员开通,造成运维人员负担过重。在实际开发中,一般需要运维人员把整个库的权限授权给某个开发负责人,然后库里面的表、字段、函数的权限管理由开发负责人负责就行。•数据权限管理中心提供界面化操作,数据申请方直接在页面上进行各种权限的申请,数据管理方在界面上审核权限,执行同意或拒绝操作。同时,所有权限的申请、审批都会有记录,便于进行权限审计。在统一数据权限服务中,会对接底层的各种权限管理系统,例如Sentry、Ranger、Oracle,同时对数据权限管理中心提供服务,执行权限的申请、授权、撤销等操作。

数据中台:覆盖全域数据:数据集中建设、覆盖所有业务过程数据,业务中台在数据体系中总能找到需要的数据。结构层次清晰:纵向的数据分层、横向主题域、业务过程划分,让整个层次结构清晰易理解。数据准确一致:定义一致性指标,统一命名、统一业务含义、统一计算口径,并有专业团队负责建模,保证数据的准确一致。性能提升:统一的规划设计,选用合理的数据模型,清晰的定义并统一规范,并且考虑使用场景,使整体性能更好。降低成本:数据体系的建设使得数据能被业务共享,这避免了大量烟囱式的重复建设,节约了计算、存储和人力成本。方便易用:易用的总体原则是越往后越能方便地直接使用数据,把一些复杂的处理尽可能前置,必要时做适当的冗余处理。

数据资产:面向对象建模,对跨业务板块、跨数据域的特定对象数据进行整合,通过IDMapping把各个业务板块、各个业务过程中的同一对象的数据打通,形成对象的全域标签体系,方便深度分析、挖掘、应用。按照业务的需要从统一数仓层、标签数据层抽取数据,并面向业务的特殊需要加工业务特定数据,以满足业务及性能需求,向特定应用组装应用数据。数据资产管理包括对数据资产目录、元数据、数据质量、数据血缘、数据生命周期等进行管理和展示,以一种更直观的方式展现企业的数据资产,提升企业的数据意识。数据资产对上支持以价值挖掘和业务赋能为导向的数据应用开发,对下依托大数据平台实现数据全生命周期的管理,并对企业数据资产的价值、质量进行评估,促进企业数据资产不断自我完善,持续向业务输出动力。传统的数据治理通常包含数据标准管理、元数据管理、数据质量管理、数据安全管理、数据生命周期挂机能力,前面利用数据汇聚、数据开发建设企业的数据资产,利用数据管理展现企业的数据资产,但是并没有发挥数据的价值。数据服务体系就是把数据变为一种服务能力,通过数据服务让数据参与到业务, 快速开发企业的业务中台等。输入特定的查询条件,返回该条件下的数据,以API形式供上层应用调用。

1)支持配置查询标识,底层数据组织一般会对该标识建立索引,以加快查询速度

2)支持配置过滤项

3)支持查询结果配置,包括数据排序规则和分页规则。

数据分析:

1)支持多源数据接入:企业的数据经过清洗加工转换成数据资产后,最终通过服务作用于业务系统,基于企业异构存储的现状,要求分析服务能够支持与Hive、ES、Greenplum、MySQL、Oracle、本地文件等多种数据源进行连接。

2)高性能即席查询:随着企业数据爆发式增长,传统的数据分析工具遇到分析能力的瓶颈,也就是对大数据量的分析越来越乏力。因此,这就要求分析服务内置高速计算引擎,以对数据进行高性能的即席计算,实现亿级数据毫秒级(至多秒级)分析和计算,减少用户等待时间。

3)多维数据分析

分析服务除了支持常规的数据分析、上卷下钻、切片切块之外,还应该支持多维的数据分析以及深层次的数据挖掘,发现数据背后的关联关系。

4)灵活对接业务系统

按约定的格式提供历史日志行为数据和实时访问数据,推荐模型就会生成相应的推荐API,从而为上层应用提供推荐服务。

AI推荐:

推荐服务即所谓的千人千面,对不同的人对物的行为进行数据挖掘,构建每个人与物之间的关系程度,来推荐人、物以满足用户的兴趣爱好,以提升用户对业务的粘性。每个人打开手机淘宝看到的内容都不一样,这就是一种基于人的兴趣爱好的推荐服务能力。

1)支持不同行业的推荐:不同行业背后的推荐逻辑是有区别的

2)支持不同场景的推荐:以内容资讯为例,在用户冷启动场景下,应该推荐哪些资讯?在用户已有浏览行为的场景下,又该为其推荐哪些资讯?

3)支持推荐效果优化:从导入的原始数据开始,经过推荐组件生成推荐数据,再根据用户的浏览数据不断修正推荐模型,从而使推荐效果不断优化

从全量用户数据中,基于标签组合筛选符合指定特征条件的人群,并通过API形式供上层应用调用。

1)支持人群圈选:通过SQL代码或标签取值组合等多种方式,实现人员查找,帮用户找到对的人群

2)支持人群计量:营销部门或者广告公司使用圈人服务圈选出目标人群后,往往还要考虑人群量是否符合预期,因为预算有限,不可能不计成本的对人群进行营销。

3)支持多渠道对接:将人群名单导出到相应的下游系统。最简单的名单导出方式是先下载文件,再由业务人员导入相应的业务系统中。或者直接对接到短信系统、微信投放接口、营销活动系统等。

实时计算:实时平台由实时传输和实时计算两部分组成,平台底层统一管理元数据、血缘、权限以及作业运维等。实时传输主要负责将数据传入到大数据体系中。实时计算基于 BSQL 提供各种应用场景支持。上层核心基于 Flink 构建运行池。再向上一层满足多种维表场景,包括 MySQL、Redis、HBase。状态(State)部分在 RocksDB 基础上,还扩展了 MapDB、Redis。Flink 需要 IO 密集是很麻烦的问题,因为 Flink 的资源调度体系内有内存和 CPU,但 IO 单位未做统一管理。当某一个作业对 IO 有强烈的需求时,需要分配很多以 CPU 或内存为单位的资源,且未必能够很好的满足 IO 的扩展。所以本质上 bilibili 现阶段是将 IO 密集的资源的 State 转移到 Redis 上做缓解。数据经过 BSQL 计算完成之后传输到实时数仓,如 Kafka、HBase、ES 或 MySQL、TiDB。最终到 AI 或 BI、报表以及日志中心。

数据仓库:目前网易很多产品已经开始实时数仓的建设了,但仍旧处于持续完善过程中。实时数仓的建设和离线数仓大致相同,只不过实时数仓是经过实时计算平台进行处理的。大致的过程就是首先收集日志、埋点数据等,将其写入到 Kafka 里面,经过实时计算平台进行处理,将 ODS 层中的明细数据抽取出来,在进行汇总以及维度关联等操作,将结果写入到 Redis,Kudu 等,再通过数据服务提供给前端的业务使用。

数据仓库定义:在企业管理和决策中面向主题的、集成的、与时间相关的、不可修改的数据集合。

数据仓库目标:数据资产、决策信息。

ETL过程:打通你的任督二脉(离线+实时),让数据在整个环节中流通起来

数据分层:一套低耦合、高内聚的层级,是十分重要的,总不想业务、数据等一变化,数仓像又投胎了一次

数据集成:多业务场景下,打破数据信息壁垒,避免数据歧义,统一数据服务

规范化:良好的流程化、规范化设计,易维护、高扩展

监控与辅助:质量监控、调度管理、元数据管理、信息安全管理

走向服务:对外api服务/自助查询平台/OLAP分析平台

业务数据往往涉及多种数据源,数据存储也常常会有多种选择。文本数据、日志数据、RMDB、Nosql等。则要求etl工具能够覆盖这些业务场景。

工具有datax/sqoop/kettle/informatica等等。

ETL一般为最开始的部分,凌晨之后的时间点。a:避免集中式的对某个jdbc海量同步,影响业务(部分从库可能提供查询服务)、b:明确调度的时间,应尽可能的在某个时间段内完成(不能仅依靠调度,实现任务流的串行;为后期的大作业空间,占用等待的系统资源)

本文标签: 数据计算技术的归纳