大数据在线离线一体化解决方案最佳实践

简介: 本文重点介绍大数据产品集通用解决方案,即大数据在线计算+离线计算一体化解决方案,并通过真实案例模拟来说明此通用解决方案在具体项目中是如何落地的。

概述

本方案重点要落地的业务是中央网信办网络安全应急指挥中心相关业务,由于需要处理的网络数据流量巨大,而且对实时和离线大数据计算分析均有要求,所以提供此在线离线一体化解决方案。

混合云某项目主要业务简介如下:

  • 流量采集

流量采集技术是监控网络流量的关键技术之一,为流量分析提供数据来源。为了能够在复杂企业网中有效的分析网络流量。

  • 网络探针

互联网探针(NET probe),侦听网络数据包的网络探针称为互联网探针。数据包捕获、过滤、分析都能在“互联网探针”上实现。

本文主要针对流量采集业务来构建场景。

适用场景

  • 既要数据实时分析又要数据离线分析的业务。
  • 数据量计算较大且分析实时性要求较高的业务。
  • 需要备份长期大量数据且能支持查询的业务。
  • 数据来源多种多样需要进行大量同步和处理的业务。

技术架构

首先来看看业务架构:由于数据量比较庞大,涉及产品众多,数据链路也比较复杂。

本实践方案基于业务架构图抽象,得出如下图所示的技术架构和主要流程,并依据此编写操作步骤:

从抽象的业务流程图中,可以看出在线计算和离线计算两条主链路,因此可通过本文大数据在线离线一体化解决方案来实施。

方案优势

  • 支持离线EB量级数据计算,2w以上并发作业,支持灵活调度多任务并发。
  • 实时计算延迟到秒级乃至毫秒级,单个作业吞吐量可达到百万级别。
  • 支持冷热数据备份,降低运营成本。
  • 支持无缝对接各类数据源进行分析和查询,10亿+数据聚合亚秒级响应。

方案实施

数据建模

业务数据量比较庞大,为了便于处理和分析,首先进行数仓建模,并进行数据分层处理,方便实施多维分析并提升整个系统查询效率,降低查询穿透率。

雪花模型建模

根据对流量采集业务分析,比较适合数据仓库常用建模方法——雪花模型。依据业务特征和雪花模型建模原则,完成数仓建模,具体如下:

从以上模型看出,存在两个事实表,分别描述采集机流量信息和采集机规则事件信息,另外三个维度表分别记录运营商,采集机和地域维度,方便后续的业务分析。

数据分层

离线和在线引擎的数据量非常大,如果直接对接BI做数据分析,会导致查询效率很低。因此需要进行数据分层,将海量的数据来源经过ETL,清洗,根据数据域和应用域抽取到ADS层,交给BI做分析,通用方法如下图:

针对当前业务,可以进行数据分层,具体如下:

数据分层后,数据建模完成,后续重点用于离线链路实施中。

离线链路实施

本例中离线链路主要满足的应用域客户场景有以下两个:

  • 各个省每日的采集机事件总和统计线图。
  • 各运营商每日采集机字节速率平均值看板 (可通过下拉列表分别查看每个运营商的情况)。

离线链路主要针对大量数据进行批量处理和分析,并进行冷热数据存储,实时性要求不高。离线链路实施主要以base这个产品为核心来开发和串联,数据链路情况如下,本文通过自建数据来模拟datahub数据源。

具体实施步骤如下:

  1. 创建odps项目
    首先新建odps任务云账号和配额组,并创建odps项目。

  1. 创建base项目

   创建base项目,创建工作空间,并绑定刚刚创建的odps项目。

  1. 离线计算实施
  1. 根据数据建模部分的设计,完成相关数据表创建。


    由于要创建的表比较多,这里贴一个ods层事实表的ddl:
     
CREATE TABLE IF NOT EXISTS ods_wa_collector_flow_mpp
(c_pcg  INT       COMMENT '网络',c_pc   INT       COMMENT '省',c_isp  STRING    COMMENT 'isp',c_iao  INT       COMMENT '出入口',c_ch   BIGINT    COMMENT '采集机',c_pps  BIGINT    COMMENT '包速率',c_bps  BIGINT    COMMENT '字节速率',c_time TIMESTAMP COMMENT '时间'
) ;

接着用同样的方法依次创建各个数据层的数据表。

然后创建维度表,ddl示例如下:

CREATE TABLE IF NOT EXISTS dim_province
(c_pc   INT    COMMENT '省代码',c_name STRING COMMENT '省名称'
) ;

接着用同样的方法依次创建其他维度表。

b.通过数据加工,完成数据建模和数据分层
首先通过数据清洗操作,对贴源层数据进行处理,代码示例如下:

INSERT OVERWRITE TABLE dwd_wa_collector_flow_mpp 
SELECT  c_pcg,c_pc,c_isp,c_iao,c_ch,c_pps,c_bps,c_time
FROM    ods_wa_collector_flow_mpp
WHERE   c_ch >= 0
AND     c_pps >= 0
AND     c_bps >= 0
;

接下来针对dwd层的数据,完成数据汇聚,代码示例如下:

INSERT OVERWRITE TABLE dws_wa_union 
SELECT  a.c_ch,c_pcg,c_pc,c_isp,c_iao,c_pps,c_bps,c_rule_id,c_events,a.c_time
FROM    
(SELECT c_pcg,c_pc,c_isp,c_iao,c_ch,c_pps,c_bps,c_time FROM dwd_wa_collector_flow_mpp WHERE c_time = cast(to_char(getdate(),'yyyy-mm-dd 00:00:00') as timestamp)
)a  
FULL OUTER JOIN 
(SELECT c_ch,c_rule_id,c_events,c_time FROM  dwd_wa_collector_rule_event_mpp  WHERE c_time = cast(to_char(getdate(),'yyyy-mm-dd 00:00:00') as timestamp)
)b
ON      a.c_ch = b.c_ch;

接下来构造应用域的数据表,用于应用域的分析和查询,示例为统计各个省采集机事件总数表:

INSERT OVERWRITE TABLE ads_province_rule_event 
SELECT  c_ch,c_pc,c_rule_id,c_events,c_time
FROM dws_wa_union;
SELECT * FROM ads_province_rule_event;

最后,通过离线同步将应用域的数据同步到交互引擎adb3.0中,如下:

完成后,通过base的工作流任务图将各个节点串联起来,点击run按钮即可触发实例运行,并生成应用域数据,用于后续分析和查询,具体任务图如下:

可以看到运行成功了,之后将该任务图提交到生产环境中,就可以做到每日自动生产数据用于生产分析了。

4.结果分析实施

最终产出的应用域数据,一般会离线同步到交互式引擎中用于查询分析,这里选择的交互式引擎是adb3.0。

a.配置数据源和数据集

  数据源配置

数据集配置

可以看到,我们在数据集里面配置了维表和事实表的关联。
b.生成仪表板图

基于配置的数据集,通过简单的配置便可以得出:各个省每日的采集机事件总和线图,各运营商每日采集机字节速率平均值看板。

客户可以通过仪表板的数据,分析采集机网络流量情况,以上就是离线链路总体实施情况。

实时链路实施

本例中实时链路主要满足的应用域客户场景如下:

每日实时采集机事件总和统计

区别于离线链路,实时链路重点满足客户对于信息处理分析的高时效性和可操作性的要求,例如客户就想看分钟级别的数据波动和数据大盘变化,方便及时做出决策,此时就需要实时计算来满足需求,实时计算链路大致如下图所示:

  1. 实时计算数据构造实时计算数据量相对离线计算要小一些,在本例中就不做复杂的数据建模了。
  1. datahub实时数据生成
    由于是实时链路,本文采用组内ase工具来持续生产实时数据传入datahub,并让flink订阅datahub的数据,进行实时计算,ase会自动创建一个datahub的topic(ase_dr_datahub_topic01)用于传输数据。如下图所示,ase_dr_datahub_topic01在持续的接收实时数据。

    接下来需要再创建一个topic(ase_dr_datahub_topic02),用于接收flink处理后的数据。
  2. datahub实时数据订阅
    datahub的topic(ase_dr_datahub_topic01)建好并接收数据后,需要创建订阅来让其他应用实时获取datahub的数据。

  1. 实时计算实施接收到实时数据后,flink需要实时对数据进行计算处理,具体实施步骤如下:
  2. 创建flink作业
    进入realtime compute flink产品,新建实时计算作业。
  3. 实时计算
    通过flink对源数据进行计算处理,本例主要是完成数据清洗操作,相关代码如下:
create TEMPORARY TABLE datahub_source (
c_ch      BIGINT    COMMENT '采集机',
c_rule_id BIGINT    COMMENT '规则id',
c_events  BIGINT    COMMENT '事件数',
c_time    BIGINT    COMMENT '时间'
) with (
'connector' = 'datahub',
'endpoint' = 'https://datahub.xxxx.com',
'project' = 'ase_datahub_pj_61232508463140', 
'topic' = 'ase_dr_datahub_topic01', 
'accessId' = 'xxxx', 
'accessKey' = 'xxxx',
'subId' ='xxxx'
);
CREATE TEMPORARY TABLE datahub_des (
c_ch      BIGINT    COMMENT '采集机',
c_rule_id BIGINT    COMMENT '规则id',
c_events  BIGINT    COMMENT '事件数',
c_time    BIGINT    COMMENT '时间'
)
with (
'connector' = 'datahub',
'endpoint' = 'https://datahub.xxxx.com',
'project' = 'ase_datahub_pj_61232508463140', 
'topic' = 'ase_dr_datahub_topic02', 
'accessId' = 'xxxx', 
'accessKey' = 'xxxx'
);
insert into odps_des
select * from datahub_source 
where   c_ch != 0
and    c_events >= 0;

接下来在ase_dr_datahub_topic02中创建同步任务,将实时计算的结果数据同步到ADB3.0中。

看到对应的交互引擎ADB3.0相应的表中存在数据,即说明同步成功。

3.结果分析实施

实时计算链路采用datav进行实时大屏展示和分析,进入datav产品界面。

  1. 添加数据源
    输入基本信息后,完成数据源的添加和数据集的创建。
    数据源添加:


    数据集创建:
  2. 创建并配置应用大屏分析器
    通过创建和配置应用大屏分析器,可以绑定实时数据源,并配置大屏展现内容和形式。

  3. 切换到普通大屏模式,观察计算结果的实时变化
    在分析模式下完成数据源和展示内容配置后,切换到普通大屏模式进行展示配置,并设置实时刷新间隔。

    接下来切换到预览模式下,就可以看到结果实时变化了,调试没问题后,点击发布即可。

以上就是大数据在线和离线两条最通用的计算链路,在实际客户场景下具体应用落地。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于MaxCompute的大数据安全方案

简介:随着法律的完善,数据安全,信息安全,网络安全,升级成国家安全,所以数据安全不管对用户,还是对公司也都会变的越来越重要。做为大数据云数仓解决方案的领导者,阿里云MaxCompute在…

数据仓库的分层架构与演进

简介:分层架构很容易在各种书籍和文档中去理解,但是把建模方法和分层架构放在一起就会出现很多困惑了。接下来,我会从数据研发与建模的角度,演进一下分层架构的设计原因与层次的意义。 分层架构很容易在各种书籍和文档中去理解&a…

数据治理之参考数据与主数据管理

简介:最近凑巧参与了一次某行业的业务共创会议,期间讨论到了主数据系统,还有我们该如何参与主数据系统建设的话题。说实话,我一直以为我不会有机会参与到主数据与参考数据系统的话题中去,所以,又去把DAMA的…

如何在云端重塑内容生产?来看这场虚拟人主持的发布会

简介:「智能媒体生产」产品全新升级 3月30日,阿里云视频云在线上举行了一场由虚拟人助力主持的「智能媒体生产」产品升级发布会,活动围绕产品能力的展现、视频生产流程的革新、高效生产背后的技术先进性,阐释了企业如何在云端重塑…

阿里开源自研工业级稀疏模型高性能训练框架 PAI-HybridBackend

简介:近年来,随着稀疏模型对算力日益增长的需求, CPU集群必须不断扩大集群规模来满足训练的时效需求,这同时也带来了不断上升的资源成本以及实验的调试成本。为了解决这一问题,阿里云机器学习PAI平台开源了稀疏模型高性能同步训练…

Serverless 遇到 FinOps,云成本问题有解了!

Key Takeaways:1. 尽管 Serverless 的迅猛发展吸引了广泛深入的关注,Serverless 函数总成本的事先估计仍缺乏有效的理论指导。本文基于 FunctionGraph 在 Serverless 领域的 FinOps 探索和实践,提出业界首个 Serverless 函数总成本估计模型。…

Apsara Stack 技术百科 | 联结良性生态,筑千行百业的数字基石

简介:作为现今IT领域最重要的课题:基础设施云化,离不开与伙伴的携手合作,如何让云上解决方案能充分释放价值的同时形成一个相互依存的自循环生态系统,混合云君来跟你聊聊~ 生态系统这个词在维基百科上的定义是&#xf…

用户留存建模实践

简介:在流量分析型产品的用户分析模块中,留存、互访、新老客构成等数据都是有效衡量用户粘性与促活召回的关键性指标;但是,我们发现在很多流量运营的业务场景中,留存分析建模都显著存在着设计和计算上的诸多问题。本文…

ACK One 构建应用系统的两地三中心容灾方案

简介:本文侧重介绍了通过 ACK One 的多集群应用分发功能,可以帮助企业管理多集群环境,通过多集群主控示例提供的统一的应用下发入口,实现应用的多集群分发,差异化配置,工作流管理等分发策略。结合 GTM 全局…

英特尔On技术创新峰会:助力开发者解决当前和未来的挑战

第二届英特尔On技术创新峰会于2022年9月27日在美国加利福尼亚州圣何塞市开幕。在本届峰会上,英特尔向齐聚一堂的软硬件开发者们分享了在构建以开放、选择和信任为原则的生态系统方面的最新进展——从推动开放标准以使“芯片系统”(systems of chips&…

你不知道的 HTTPS 压测

简介:随着互联网安全规范的普及,使用 HTTPS 技术进行通信加密,实现网站和 APP 的可信访问,已经成为公认的安全标准。本文将介绍针对 HTTPS 协议做压力测试的关注点,以及使用 PTS 做 HTTPS 压测的技术优势和最佳实践。 …

数据湖—Delta Lake

简介:Delta Lake 是 DataBricks 公司开源的、用于构建湖仓架构的存储框架。能够支持 Spark,Flink,Hive,PrestoDB,Trino 等查询/计算引擎。作为一个开放格式的存储层,它在提供了批流一体的同时,为…

2022杭州云栖大会定档11月3日至5日:技术产品发布+超4万平科技展

9月28日消息,记者从云栖大会组委会获悉,2022杭州云栖大会将于11月3日至5日在杭州云栖小镇举办。今年云栖大会以“计算进化未来”为主题,在3天内设置两场主论坛,70多场数字技术、产业和生态分论坛,以及4万平米智能科技全…

阿里云RemoteShuffleService 新功能:AQE 和流控

简介:阿里云EMR 自2020年推出 Remote Shuffle Service(RSS)以来,帮助了诸多客户解决 Spark 作业的性能、稳定性问题,并使得存算分离架构得以实施。为了更方便大家使用和扩展,RSS 在2022年初开源(https://github.com/alibaba/Remot…

如何使用Delta Lake构建批流一体数据仓库

简介:Delta Lake是一个开源存储层,它为数据湖带来了可靠性。Delta Lake提供了ACID事务、可扩展的元数据处理,并统一了流式处理和批处理数据处理。Delta-Lake运行在现有数据湖之上,并且与Apache Spark API完全兼容。希望本篇能让大…

中国峰会|下一代云基础架构,赋能企业云上发展

点击上方入口立即【自由构建 探索无限】一起共赴年度科技盛宴!马上点击“阅读原文”了解更多亚马逊云科技中国峰会让我们共同见证亚马逊的一小步云计算的一大步扫码【立即报名】直通大咖云集的亚马逊云科技中国峰会!

Delta Lake基础介绍(商业版)

简介:介绍 Lakehouse 搜索引擎的设计思想,探讨其如何使用缓存,辅助数据结构,存储格式,动态文件剪枝,以及 vectorized execution 达到优越的处理性能。 作者:李洁杏,Databrick资深软…

云原生数仓如何破解大规模集群的关联查询性能问题?

简介:AnalyticDB for PostgreSQL(以下简称ADB PG)是一款PB级的MPP架构云原生数据仓库。本文从ADB PG架构设计的角度出发,探讨Runtime Filter在ADB PG中的实现方案,并介绍了基于Bloom Filter的ADB PG Dynamic Join Filter功能技术细节。 作者 …

独家对话Python之父:人类大脑才是软件开发效率的天花板

【CSDN 编者按】十五年前,《程序员》杂志曾专访过 Python 之父 Guido van Rossum,一起探讨了 Python 3.0 的较为明显的新特性,即增加了对中文( Unicode )的支持。十五年过去,Python 的版本号只前进了一个数字,但是 Pyt…

淘系用户平台技术团队单元测试建设

简介:单元测试是工程交付前质量保障的第一环,也无疑是软件工程质量保障的重要基石,有效的单元测试能够提前发现90%以上的代码Bug问题,同时也能防止代码的腐化,在工程重构演进时起到至关重要的作用。 作者 | 问元 来源 …