Dataphin实时计算:实时代码模板实现多链路容灾

本文涉及的产品
智能数据建设与治理Dataphin,200数据处理单元
简介: 实时计算场景由于其需要24小时不间断的运行,对于任务的稳定性、时效性要求异常的高。在通常情况下,为了保证结果能够高准确、低延迟地产出,生产环境中需要双链路甚至三链路来实现主备的容灾处理。那么对于相同的一套指标,我们需要维护的代码就会根据链路数量成倍往上翻。特别是在变更的时候,人工操作有可能会带来很多的不一致。考虑到主备任务处理逻辑需要保持强一致性,差异仅仅在于输入流/表以及输出流/表,dataphin针对这种场景设计了专门的处理方案,引入了模版和模版任务的概念,可以高效的解决上述问题。

为了让大家更好的理解Dataphin实时计算的功能,这里向大家介绍一个主备链路相关的Case:

实时计算场景由于其需要24小时不间断的运行,对于任务的稳定性、时效性要求异常的高。在通常情况下,为了保证结果能够高准确、低延迟地产出,生产环境中需要双链路甚至三链路来实现主备的容灾处理。那么对于相同的一套指标,我们需要维护的代码就会根据链路数量成倍往上翻。特别是在变更的时候,人工操作有可能会带来很多的不一致。

考虑到主备任务处理逻辑需要保持强一致性,差异仅仅在于输入流/表以及输出流/表,dataphin针对这种场景设计了专门的处理方案,引入了模版和模版任务的概念,其与具体的SQL任务关系如下:
image.png
TIPS:(概念简介)

实时SQL为具体执行SQL代码,该代码由模版任务+模版参数信息+任务参数信息+任务配置信息一起实例化得到,其中任务配置信息为任务的资源配置、队列信息、版本信息等,任务参数信息为Flink的任务粒度配置参数,而模版参数信息则是自动提取的模版任务中的参数信息,该参数会替换模版任务中的各项待替换项。
模版为代码的高级抽象,在dataphin中视为了一类资源,可以由模版任务引用。
模版任务为一种任务类型,该类型任务必须依赖于某一个模版,并且在预编译阶段进行实例化,生成最终可执行sql。
废话不多说,直接上干货。

1) 针对一个处理逻辑,需要同时部署主备两链路,两者具体逻辑一致,差异点在于数据来源的TT topic以及数据存储的alihbase集群以及tableName(其中alihabse集群信息已经通过实时元表实现了对用户透明),那么我们就可以抽象一个nanhua_test的模版,其中设置两类参数output_table和input_table。
image.png
2)新建模版任务nanhua_test_template_sql,引用nanhua_test版本为1的模版
image.png
3)自定义模版参数、任务参数、任务配置信息,输入各自链路对应的参数值,比如图中的源表名和目标表名,即可生成对应链路的实时任务。
image.png
4)当需要对模版的执行逻辑进行变更时,可以在模版中进行修改,直接应用到选定的引用的模版任务中。这样,对于多个主备任务,我们只需要维护一个模版就可以了,大大节省了开发成本和维护成本,再也不用担心主备任务的口径不一致了。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
7月前
|
Java 开发工具 流计算
flink最新master代码编译出现Java Runtime Environment 问题
在尝试编译Flink源码时遇到Java运行时环境致命错误:EXCEPTION_ACCESS_VIOLATION。问题出现在JVM.dll+0x88212。使用的是Java 11.0.28和Java HotSpot(TM) 64-Bit Server VM。系统为Windows客户端,没有生成核心dump文件。错误日志保存在hs_err_pid39364.log和replay_pid39364.log。要解决这个问题,建议检查JDK版本兼容性,更新JDK或参照错误报告文件提交Bug至http://bugreport.java.com/bugreport/crash.jsp。
|
7月前
|
SQL Java 流计算
Flink CDC在代码里面集成cdc的时候,是不是也要用上面这个胖包flink-sql-connector-mysql-cdc,不要去用瘦包flink-connector-mysql-cdc? com.ververica flink-sql-connector-mysql-cdc 2.4.0
Flink CDC在代码里面集成cdc的时候,是不是也要用上面这个胖包flink-sql-connector-mysql-cdc,不要去用瘦包flink-connector-mysql-cdc? com.ververica flink-sql-connector-mysql-cdc 2.4.0
107 1
|
7月前
|
存储 数据采集 安全
瓴羊Dataphin数据安全能力再升级,内置分类分级模板、上线隐私计算模块
瓴羊Dataphin数据安全能力再升级,内置分类分级模板、上线隐私计算模块
211 0
|
7月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之idea本地测试代码,要增大 Flink CDC 在本地 IDEA 测试环境中的内存大小如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
109 1
|
5月前
|
SQL Java 数据处理
实时计算 Flink版产品使用问题之使用MavenShadePlugin进行relocation并遇到只包含了Java代码而未包含Scala代码,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
运维 关系型数据库 流计算
实时计算 Flink版产品使用问题之作业运维界面无状态启动并指定时间和代码里指'scan.startup.mode'='latest-offset',哪个优先级更高
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
消息中间件 资源调度 Java
实时计算 Flink版产品使用问题之拉取代码没有这个类,但是在下载的jar包中有这个类,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
资源调度 Java Apache
实时计算 Flink版操作报错合集之错误代码是130如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
92 3
|
7月前
|
SQL 资源调度 监控
实时计算 Flink版产品使用合集之Flink on YARN 下,任务代码中通过 JobListener 监听任务状态,onJobSubmitted 和 onJobExecuted 同时触发如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
134 3
|
6月前
|
SQL 关系型数据库 数据库
实时计算 Flink版操作报错合集之在本地执行代码没有问题,但是在线执行sql命令就会报错,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
147 0