CN112416537A - 一种Gaia系统中的统一表达API调用系统及调用方法 - Google Patents
一种Gaia系统中的统一表达API调用系统及调用方法 Download PDFInfo
- Publication number
- CN112416537A CN112416537A CN202011477680.8A CN202011477680A CN112416537A CN 112416537 A CN112416537 A CN 112416537A CN 202011477680 A CN202011477680 A CN 202011477680A CN 112416537 A CN112416537 A CN 112416537A
- Authority
- CN
- China
- Prior art keywords
- data
- data set
- api
- conversion
- window
- 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
- 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/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种Gaia系统中的统一表达API调用系统及调用方法,涉及大数据处理技术领域。该系统及方法首先创建一个管道对象并设置其执行选项作为API的分布式运行环境;管道对象封装整个API的数据处理任务;然后在创建的管道对象中构建API的初始数据集;并对API的数据集进行数据转换,将原数据集通过转换后生成一个新的数据集,而不改变原数据集;最后将数据转换后满足用户需求的数据集输出至指定位置。本发明的调用系统及方法,调用方便,使用简洁,解决了以往分布式系统中对于流计算和批计算相同功能需要使用不同的环境的问题。
Description
技术领域
本发明涉及大数据处理技术领域,尤其涉及一种Gaia系统中的统一表达API调用系统及调用方法。
背景技术
Gaia是一个面向多计算模型混合并存的高时效、可扩展的新一代大数据分析系统。在自适应、可伸缩的大数据存储、批流融合大数据计算、高维大规模机器学习和高时效大数据智能交互向导等大数据分析系统的几个核心层面,解决一系列关键技术问题,构建自主可控的高时效、可伸缩的新一代大数据分析系统,掌握国际领先的大数据分析系统核心技术。
该新型大数据计算系统针对批流混合任务具有全周期多尺度优化和统一计算引擎。现有大数据计算系统或依托自身计算引擎模拟另一类框架的行为,或定义一套通用接口屏蔽底层计算引擎的差异,对批流融合支持较弱。同时,其优化大多位于执行的特定时期或特定层级,且针对高复杂性任务的优化能力不足。针对以上问题,创新性地开发了基于统一计算引擎和全周期多尺度优化的高性能批流融合大数据计算技术。该技术为批流融合处理提供统一表达逻辑支持,通过统一表达建模融合批流处理的计算模型、数据模型、变换模型和动作模型,实现批、流处理的真正融合。针对作业的多样性、持久性、迭代性等特点,提供面向多作业、多任务、迭代计算、持久计算等优化策略,优化针对性更强。同时,提供执行前和执行中的全周期优化,并细分为作业级、任务级、变换级等多个尺度,以实现极速响应和海量吞吐。
对于分布式集群来说,统一表达是非常重要的一部分。统一表达模块可以把批运算和流运算集成到同一分布式处理环境。对于用户来说,处理两种不同的批算子和流算子分常麻烦,需要创建两套分布式处理环境,用不同的算子分别进行处理,并且各自的处理结果不能直接进行交互中,导致数据的最终结果的运算非常繁琐。在实际应用上,大规模云计算是需要同时处理批算子和流算子,就导致处理速度不快、兼容性不够,浪费时间的同时也浪费着系统资源。
因此目前缺少一种Gaia系统中统一表达的应用程序接口(Application ProgramInterface,即API)及其调用方法。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种Gaia系统中的统一表达API调用系统及调用方法,实现Gaia系统中统一表达API的调用。
为解决上述技术问题,本发明所采取的技术方案是:
一方面,本发明提供一种Gaia系统中的统一表达API调用系统,包括环境设定模块、数据获取模块、数据转换模块和数据输出模块;所述环境设定模块,用于设定API的分布式运行环境,具体包括创建一个管道对象并设置其执行选项,管道对象封装整个API的数据处理任务;所述API的数据处理任务包括读取输入数据,变换数据和输出数据;
所述数据获取模块用于获取数据构建API的初始数据集;所述初始数据集的数据可以通过数据获取方法从外部数据源读取,或通过读取Gaia系统内存中的数据并进行Create转换后构建;
所述数据转换模块对API的数据集进行数据转换,创建一个新的数据集;根据数据划分依据、转换函数、触发逻辑及输出结果的时间、误差处理,通过改变、过滤、分组、分析或其他方式处理数据集中的数据元素,进而创建一个新的数据集,而不改变原数据集;管道对象依次将后续数据转换应用于每个新创建的新数据集,直到完成用户需求;
所述数据划分依据基于时间滚动窗口、滑动窗口或会话窗口来划分;
所述转换函数包括API自带的转换函数、组合转换函数以及用户自定义的转换函数;
所述触发逻辑及输出结果的时间:在API中由管道对象中的水位线和触发器指定;
所述误差处理是指将数据集中的迟到数据作为增量进行计算后输出,或是将迟到数据的计算结果和窗口内数据计算结果合并作为全量进行输出;
所述数据输出模块将最终完成用户需求转换后的数据集输出至指定位置。
另一方面,本发明还提供一种Gaia系统中的统一表达API的调用方法,包括以下步骤:
步骤1:设定API的分布式运行环境;创建一个管道对象并设置其执行选项;所述管道对象封装整个API的数据处理任务,具体包括构建初始数据,指定数据转换和输出数据;
步骤2:在创建的管道对象中构建API的初始数据集;使用数据获取方法从外部数据源读取数据,或使用Create转换从Gaia系统内存中的数据构建;构建的初始数据集可以是有界的或是无界的;
如果初始数据集是有界的,使用批处理作业处理方式,一次读取整个数据集,并在有限长度的作业中执行处理;
如果初始数据集是无界的,则使用连续运行的流式作业处理方式读取数据集;
步骤3:对API的数据集进行数据转换;根据数据划分依据、转换函数、触发逻辑及输出结果的时间、误差处理方式,通过改变、过滤,分组、分析或其他方式处理数据集中的数据,将原数据集通过转换后生成一个新的数据集,而不改变原数据集;管道对象依次将后续转换应用于每个新生成的数据集,直到完成用户需求;
步骤4:将步骤3数据转换后满足用户需求的数据集输出至指定位置。
采用上述技术方案所产生的有益效果在于:本发明提供的一种Gaia系统中的统一表达API调用系统及调用方法,调用方便,使用简洁,解决了以往分布式系统中对于流计算和批计算相同功能需要使用不同的环境的问题。这种设计可以在保留原有的批处理高吞吐特性以及流处理实时性特性的基础上,添加混合处理操作,尽可能保证处理效率,同时简化开发者上手难度和开发时间,使开发者将时间用在业务逻辑的优化上而不是用在批处理和流处理的兼容上。本发明对于有限或无限的输入数据,都使用相同的类来表现,并且使用相同的转换操作进行处理。
附图说明
图1为本发明实施例提供的一种Gaia系统中的统一表达API调用系统的结构框图;
图2为本发明施例提供的一种Gaia系统中的统一表达API调用方法的流程图;
图3为本发明施例提供的使用窗口进行数据划分的流程图;
图4为本发明施例提供的无聚合运算时窗口划分的流程图;
图5为本发明施例提供的使用聚合运算的窗口划分的使用流程图;
图6为本发明施例提供的固定时间窗口的示意图;
图7为本发明施例提供的滑动时间窗口的示意图;
图8为本发明施例提供的会话窗口划分的示意图;
图9为本发明施例提供的窗口数据到达的示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例中,一种Gaia系统中的统一表达API调用系统,如图1所示,包括环境设定模块、数据获取模块、数据转换模块和数据输出模块;
所述环境设定模块,用于设定API的分布式运行环境,具体包括创建一个管道Pipeline对象并设置其执行选项,管道对象封装整个API的数据处理任务;所述API的数据处理任务包括读取输入数据,变换数据和输出数据;
所述数据获取模块用于获取数据构建API的初始数据集UCollection;所述初始数据集UCollection的数据可以通过数据获取方法Source API从外部数据源读取,或通过读取Gaia系统内存中的数据并进行Create转换后构建;
所述数据转换模块对API的数据集UCollection进行数据转换,创建一个新的数据集UCollection;根据数据划分依据、转换函数、触发逻辑及输出结果的时间、误差处理,通过改变、过滤、分组、分析或其他方式处理数据集UCollection中的元素,进而创建一个新的数据集UCollection,而不改变原数据集UCollection输入的集合;管道对象依次将后续数据转换应用于每个新创建的新数据集UCollection,直到完成用户需求;
所述数据划分依据基于时间滚动窗口、滑动窗口或会话窗口来划分;
所述转换函数包括API自带的转换函数、组合转换函数以及用户自定义的更复杂的转换函数;
所述触发逻辑及输出结果的时间:在API中由管道对象Pipeline中的水位线(即Watermark)和触发器指定;
所述误差处理是指将数据集UCollection中的迟到数据作为增量进行计算后输出,或是将迟到数据的计算结果和窗口内数据计算结果合并作为全量进行输出;
所述数据输出模块将最终完成用户需求转换后的数据集UCollection输出至指定位置,通常使用SinkAPI将数据集UCollection写入外部源。
另一方面,本发明还提供一种Gaia系统中的统一表达API的调用方法,如图2所示,包括以下步骤:步骤1:设定API的分布式运行环境;创建一个管道Pipeline对象并设置其执行选项;所述管道Pipeline对象封装整个API的的数据处理任务,具体包括构建初始数据,指定数据转换和输出数据;所有调用该API的程序均需要首先创建一个分布式运行环境,即创造一个管道Pipeline对象,该管道Pipeline对象需要封装数据处理任务中的所有数据和处理过程;同时,还需要以编程方式设置管道的配置选项或从命令行输入,并在创建管道对象时将这些配置传递给管道Pipeline对象;
步骤2:在创建的管道Pipeline对象中构建API的初始数据集UCollection;使用数据获取方法SourceAPI从外部数据源读取数据,或使用Create转换从Gaia系统内存中的数据构建;构建的初始数据集UCollection做为管道中用户需进行的第一个操作,可以是有界的或是无界的;
如果初始数据集UCollection是有界的,使用批处理作业处理方式,一次读取整个数据集,并在有限长度的作业中执行处理;
如果初始数据集UCollection是无界的,整个数据集不会一次都可用于处理,则使用连续运行的流式作业处理方式读取数据集;
当对无界的数据集UCollection中的元素进行分组操作时,需要产生一个窗口,将不断更新的数据集划分为有限大小的逻辑窗口,将每个窗口处理作为一个bundle(一捆),随着数据集的生成,处理将持续进行。这些逻辑窗口由与数据元素相关联的一些特性(诸如时间戳)来确定;
步骤3:对API的数据集UCollection进行数据转换;根据数据划分依据、转换函数、触发逻辑及输出结果的时间、误差处理方式,通过改变、过滤,分组、分析或其他方式处理数据集UCollection中的数据,将原数据集UCollection通过转换后生成一个新的数据集UCollection,而不改变原数据集UCollection;管道对象依次将后续转换应用于每个新生成的数据集UCollection,直到完成用户需求;
步骤3-1:数据划分:基于时间滚动窗口、滑动窗口、会话窗口等来对数据集UCollection中数据进行划分;根据数据集UCollection中的每个元素的时间戳细分窗口,然后在每个窗口的基础上处理数据集UCollection中的每个数据元素。设定统一的默认窗口行为是将数据集UCollection中的所有数据元素分配到单个全局窗口,并丢弃迟到的数据,即使对于无界数据集UCollection也是如此;
聚合运算(如GroupByKey和Combine等)在每个窗口的基础上隐式工作,如图3所示,他们将每个数据集UCollection作为多个有限窗口的连续过程进行处理。本实施例在创建的管道Pipeline对象中,使用Kafka接口读取一组键/值对来创建一个无界数据集UCollection,然后使用窗口函数WindowTransform应用于该数据集,并将转换函数ParDo应用于该数据集,最后使用转换函数GroupByKey将ParDo函数的结果分组。窗口函数对ParDo函数的操作没有影响,因为在GroupByKey函数需要之前,窗口实际上并没有被使用。然后,GroupByKey函数之后的处理就是基于键和窗口的分组。
要在有界数据集上使用窗口,可以为数据集中每个元素分配自己的时间戳。采用不同窗口划分方法对有界数据集UCollection进行窗口划分会影响管道Pipeline对象处理数据的方式。本实施例中,如图4所示,在创建的管道Pipeline对象中,使用Text接口读取一组键/值对来创建一个有界数据集UCollection。然后,使用GroupByKey函数对数据集进行分组,并将ParDo转换函数应用于分组的数据集UCollection。本实施例中,GroupByKey函数创建一个唯一的键值对(值是输入数据元素的值的集合),然后ParDo函数对每个key处理1次,GroupByKey函数和ParDo函数都没有使用窗口;即使没有设置窗口函数,仍然有1个默认窗口,数据集UCollection中的所有元素都分配给默认的单个全局窗口;
在有界数据集上使用窗口的基础上,要使得管道Pipeline对象处理数据所使用的函数也进行窗口划分,可以如图5所示;本实施例中,管道Pipeline对象创建一个元素为键值对的数据集UCollection,然后为数据集UCollection设置一个窗口函数,GroupByKey转换函数基于窗口,通过键和窗口对数据集UCollection的元素进行分组。随后的ParDo函数对每个key应用多次,每个窗口一次,因此ParDo函数的处理实际上和窗口没有关系;
本实施例中,数据转换模块提供了几个窗口功能,包括:固定时间窗口、滑动时间窗口、会话窗口、单一全局窗口、基于日历的时间窗口;
固定时间窗口:表示数据流中一致的连续、不重叠的时间间隔。比如5分钟固定长度窗口:无界数据集UCollection中的所有元素,时间戳值从0:00:00到(但不包括)0:05:00属于第一个窗口,时间戳值为0:05:00(但不包括)到0:10:00属于第二个窗口,依此类推,示意图如图6所示。
滑动时间窗口:滑动时间窗口也表示数据流的时间间隔,滑动事件窗口可以重叠。例如,每个窗口可能捕获五分钟的数据,但是每十秒会启动一个新窗口,滑动窗口开始的频率称为周期。因此,本实例中的窗口的时间长度为五分钟,滑动周期为10秒钟。由于多个窗口重叠,数据集UCollection中的大多数元素将属于多个窗口,这种窗口对于计算不断变化的数据的均值非常有用,使用滑动时间窗口,可以计算过去5分钟的数据的运行平均值,每10秒更新一次,示意图如图7所示;
会话窗口:会话窗口是一种在时间上非连续的窗口。会话窗口适用于每个key,对于在时间上呈现不规则分布的数据很有用。例如,表示用户鼠标活动的数据流可能具有长时间的空闲时间,而在另一个时间范围内点击很多。如果数据在最小时间隙之后到达,则启动一个新的窗口,示意图如图8所示;
单一全局窗口:默认情况下,数据集UCollection中的所有数据都被分配给单一全局窗口,并且丢弃迟到的数据,如果是有界数据集,通常使用数据集UCollection的全局窗口默认值。如果是无界数据集(例如来自流式数据源),也可以使用单个全局窗口,但在应用聚合操作时(如GroupByKey和Combine)时,带有默认触发器的单个全局窗口通常要求整个数据集在处理之前可用,这在连续更新数据时是不可能的。因此,要在使用全局窗口的无界数据集UCollection上执行聚合操作,应为该数据集UCollection指定非默认触发器;
可以通过应用窗口操作来设置数据集UCollection的窗口函数。使用窗口函数进行数据集划分时,必须提供一个WindowFn,WindowFn用来确定数据集UCollection使用哪种窗口函数来切分数据集UCollection,如固定或滑动时间窗口。已经预定义了WindowFn,如果有更复杂的需求,也可以自定义WindowFn。设置窗口函数时,可能还需要为数据集UCollection设置触发器(trigger);
步骤3-2:执行转换函数:主要由GaiaSDK中的转换操作符指定,根据用户的不同需求,有多种转换函数来处理数据,其中核心为ParDo、GroupBykey、Combine、Flatten和Partition函数,以及自定义更复杂的复合转换函数;
ParDo函数是用于并行处理的通用转换函数。ParDo处理范例与Map/Shuffle/Reduce样式算法的“Map”阶段相似:ParDo转换考虑了输入数据集UCollection中的每个元素,对该元素执行一些处理函数(用户代码),并输出0个,1个或多个数据元素到输出数据集UCollection。ParDo函数可用于各种常见的数据处理操作,包括:过滤、格式化或类型转换、提取数据、集中数据、对数据集中的每个元素进行处理;当进行ParDo转换时,需要以DoFn对象的形式提供用户代码;
DoFn是一个定义分布式处理功能的UnifiedSDK类;DoFn从输入的数据集UCollection中一次处理一个元素。当创建DoFn的子类时,需要提供与输入和输出元素的类型相匹配的类型参数;
GroupByKey是一个用于处理键/值对集合的转换函数,是一个并行Reduce操作,类似于Map/Shuffle/Reduce-style算法的Shuffle阶段。GroupByKey的输入是表示多重映射的键/值对的集合,其中集合包含具有相同键但具有不同值的多个对。给定这样的键/值对集合,可以使用GroupByKey来收集与每个唯一键相关联的所有值,GroupByKey是汇总具有共同点的数据的好方法;
Combine是一种用于组合数据中元素或值集合的转换函数。Combine有一种实现是对键值对数据集进行处理,根据键值对中的键组合值,简单的组合操作(如求和)通常可以实现为一个简单的功能。更复杂的组合操作可能需要创建一个具有与输入/输出类型不同的累加类型的CombineFn的子类;
Flatten和Partition是存储相同数据类型的数据集UCollection对象的转换函数。Flatten将多个数据集UCollection对象合并到1个数据集UCollection中,并且Partition将单个数据集UCollection拆分为固定数量的较小集合;
步骤3-3:触发逻辑及输出结果的时间:例如,由管道Pipeline对象中的水位线Watermark和触发器指定,在1小时的Event-Time时间窗口中,每隔1分钟,将当前窗口计算结果输出。
在任何数据处理系统中,数据事件产生时间(“事件时间”,由数据元素本身产生的时刻)与实际数据元素的处理时刻之间存在一定的滞后(“处理时间”,有系统上数据被处理的时刻决定)。但是数据无法保证按照事件时间的顺序到达管道Pipeline对象,或者始终以可预测的延迟到达。使用Watermark的概念,在Watermark之后的数据叫做延迟数据。
统一表达API的默认窗口配置(单一全局窗口)会基于数据源的类型,尝试确定所有数据何时到达,然后将Watermark提前移动到窗口的末尾,此默认配置下延迟数据会被丢弃。使用触发器(Trigger)可以修改和优化数据集UCollection的窗口策略,来决定每个窗口何时聚合并报告其结果,同时包含了窗口如何处理延迟数据的策略。
同时可以为每个元素附加时间戳,但是由于数据来源类型的不同,时间戳可能不符合需要,可能需要从原始数据流中重新提取时间戳,有界数据源(例如来自Text接口的文件)不提供时间戳,如果需要时间戳,可以使用ParDo为数据集UCollection中的元素分配新的时间戳,在ParDo中添加时间戳后,成为一个新的数据集UCollection;
步骤3-4:误差处理:将迟到数据计算增量结果输出,或是将迟到数据计算结果和窗口内数据计算结果合并成全量结果输出;
触发器用来决定何时在无界数据到达时发出聚合结果,使用触发器可以优化数据集UCollection的窗口策略。触发器允许处理迟到的数据或在窗口结束前预先计算不完整的结果,如果使用默认的窗口设置(单一全局窗口)和默认触发器(事件时间触发器),在估计所有数据到达时输出聚合结果,并丢弃该窗口的所有延迟数据。可以为数据集UCollection设置触发器来更改此默认行为。本发明的调用系统提供了一些内置触发器:事件时间触发器、处理事件触发器、数据驱动触发器、复合触发器,数据集UCollection的默认触发是基于事件时间,当Watermark超过窗口的末尾时,发出窗口的结果;
当指定触发器时,还必须设置窗口的累计模式。当触发器触发时,他将窗口的当前内容作为窗格发出。由于触发器可以多次触发,所以累计模式决定系统是否在触发器触发时累加窗口窗格,或者丢弃他们。
如图9所示,显示了具有key=X的事件,到达数据集UCollection并将其分配给窗口。为了使图表更简单,假设事件都按顺序到达:
累计模式,如果触发器设置为累计模式,触发器将在每次触发时发出以下值:
第一次触发:[5,8,3]第二次触发:[5,8,3,15,19,23]第三次触发:[5,8,3,15,19,23,9,13,10];
丢弃模式,如果触发器设置为丢弃模式,触发器每次触发时,发出的数据如下:
第一次触发:[5,8,3]第二次触发:[15,19,23]第三次触发:[9,13,10];
步骤4:将步骤3数据转换后满足用户需求的数据集UCollection输出至指定位置。通常使用SinkAPI将数据集UCollection写入外部数据源。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (5)
1.一种Gaia系统中的统一表达API调用系统,其特征在于:包括环境设定模块、数据获取模块、数据转换模块和数据输出模块;
所述环境设定模块,用于设定API的分布式运行环境,具体包括创建一个管道对象并设置其执行选项,管道对象封装整个API的数据处理任务;
所述数据获取模块用于获取数据构建API的初始数据集;所述初始数据集的数据可以通过数据获取方法从外部数据源读取,或通过读取Gaia系统内存中的数据并进行Create转换后构建;
所述数据转换模块对API的数据集进行数据转换,创建一个新的数据集;根据数据划分依据、转换函数、触发逻辑及输出结果的时间、误差处理,通过改变、过滤、分组、分析或其他方式处理数据集中的数据元素,进而创建一个新的数据集,而不改变原数据集;管道对象依次将后续数据转换应用于每个新创建的新数据集,直到完成用户需求;
所述数据输出模块将最终完成用户需求转换后的数据集输出至指定位置。
2.根据权利要求1所述的一种Gaia系统中的统一表达API调用系统,其特征在于:所述API的数据处理任务包括读取输入数据,变换数据和输出数据。
3.根据权利要求1所述的一种Gaia系统中的统一表达API调用系统,其特征在于:
所述数据划分依据基于时间滚动窗口、滑动窗口或会话窗口来划分;
所述转换函数包括API自带的转换函数、组合转换函数以及用户自定义的转换函数;
所述触发逻辑及输出结果的时间:在API中由管道对象中的水位线和触发器指定;
所述误差处理是指将数据集中的迟到数据作为增量进行计算后输出,或是将迟到数据的计算结果和窗口内数据计算结果合并作为全量进行输出。
4.一种Gaia系统中的统一表达API的调用方法,基于权利要求1所述系统实现,其特征在于:包括以下步骤:
步骤1:设定API的分布式运行环境;创建一个管道对象并设置其执行选项;所述管道对象封装整个API的数据处理任务,具体包括构建初始数据,指定数据转换和输出数据;
步骤2:在创建的管道对象中构建API的初始数据集;使用数据获取方法从外部数据源读取数据,或使用Create转换从Gaia系统内存中的数据构建;构建的初始数据集可以是有界的或是无界的;
步骤3:对API的数据集进行数据转换;根据数据划分依据、转换函数、触发逻辑及输出结果的时间、误差处理方式,通过改变、过滤,分组、分析或其他方式处理数据集中的数据,将原数据集通过转换后生成一个新的数据集,而不改变原数据集;管道对象依次将后续转换应用于每个新生成的数据集,直到完成用户需求;
步骤4:将步骤3数据转换后满足用户需求的数据集输出至指定位置。
5.根据权利要求4所述的一种Gaia系统中的统一表达API调用方法,其特征在于:所述步骤2构建的初始数据集如果是有界的,使用批处理作业处理方式,一次读取整个数据集,并在有限长度的作业中执行处理;如果初始数据集是无界的,则使用连续运行的流式作业处理方式读取数据集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011477680.8A CN112416537A (zh) | 2020-12-15 | 2020-12-15 | 一种Gaia系统中的统一表达API调用系统及调用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011477680.8A CN112416537A (zh) | 2020-12-15 | 2020-12-15 | 一种Gaia系统中的统一表达API调用系统及调用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112416537A true CN112416537A (zh) | 2021-02-26 |
Family
ID=74776814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011477680.8A Pending CN112416537A (zh) | 2020-12-15 | 2020-12-15 | 一种Gaia系统中的统一表达API调用系统及调用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416537A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677752A (zh) * | 2015-12-30 | 2016-06-15 | 深圳先进技术研究院 | 一种流式计算和批处理计算相结合处理系统及方法 |
US20160285711A1 (en) * | 2014-11-03 | 2016-09-29 | Google Inc. | Data Flow Windowing and Triggering |
CN110825775A (zh) * | 2019-11-04 | 2020-02-21 | 北京理工大学 | 一种Gaia系统中支持流数据与批数据交互的数据交换系统 |
CN111309409A (zh) * | 2020-02-26 | 2020-06-19 | 山东爱城市网信息技术有限公司 | 一种api服务调用实时统计方法 |
-
2020
- 2020-12-15 CN CN202011477680.8A patent/CN112416537A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160285711A1 (en) * | 2014-11-03 | 2016-09-29 | Google Inc. | Data Flow Windowing and Triggering |
CN105677752A (zh) * | 2015-12-30 | 2016-06-15 | 深圳先进技术研究院 | 一种流式计算和批处理计算相结合处理系统及方法 |
CN110825775A (zh) * | 2019-11-04 | 2020-02-21 | 北京理工大学 | 一种Gaia系统中支持流数据与批数据交互的数据交换系统 |
CN111309409A (zh) * | 2020-02-26 | 2020-06-19 | 山东爱城市网信息技术有限公司 | 一种api服务调用实时统计方法 |
Non-Patent Citations (4)
Title |
---|
GONGPULIN: "Flink DataStream API编程指南", 《HTTPS://BLOG.CSDN.NET/GONGPULIN/ARTICLE/DETAILS/106462994》 * |
JUST-DO-IT-ZZJ: "[Flink]Flink DataStream API 概览", 《HTTPS://BLOG.CSDN.NET/HENKU449141932/ARTICLE/DETAILS/110001707》 * |
冯飞 等: "《Flink内核原理与实现》", 31 August 2020, 机械工业出版社 * |
赵恒泰 等: "分布式环境下大规模维表关联技术优化", 《计算机科学与探索》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2963088C (en) | Apparatus and method for scheduling distributed workflow tasks | |
Zheng et al. | PreDatA–preparatory data analytics on peta-scale machines | |
CN101443733B (zh) | 用于执行基于图的计算的方法和系统 | |
CN110286892B (zh) | 一种基于业务流程设计的快速开发引擎系统 | |
Peng et al. | Modeling of concurrent task execution in a distributed system for real-time control | |
US11314808B2 (en) | Hybrid flows containing a continous flow | |
JP2017527024A (ja) | イベントストリーム変換 | |
CN109299180B (zh) | 一种数据仓库etl操作系统 | |
CN110908641A (zh) | 基于可视化的流计算平台、方法、设备和存储介质 | |
CN109669767B (zh) | 一种面向多类型上下文依赖的任务封装和调度方法及系统 | |
CN114756629A (zh) | 基于sql的多源异构数据交互分析引擎及方法 | |
CN114048188A (zh) | 一种跨数据库的数据迁移系统及方法 | |
CN103049310A (zh) | 一种基于采样的多核模拟并行加速方法 | |
CN112416537A (zh) | 一种Gaia系统中的统一表达API调用系统及调用方法 | |
CN116974994A (zh) | 一种基于集群的高效能文件协作系统 | |
CN116775041A (zh) | 基于流计算框架和rete算法的大数据实时决策引擎 | |
Zhang et al. | Optimizing completion time and resource provisioning of pig programs | |
Osmari et al. | Visualization and analysis of parallel dataflow execution with smart traces | |
US20180189701A1 (en) | Distributed cache cleanup for analytic instance runs processing operating data from industrial assets | |
CN111737268B (zh) | 一种基于文档数据库的数据处理方法 | |
Xu et al. | Research on performance optimization and visualization tool of Hadoop | |
CN117076508B (zh) | 一种流数据处理系统支持批数据处理的方法 | |
CN113760489B (zh) | 一种资源配置方法和装置 | |
CN114911876B (zh) | 一种实现数字能源管理系统的分布式计算方法 | |
CN115225712B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210226 |