听过TB、PB级大数据,ZB级的大数据探索与应用实践是怎么样的?【附PPT】
据报告显示到2025年,全球将产生180ZB的数据。这些海量的数据正是企业进行数字化转型的核心生产因素,然而真正被有效存储、使用和分析的数据不到百分之十。如何从ZB级的数据中寻找分析有价值的信息并回馈到业务发展才是关键。11月30日UCan技术沙龙大数据专场(北京站)邀请了5位资深大数据技术专家分享他们对大数据的探索和应用实践。
大数据业务常态化的处理手段与架构衍变
很多开发人员在解决实际的业务问题时,经常会面临如何选择大数据框架的困惑。比如有十亿条数据需要进行聚合操作,是把数据放在HBase+Phoenix还是Kudu+Impala或是Spark上进行呢?到底哪种方案才能够达到降低开发运营成本且性能足够高的效果呢? UCloud大数据工程师刘景泽分享了他的思考。
要想对数据进行分析决策,首先要有数据来源,其次要将采集到的数据进行存储,然后把这些数据进行汇总、聚合、计算,最后反馈到数据应用层。目前市面上主流的大数据框架有几百种,总结下来主要分为数据采集层、数据存储层、数据计算层和数据应用层。除此之外,一套完整的大数据技术栈还包括了任务调度、集群监控、权限管理和元数据管理。
面对数量众多、种类繁杂的技术栈,选择的自由度很高,但前提是不能把强依赖的框架给拆分开。这里刘景泽给出了一个通用型架构如下图所示:
图中左边OLTP SDK指的是后台接口,可以调用很多大数据的服务。从接口或者从Flume采集到的数据,直接送到Kafka,然后送到ES,再通过ES进行建模。整个过程相当于只使用了ELK这套系统,虽然很简单,但这也是一个大数据框架。对于数据量比较大、业务范围比较广的公司,往往要求原始数据要做冷备留存,这时HDFS就可以作为一个数据冷备的集群,HDFS + Hive作为冷备也是非常常见的方案。
当业务规模发展到足够大的时候,需要进行一些聚合操作,如果从单独的一个框架拉出来的数据是不完整的,可能需要多个框架同时操作然后进行join,这样操作的效率非常低。要解决这个问题,可以用大宽表的思路:第一步先把业务数据存放在MySQL或者HBase里面。然后通过Spark或Flink,从MySQL或 HBase里面通过异步IO的方式把所需要的维度数据拿出来进行join,join好的数据可以存在HBase中。到这一层的时候,所有的数据维度已经非常完整了。当进行一个重要指标分析的时候,我们只需要从HBase里面拿数据就可以了。对于业务不是非常重的指标可以直接通过Phoenix或者HBase、Impala和Trafodion对接业务需求,把想要的结果输出。
再往后发展,如果业务还是异常繁重,数据处理不过来,我们就可以把明细数据层HBase里面的数据拿出来,放到Spark和 Flink这两个流计算框架中进行预聚合,然后对接到OLTP系统,提供后台服务。
可见,大数据技术栈的选择并没有统一的标准,不同业务场景需要不同的处理方式。正如刘景泽所说:“在很多场景里面,我们面对框架的时候要一以贯之,发现它真正的自由度在哪里?而不要被它们所局限了。”
存储计算分离与数据抽象实践
大数据诞生的初期,很多公司的大数据集群是由一个庞大的Cluster阵列组成,里面包括很多台服务器,也就是集群的计算能力和存储能力分布在一个数据中心。这是由于当时的网络条件较差,导致任务处理中的数据传输开销非常大,而本地磁盘比网络传输更快,因此当时的主要理念就是要以数据为中心做计算,为的是减少数据的迁移,提高计算效率,这里最典型的代表就是MapReduce。
实际上,这种”资源池”方案不能同时充分利用存储和计算资源,造成了大量浪费,还面临着各种组件升级困难、无法区别对待不同数据、定位问题困难、临时调配资源困难等一系列问题。随着网络速度的大幅提升、内存和磁盘的大规模扩容、大数据软件的迭代更新,之前的存储+计算集群的方案该如何改进呢?BLUECITY 大数据总监刘宝亮提出了存储计算分离架构,如下图所示:
要实现存储计算分离,首先存储计算要分开,同时存储内部要分离,计算内部也要分离。存储集群是该架构的核心,因为大数据最重要的就是数据;计算集群是这个架构的灵魂,因为一切的灵活性都是由计算集群带来的。此外,无阻塞网络是此架构最重要的依赖,因为一旦出现网络问题,存储集群的读取和写入操作就不能持平。说到存储计算分离的优点,刘宝亮特别强调了“弹性”,这是由于多集群的软硬件升级更容易、数据可分级对待、可临时创建新集群应对紧急问题等等都更加灵活,从而进一步提升了计算速度。
数据驱动——从方法到实践
所谓数据驱动,就是通过各种技术手段采集海量数据,并进行汇总形成信息,之后对相关的信息进行整合分析并形成决策指导。在这里神策联合创始人&首席架构师付力力将整个数据驱动的环节总结为四步,分别是数据采集、数据建模、数据分析、数据反馈,并且这四个环节要形成闭环,也就是数据反馈最终要回归到数据采集。
数据采集是一切数据应用的根基,可以通过客户端、业务端、第三方数据、线下数据四个方面进行采集,无论以何种方式进行,建议在内部做技术架构设计的时候,要设定统一的数据接入API,通过SDK或服务端的数据采集工具将数据做统一处理接收,方便后续的数据建模。
第二步是数据建模,一个基础的数据模型分为三部分:事件、用户、实体,在此之上,还可以做用户分群,例如根据用户的年龄、性别、省份、手机设备等属性进行划分。数据建模的过程中有一个难点就是ETL,在多数据源采集的情况下,很难找到直接可用的 ETL 产品,因此我们可以搭建好调度、计算框架、质量管理和元数据管理等通用工作,尽量把数据的源头建设好,从而降低运营成本。
第三步数据分析,这里有两种非常典型的思路:一种是通过例行的报表满足基本的指标获取需求,如果是临时性的需求就要通过新的开发解决;另一种是使用抽象的模型覆盖指标体系以及大部分分析需求,通过友好的交互让需要数据的人自主获取数据。后者的灵活性远远大于前者,而数据分析对灵活性的要求会远大于对响应时间的要求。除此之外,数据的可解释性以及整体架构的简洁性也是非常重要的考量因素。
数字时代业务风控的挑战与机遇
企业的业务、营销、生态、数据等正面临日益严重的黑产威胁,面对黑产链条完备、分工明确的形势,现有的风控方案面临着哪些挑战?
数美科技CTO梁堃归纳了三点:第一,防御能力单薄,依赖黑名单、依赖简单人工规则、单点防御(SDK、验证码);第二,防御时效性差,依赖T+1离线挖掘、策略生效周期长;第三,防御进化慢,缺乏策略迭代闭环、无自学习机制。那么如何改善以上这些问题并建立完整的风控体系呢?
梁堃认为一个全栈式风控体系应该包括布控体系、策略体系、画像体系和运营体系。在布控体系上,我们可以增加设备风险SDK、增加登录注册保护、 提供业务行为保护。在策略体系上,可以对虚拟机设备农场等风险设备、对机器注册撞库攻击等风险操作、对欺诈团伙高危群体进行识别检测等。画像体系可以在多个场景进行数据打通,多行业联防联控,共同对抗黑产。运营体系可通过案例分析、攻防研究、策略的设计、研发、验证、上线、运营等环节形成完整的闭环进行运转,这样才能保证风控一直有效。
这些体系跑在什么样的架构上呢?首先风控系统要跟业务系统解耦,这样业务规则随时升级变化不会影响风控,风控规则的变化不会影响业务。另外一个风控平台结构需要包括多场景策略体系、实时风控平台和风险画像网络,如下图所示:
最后,这整个风控平台的架构是运行在云服务基础设施上的7个全球服务集群,每日请求量达30亿,峰值QPS高达10万+。该架构可分为接入层、策略引擎层、模型引擎层和存储层,通过负载均衡管理每一层的节点,实现动态的横向扩展。
Spark在MobTech应用实操分享
MobTech作为全球领先的数据智能科技平台,目前累计覆盖设备量有120亿,服务开发者32万,累计接入APP数量达50万,庞大的数据量也给MobTech带来了诸多挑战,例如运行的Yarn/Spark任务多、数据体量大、资源开销大、运算时间较长等。
在Mob有大量复杂的任务,业务需求促使其将部分慢任务、Hive任务迁移到Spark上面,取得性能的提升,同时还对一些Spark任务进行优化。MobTech大数据技术架构师张峻滔围绕复杂的Spark使用分享了两个案例:第一个是Spark动态裁减在MobTech的应用。
所谓动态分区裁剪,就是基于运行时(run time)推断出来的信息来进一步进行分区裁剪。假设A表有20亿数据,B表有1000万数据,然后把A表和B表join起来,怎么才能过滤掉A表中无用的数据,这里我们引入了bloomfilter。它的主要特性就是节省空间,如果bloomfilter判断key不存在,那么就一定不存在;如果bloomfilter判断key存在,那么可能存在,也可能不存在。简而言之,这是一种牺牲精度来换取空间的数据结构。Bloomfilter在MobTech具体应用实现如下图所示:
其逻辑SQL如下:
SELECT /*+ bloomfilter(b.id) */a.*,b.*
FROM a join b on a.id = b.id
第二个案例是Spark在千亿级别数据上的检索与计算。MobTech有4000多个标签需要历史回溯,且回溯时间周期长达2年,回溯频次很低,面对这样的冷数据,如何在资源开销比较小的情况下完成业务检索要求?由于数据分布太散, 4000多标签分布在各个不同的表里面(横向), 历史数据又分布在日表里面(纵向),间接造成搜索要在千亿的数据中进行查找。这里,建立索引的思路有两个:
横向数据整合: 将4000多个标签的日数据索引整合到一个表里面;
纵向数据整合: 将日数据进行周级别/月级别整合。
横向整合的日表数据还是太大, 于是决定将日期和数据ID整合做出一个索引表,来加快日表的查询,确保能直接通过ID定位到具体在事实表中的哪个文件,哪一行有该ID的信息。日表的数据通过Spark RDD的API 获取ID,ORC文件名,行号的信息, 生成增量索引;增量索引通过UDAF合并入全量索引。具体方案如下:
扫描下方二维码关注,并回复“大数据”即可获取讲师PPT~
听过TB、PB级大数据,ZB级的大数据探索与应用实践是怎么样的?【附PPT】相关推荐
- 【华为大咖分享】8.Focus on Value 的思考与实践精粹(后附PPT下载地址)
文:华为云DevCloud 恒少 完整版PPT下载请访问原文地址:https://bbs.huaweicloud.com/forum/thread-12721-1-1.html 华为云DevClou ...
- 【华为大咖分享】2.DevCloud on DevCloud 从1月1次到1天10次发布的实践分享(后附PPT下载地址)
文:华为云DevCloud 张甲磊 PPT下载请访问原文地址:http://t.cn/EMOQpyP 华为云DevCloud作为一站式云端DevOps平台,集成华为近30年研发实践和前沿理念,面向开 ...
- 大数据时代的发展趋势一一数据将成为资产
大数据时代的数据特点 (1)规模性,即大数据具有相当的规模, 其数据量非常巨大.淘宝网近 4亿的会员每天产生的商品交易数据约 20TB,Facebook (脸书)约 10 亿的用户每天产生的日志数据超 ...
- 关于计算机、数据的存储单位(bit, Byte, KB, MB, GB, TB, PB, EB, ZB, BB)
计算机.数据存储的单位 一.数据存储的单位有哪些 二.单位换算 三.为什么计算机储存单位的进率是1024而不是1000? 一.数据存储的单位有哪些 计算机存储单位一般用 bit, Byte, KB ...
- 数据单位:概况容量 Byte、KB、MB、GB、TB、PB、EB、ZB、YB、NB、DB、CB、XB
Byte.KB.MB.GB.TB.PB.EB.ZB.YB.DB.NB 大数据作为时下最火热的IT行业的词汇,随之数据仓库.数据安全.数据分析.数据挖掘等等围绕大数量的商业价值的利用逐渐成为行业人士争相 ...
- 数据单位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB、、、
数据单位:bit.Byte.KB.MB.GB.TB.PB.EB.ZB.YB.BB.NB.DB... 数据单位:bit.Byte.KB.MB.GB.TB.PB.EB.ZB.YB.BB.NB.DB... ...
- 介绍一下Druild,并从Twitter大数据团队分析如何应用 Druid 分析 ZB 级实时数据?
或许很多同学都还没有用过Druid,那么我们先简单介绍一下Druid,然后由浅入深的进行分析! Druild Druid 是一个用于大数据实时查询和分析的高容错.高性能开源分布式系统,旨在快速处理大规 ...
- ZB级的大数据探索与应用实践【附PPT】
据报告显示到2025年,全球将产生180ZB的数据.这些海量的数据正是企业进行数字化转型的核心生产因素,然而真正被有效存储.使用和分析的数据不到百分之十.如何从ZB级的数据中寻找分析有价值的信息并回馈 ...
- MB/GB/TB/PB/EB/ZB/YB/NB/DB/CB存储空间都是多大?如何换算?
Byte是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二进制.目前我们常用计算存储空间的最小单位(其实还有更小的bit,1 Byte=8 bit). 不过从硬盘或者叫做存储 ...
最新文章
- 推荐几个BAT大佬的公众号
- python打包工具报错_Python打包发布神器—Pyinstaller
- BLOOMBERG how to start?
- Hibernate5-1对多(1:n)-级联删除-cascade=delete-orphanl
- linux vg划分目录,修改根目录所在VG名称
- 做了全职妈妈后,你的生活将有5个方面的变化
- 查oracle执行的sql,oracle查询正在执行的sql
- diagrams软件 可替换visio ProcessOn 亿图图示
- FileUpload1上传控件
- 中国止血分析仪行业市场供需与战略研究报告
- 往十年不忘初心,新十年不负韶华丨万字长文带你完整回顾2020数据技术嘉年华...
- html超链接本地链接,为何本地连接变成本地连接2连接
- Linux系统U盘怎么格式化,Linux下对U盘的分区与格式化
- COCO数据集之gt_overlaps之分析
- PHP加密扩展库Mcrypt
- 用R语言开始量化投资
- 2021-10-21 markdown模板
- Repulsion Loss: Detecting Pedestrians in a Crowd 详解(遮挡下的行人检测)
- 数据加密方式(3类)
- Navicat Premium使用手册
热门文章
- apache solr rce cve-2019-0192 分析
- golang 结构体简介
- linux 内核模块 警告 initialization from incompatible pointer type 解决方法
- linux 内核 LINUX_VERSION_CODE 和 KERNEL_VERSION 宏定义 版本信息
- python3 RSA加解密
- Windows内核新手上路1——挂钩SSDT
- CentOS7下的离线yum源搭建
- xen tools代码结构
- 包含c语言的序列化字符,Android Serializable与Parcelable原理与区别
- 用开关控制蜂鸣器_室内照明控制系统的调试与检修