实时计算Flink版体验评测

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 一文带你弄懂实时计算Flink版场景实践和核心功能体验

产品概述

阿里云实时计算Flink版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于Apache Flink构建的企业级、高性能实时大数据处理系统。是一种全托管Serverless的Flink云服务,开箱即用,计费灵活。具备一站式开发运维管理平台,支持作业开发、数据调试、运行与监控、自动调优、智能诊断等全生命周期能力。100%兼容Apache Flink,支持开源Flink平滑迁移上云,核心企业级增强Flink引擎较开源Flink有约两倍性能的提升。提供端到端亚秒级实时数据分析能力,并通过标准SQL降低业务开发门槛,助力企业向实时化、智能化大数据计算升级转型。

image.png

相比开源Flink,阿里云实时计算Flink版具备如下优势:

  • 在成本上,基于Serverless的服务支持作业弹性扩缩容,只需增加计算节点无需修改硬件配置,提供弹性体验。
  • 在性能上,具备单核CPU每秒数十万条记录处理能力,可实现端到端亚秒级数据处理延迟,可支持数万并发超大规模实时任务计算。
  • 在稳定性上,服务分布式集群计算无单点,保障高可用。
  • 在功能上,提供数十种作业指标监控和一站式开发界面,支持SQL作业调试,支持作业运行期间智能调优。提供了丰富的数据实时入湖入仓和实时风控场景能力。
  • 在使用过程中,已有开源Flink任务可平滑迁移上云,无缝对接主流开源大数据生态,具备三十余种上下游连接器,极大节约企业的人力支出与资源投入成本。

产品开通

新用户可以点击链接前往领取0元免费试用 Flink,有(3000CU*小时,3 个月内)额度。

image.png

如果你是老用户,那就得老老实实进行按量付费购买了,点击链接即可前往控制台进行购买。

image.png

当然产品经理还是考虑到诸多老用户体验感受的,特地推出了优惠套餐,59元/3个月,对于需要短期体验的用户来说还是非常合适的。

image.png

由于实时计算Flink版采用的是存储计算分离架构,所以根据存储类型不同,有全托管和对象存储两种规格。这里为了体验方便,选择全托管。在购买页面选择付费模式为按量计费,地域和可用区根据实际情况选择,这里选华东1(杭州),工作空间名称自定义一个,存在重复会有提示,存储类型选择全托管(目前是免费公测,对于老用户来说是个小福利),勾选协议,点击确认订单即可。
image.png

在接下来的支付页面点击确认支付即可。

image.png

看到该界面就说明产品开通成功了,实例创建需要花费一点时间,完成后接下来就可以进行入门体验了。

入门体验

点击实例ID即可进入管理控制台,如下:

image.png

下面将使用内置的GitHub公开事件样例数据,快速体验实时计算Flink版产品的实时数据分析功能。

首先需要创建Session集群。

image.png

填上名称session-test,状态选择RUNNING,引擎版本选择第一个推荐的vvr-8.0.9-flink-1.17,Task Managers 数量配置为4。

image.png

完成参数配置,点击创建Session集群。稍等片刻,集群状态变成运行中。

image.png

接下来需要创建一个SQL作业,点击左侧导航栏的数据开发——ETL,单击新建。

image.png

选择新建空白的流作业草稿,点击下一步。

image.png

这里的参数可以保持默认,也可以自定义,按需选择即可。

image.png

将下面的SQL粘贴到作业开发的文本编辑区,用来统计当天各个仓库新增Star数Top 10。

-- 通过DDL语句创建SLS源表,SLS中存放了Github的实时数据。
CREATE TEMPORARY TABLE gh_event(
  id STRING,                                        -- 每个事件的唯一ID。
  created_at BIGINT,                                -- 事件时间,单位秒。
  created_at_ts as TO_TIMESTAMP(created_at*1000),   -- 事件时间戳(当前会话时区下的时间戳,如:Asia/Shanghai)。
  type STRING,                                      -- Github事件类型,如:。ForkEvent, WatchEvent, IssuesEvent, CommitCommentEvent等。
  actor_id STRING,                                  -- Github用户ID。
  actor_login STRING,                               -- Github用户名。
  repo_id STRING,                                   -- Github仓库ID。
  repo_name STRING,                                 -- Github仓库名,如:apache/flink, apache/spark, alibaba/fastjson等。
  org STRING,                                       -- Github组织ID。
  org_login STRING                                  -- Github组织名,如: apache,google,alibaba等。
) WITH (
  'connector' = 'sls',                              -- 实时采集的Github事件存放在阿里云SLS中。
  'project' = 'github-events-hangzhou',             -- 存放公开数据的SLS项目。本示例以杭州为例,您需要修改为您的实际地域信息。
  'endPoint' = 'https://cn-hangzhou-intranet.log.aliyuncs.com', -- 公开数据仅限VVP通过私网地址访问。本示例以杭州为例,您需要修改为您的实际地域信息。
  'logStore' = 'realtime-github-events',            -- 存放公开数据的SLS logStore。
  'accessId' =  'xxxx',         -- 只读账号的AK,无需修改。
  'accessKey' = 'FDgsh6fjSmkbFsx083tN6HOiqNVWTP',   -- 只读账号的SK,无需修改。
  'batchGetSize' = '500'                            -- 批量读取数据,每批最多拉取500条。
);

-- 配置开启mini-batch, 每2s处理一次。
SET 'table.exec.mini-batch.enabled'='true'; 
SET 'table.exec.mini-batch.allow-latency'='2s'; 
SET 'table.exec.mini-batch.size'='4096'; 

-- 作业设置4个并发,聚合更快。
SET 'parallelism.default' = '4';

-- 查看当天Github新增star数Top 10仓库。
SELECT DATE_FORMAT(created_at_ts, 'yyyy-MM-dd') as `date`, repo_name, COUNT(*) as num
FROM gh_event
WHERE type = 'WatchEvent' AND DATE_FORMAT(created_at_ts, 'yyyy-MM-dd') = DATE_FORMAT(NOW(), 'yyyy-MM-dd')
GROUP BY DATE_FORMAT(created_at_ts, 'yyyy-MM-dd'), repo_name
ORDER BY num DESC
LIMIT 10;

单击作业区页面右上角的调试,并选择上述创建的Session集群,点击确认。

image.png

调试完成后即可在结果栏看到统计效果。

image.png

在作业开发文本编辑区粘贴如下SQL,可以统计过去一周里Github小时级别的评论热力图

-- 通过DDL语句创建SLS源表,SLS中存放了Github的实时数据。
CREATE TEMPORARY TABLE gh_event(
  id STRING,                                        -- 每个事件的唯一ID。
  created_at BIGINT,                                -- 事件时间,单位秒。
  created_at_ts as TO_TIMESTAMP(created_at*1000),   -- 事件时间戳(当前会话时区下的时间戳,如:Asia/Shanghai)。
  type STRING,                                      -- Github事件类型,如:ForkEvent, WatchEvent, IssuesEvent, CommitCommentEvent等。
  actor_id STRING,                                  -- Github用户ID。
  actor_login STRING,                               -- Github用户名。
  repo_id STRING,                                   -- Github仓库ID。
  repo_name STRING,                                 -- Github仓库名,如:apache/flink, apache/spark, alibaba/fastjson等。
  org STRING,                                       -- Github组织ID。
  org_login STRING                                  -- Github组织名,如: apache,google,alibaba等。
) WITH (
  'connector' = 'sls',                              -- 实时采集的Github事件存放在阿里云SLS中。
  'project' ='github-events-hangzhou',              -- 存放公开数据的SLS项目。本示例以杭州为例,您需要修改为您的实际地域信息。
  'endPoint' = 'https://cn-hangzhou-intranet.log.aliyuncs.com', -- 公开数据仅限VVP通过私网地址访问。本示例以杭州为例,您需要修改为您的实际地域信息。
  'logStore' = 'realtime-github-events',            -- 存放公开数据的SLS logStore。
  'accessId' =  'xxxx',         -- 只读账号的AK,无需修改。
  'accessKey' = 'FDgsh6fjSmkbFsx083tN6HOiqNVWTP',   -- 只读账号的SK,无需修改。
  'batchGetSize' = '500',                           -- 批量读取数据,每批最多拉取500条。
  'startTime' = '2024-09-24 00:00:00'               -- 开始时间,尽量设置到需要计算的时间附近,否则无效计算的时间较长。默认值为当前值。
);

-- 配置开启mini-batch, 每2s处理一次。
SET 'table.exec.mini-batch.enabled'='true'; 
SET 'table.exec.mini-batch.allow-latency'='2s'; 
SET 'table.exec.mini-batch.size'='4096'; 

-- 作业设置4个并发,聚合更快。
SET 'parallelism.default' = '4'; 

-- 实时统计过去一周里Github小时级别的评论热力图。
SELECT  DATE_FORMAT(created_at_ts, 'yyyy-MM-dd') as comment_date, HOUR(created_at_ts) AS comment_hour ,COUNT(*) AS comment_count
FROM gh_event
WHERE created_at_ts >= NOW() - INTERVAL '7' DAY AND (type='CommitCommentEvent'
    OR type='IssueCommentEvent' or type = 'PullRequestReviewCommentEvent')
GROUP BY DATE_FORMAT(created_at_ts, 'yyyy-MM-dd'), HOUR(created_at_ts) ;

单击作业区页面右上角的调试,并选择上述创建的Session集群,点击确认。呈现的热力图如下:

image.png

这里需要注意的是:因为这是一个流式作业,作业会持续运行,结果会持续更新。体验完成之后,需要及时单击停止按钮,否则会继续消耗计算资源。

体验到这是不是意犹未尽,这里为了避免文章冗长就不再演示其他入门实验了,感兴趣的小伙伴可以点击链接参照官网文档进行自行体验。

image.png

对比分析

目前市面上可以看到并且具有广泛应用案例的实时计算产品有百度的流式计算(Baidu Stream Computing,简称BSC)、腾讯的流计算Oceanus、火山引擎的流计算Flink版、亚马逊的AWS Kinesis Data Analytics for Apache Flink、谷歌的Google Cloud Dataflow with Apache Flink、以及微软的Azure Stream Analytics with Apache Flink Compatibility。他们之间的共同点可以简要归纳如下:

  • 基于Apache Flink构建,利用了Flink的高性能、分布式、实时计算等特性
  • 提供了云托管服务,用户无需自行搭建和维护计算集群,降低了运维成本和技术门槛
  • 支持实时数据处理,能够处理大规模的数据流,并提供高效的数据分析和实时决策支持
  • 支持多种数据源接入和多种数据输出方式,满足用户不同的数据处理需求
  • 提供了全链路监控和运维工具,帮助用户更好地管理和优化计算任务

它们之间的差异除了主观的使用体验和文档支持存在差异外,其他对比项以表格罗列如下:

实时计算Flink版(阿里云) 流式计算BSC(百度) 流计算Oceanus(腾讯) 火山引擎流式计算Flink版 AWS Kinesis Data Analytics for Apache Flink Google Cloud Dataflow with Apache Flink Azure Stream Analytics with Apache Flink Compatibility
服务商 阿里云 百度 腾讯云 火山引擎(字节跳动) AWS Google Cloud Microsoft Azure
基于技术 Apache Flink 完全兼容Flink引擎 Apache Flink Apache Flink Apache Flink Apache Beam(支持Flink Runner) Apache Flink
部署方式 云托管 云托管 云托管 公有云/混合云/多云 AWS托管 Google Cloud托管 Azure托管
开发环境 Web IDE、SDKs BSC API Web IDE、SDKs Web IDE、SDKs AWS Management Console Google Cloud Console Azure Portal
数据接入 多种数据源支持 百度消息系统(BMS)、物接入IOT Hub、云数据库RDS、对象存储BOS 多种数据源支持 火山引擎项目数据 Kinesis Streams等 Pub/Sub、BigQuery等 Event Hubs、IoT Hub等
数据处理 SQL、Table API、UDF SQL、BSC API SQL、Table API、UDF SQL、Table API、UDF SQL、Flink API Apache Beam Pipeline SQL、Flink API
数据输出 多种数据目标支持 百度消息系统(BMS)、云数据库RDS、对象存储BOS、百度ElasticSearch、时序数据库TSDB 多种数据目标支持 多种数据目标支持 Amazon S3、Kinesis Firehose等 Google Cloud Storage、BigQuery等 Blob Storage、SQL Database等
监控与运维 全链路监控、智能调优 集群安防措施、权限管理策略 全链路监控、智能调优 火山云监控服务 AWS CloudWatch Google Cloud Monitoring Azure Monitor
安全性 阿里云安全体系 百度安全体系 腾讯云安全体系 字节跳动安全体系 AWS安全体系 Google Cloud安全体系 Azure安全体系
成本模型 按需付费(CPU/内存使用量) 按需付费(CPU/内存使用量) 按需付费(资源使用量) 实时使用量 AWS定价模型 Google Cloud定价模型 Azure定价模型
典型应用场景 实时数据分析、监控告警 实时数据分析、物联网IoT 实时数据分析、业务监控 实时ETL、实时数仓 实时数据流分析 实时数据流处理、ETL 实时数据流分析、IoT数据处理
社区与支持 阿里云支持、Flink社区 百度支持 腾讯云支持、Flink社区 火山引擎支持、Flink社区 AWS支持、Flink社区 Google Cloud支持、Beam社区 Azure支持、Flink社区

基于表格可以将各个产品间的不同点归纳如下:

  • 产品都由不同的云服务提供商提供,都有自己的生态系统和服务体系,用户可以根据自己的需求和偏好选择相应的产品
  • 产品在功能和特性上都有所不同。例如,阿里云实时计算Flink版提供了端到端亚秒级实时数据分析能力,并通过标准SQL降低业务开发门槛;腾讯云流计算Oceanus提供了丰富的数据处理和分析能力,并支持多种数据处理方式和算法;AWS Kinesis Data Analytics for Apache Flink则降低了构建和管理Apache Flink应用程序的复杂性
  • 各个产品的定价和成本模型可能有所不同
  • 虽然都支持Apache Flink社区,但每个产品的官方支持和用户社区可能有所不同

体验总结

首先提出一个体验过程中发现的问题,或者说是错误。在产品首页的产品规格中,有一个59元/3月的优惠产品,本以为是针对老用户的一个福利,没想到点击购买却出现了不一样的情况。

image.png

明明标注的是容量规格是3000CUH,跳转后却成了5000CUH,也就是说出现了产品规格不一致的情况,也就直接导致了无法优惠购买。

下面逐条逐项进行体验总结

(1)在体验实时计算Flink版产品的过程中,我总体上得到了较为全面的产品内引导和文档帮助。产品界面设计清晰,关键功能点都有相应的说明和指引,这对于初次接触的用户来说非常友好。此外,官方文档也相当详尽,从安装部署到功能使用,再到高级配置,都提供了详细的步骤和示例。

然而,在深入探索某些高级功能时,我发现文档和产品内引导略显不足。例如,在进行复杂的数据处理任务时,关于如何优化Flink作业性能、如何调整并行度等高级参数的文档相对较少,且部分参数的解释不够详细,容易让新手用户感到困惑。此外,虽然产品内提供了部分示例代码,但针对特定业务场景的完整案例相对较少,这在一定程度上限制了用户的快速上手和实际应用。

因此,我认为在以下方面还可以进一步加强:

  • 增加针对高级功能的详细文档和指引,特别是关于性能优化和参数调整的部分。
  • 提供更多针对特定业务场景的完整案例和示例代码,帮助用户更好地理解和应用Flink。
  • 在产品内增加更多互动式的引导和学习资源,如在线教程、视频讲解等,以提升用户体验和学习效率。

(2)从功能层面来看,实时计算Flink版产品基本满足了我的预期。在数据开发方面,该产品提供了丰富的API和算子库,支持复杂的数据处理逻辑;同时,它还支持多种数据源和数据格式的接入,使得数据开发过程更加灵活和高效。在运维方面,该产品提供了完善的监控和报警功能,能够实时监控作业的运行状态和性能指标,及时发现问题并进行处理。

此外,该产品还支持多种部署方式,如单机部署、集群部署等,能够满足不同规模的业务需求。同时,它还提供了丰富的安全功能,如数据加密、访问控制等,确保数据的安全性和隐私性。

然而,在部分细节方面,我认为还有改进的空间。例如,在作业调度和资源管理方面,该产品目前还缺乏一些高级功能,如动态调整作业资源、作业优先级管理等。这些功能的缺失可能会在一定程度上影响作业的性能和稳定性。

(3)针对我所体验的业务场景,我认为实时计算Flink版产品还可以在以下方面进行改进或增加更多功能:

  • 增强实时数据分析能力:目前该产品主要侧重于实时数据处理和流计算,但在实时数据分析方面还有所欠缺。可以考虑增加一些实时数据分析工具和算法库,以便用户能够更方便地进行实时数据分析和挖掘。
  • 优化作业部署和升级流程:在作业部署和升级方面,目前该产品还需要用户手动进行一系列操作,这在一定程度上增加了运维成本。可以考虑引入自动化部署和升级工具或流程,降低运维难度和成本。
  • 增加更多数据源支持:虽然该产品已经支持了多种数据源和数据格式的接入,但随着业务的发展和新数据源的出现,可能需要不断增加对新数据源的支持。因此,建议持续关注和更新数据源支持列表,以满足用户的多样化需求。

(4)作为大数据流式处理的一款产品,我觉得它与其他产品联动的类型会有很多,比如:

  • 与大数据平台结合:可以将实时计算Flink版产品与Hadoop、Spark等大数据平台结合使用,实现离线数据分析和实时数据处理的有机结合。例如,可以利用Hadoop进行大规模数据存储和预处理,然后利用Flink进行实时数据分析和处理。
  • 与数据库结合:可以将实时计算Flink版产品与关系型数据库(如MySQL、PostgreSQL)或非关系型数据库(如MongoDB、Cassandra)结合使用,实现数据的实时入库和查询。这有助于提升数据处理的实时性和准确性。
  • 与机器学习平台结合:可以将实时计算Flink版产品与机器学习平台(如TensorFlow、PyTorch)结合使用,实现实时数据分析和预测。例如,可以利用Flink进行实时数据预处理和特征提取,然后利用机器学习模型进行实时预测和决策。
  • 与消息队列结合:可以将实时计算Flink版产品与Kafka、RabbitMQ等消息队列结合使用,实现数据的实时传输和处理。这有助于提升数据处理的实时性和可靠性,特别是在分布式系统中。

如果你阅读到这感觉还是意犹未尽,下面提供的视频课程和在线实验也许可以帮到你。如下:

  • 视频课程

Apache Flink 入门

实时计算 Flink 版产品入门与实操

实时计算 Flink 实战

  • 云起实验室

基于Hologres+PAI+计算巢,5分钟搭建企业级AI问答知识库

基于Hologres+Flink搭建GitHub实时数据大屏

基于Flink+Tair搭建实时监控大屏

使用Flink实时发现最热Github项目

5分钟上手Flink MySQL连接器

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
2月前
|
数据可视化 数据挖掘 数据处理
实时计算Flink评测
本文介绍了Flink在实时计算领域的应用实践及核心功能评估,涵盖用户行为分析、电商羊毛党识别、实时销售数据分析三大场景,展示了Flink在处理实时数据流时的高效性、准确性和可靠性。同时,文章还深入探讨了Flink的统一数据处理、事件驱动处理、高容错性、高性能低延迟、灵活窗口操作及丰富API等核心功能,并指出了其优势与待改进之处,为用户提供全面的参考。
|
9天前
|
流计算 开发者
【开发者评测】实时计算Flink场景实践和核心功能体验测评获奖名单公布!
【开发者评测】实时计算Flink场景实践和核心功能体验测评获奖名单公布!
|
2月前
|
运维 数据可视化 数据处理
实时计算Flink场景实践和核心功能体验 评测
实时计算Flink场景实践和核心功能体验 评测
74 5
|
2月前
|
数据可视化 大数据 数据处理
评测报告:实时计算Flink版产品体验
实时计算Flink版提供了丰富的文档和产品引导,帮助初学者快速上手。其强大的实时数据处理能力和多数据源支持,满足了大部分业务需求。但在高级功能、性能优化和用户界面方面仍有改进空间。建议增加更多自定义处理函数、数据可视化工具,并优化用户界面,增强社区互动,以提升整体用户体验和竞争力。
44 2
|
2月前
|
运维 大数据 Serverless
实时计算Flink版评测
阿里云实时计算Flink版是一款全托管的Serverless Flink云服务,提供实时数据处理、自动调优、智能诊断等功能,显著提升了数据处理效率和系统稳定性。本文详细评测了其产品特性、部署过程及应用效果,展示了其在电商、金融等领域的广泛应用前景。
106 0
实时计算Flink版评测
|
3月前
|
存储 运维 监控
阿里云实时计算Flink版的评测
阿里云实时计算Flink版的评测
81 15
|
3月前
|
SQL Apache 流计算
实时计算Flink版-评测
实时计算Flink版-评测
|
3月前
|
运维 程序员 Serverless
实时计算Flink版的评测体验
实时计算Flink版的评测体验
70 13
|
3月前
|
机器学习/深度学习 存储 数据可视化
实时计算 Flink 版体验评测
清晰的引导和详尽的文档让初次使用变得简单快捷。该产品具备强大的数据开发工具和多数据源接入能力,并支持实时监控与告警,提升了运维效率。尽管在界面设计、性能优化和安全性方面还有提升空间,其与数据存储、可视化工具及机器学习平台的联动潜力巨大,有望成为更全面的大数据解决方案。
68 12
|
2月前
|
运维 监控 Serverless
阿里云实时计算Flink版评测报告
阿里云实时计算Flink版是一款全托管的Serverless实时流处理服务,基于Apache Flink构建,提供企业级增值功能。本文从稳定性、性能、开发运维、安全性和成本效益等方面全面评测该产品,展示其在实时数据处理中的卓越表现和高投资回报率。

相关产品

  • 实时计算 Flink版