用实时计算释放当下企业大数据潜能

news2024/11/17 0:17:04

本文整理自阿里云高级产品解决方案架构师王启华(敖北)老师在 Flink Forward Asia 2023 中闭门会的分享。内容分为以下五个部分:

1. 实时计算在大数据计算发展中的趋势

2. 实时计算对于企业生产的意义

3. 阿里云飞天大数据产品系统架构

4. 实时计算的三个典型的技术场景

5. 客户案例

Tips:点击「阅读原文」跳转阿里云实时计算 Flink~

01

实时计算在大数据计算发展中的趋势

阿里云计算平台事业部在过去十年中,通过与百余家企业合作,积累了丰富的大数据应用经验。这些企业在使用大数据产品、搭建平台以及更新产品架构的过程中,推动了我们对不同类型企业在数字化转型和数据架构升级方面的理解。然而,近两年来,一个非常明显的趋势是,企业对实时计算的需求量迅猛增长。下面,我将分享几点感受:

4090230b31f1b8e37339ffcf5e98da84.jpeg

(1)大数据的普及与深度应用:大数据技术已经不再是新奇事物,而是深深融入企业的生产流程中。过去,大数据主要用于生成报表和展示数据,而现在,它已经逐步渗透到实时业务的主链路中,如物联网、风控、推荐系统和用户画像等领域。线上业务对大数据的时效性要求越来越高。

(2)硬件发展与产品升级:如今,产品硬件发展迅速,不论是从 CPU 还是内存的角度看,云上产品能力的更新换代让用户觉得,通过产品升级来节省计算时间是非常划算的选择。

(3)市场竞争与高时效性需求:市场竞争的激烈使得许多企业在进行实时决策时需要高时效性的数据。因此,许多客户的业务负责人不再单纯依赖历史数据进行分析和决策,而是需要及时获取实时数据并进行分析,以指导当前的运营活动。

(4)AI分析的应用:通过利用历史数据和当前的数据进行AI分析,包括推理和预测等,企业能够更好地指导未来的决策和运营。

伴随着大数据技术的演进,从离线计算到准实时计算,再到实时计算和AI计算,整个技术体系的发展促进和推动这一趋势的演进。根据第三方机构的调查,2023 年 Gartner 和 IDC 的大数据市场的发展趋势报告中,实时计算在整体大数据的占比越来越高,其增量和速度远超平均水平。因此,无论是从企业角度、客户角度还是技术角度,实时计算都已经成为当前发展的明确需求和显著趋势。

02

实时计算对于企业生产的意义

cf391e61964731a383e38fc66e6ce39f.jpeg

在探讨实时计算对企业生产的意义之前,我们可以先举一个例子:在传统制造企业的生产模式中,从作坊式生产转变为引入先进的流水线生产,这对企业来说是一个显著的跨越式升级。从企业管理的角度来看,无论是生产效率、生产质量,还是企业形象,都有明显的提升。而且这种转变也带来了人力成本的下降和员工技能的提升。通过这条流水线,再加上其他批量生产的元器件,就可以构建整个企业的全链路生产视图。

目前,许多技术型互联网公司已经成功地将实时计算链路引入到他们的业务流程中,这类似于传统制造企业引入了流水线。它改变了原本通过数据仓库、数据库等组件构成的传统数据生产链路。这样的技术架构升级,不仅提升了企业的生产效率和管理能力,还使企业能够在有限的时间内挖掘出更多的数据价值,从而支持业务提效和创新。

bbc8dc578f7cf71db645b4a9e07b6ecd.jpeg

上图展示了一张实时计算及周边大数据核心组件的通用架构图。从左到右,分别是数据集成、数据处理和数据应用。在很多企业中,日志类数据和业务类数据通过集成工具导入到实时流水线或不同的数据仓库中进行计算和加工。生成的数据再应用于线上业务或算法库。中间过程涉及开发、优化、监控、治理、运维和管理等环节。因此,在这样的技术架构下,企业在进行升级时会产生许多需求。下面我将介绍阿里云提供的大数据产品和产品组合是如何支撑这些需求的。

03

阿里云飞天大数据产品系统架构

8e1e89e1c20b5dbe1ae1a06eb260b785.jpeg

上图展示了阿里云飞天大数据体系的产品大图。我们从下往上看,不同业务的公司有不同类型的数据源,比如业务日志数据、数据库数据及 binlog 数据、开源大数据存储的数据、IoT 设备等各种类型的业务数据库。这些数据通过集成工具接入到数据计算和分析层。计算和分析层的实时计算流水线会加速企业的数据处理。

阿里云实时计算引擎 Flink 已经成为业界实时流式计算的标准。它在产品能力和发展速度上都处于领先地位,特别是在阿里巴巴收购了 Flink 的母公司 Ververica 之后,Flink 在国内的技术影响力达到了前所未有的高度。目前,阿里云 Flink 主推 Serverless 模式,不仅提升了用户的易用性和便捷性,还在稳定性和弹性方面提供了更强的支持。

此外,与实时计算组件配合的还有三个部分,分别是离线数仓、实时数仓和数据开发治理平台。下面分别简要介绍一下各个部分:

1. 与实时计算配合的第一部分是离线数仓/湖仓部分。阿里云在这方面提供了两类产品:

(1)全托管产品:以 MaxCompute 为代表。MaxCompute 已有十几年的历史,为几千家客户提供离线计算服务,其稳定性和整体能力已获得良好口碑。MaxCompute 能够高效处理大规模数据,为企业提供可靠的离线计算解决方案。

(2)半托管产品:以 EMR(Elastic MapReduce)为代表。EMR 本质上是一套开源产品体系的组合,它不仅包括常用的 HDFS 存储和 YARN 调度,还提供了诸如 Hive、Spark等计算引擎。此外,EMR 还支持当前流行的一些数据湖格式,如 Paimon、Iceberg、Hudi 和 Delta Lake 等,提供灵活的数据存储和处理能力。

2. 图右侧的实时数仓部分有两款产品:

(1)Hologres:Hologres 是一款 HSAP(Hybrid Serving and Analytical Processing)产品,与 Flink 一起经历了多年的阿里双十一大促考验。它不仅可以进行 OLAP(在线分析处理),还支持 Serving 功能,即不仅可以做数据分析,还可以提供 KV(键值)数据查询能力。

(2)EMR StarRocks:EMR StarRocks 是一款全托管的实时数仓产品,专为公有云客户提供服务。其快速发展得益于阿里云计算平台研发团队的持续投入以及开源社区的活跃度。

3. 最后介绍的是负责数据开发与治理的平台型产品 Dataworks,负责数据集成、数据开发、任务调度、数据治理、数据血缘、数据服务等工作。它可以跨产品、跨地域、跨平台地将这些计算能力串联在一起,不仅能够完成不同类型的大数据任务的串联和调度,还能够将 AI 任务融入到工作流中,进一步提升数据处理的智能化和自动化水平。

04

实时计算的三个典型的技术场景

下面将围绕实时计算,介绍阿里云提供的这些大数据产品及组合在数据集成、实时数仓和离线数仓三个主要技术场景下,如何提升大数据处理能力,并分析以往架构和现有架构的特点、区别以及优劣势,探讨哪一个更符合未来发展的趋势。

8eaa8be8400d059e46307421abe8a51e.jpeg

1. 技术场景一:Flink实时计算改变传统数据集成的方式

f158f8fbc7f7d738fb2d4f0b4c5ef7f1.jpeg

传统数据集成通常包括从业务数据库到数据仓库的数据迁移过程,主要涉及全量数据同步和增量数据同步两条链路。全量数据同步通常使用工具如 DataX 或 Sqoop,而增量数据同步则通过 Canal 来实现。数据同步完成后,还需要在数据仓库中将存量表和增量表合并,以离线任务的方式生成一个全量表,供下游任务消费和使用。这种传统方法存在以下几个明显的缺点:

(1)链路割裂:需要两条链路,一条是全量同步链路,另一条是增量同步链路。

(2)时效性较差:除了数据导入的时间,还需要在数仓中进行离线调度以完成数据合并,导致端到端的时间较长。

(3)组件繁多:不仅涉及业务库和数仓,还需要使用不同的集成工具,链路中维护的组件非常多,增加了系统的复杂性。

在介绍完传统数据集成之后,我们来看看新一代的一体化数据集成方案。例如,从 MySQL 到 Hive 的整个集成过程,可以实现一键式集成。这相当于使用一个产品来完成以往的离线和实时数据集成,其主要依赖于流批一体化的 Flink CDC 技术。

这种新方案的主要功能是通过一个作业(job)完成全量数据集成,利用多个子任务的并发执行,实现全量数据的快速导入。全量数据导入完成后,系统通过 Hybrid Source 能力自动切换到增量的 Binlog Source,实现无缝对接。在这个过程中,通过无锁一致性快照来确保数据的一致性。

39999e482d316812b44b8bd45710cb17.jpeg

这个方案有以下几个优点:

(1)架构简约:只有一个全托管产品,具备易运维和弹性的能力。对于客户来说,通过云上控制台进行管理,容易简单。

(2)开发简单:只需一条 SQL 语句,就能自动将全量数据转换成增量数据,对数据开发更友好。

(3)运维简便:无论能力如何,只需进行相应的资源和参数配置,配置好前后端数据源,系统就会自动完成任务。

2. 技术场景二:新一代实时数仓 Flink + Hologres

adf67c7b599e06c4aeac485dd92c5fd7.jpeg

传统的实时数仓架构至少包括四个组件:Flink、Kafka/MQ、维度库或字典表的存储、以及应用层(例如提供 OLAP 和 Serving 能力的库)。其工作流程如下:

(1)数据流入:业务日志或数据流入后,先通过 Flink 进入 Kafka,形成源表层。

(2)维度加载:接下来在 DW 层,通过 Flink 任务加载维度库,进行数据的整合和处理。

(3)数据加工聚合:Flink 继续加载 kafka topic 中经过处理的数据,进行加工或者聚合,并将数据存储到应用层。

(4)应用层处理:根据需求,数据可以回归到业务库。如果需要进行交互式分析,数据会被加载到适合 OLAP 的数据库中;如果需要进行点查服务,则会加载到相应的KV存储,比如 HBase 或 Redis 数据库中。

这种架构广泛应用于传统的实时数仓场景中,以满足业务时效性和不同类型的数据服务需求。该方案具有以下三个特点

(1)组件多、架构复杂:如前所述,至少需要四个组件(Flink、Kafka、维度库或字典表存储、应用层数据产品)。如果同时需要 Ad-hoc 或 KV 存储,那么至少需要五个组件,运维难度增加。

(2)中间结果查询难:由于 Kafka 按照时间顺序存储数据,中间结果的查询和调试变得困难。在需要进行调试或数据校对时,往往需要将 Kafka 中的数据拉到 OLAP 库中进一步分析,我们在实际工作中经常遇到这样的情况,即耗时费力,又增加了问题捕捉的难度。

(3)资源使用不灵活:实时数仓的各个阶段和层级有明确的任务划分。在业务低峰期,某一层的资源使用率下降后,想要调整该层资源比较麻烦,需要对应调整业务逻辑,这通常是一个复杂且需要多次验证的工作,因为逻辑的调整容易对数据分析结果产生影响。

这种传统方案虽然能满足业务需求,但在运维效率和资源管理上存在一定的挑战。

针对这三个特点,下面介绍新一代实时数仓产品组合解决方案 Flink+Hologres。为了大家便于理解新架构,先为大家介绍一下 Hologres 这个产品及特点:

b83e715baf7f2d6cf05c8d9d386411b8.jpeg

(1)写入即可见:由于 Hologres 领先的架构设计,它可以做到写入即可见,这一点可以达到 kafka 的实效性,但有别于其他 OLAP 引擎;

(2)Binlog 支持:Hologres 拥有自己的 Binlog,Flink 可以订阅 Binlog 进行下一步的自动加工和分析任务。这一点也是在 OLAP 产品中,区别于其他实时 OLAP 的显著能力。

(2)行存与列存:Hologres 支持行存储和列存储。OLAP 分析通常使用列存储,可以快速进行实时分析;同时,Hologres 也支持行存储和行列共存,行存储主要支持 KV 查询,非常便捷高效。因此,维度库可以直接放在 Hologres 的行存表中,不需要其他存储介质。

(3)高性能实时 Serving 服务:即 Hologres 具有高性能的实时点查能力,基于自身的行存功能,可以进行高 QPS 的 KV 查询能力。

(4)强隔离性:Hologres 可以通过主从实例模式或者 Warehouse 模式实现写入和读取的资源隔离,也可以实现不同业务不同优先级的查询资源隔离,避免相互干扰。这在实时数仓中也非常关键,因为不同层的写入操作可能会导致查询速度变慢。

(5)存算分离:Hologres 具备存算分离的能力,方便运维,能够根据需求灵活扩展或缩减计算资源和存储资源。

介绍完 Hologres 的产品特点之后,我们来看一下新一代实时数仓的方案(如下图)。从左到右看,业务日志进入后通过 Flink 集成到 Hologres中 ,此时除了源表外,还会存在维度表,这些维度表直接加载到 Flink 中。Flink 在此过程中进行数据打宽合并,然后传递到下一层。

在下一层,Flink 任务可以订阅 Hologres 对应表的 Binlog,进行进一步的业务逻辑处理,并将结果存储到 Hologres 的 ADS 层表中。在 ADS 层对外提供服务时,只需要 Hologres 即可,因为它既具备 OLAP 能力,也具备 KV 查询能力,无需其他产品。此外,Hologres 还提供交互式分析能力,如果在数据处理过程中需要对 ODS、DWD、DWS 层的数据进行查验,可以随时通过 SQL 查询对应表中的结构化数据,从而轻松完成中间的调优和调试( Debug )。

0ccc16cdfb4bbc4e0029cc2caf933b48.jpeg

所以总结下来,新一代实时数仓方案的优势如下:

1. 架构简约易运维

(1)少量产品依赖:整个方案主要依赖 Flink 和 Hologres 这两个产品,极大简化了系统架构。

(2)全托管易运维:Flink 和 Hologres 均为全托管服务,易于运维且具有良好的弹性扩展能力。

2. 中间结果方便查询

(1)查询便捷:数仓中间层数据以结构化形式存在 Hologres 中,方便查询。

(2)快速更新修改:除了查询外,还可以快速更新和修改数据,提升数据处理的灵活性。

3. 数据应用层一体化

(1)统一服务能力:Hologres 提供 ADS 层所有的 OLAP 和 serving 能力,减少了面向应用的繁冗组件。

(2)简化数据服务:通过 Hologres 一体化的数据服务,减少了系统复杂性,提升了数据服务的效率。

4. 资源使用灵活

(1)灵活的数据处理:使用Hologres后,不需要固定各层结构,一个临时任务可以直接从 ODS 层抽取数据,迅速形成 ADS 层数据。

(2)快速分析:对于测试、临时任务或新业务尝试,可以快速进行数据分析,只需根据业务需求灵活调整。

(3)按需存储分配:存储可以根据业务评估按需分配,提升资源利用效率。

3. 技术场景三:Flink+Paimon 流式湖仓,让传统离线的数仓进行加速和提效

4f008e121b2363e7f0e00197bf8f5e16.jpeg

在企业中进行实时链路计算时,通常会设置一条链路用于离线数仓。离线计算在这个场景中有两个主要作用

(1)数据校验和更正:离线计算定期处理 Flink 传递过来的数据,用于对数据进行校验和更正。

(2)周期性统计和分析:离线计算根据业务需求,批量处理更长时间周期的统计和分析任务,比如月度、季度和年度的报表。

业务日志和 Binlog 通过 Flink 进行加工后,写入离线存储,随即进入离线数仓的加工流程。这个流程从贴源层(ODS层)到数据仓库明细层(DWD层)再到数据服务层(ADS层),每一层之间通过定时任务进行逐层加工。每一层计算的结果可以通过 Hive、Spark、Trino 等引擎进行查询或更新。

该方案有明显的几个特点

(1)任务时效性差:每一层定时任务的调度都需要一批批计算,ODS 层算完后才可以计算 DWD 层,如果有较多的表和调度任务,根据业务逻辑会产生比较复杂的依赖关系,那么这些调度任务需要估算比较准确的完成时间以及链路关系,才能保证在要求的时间点产出结果。整个过程都是小时级或天级;

(2)技术栈差异大:在实际大数据团队管理时,实时业务和离线业务会被分为两组,实时业务在实时引擎上做,如果做校对或更正还需要离线业务团队做配合,或者掌握一些离线技术栈,对开发同学不是很友好,会花费较大精力做开发运维方面的工作以及两个团队间的协调;

(3)数据更新不便捷:以往 Hive、Spark 等存储方式都是 Insert、Overwrite 覆写方式来完成更新,新数据得到后,与老数据进行变更合并;

(4)离线实时数据对齐难:实时数据按时间流动,很难找到一个时间点与离线数据完全对齐。

针对以上方案的特点,我们一起看一下 Flink+Paimon 流式数仓的方案是否可以解决以往的痛点。为了让大家更好的理解,先简要介绍一下 Paimon。

f43a8bd61f3367783c08bef9ed2265df.jpeg

Paimon 是一种流批一体的湖存储格式,是一个轻量级的产品,可以部署在 OSS 或 HDFS 上。

Paimon 的产品特点:

(1)区别于 Iceberg/Hudi/Delta Lake 这三个更偏向于批处理的湖格式, Paimon 是流处理演变而来的湖格式,与 Flink 是统一的 SQL 和 API,使用统一的 Flink SQL 可以直接处理湖中的数据;

(2)支持 Upsert、Delete ;

(3)可以轻量级构建在 HDFS/OSS 上,对于 Hadoop、EMR 用户更友好,不需要大幅度改变和调整技术架构,只需要在存储上轻量化部署就可以使用该层能力;

(4) Paimon 有 Changelog,Flink 可以订阅 Changelog 的变化,Changelog 的变化可以自动将上游的变化通过 Flink 任务传给下游;

(5)支持预计算,降低存储成本与下游计算压力;

(6)支持 Time Travel,可以在回溯历史版本中找到某一个节点的状态;

(7)支持表结构变更 Schema Evolution。

6b98d13d7bc2259745691dd6e1426597.jpeg

了解了Paimon后,我们再来看 Flink+Paimon 新方案,从左到右,业务日志和 Binlog 通过 Flink 集成后进入 Paimon 中,每一层可以通过订阅 Binlog 进行处理,逐层加工后最后形成 ADS 层,再通过 EMR 开源引擎或阿里云自研的引擎等进行查询和分析。

该方案的优势是:

(1)准实时任务效率提高,除了使用 Flink 能力、有自动 Changelog 能力外,可以通过流式任务将湖的任务串联;Paimon Changelog 与 Flink 的 Checkpoint 相关,Flink 的 Checkpoint 可以根据业务需要来设置间隔,两个 Checkpoint 之间的变化会产生一个 Changelog,会把这次变更传给下游,下游得到变化后进行进一步的处理加工;

(2)数据更新与订正的效率高,Paimon 每层支持更新和订正;

(3)开发模型统一,整体流程使用一套 Flink SQL/Table API 即可完成;

(4)数据合并预处理,Paimon 支持很多预计算操作例如去重、部分更新、预聚合等,减少了 Flink 中复杂的业务逻辑;

(5)第五多引擎接入,生态上支持很多常用的引擎,更开放的生态带来对现有大数据架构改造的成本很低,可以将以往偏离线数据的处理能力以流方式进行整体改造。

05

客户案例

在介绍完产品体系和三个主要技术场景之后,下面介绍两个客户案例。

1. 某游戏实时数仓架构的演进

7e3193edf6f096c996233f96654a35eb.jpeg

该客户是全球 Top 20 的游戏公司,运营很多游戏,每天处理的实时数据达到 pb 级。原有技术架构的痛点是 OLAP 组件很多,每个 OLAP 都有自己的特点,例如 Clickhouse 擅长大宽表、ADB 擅长较小规模数据量分析等,离线数据的查询基于传统的 Impala 方式等。整个架构流程是:数据库及日志数据进入 Kafka,Flink 消费 Kafka 中 topic 数据进行逐层的加工和分析。同时过程中 Flink 还会把数据写入离线链路,离线引擎做数据的校验和备份等。如果过程中出现问题,可以使用 Impala 做离线数据加速查询,用以排查问题和校验分析。实时链路最后将数据写入 Clickhouse 中,而为了保证实时链路的稳定性,离线数据最后加工以及与实时数据的比对采用了另外一个 OLAP 引擎 ADB。

为了解决以往架构的痛点,客户选择了升级新架构的方案:实时链路改造成了 Flink+Hologres 实时数仓模式,并引入了 MaxCompute,借助 Hologres+MaxCompute+dataworks 共享存储的能力,形成了实时离线一体化的能力。

这里先解释一下实时离线一体化,从三个层面来简要说明:第一个层面即数据开发层,通过 Dataworks 统一 IDE 入口,可以完成 Hologres 和 MaxCompute 的任务编写,并可以通过 Dataworks 形成同一个调度工作流,完成离线和实时任务的混合编排;第二个层面即计算层的联邦计算,由于 Hologres 和 MaxCompute 两个引擎的元数据可以打通,用户很容易可以通过内外表的形式来进行联合计算分析;第三个层面即存储层,由于两个引擎都是基于阿里云 Pangu 体系建立,所以 Hologres 可以便捷的为 MaxCompute 中的离线数据做加速,而且两个引擎之间传递数据速度非常快,提升了效率的同时也节省了大量数据集成的资源;

在上面介绍的架构升级方案上,客户将原来的 ADB、Clickhouse、Impala 全部替代,因为 Hologres 强大的计算和存储能力,使得以往的离线数仓分层改变,基本 ADS 层全部存储的 Hologres 中。而且 Hologres 可以做 MaxCompute 的离线加速,这些能力让客户决策可以缩减掉离线数仓中冗余的部分,使得离线部分更精炼和易于管理。

这些先进的理念和架构实现帮助客户在完成架构升级之后,有几个明显的体感:

(1)架构上比较统一,不需要维护多个组件,节省人力的同时,也不需要做很多组件联合扩缩容的规划;

(2)实时链路的可用性更强了,在过程查询和问题发现方面非常便捷,而且在支持创新业务时,也可以在不改变 source 逻辑的情况下,在实时数仓中快速形成临时的实时分析任务,支持临时决策。实时链路中个别场景的性能也有大幅提升,比如CK的Join查询可以提升一个数量级以上;

(3)实时离线一体化的能力,使得整体数据分层和治理更科学,任务编排统一化以及治理能力的提升,都让客户有能力在支持好现在和未来业务的同时,掌握了规划和控制成本的手段;

2. 某出行客户离线数仓架构演进

53f4f4d57499ac2120d64c14d4a182aa.jpeg

该客户是一家国内知名的出行企业,月活跃用户达到千万级别,每日处理的数据量非常庞大,实时计算需求远高于离线计算需求。客户的业务痛点如下:

(1)技术线分离:采用典型的 Lambda 架构,实时和离线计算分离,导致两条线之间存在复杂的业务逻辑交互;

(2)高存储成本:实时和离线各存储一份数据。对于这个客户来说业务行为日志处理很重要,因为实时和准实时的处理都走实时计算的引擎和存储,故导致实时存储的成本占比较大;

(3)流处理中间数据查询困难:实时计算过程中,查询中间数据较为困难。

客户原有架构的实时线采用 Flink + Kafka,定期将数据 Dump 到离线 Hive 中,进行备份和进一步的离线加工分析。在离线链路中还引入了 Presto,用于查询和部分准实时业务,处理完成后供应用使用。

新架构通过 Flink + Paimon 将准实时链路和离线链路融合在一起,形成一套完整的模式。这里的准实时任务要求数据处理时限在分钟级,适用于需要人为判断的任务,例如报表生成或分钟级的应用处理逻辑。而实时任务通常要求秒级或毫秒级的处理时限,数据结果由机器或程序判断,例如风控和实时推荐等业务。

上述技术场景三中,Flink + Paimon 的使用使得可以在数据处理中通过 Flink SQL 进行查询。同时,为了应对大量的离线数据处理需求和临时任务需求,还引入了 StarRocks。StarRocks 可以直接查询 Paimon 表,性能比 Presto/Impala 高出两倍以上。

这个改造之后,对于客户的影响比较明显:第一,纯实时链路的业务复杂度明显降低,实时和离线交互的任务减少 40%+;第二,每年节省出 65% 以上的 Kafka 存储成本,而且准实时的数据不需要存两份,只需要存 HDFS 一份;由于 Kafka 使用价格较高的 SSD 存储介质,成本较高,换成 HDFS 的 HDD 后,每年综合节省近千万成本;

通过围绕实时计算产品 Flink,我们一起探讨和梳理了系统架构和技术场景,并在客户案例中提出了对架构升级的思考。希望这些经验能对您和您所在的企业有所帮助,同时期待 Flink 的新功能和特性能帮助更多企业释放数据业务的潜能。

4646c4cf1beaef5946a8460de1ff2f94.png

活动推荐


阿里云基于 Apache Flink 构建的企业级产品-实时计算 Flink 版现开启活动:

新用户复制下方链接或者扫描二维码即可0元免费试用 Flink + Paimon

了解活动详情:https://free.aliyun.com/?pipCode=sc

b620fd3d33f7474fb18f84146ea04caa.jpeg


▼ 关注「Apache Flink」,获取更多技术干货 ▼

d2ff6aeb2c360cc4ed00773c8fd9268a.png

 94c2aa725218613360bbbe67a6fe258d.gif  点击「阅读原文」跳转阿里云实时计算 Flink

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

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

相关文章

Nginx实验-2

Nginx中的变量 变量可以分为内置变量和自定义变量 内置变量是由nginx模块自带,通过变量可以获取到众多的与客户端访问相关的值 [rootnginx ~]# cd /usr/local/nginx/ [rootnginx nginx]# cd conf.d/ [rootnginx conf.d]# ls status.conf vhost.conf [rootngin…

五种多目标优化算法(NSGA3、MOPSO、MOGWO、NGSA2、SPEA2)性能对比,包含47个多目标测试函数,6种评价指标,MATLAB代码

一、五种多目标算法及六种评价指标简介 多目标灰狼优化算法(MOGWO): MOGWO是由Mirjalili等人在2016年提出的,基于灰狼优化算法(GWO)的多目标版本。它引入了存档机制和改进的头狼选择方式,以处理…

【Python报错已解决】`TypeError: an integer is required (got type bytes)`

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法:2.1 方法一2.2 步骤二 三、其他解决…

39次8.29(了解docker-compose,docker-compose编排容器,配置harbor服务)

1.使用使用docker-compose编排容器 1.YAML ⽂件的格式和语法 1)YAML ⽂件格式 yaml 是⼀种标记语⾔很直观的数据序列化格式,可读性很⾼。 类似于 xml 描述性语⾔,语法⽐xml简单的很多。 yaml 数据结构通过缩进进⾏表示,连续的…

AI绘画与《黑神话:悟空》的碰撞,擦出不一样的火花!

在当今数字时代,利用人工智能技术创造艺术作品已成为一种引人注目的趋势。 特别是在社交媒体平台上,如小红书,通过展示AI绘画作品可以吸引大量关注,增加曝光率,并且为自己带来潜在的商业机会。 如果你是《黑神话&…

sql-labs31-35关通关攻略

第三十一关 一.判断闭合 1“” 二.查询数据库 http://127.0.0.1/Less-31/?id-1%22)%20union%20select%201,2,database()--http://127.0.0.1/Less-31/?id-1%22)%20union%20select%201,2,database()-- 三.查表 http://127.0.0.1/Less-31/?id-1%22)%20union%20select%201,…

java实现ocr功能(Tesseract OCR)

1、pom文件中引入依赖 <dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>4.5.4</version> </dependency> 2、下载语言库文件&#xff08;不要放到resources下&#xff0c;可…

Python TensorFlow 实战指南

引言 TensorFlow 是一个功能强大的开源库&#xff0c;被广泛应用于数值计算和机器学习任务。本指南旨在帮助读者理解如何使用 Python 和 TensorFlow 构建机器学习模型。我们将从基础开始&#xff0c;逐步深入到更复杂的主题。 第一部分&#xff1a;入门 第1章&#xff1a;T…

基于vue框架的仓库物流信息管理系统设计和实现0a6d7(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;供应商,商品分类,商品信息,商品入库,车辆信息,订单出库,订单发货,订单抵达,用户 开题报告内容 基于Vue框架的仓库物流信息管理系统设计和实现 开题报告 一、研究背景与意义 随着全球电子商务的蓬勃发展和物流行业的迅速崛起&#xff…

电子设备网络新航向:SEO携手新媒体,打造强势品牌曝光

电子设备企业怎么有效地进行网络推广&#xff0c;把业务越做越好呢&#xff1f;根据湖南竑图网络13年从事互联网优化经验来看&#xff0c;可以给大家分享几点&#xff0c;希望对各位企业老板和高管有一定作用&#xff01; 一、关键词优化。搜索关键词依旧是传统企业获取精准流量…

Three.js Cesium.js 案例聚集地

对于大多数的开发者来言&#xff0c;看了很多文档可能遇见不到什么有用的&#xff0c;就算有用从文档上看&#xff0c;把代码复制到自己的本地大多数也是不能用的&#xff0c;非常浪费时间和学习成本&#xff0c; 尤其是three.js &#xff0c; cesium.js 这种难度较高&#xff…

kubesphere-devops环境-修改maven源到阿里云

文章目录 前言一、maven配置文件在kubesphere中的位置二、修改configmap&#xff0c;增加阿里源信息总结 前言 使用kubesphere搭建了devops环境&#xff0c;但是在构建maven的时候&#xff0c;发现使用的是官方的镜像&#xff0c;修改为阿里云的mirrors 一、maven配置文件在ku…

用Django框架+爬虫技术实现自动获取可画(Canva)团队会员资格的方法

可画(canva)是一个非常流行的在线平面设计平台,因为它无需专业训练和技能就可以利用其丰富的资源设计出美观、酷炫的作品,这些作品可以是视频、广告、演示文稿、网站页面、社交媒体界面、商业标识等等,因而它受到了极其广泛的设计专业和非专业人群的喜爱。在可画平台上,不…

PHP房产管理多终端系统灵活应对各种管理需求系统小程序源码

房产管理多终端系统&#xff0c;灵活应对万变管理需求&#x1f3e0;&#x1f4bc; &#x1f308; 开篇&#xff1a;房产管理的挑战与机遇 在房产行业日益繁荣的今天&#xff0c;管理需求也变得复杂多样。&#x1f914; 无论是大型房企还是小型中介&#xff0c;都面临着房源信息…

前端Vue使用AES的GCM模式加密

文章目录 前端加密测试Java加解密代码 写了个新的前端项目&#xff0c;公司要求&#xff0c;账号密码这些必须是加密传输的&#xff1b;后端使用了GCM模式加密&#xff0c;前端是复制的一个以前项目的代码&#xff0c;原来是有写加密的&#xff0c;使用的是CryptoJS组件CTR模式…

学生用的蓝牙耳机推荐有哪些?四款TOP榜单高人气机型分享

作为一个蓝牙耳机的重度使用党&#xff0c;耳机已经成为了学生们不可或缺的学习伴侣&#xff0c;声音对于我们学生党来说&#xff0c;选择一款性价比高、舒适度好且续航能力强的蓝牙耳机尤为重要&#xff0c;那么学生用的蓝牙耳机推荐有哪些&#xff1f;今天我就为大家推荐四款…

【机器学习】决策树------迅速了解其基本思想,Sklearn的决策树API及构建决策树的步骤!!!

目录 &#x1f354; 案例剖析 &#x1f354; 通过sklearn实现决策树分类并进一步认识决策树 &#x1f354; 基于规则构建决策树 &#x1f354; 构建决策树的三个步骤 &#x1f354; 小结 学习目标 &#x1f340; 了解决策树算法的基本思想 &#x1f340; 了解Sklearn的决策…

经纬恒润INTEWORK-TPA 新版本正式发布

在汽车电子研发领域&#xff0c;随着产品复杂度日益提升&#xff0c;测试工作的重要性愈发凸显。然而&#xff0c;测试用例撰写的繁琐、测试数据统计的困难以及报告管理的无序&#xff0c;常常让测试工程师们倍感压力。为了解决测试管理的难题&#xff0c;经纬恒润正式推出INTE…

拿到一个新项目,如何开展测试?

很多人拿到一个项目就开始用自己的理解进行测试&#xff0c;这样的话可能会造成因为自己对需求理解的偏差&#xff0c;导致在测试过程中会发现自己理解的需求跟开发实际做出来的功能不一致。其实&#xff0c;拿到一个新项目后&#xff0c;开展测试工作是一个系统而有序的过程。…

Python爬虫(一文通)

Python爬虫&#xff08;基本篇&#xff09; 一&#xff1a;静态页面爬取 Requests库的使用 1&#xff09;基本概念安装基本代码格式 应用领域&#xff1a;适合处理**静态页面数据和简单的 HTTP 请求响应**。 Requests库的讲解 含义&#xff1a;requests 库是 Python 中一个…