CN114692585A - 表服务处理方法及系统 - Google Patents
表服务处理方法及系统 Download PDFInfo
- Publication number
- CN114692585A CN114692585A CN202210333994.3A CN202210333994A CN114692585A CN 114692585 A CN114692585 A CN 114692585A CN 202210333994 A CN202210333994 A CN 202210333994A CN 114692585 A CN114692585 A CN 114692585A
- Authority
- CN
- China
- Prior art keywords
- table service
- data
- scheduling
- service
- execution plan
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种表服务处理方法,该方法包括:在每个Flink检查点周期内,从源端接入数据并进行预处理,由流式写入算子逐批写入文件系统;当所述表服务为单独外挂模式时,在每次所述周期结束后,通过流式写入协调器提交所写入的即时数据,并根据表服务调度策略进行表服务调度,生成相应的执行计划;根据预设执行策略和所述执行计划,单独执行所述表服务。本申请还公开了一种表服务处理系统、电子装置和计算机可读存储介质。由此,针对Hudi专门构建了一种表服务单独外挂运行模式,不影响数据写入作业和最终数据的准确性,提升了表服务外挂作业的可用性,达成对高SLA作业的保障。
Description
技术领域
本申请涉及数据湖技术领域,尤其涉及一种表服务处理方法、系统、电子装置及计算机可读存储介质。
背景技术
近几年,随着数据湖的兴起,以Hudi(一种数据湖解决方案,支持记录级别的事务更新/删除等操作)等为代表的技术在蓬勃发展,开始被广泛应用于各公司的大数据平台。在以Hudi为底座进行数据湖搭建时,基于其支持的MoR(Merge on Read,Hudi中MoR模式支持实时数据读取)表及其表服务(Hudi在MoR模式下提供的数据编排服务,例如compact、cluster、clean等),用户可以方便地建立起一套数据治理框架,应用于整个数据生命周期管理。
在Hudi当前提供的表服务方案中,一般是将表服务作业耦合在数据写入作业中进行处理。但是实际上,对表服务作业与数据写入作业而言,二者的功能侧重点各有不同,前者着重于数据批量重组编排,后者注重数据持续摄入,属于两种不同类型的操作。在生产中,由于任务特点不同,表服务作业和数据写入作业的耦合会带来资源利用率低、资源短时冲击大、不利于灵活控制等诸多问题。
发明内容
本申请的主要目的在于提出一种表服务处理方法、系统、电子装置及计算机可读存储介质,旨在解决如何将数据湖中的表服务作业与数据写入作业解耦及资源隔离的问题。
为实现上述目的,本申请实施例提供了一种表服务处理方法,所述方法包括:
在每个Flink检查点周期内,从源端接入数据并进行预处理,由流式写入算子逐批写入文件系统;
当所述表服务为单独外挂模式时,在每次所述周期结束后,通过流式写入协调器提交所写入的即时数据,并根据表服务调度策略进行表服务调度,生成相应的执行计划;
根据预设执行策略和所述执行计划,单独执行所述表服务。
可选地,所述方法在从源端接入数据之前还包括:
提供配置入口,以供选择和切换所述表服务的作业模式,所述作业模式包括内嵌同步、内嵌异步和单独外挂模式。
可选地,所述根据表服务调度策略进行表服务调度,生成相应的执行计划包括:
动态监听外部平台发布的调度策略,根据监听到的最新策略进行所述表服务调度和生成所述执行计划。
可选地,所述根据表服务调度策略进行表服务调度,生成相应的执行计划还包括:
调度数据压缩服务、数据聚簇服务,生成相应的执行计划,保存至所述文件系统中,其中,在所述调度时不接入执行所述数据压缩服务、数据聚簇服务相关的算子。
可选地,所述根据表服务调度策略进行表服务调度,生成相应的执行计划还包括:
调度数据清理服务,生成相应的执行计划,保存至所述文件系统中,其中,在所述调度时接入数据清理服务算子并关闭执行功能。
可选地,所述根据预设执行策略和所述执行计划,单独执行所述表服务包括:
根据所述表服务的优先级和服务器集群资源状态,配置所述表服务的所述执行策略。
可选地,所述执行策略包括在任意预定时刻,以任意单次、单批或流模式执行所述表服务。
此外,为实现上述目的,本申请实施例还提供一种表服务处理系统,所述系统包括:
写入模块,用于在每个Flink检查点周期内,从源端接入数据并进行预处理,由流式写入算子逐批写入文件系统;
调度模块,用于当所述表服务为单独外挂模式时,在每次所述周期结束后,通过流式写入协调器提交所写入的即时数据,并根据表服务策略进行表服务调度,生成相应的执行计划;
执行模块,用于根据预设执行策略和所述执行计划,单独执行所述表服务。
为实现上述目的,本申请实施例还提供一种电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的表服务处理程序,所述表服务处理程序被所述处理器执行时实现如上述的表服务处理方法。
为实现上述目的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有表服务处理程序,所述表服务处理程序被处理器执行时实现如上述的表服务处理方法。
本申请实施例提出的表服务处理方法、系统、电子装置及计算机可读存储介质,针对Hudi专门构建了一种表服务单独外挂运行模式,支持单独的外挂Flink作业进行表服务处理,不影响写入作业和最终数据的准确性。优化Hudi底层表服务调度机制,提升了表服务外挂作业的可用性,达成对高SLA作业(例如数据写入作业)的保障。
附图说明
图1为实现本申请各个实施例的一种应用环境架构图;
图2为为图1中各个装置的具体功能示意图;
图3为本申请第一实施例提出的一种表服务处理方法的流程图;
图4为图3中步骤S202的细化流程示意图;
图5为图3中所述表服务处理方法的另一种形式的流程示意图;
图6为本申请第二实施例提出的一种表服务处理方法的流程图;
图7为本申请第三实施例提出的一种电子装置的硬件架构示意图;
图8为本申请第四实施例提出的一种表服务处理系统的模块示意图;
图9为本申请第五实施例提出的一种表服务处理系统的模块示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
请参阅图1,图1为实现本申请各个实施例的一种应用环境架构图。本申请可应用于包括,但不仅限于数据湖(Hudi)管理平台2、资源调度系统(YARN)4、文件系统(HDFS)6的应用环境中。
其中,所述数据湖管理平台2用于进行作业配置、表服务调度策略配置、任务调度服务等。
所述资源调度系统4用于调度服务器资源进行基于Flink(一种流式计算引擎,支持有状态计算)和Hudi的数据写入作业、表服务作业等。所述服务器可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,一般情况下,所述服务器资源是多个服务器所组成的服务器集群。
所述文件系统6主要用于保存数据(包括流式写入的数据和表服务执行后的数据等)、执行计划等。
参阅图2所示,为图1中各个装置的具体功能示意图。值得注意的是,图2所示为所述表服务作业为单独挂模式时的示意图。由于图2中各个部分的具体功能将在下面的实施例中进行详细说明,在此不再赘述。
现有Hudi技术一般是将所述数据写入作业和所述表服务作业耦合在一起,采用内嵌同步或内嵌异步模式来实现表服务方案。其中,内嵌异步模式通过专门的Flink算子,异步化地处理表服务对应的操作,做到将数据写入作业和表服务作业进行一定程度的隔离。但是,在生产中,由于任务特点不同,会存在以下问题:
(1)表服务作业的SLA(Service Level Agreement,服务等级协议)相对要求更低,若与数据写入耦合在一个作业中,使得作业配置时不得不预留足够多的资源,会占用过多在线高优先级资源,资源利用率较低,无法通过资源调度或专有队列来优化。
(2)表服务一般是间歇性批处理,对资源消耗曲线新增造成很多冲激毛刺,会造成资源短时冲击,使用曲线不够平滑,甚至是很多作业内存溢出的元凶,不利于上层资源协调和专家系统的扩缩容诊断。
(3)表服务的相关操作生成与运行涉及的策略较为灵活,若与持续的数据写入任务耦合过多,不利于灵活控制。
针对以上问题,Hudi提供了专门的Flink作业,通过调度系统调度表服务作业,自行调度生成表服务计划,然后执行相应的操作,以达到与数据写入作业解耦和资源隔离的目标。但是该方案也存在以下缺陷:
(1)表服务作业的编排调度不具备接收外部策略的能力,不易于集成公司的智能调度、专家诊断等系统。
(2)在Flink on Hudi对并发支持尚不完善背景下,直接使用该方案对表服务调度并执行,会引发时间轴(Timeline)一致性问题,从而导致数据丢失。
(3)表服务作业依旧依赖Hudi表相关的细粒度配置,不符合托管任务的要求。
(4)功能性不足,导致额外的运维成本,具体包括:
该方案与内嵌运行方式相比,使用了不同算子,导致作业DAG(算子抽象成的有向无环图)有区别,在其他方案作为备份的模式切换过程中,极易产生运行偏差;目前只支持单次处理单个执行计划;缺乏通用配置入口。
(5)虽然Hudi内核已有健全的Clean(数据清理)操作能力,但目前表服务层面仅暴露出内联调度-立刻执行的方法,导致数据写入和表服务作业都会包含Clean操作,在并行时都将调用执行,不仅架构混乱,更可能引发不可控的结果。
总体来说,上述Hudi技术提供原始方案当前更适合作为一种工具补充使用,由于表服务作业欠缺与数据写入作业的协同能力,无法以一种运行模式应用于生产。
而针对以上各种问题,本申请提出了一种新的表服务处理方法,可以采用单独外挂模式(standalone)运行表服务作业,更好地将表服务作业与数据写入作业解耦。
实施例一
如图3所示,为本申请第一实施例提出的一种表服务处理方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。下面以所述资源调度系统4作为执行主体为例对该方法进行说明。
该方法包括以下步骤:
S200,在每个Flink检查点周期内,从源端接入数据并进行预处理,由流式写入算子逐批写入文件系统。
在本实施例中,主要基于Flink引擎部署数据写入作业,写入作业会流式地将数据摄入Hudi。所述数据写入作业的过程与现有Hudi技术常用的方案基本一致。在每个Flink检查点周期内,数据从源端流入,经过格式转换、索引和文件桶ID分配等预处理环节(如图2所示)后分批积攒,由流式写入算子逐批写入底层文件系统。
S202,当所述表服务为单独外挂模式时,在每次所述周期结束后,通过流式写入协调器提交所写入的即时数据,并根据表服务调度策略进行表服务调度,生成相应的执行计划。
如果所述表服务作业开启单独外挂运行模式,则构造作业DAG时,不再接入Compact(数据压缩服务,将基础文件和增量日志文件进行合并,生成新版本列存文件,提升查询性能)/Cluster(数据聚簇服务,将文件按照某些列进行聚簇,以重新布局,达到优化查询性能的效果)相关算子。另外虽然接入Clean(数据清理服务,用来清理过期版本的文件)算子,但关闭其内联调度模式,只开启异步调度,关闭执行功能。
具体而言,进一步参阅图4,为上述步骤S202的细化流程示意图。可以理解,该流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。在本实施例中,所述步骤S202具体包括:
S2020,在每次Flink检查点的所述周期结束后,流式写入协调器提交流式写入算子所写入的即时数据。
具体地,在每次Flink检查点的所述周期结束后,流式写入协调器(参见图2中的Stream Write Coordinator)提交步骤S200中所写入的即时数据(通过提交instant来提交所述即时数据)。其中,instant为对表执行操作的时间抽象。Hudi维护了一条包含在不同的即时时间(instant time)对数据集做的所有instant操作的时间轴(timeline),从而提供表的即时视图,同时还有效支持按到达顺序进行数据检索。
S2022,流式写入协调器调度数据压缩服务、数据聚簇服务,生成相应的执行计划,保存至所述文件系统中。
在提交所述即时数据后,流式写入协调器依据表服务调度策略,调度Compact/Cluster表服务,生成相应执行计划,以表服务instant的形式,保存至底层文件系统中。其中,在所述调度时不接入执行Compact/Cluster表服务相关的算子,也就是不实际执行Compact/Cluster表服务,仅仅只是调度之后生成执行计划。
S2024,流式写入协调器初始化分配新的写入instant。
为开始新一次的数据写入流程,流式写入协调器还需要初始化分配新的写入instant,以供流式写入算子将下一批预处理后的数据进行写入。
S2026,调度数据清理服务,生成相应的执行计划,保存至所述文件系统中。
在每次Flink检查点的所述周期结束后,Clean算子也同时会被触发,按配置的调度策略调度clean表服务,生成相应执行计划instant,保存至底层文件系统。值得注意的是,此时虽然接入Clean算子,但关闭其内联调度模式,只开启异步调度,关闭执行功能。也就是说,同样不实际执行Clean表服务,仅仅只是调度之后生成执行计划。
当开始新的检查点周期后,会继续返回执行上述步骤S200,直至所有数据都处理(写入)完毕。
另外,值得注意的是,上述步骤S2022和S2026涉及图2中的表服务调度器(TableServiceScheduler),该模块内嵌在数据写入作业中,其包含有插件式的动态配置模块,可以实时监听外部平台发布的调度策略。也就是说,上述步骤S202还包括以下步骤:
动态监听外部平台发布的调度策略,根据监听到的最新策略进行所述表服务调度和生成所述执行计划。
具体地,该步骤包括:
(1)在进行所述调度之前,动态配置模块按加载的插件,开启远程监听最新配置。
(2)如果拉取最新配置失败,根据容错机制获取备份策略。
(3)根据当前调度表服务类型,定向更新所述表服务的调度策略,刷入所述表服务调度器中。
(4)所述表服务调度器根据所述最新策略干预所述表服务调度和生成所述执行计划。
S204,根据预设执行策略和所述执行计划,单独执行所述表服务。
在本实施例中,可按需在任意预定时刻,以任意单次(单instant)、单批或流模式调度,执行所述表服务,仅需传入Hudi表的路径即可。也就是说,本实施例针对表服务的单独外挂模式,在单独执行所述表服务时还支持多种执行策略,例如预定某一时刻单次执行最新的instant,或者预定某一时刻单次执行所有instant,又或者与所述数据写入作业并行执行均可实现。
其中,所述执行策略可以根据表服务提交时配置的优先级高低,以及可以用来运行所述数据写入服务和表服务的服务器集群资源状态进行闲时调起,该过程对用户无感。
参阅图5所示,为所述表服务处理方法的另一种形式的流程示意图。在图5中示出了本实施例中数据写入服务作业和表服务作业的各个算子结构。本实施例所提出的所述表服务处理方法,可以结合图2-5进行理解。图5中每个算子的具体功能和流程步骤与上述图3-4相关说明类似,在此不再赘述。
由于将表服务的执行过程通过单独外挂模式来实现,针对高SLA的数据写入作业(图5中上半部分)可以采用性能更高的服务集群进行处理(或者通过高优先任务队列优先进行处理),而单独执行的表服务作业(图5中下半部分)可以采用性能更低的服务集群进行处理(或者在负载较低的闲时进行处理),从而优化资源配置,提高资源利用率。
本实施例提出的表服务处理方法,针对Hudi专门构建了一种表服务单独外挂运行模式,支持单独的外挂Flink作业进行表服务处理。重构表服务作业,使外挂的表服务算子DAG与内嵌模式下的写入作业部分保持线性化,不影响写入作业和最终数据的准确性。优化Hudi底层表服务调度机制,针对Clean操作,对外接口做到调度-执行分离的使用范式,最终使所有表服务操作均支持外挂模式,均支持异步调度。针对表服务调度器,设计插件化的动态配置模块,可实时监听外部配置平台,刷新Hudi表服务调度策略,支持动态修改表服务调度策略,便于与数据湖平台的服务集成。扩展表服务执行时的运行模式,可以实现流跑和单次全批跑模式,以及更通用化的细粒度配置。提升了表服务外挂作业的可用性,达成对高SLA作业(例如数据写入作业)的保障,并可简易地托管给平台。
实施例二
如图6所示,为本申请第二实施例提出的一种表服务处理方法的流程图。在第二实施例中,所述表服务处理方法在上述第一实施例的基础上,还包括步骤S300。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。
该方法包括以下步骤:
S300,提供配置入口,以供选择和切换所述表服务的作业模式。
所述作业模式包括内嵌同步、内嵌异步和单独外挂模式。在本实施例中,重构了Hudi数据写入作业生成流程及其算子,以支持内嵌同步、内嵌异步以及新增的单独外挂三种模式,以及各种模式间平滑切换。通过所提供的配置入口(配置运行模式开关),用户可以进行属性配置,根据实际需求选择所述表服务作业对应的作业模式,以更好地适应生产要求。
并且,上述三种模式之间还可以互相备份、互相切换。
S302,在每个Flink检查点周期内,从源端接入数据并进行预处理,由流式写入算子逐批写入文件系统。
在本实施例中,主要基于Flink引擎部署数据写入作业,写入作业会流式地将数据摄入Hudi。所述数据写入作业的过程与现有Hudi技术常用的方案基本一致。在每个Flink检查点周期内,数据从源端流入,经过格式转换、索引和文件桶ID分配等预处理环节后分批积攒,由流式写入算子逐批写入底层文件系统。
S304,当所述表服务为单独外挂模式时,在每次所述周期结束后,通过流式写入协调器提交所写入的即时数据,并根据表服务调度策略进行表服务调度,生成相应的执行计划。
如果所述表服务作业开启单独外挂运行模式,则构造作业DAG时,不再接入Compact/Cluster相关算子。另外虽然接入Clean算子,但关闭其内联调度模式,只开启异步调度,关闭执行功能。
具体而言,该步骤包括:
(1)在每次Flink检查点的所述周期结束后,流式写入协调器提交流式写入算子所写入的即时数据。
具体地,在每次Flink检查点的所述周期结束后,流式写入协调器提交上一步骤中所写入的即时数据(通过提交instant来提交所述即时数据)。
(2)流式写入协调器调度数据压缩服务、数据聚簇服务,生成相应的执行计划,保存至所述文件系统中。
在提交所述即时数据后,流式写入协调器依据表服务调度策略,调度Compact/Cluster表服务,生成相应执行计划,以表服务instant的形式,保存至底层文件系统中。其中,在所述调度时不接入执行Compact/Cluster表服务相关的算子,也就是不实际执行Compact/Cluster表服务,仅仅只是调度之后生成执行计划。
(3)流式写入协调器初始化分配新的写入instant。
为开始新一次的数据写入流程,流式写入协调器还需要初始化分配新的写入instant,以供流式写入算子将下一批预处理后的数据进行写入。
(4)调度数据清理服务,生成相应的执行计划,保存至所述文件系统中。
在每次Flink检查点的所述周期结束后,Clean算子也同时会被触发,按配置的调度策略调度clean表服务,生成相应执行计划instant,保存至底层文件系统。值得注意的是,此时虽然接入Clean算子,但关闭其内联调度模式,只开启异步调度,关闭执行功能。也就是说,同样不实际执行Clean表服务,仅仅只是调度之后生成执行计划。
当开始新的检查点周期后,会继续返回执行上述步骤S302,直至所有数据都处理(写入)完毕。
另外,上述步骤S304还包括:动态监听外部平台发布的调度策略,根据监听到的最新策略进行所述表服务调度和生成所述执行计划。
(1)在进行所述调度之前,动态配置模块按加载的插件,开启远程监听最新配置。
(2)如果拉取最新配置失败,根据容错机制获取备份策略。
(3)根据当前调度表服务类型,定向更新所述表服务的调度策略,刷入所述表服务调度器中。
(4)所述表服务调度器根据所述最新策略干预所述表服务调度和生成所述执行计划。
S306,根据预设执行策略和所述执行计划,单独执行所述表服务。
在本实施例中,可按需在任意预定时刻,以任意单次(单instant)、单批或流模式调度,执行所述表服务,仅需传入Hudi表的路径即可。也就是说,本实施例针对表服务的单独外挂模式,在单独执行所述表服务时还支持多种执行策略,例如预定某一时刻单次执行最新的instant,或者预定某一时刻单次执行所有instant,又或者与所述数据写入作业并行执行均可实现。
其中,所述执行策略可以根据表服务提交时配置的优先级高低,以及可以用来运行所述数据写入服务和表服务的服务器集群资源状态进行闲时调起,该过程对用户无感。
本实施例提出的表服务处理方法,可以重构Hudi数据写入作业生成流程及其算子,以支持内嵌同步、内嵌异步以及新增的单独外挂三种模式,以及支持包括单独模式在内的多种表服务模式之间的平滑切换,算子结构保持一致性。
实施例三
如图7所示,为本申请第三实施例提出一种电子装置20的硬件架构示意图。本实施例中,所述电子装置20可包括,但不仅限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23。需要指出的是,图7仅示出了具有组件21-23的电子装置20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置20的内部存储单元,例如该电子装置20的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置20的外部存储设备,例如该电子装置20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置20的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置20的操作系统和各类应用软件,例如表服务处理系统60的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置20的总体操作。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述表服务处理系统60等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置20与其他电子设备之间建立通信连接。
实施例四
如图8所示,为本申请第四实施例提出一种表服务处理系统60的模块示意图。所述表服务处理系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
在本实施例中,所述表服务处理系统60包括:
写入模块600,用于在每个Flink检查点周期内,从源端接入数据并进行预处理,由流式写入算子逐批写入文件系统。
在本实施例中,主要基于Flink引擎部署数据写入作业,写入作业会流式地将数据摄入Hudi。所述数据写入作业的过程与现有Hudi技术常用的方案基本一致。在每个Flink检查点周期内,数据从源端流入,经过格式转换、索引和文件桶ID分配等预处理环节后分批积攒,由流式写入算子逐批写入底层文件系统。
调度模块602,用于当所述表服务为单独外挂模式时,在每次所述周期结束后,通过流式写入协调器提交所写入的即时数据,并根据表服务策略进行表服务调度,生成相应的执行计划。
如果所述表服务作业开启单独外挂运行模式,则构造作业DAG时,不再接入Compact/Cluster相关算子。另外虽然接入Clean算子,但关闭其内联调度模式,只开启异步调度,关闭执行功能。
另外,还可以动态监听外部平台发布的调度策略,根据监听到的最新策略进行所述表服务调度和生成所述执行计划。
执行模块604,用于根据预设执行策略和所述执行计划,单独执行所述表服务。
在本实施例中,可按需在任意预定时刻,以任意单次(单instant)、单批或流模式调度,执行所述表服务,仅需传入Hudi表的路径即可。也就是说,本实施例针对表服务的单独外挂模式,在单独执行所述表服务时还支持多种执行策略,例如预定某一时刻单次执行最新的instant,或者预定某一时刻单次执行所有instant,又或者与所述数据写入作业并行执行均可实现。
其中,所述执行策略可以根据表服务提交时配置的优先级高低,以及可以用来运行所述数据写入服务和表服务的服务器集群资源状态进行闲时调起,该过程对用户无感。
实施例五
如图9所示,为本申请第五实施例提出一种表服务处理系统60的模块示意图。在本实施例中,所述表服务处理系统60除了包括第四实施例中的所述写入模块600、调度模块602、执行模块604之外,还包括选择模块606。
所述选择模块606,用于提供配置入口,以供选择和切换所述表服务的作业模式。
所述作业模式包括内嵌同步、内嵌异步和单独外挂模式。在本实施例中,重构了Hudi数据写入作业生成流程及其算子,以支持内嵌同步、内嵌异步以及新增的单独外挂三种模式,以及各种模式间平滑切换。通过所提供的配置入口(配置运行模式开关),用户可以进行属性配置,根据实际需求选择所述表服务作业对应的作业模式,以更好地适应生产要求。
并且,上述三种模式之间还可以互相备份、互相切换。
实施例六
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有表服务处理程序,所述表服务处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的表服务处理方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请实施例的优选实施例,并非因此限制本申请实施例的专利范围,凡是利用本申请实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请实施例的专利保护范围内。
Claims (10)
1.一种表服务处理方法,其特征在于,所述方法包括:
在每个Flink检查点周期内,从源端接入数据并进行预处理,由流式写入算子逐批写入文件系统;
当所述表服务为单独外挂模式时,在每次所述周期结束后,通过流式写入协调器提交所写入的即时数据,并根据表服务调度策略进行表服务调度,生成相应的执行计划;
根据预设执行策略和所述执行计划,单独执行所述表服务。
2.根据权利要求1所述的表服务处理方法,其特征在于,所述方法在从源端接入数据之前还包括:
提供配置入口,以供选择和切换所述表服务的作业模式,所述作业模式包括内嵌同步、内嵌异步和单独外挂模式。
3.根据权利要求1或2所述的表服务处理方法,其特征在于,所述根据表服务调度策略进行表服务调度,生成相应的执行计划包括:
动态监听外部平台发布的调度策略,根据监听到的最新策略进行所述表服务调度和生成所述执行计划。
4.根据权利要求1至3任一项所述的表服务处理方法,其特征在于,所述根据表服务调度策略进行表服务调度,生成相应的执行计划还包括:
调度数据压缩服务、数据聚簇服务,生成相应的执行计划,保存至所述文件系统中,其中,在所述调度时不接入执行所述数据压缩服务、数据聚簇服务相关的算子。
5.根据权利要求4所述的表服务处理方法,其特征在于,所述根据表服务调度策略进行表服务调度,生成相应的执行计划还包括:
调度数据清理服务,生成相应的执行计划,保存至所述文件系统中,其中,在所述调度时接入数据清理服务算子并关闭执行功能。
6.根据权利要求1至5任一项所述的表服务处理方法,其特征在于,所述根据预设执行策略和所述执行计划,单独执行所述表服务包括:
根据所述表服务的优先级和服务器集群资源状态,配置所述表服务的所述执行策略。
7.根据权利要求6所述的表服务处理方法,其特征在于,所述执行策略包括在任意预定时刻,以任意单次、单批或流模式执行所述表服务。
8.一种表服务处理系统,其特征在于,所述系统包括:
写入模块,用于在每个Flink检查点周期内,从源端接入数据并进行预处理,由流式写入算子逐批写入文件系统;
调度模块,用于当所述表服务为单独外挂模式时,在每次所述周期结束后,通过流式写入协调器提交所写入的即时数据,并根据表服务策略进行表服务调度,生成相应的执行计划;
执行模块,用于根据预设执行策略和所述执行计划,单独执行所述表服务。
9.一种电子装置,其特征在于,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的表服务处理程序,所述表服务处理程序被所述处理器执行时实现如权利要求1至7中任一项所述的表服务处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有表服务处理程序,所述表服务处理程序被处理器执行时实现如权利要求1至7中任一项所述的表服务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210333994.3A CN114692585A (zh) | 2022-03-30 | 2022-03-30 | 表服务处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210333994.3A CN114692585A (zh) | 2022-03-30 | 2022-03-30 | 表服务处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114692585A true CN114692585A (zh) | 2022-07-01 |
Family
ID=82140226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210333994.3A Pending CN114692585A (zh) | 2022-03-30 | 2022-03-30 | 表服务处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114692585A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662325A (zh) * | 2023-07-24 | 2023-08-29 | 宁波森浦信息技术有限公司 | 一种数据处理方法及系统 |
-
2022
- 2022-03-30 CN CN202210333994.3A patent/CN114692585A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662325A (zh) * | 2023-07-24 | 2023-08-29 | 宁波森浦信息技术有限公司 | 一种数据处理方法及系统 |
CN116662325B (zh) * | 2023-07-24 | 2023-11-10 | 宁波森浦信息技术有限公司 | 一种数据处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2429529C2 (ru) | Динамическое конфигурирование, выделение и развертывание вычислительных систем | |
US9276959B2 (en) | Client-configurable security options for data streams | |
Cho et al. | Natjam: Design and evaluation of eviction policies for supporting priorities and deadlines in mapreduce clusters | |
KR101721466B1 (ko) | 결함 내성 배치 처리 | |
CN109558234A (zh) | 一种定时任务调度方法和装置 | |
CN102246152A (zh) | 保存程序执行状态 | |
CN110427258B (zh) | 基于云平台的资源调度控制方法及装置 | |
WO2019109854A1 (zh) | 分布式数据库数据处理方法、装置、存储介质及电子装置 | |
US20090007132A1 (en) | Managing processing resources in a distributed computing environment | |
CN100524212C (zh) | 批处理方法和系统 | |
JPH06222999A (ja) | スワップ・ブロック組立方法及びメモリ管理機構 | |
CN113760513A (zh) | 一种分布式任务调度方法、装置、设备和介质 | |
CN109885642B (zh) | 面向全文检索的分级存储方法及装置 | |
CN114692585A (zh) | 表服务处理方法及系统 | |
CN106874343B (zh) | 一种时序数据库的数据删除方法及系统 | |
US20130212584A1 (en) | Method for distributed caching and scheduling for shared nothing computer frameworks | |
CN115878121A (zh) | 终端代码增量编译方法、系统、装置、服务器和存储介质 | |
CN114860400A (zh) | 区块链任务的链下处理方法及装置 | |
Babu et al. | Dynamic colocation algorithm for Hadoop | |
JP2007265043A (ja) | スケジューラプログラム、サーバシステム、スケジューラ装置 | |
US20110023018A1 (en) | Software platform and method of managing application individuals in the software platform | |
Phan | Energy-efficient straggler mitigation for big data applications on the clouds | |
CN116501474B (zh) | 一种批量同质任务的处理系统、方法以及装置 | |
CN113886040A (zh) | 一种任务调度方法及装置 | |
CN114880093A (zh) | 区块链任务的链下处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |