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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 本文重点介绍大数据产品集通用解决方案,即大数据在线计算+离线计算一体化解决方案,并通过真实案例模拟来说明此通用解决方案在具体项目中是如何落地的。

概述

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

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

  • 流量采集

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

  • 网络探针

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

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


适用场景

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


技术架构

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

05051.png

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

05052.png

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


方案优势

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


方案实施

数据建模

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

雪花模型建模

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


050503.png


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


数据分层

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

05054.png

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

05055.png

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


离线链路实施

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

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


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


050506.png

具体实施步骤如下:

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

05057.png

  1. 创建base项目

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

05058.png

  1. 离线计算实施
  1. 根据数据建模部分的设计,完成相关数据表创建。
    05059.png
    由于要创建的表比较多,这里贴一个ods层事实表的ddl:

CREATETABLE 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示例如下:

CREATETABLE 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 >=0AND     c_pps >=0AND     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_timeFROM(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')astimestamp))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')astimestamp))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中,如下:

050510.png

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

050511.png

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


4.结果分析实施

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

a.配置数据源和数据集

  数据源配置

050512.png

数据集配置

050513.png

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

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

050514.png

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


实时链路实施

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

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

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

01.png

  1. 实时计算数据构造实时计算数据量相对离线计算要小一些,在本例中就不做复杂的数据建模了。
  1. datahub实时数据生成
    由于是实时链路,本文采用组内ase工具来持续生产实时数据传入datahub,并让flink订阅datahub的数据,进行实时计算,ase会自动创建一个datahub的topic(ase_dr_datahub_topic01)用于传输数据。如下图所示,ase_dr_datahub_topic01在持续的接收实时数据。02.png接下来需要再创建一个topic(ase_dr_datahub_topic02),用于接收flink处理后的数据。03.png
  2. datahub实时数据订阅
    datahub的topic(ase_dr_datahub_topic01)建好并接收数据后,需要创建订阅来让其他应用实时获取datahub的数据。04.png
  1. 实时计算实施接收到实时数据后,flink需要实时对数据进行计算处理,具体实施步骤如下:
  1. 创建flink作业
    进入realtime compute flink产品,新建实时计算作业。05.png
  2. 实时计算
    通过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');insertinto odps_des
select*from datahub_source 
where   c_ch !=0and    c_events >=0;

接下来在ase_dr_datahub_topic02中创建同步任务,将实时计算的结果数据同步到ADB3.0中。06.png
看到对应的交互引擎ADB3.0相应的表中存在数据,即说明同步成功。

3.结果分析实施

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

  1. 添加数据源
    输入基本信息后,完成数据源的添加和数据集的创建。
    数据源添加:07.png
    数据集创建:08.png
  2. 创建并配置应用大屏分析器
    通过创建和配置应用大屏分析器,可以绑定实时数据源,并配置大屏展现内容和形式。01.png
  3. 切换到普通大屏模式,观察计算结果的实时变化
    在分析模式下完成数据源和展示内容配置后,切换到普通大屏模式进行展示配置,并设置实时刷新间隔。02.png
    接下来切换到预览模式下,就可以看到结果实时变化了,调试没问题后,点击发布即可。03.png

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


原文作者:阿里云智能 测试专家 饶鑫


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
9天前
|
数据采集 分布式计算 OLAP
最佳实践:AnalyticDB在企业级大数据分析中的应用案例
【10月更文挑战第22天】在数字化转型的大潮中,企业对数据的依赖程度越来越高。如何高效地处理和分析海量数据,从中提取有价值的洞察,成为企业竞争力的关键。作为阿里云推出的一款实时OLAP数据库服务,AnalyticDB(ADB)凭借其强大的数据处理能力和亚秒级的查询响应时间,已经在多个行业和业务场景中得到了广泛应用。本文将从个人的角度出发,分享多个成功案例,展示AnalyticDB如何助力企业在广告投放效果分析、用户行为追踪、财务报表生成等领域实现高效的数据处理与洞察发现。
29 0
|
19天前
|
弹性计算 缓存 搜索推荐
大数据个性化推荐,AWS终端用户解决方案
大数据个性化推荐,AWS终端用户解决方案
|
24天前
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
|
6月前
|
分布式计算 DataWorks 大数据
MaxCompute产品使用合集之大数据计算MaxCompute如何实现通过离线同步脚本模式
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
3月前
|
SQL 存储 分布式计算
"SQLTask携手Tunnel:打造高效海量数据导出解决方案,轻松应对大数据挑战
【8月更文挑战第22天】SQLTask搭配Tunnel实现高效海量数据导出。SQLTask擅长执行复杂查询,但直接导出受限(约1万条)。Tunnel专注数据传输,无大小限制。二者结合,先用SQLTask获取数据,再通过Tunnel高效导出至目标位置(如CSV、OSS等),适用于大数据场景,需配置节点及连接,示例代码展示全过程,满足企业级数据处理需求。
76 2
|
4月前
|
存储 分布式计算 监控
日志数据投递到MaxCompute最佳实践
日志服务采集到日志后,有时需要将日志投递至MaxCompute的表中进行存储与分析。本文主要向用户介绍将数据投递到MaxCompute完整流程,方便用户快速实现数据投递至MaxCompute。
187 2
|
4月前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用合集之整库离线同步至MC的配置中,是否可以清除原表所有分区数据的功能
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
3月前
|
存储 设计模式 分布式计算
面向对象编程在大数据处理中的最佳实践
【8月更文第12天】随着互联网和物联网技术的发展,数据量呈指数级增长,大数据处理已成为现代企业不可或缺的一部分。大数据处理通常涉及收集、存储、管理和分析海量数据集。传统的数据库管理系统难以应对这样的挑战,因此出现了诸如Hadoop、Spark等分布式处理框架。这些框架通常使用面向对象编程(OOP)来构建可扩展、可维护的应用程序。本文将探讨如何利用面向对象编程的原则和模式来优化大数据处理任务。
85 0
|
4月前
|
存储 弹性计算 大数据
阿里云ECS以其强大的弹性计算与存储能力,为大数据处理提供了灵活、高效、成本优化的解决方案
阿里云ECS在大数据处理中发挥关键作用,提供多样化实例规格适应不同需求,如大数据型实例适合离线计算。ECS与OSS集成实现大规模存储,通过Auto Scaling动态调整资源,确保高效运算。案例显示,使用ECS处理TB级数据,速度提升3倍,成本降低40%,展现其在弹性、效率和成本优化方面的优势。结合阿里云生态系统,ECS助力企业数据驱动创新。
99 1
|
4月前
|
数据采集 存储 数据可视化
数加产品家族图解:一站式大数据处理与分析解决方案
数加产品家族作为阿里云一站式大数据处理与分析解决方案的重要组成部分,以其全面的功能和强大的性能,为企业提供了从数据采集、存储、处理到分析的全链路解决方案。通过图解的形式,我们深入解析了数加产品家族的各个组成部分和优势特点,展现了其在大数据处理与分析领域的独特魅力。未来,随着大数据技术的不断发展和应用场景的不断拓展,数加产品家族将继续发挥其重要作用,为企业

相关产品

  • 云原生大数据计算服务 MaxCompute