CN106708854B - 数据导出方法和装置 - Google Patents

数据导出方法和装置 Download PDF

Info

Publication number
CN106708854B
CN106708854B CN201510779568.2A CN201510779568A CN106708854B CN 106708854 B CN106708854 B CN 106708854B CN 201510779568 A CN201510779568 A CN 201510779568A CN 106708854 B CN106708854 B CN 106708854B
Authority
CN
China
Prior art keywords
data
data processing
task
processing flow
flow
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.)
Active
Application number
CN201510779568.2A
Other languages
English (en)
Other versions
CN106708854A (zh
Inventor
郑壮杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boya Network Games Development Shenzhen Co ltd
Original Assignee
Boya Network Games Development Shenzhen Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Boya Network Games Development Shenzhen Co ltd filed Critical Boya Network Games Development Shenzhen Co ltd
Priority to CN201510779568.2A priority Critical patent/CN106708854B/zh
Publication of CN106708854A publication Critical patent/CN106708854A/zh
Application granted granted Critical
Publication of CN106708854B publication Critical patent/CN106708854B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种数据导出方法和装置。上述方法包括以下步骤:创建任务,并在所述任务中新增数据处理流程;在所述数据处理流程中指定数据源;生成与所述指定的数据源对应的指令,并将所述指令转换为所述任务中的流程节点;根据所述流程节点执行所述任务,并输出结果数据。上述数据导出方法和装置,能够自动协调和控制整个数据提取任务在不同数据源之间的数据流转,用户通过简单的操作即可获取所需数据,降低了操作难度,节约了人力、时间等资源,提高了执行效率。

Description

数据导出方法和装置
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据导出方法和装置。
背景技术
由科技驱动的当今世界,计算能力、网速和带宽不断的提升,电子设备更加普及,访问网络加便捷,用户产生的数据也随之增大。而在传统方式中,针对数据的不同特点,需要选取不同的数据处理框架,例如:HBase作为一个具有高可靠性、高性能、面向列、可伸缩等优秀特性的分布式存储系统,非常适用于动态数据结构的快速存储和查询;而Hive则适用于构建数据仓库,进行离线的海量数据分析等。
由于数据处理框架种类繁多,且每个数据处理框架有其不同的访问规则,如果在进行数据分析时所需提取的数据分布在不同的框架中,需要手动提交各个框架产生的中间数据,并导入到另外的数据处理框架中进行下一步的处理,操作繁琐且浪费人力、时间等资源。
发明内容
基于此,有必要针对数据分析时操作繁琐且浪费人力、时间等资源问题,提供一种操作简单且能够节省人力和时间等资源的数据导出方法。
此外,还有必要针对数据分析时操作繁琐且浪费人力、时间等资源问题,提供一种操作简单且能够节省人力和时间等资源的数据导出装置。
一种数据导出方法,包括以下步骤:
创建任务,并在所述任务中新增数据处理流程;
在所述数据处理流程中指定数据源;
生成与所述指定的数据源对应的指令,并将所述指令转换为所述任务中的流程节点;
根据所述流程节点执行所述任务,并输出结果数据。
在其中一个实施例中,所述数据导出方法还包括以下步骤:
设置所述新增的数据处理流程的关联条件,使得所述新增的数据处理流程与所述任务中的其它数据处理流程关联。
在其中一个实施例中,所述数据导出方法还包括:
判断所述任务中的其它还未执行的数据处理流程与当前执行的数据处理流程是否关联;
若关联,则将当前执行的数据处理流程生成的中间数据载入所述关联的数据处理流程中,使得所述关联的数据处理流程根据所述中间数据进行执行;
输出所述任务中最后一个数据处理流程产生的结果数据,或输出所述任务中各个数据处理流程产生的中间数据。
在其中一个实施例中,所述生成与所述指定的数据源对应的指令,并将所述指令转换为所述任务中的流程节点的步骤具体包括:
检测所述数据处理流程中的数据源所使用的数据处理框架;
根据所述数据处理框架生成对应的指令;
根据预设的配置文件解析所述指令,将所述指令转化为流程节点;
分配所述流程节点的顺序编号。
在其中一个实施例中,所述根据所述流程节点执行所述任务的步骤具体包括:
建立链表队列,将所述任务添加到链表队列中并进行加载;
采用同步调度或异步调度的方式执行所述链表队列中的任务;
读取所述任务的流程节点,并根据所述顺序编号调用所述流程节点逐一执行所述任务中的数据处理流程。
一种数据导出装置,包括:
创建模块,用于创建任务,并在所述任务中新增数据处理流程;
指定模块,用于在所述数据处理流程中指定数据源;
生成模块,用于生成与所述指定的数据源对应的指令,并将所述指令转换为所述任务中的流程节点;
执行模块,用于根据所述流程节点执行所述任务,并输出结果数据。
在其中一个实施例中,所述数据导出装置还包括:
设置模块,用于设置所述新增的数据处理流程的关联条件,使得所述新增的数据处理流程与所述任务中的其它数据处理流程关联。
在其中一个实施例中,所述数据导出装置还包括:
判断模块,用于判断所述任务中的其它还未执行的数据处理流程与当前执行的数据处理流程是否关联;
载入模块,用于当判断出所述任务中的其它还未执行的数据处理流程与当前执行的数据处理流程关联,则将当前执行的数据处理流程生成的中间数据载入所述关联的数据处理流程中,使得所述关联的数据处理流程根据所述中间数据进行执行;
所述执行模块还用于输出所述任务中最后一个数据处理流程产生的结果数据,或输出所述任务中各个数据处理流程产生的中间数据。
在其中一个实施例中,所述生成模块包括:
检测单元,用于检测所述数据处理流程中的数据源所使用的数据处理框架;
生成单元,用于根据所述数据处理框架生成对应的指令;
转化单元,用于根据预设的配置文件解析所述指令,将所述指令转化为流程节点;
分配单元,用于分配所述流程节点的顺序编号。
在其中一个实施例中,所述执行模块包括:
建立单元,用于建立链表队列,将所述任务添加到链表队列中并进行加载;
执行单元,用于采用同步调度或异步调度的方式执行所述链表队列中的任务;
读取单元,用于读取所述任务的流程节点,并根据所述顺序编号调用所述流程节点逐一执行所述任务中的数据处理流程。
上述数据导出方法和装置,通过指定数据处理流程的数据源,生成与数据源对应的指令,并将指令转化为流程节点进行执行任务,能够自动协调和控制整个数据提取任务在不同数据源之间的数据流转,用户通过简单的操作即可获取所需数据,降低了操作难度,节约了人力、时间等资源,提高了执行效率。
附图说明
图1为一个实施例中数据导出方法的流程示意图;
图2为一个实施例中将指令转换为任务的流程节点的流程示意图;
图3为一个实施例中任务执行时的状态示意图;
图4为一个实施例中数据导出方法及装置的操作界面示意图;
图5为一个实施例中数据导出装置的结构示意图;
图6为一个实施例中生成模块的内部结构示意图;
图7为一个实施例中执行模块的内部结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,一种数据导出方法,包括以下步骤:
步骤S110,创建任务,并在任务中新增数据处理流程。
具体的,通过操作接口接收用户的操作指令,并根据该操作指令创建任务,操作接口可以是浏览器、客户端等形式的具有图形化界面的操作窗口。通过新增数据处理流程,可以指定数据源、所需的数据项等,对所需的数据进行提取处理。
步骤S120,在数据处理流程中指定数据源。
具体的,通过指定数据源可指定提取何处的数据,每个数据源都有一个特定标识,表示该数据来源于何处,例如来自本地数据,来自Hadoop分布式文件系统的数据,或是来自于其它能够提供数据的平台。每个数据源的数据处理框架可能相同或不同,不同的数据处理框架能够针对不同特点的数据进行存储、获取、处理及分析等,例如HBase、Hive、Spark、Storm等数据处理框架,其中,HBase作为一个具有高可靠性、高性能、面向列、可伸缩等优秀特性的分布式存储系统,非常适用于动态数据结构的快速存储和查询;Hive则适用于构建数据仓库,进行离线的海量数据分析等;Spark既能够提供交互式查询,还可以优化迭代工作负载,且适用于某些需要历史数据和实时数据联合分析的特定应用场合;Storm则适用于实时数据的分析和计算等。除了指定数据源外,还可指定数据项,数据项一般可包括数据存储位置、数据查询时间范围、数据类型及过滤条件等,例如可指定提取某游戏产品2015年3月至2015年6月期间用户的消费金额总数、最大消费金额等数据。
步骤S130,生成与指定的数据源对应的指令,并将指令转换为任务中的流程节点。
具体的,在一个实施例中,如图2所示,步骤生成与指定的数据源对应的指令,并将指令转换为任务中的流程节点,具体包括以下步骤:
步骤S210,检测数据处理流程中的数据源所使用的数据处理框架。
具体的,指定的数据源中的数据处理框架不同,例如HBase、Hive、Spark、Storm等,检测并确定数据处理流程中的数据源所使用的数据处理框架。
步骤S220,根据数据处理框架生成对应的指令。
具体的,每种数据处理框架有其自带的程序执行语言,根据检测结果生成该数据处理框架能够识别的指令。例如,若数据处理框架为HBase,则自动生成HBase指令,若数据处理框架为Hive,则自动生成Hive指令等。
步骤S230,根据预设的配置文件解析指令,将指令转化为流程节点。
具体的,预设的配置文件中包含有不同数据处理框架的程序执行语言的解析及转化方法,根据该配置文件可将指令转化为流程节点,例如start节点表示该数据处理流程的起始点,end节点表示该数据处理流程的结束点,sub节点表示该数据处理流程的子节点。
步骤S240,分配流程节点的顺序编号。
具体的,每个流程节点均有一个顺序编号,可设置编号大的流程节点需等待编号小的流程节点执行结束后才会被调用。将任务描述为流,并根据不同的数据处理框架生成对应的指令,将指令转化为流程节点进行调用执行,方便实现不同数据处理框架之间的数据交换及传输,能整合不同数据处理框架的数据,使得各个数据处理框架的数据实现互通互联,资源共享。
步骤S140,根据流程节点执行该任务,并输出结果数据。
具体的,调用该流程节点并执行该任务中的数据处理流程,以得到所需的数据结果,并将结果数据导出,输出格式可为csv(comma-separated values,逗号分隔值),即每一列数据均是用英文逗号分隔的数据文件,也可为其它的数据输出格式例如xls等,并提供链接地址供用户预览及下载。
在一个实施例中,步骤根据流程节点执行该任务,并输出结果数据,具体包括:
(1)建立链表队列,将任务添加到链表队列中并进行加载。
具体的,可将创建的任务添加到链表队列中并进行加载,当任务被加载成功后,即成为可执行任务,如图3所示,该任务可能为以下某种状态:
PREP:表示任务被加载,任务刚刚被加载时即处于PREP状态。
RUNNING:表示任务正在执行,PREP状态的任务被启动后处于RUNNING状态。
SUSPENDED,表示任务被挂起,RUNNING状态的任务被用户挂起后处于SUSPENDED状态,SUSPENDED状态可重新回到RUNNING状态。
SUCCEEDED:表示任务执行成功,RUNNING状态的任务执行成功后处于SUCCEEDED状态。
KILLED:表示任务被停止,PREP状态的任务被删除后处于KILLED状态,RUNNING状态和SUSPENDED状态的任务被用户停止后也处于KILLED状态,被停止的任务可重新回到RUNNING状态进行执行。
FAILED:表示任务执行失败,RUNNING状态的任务执行失败后处于FAILED状态。
(2)采用同步调度或异步调度的方式执行链表队列中的任务。
具体的,同步调度为按照链表队列中的顺序进行调度,即链表队列后端的任务需等待链表队列前端的任务执行完成后才会被调度,按照先进先出的原则执行任务。异步调度则可同时并发执行多个不同的任务,任务之间互不影响,每个任务均可启动单独的线程进行处理,可以同时为多个用户、多个任务处理多个数据集,大大提高了并发处理能力,并提高任务处理的效率。
(3)读取任务的流程节点,并根据顺序编号调用所述流程节点逐一执行任务中的数据处理流程。
具体的,执行任务时,读取任务中的流程节点,并按照流程节点的顺序编号进行调用,逐一执行该任务中的数据处理流程。
上述数据导出方法,通过指定数据处理流程的数据源,生成与数据源对应的指令,并将指令转化为流程节点进行执行任务,能够自动协调和控制整个数据提取任务在不同数据源之间的数据流转,用户通过简单的操作即可获取所需数据,降低了操作难度,节约了人力、时间等资源,提高了执行效率。
在另一个实施例中,在步骤生成与指定的数据源对应的指令,并将指令转换为任务中的流程节点之前,还包括步骤:将任务封装成JSON(JavaScript Object Notation,JavaScript对象表示法)对象。
具体的,创建任务并新增数据处理流程完成后,将任务封装成JSON对象,其实现代码如下所示:
Figure BDA0000847259990000071
Figure BDA0000847259990000081
其中,name为该任务的名称,flows使用JSON数组指定每个数据处理流程的详细信息,每个数据处理流程以一个JSON对象保存在JSON数组中,每个流程有一个全局唯一的id;protocal表示该数据处理流程使用何种数据处理框架获取数据,例如HBase、Hive、Spark、Stom等,与数据处理流程新增时指定的数据源相对应;args为数据处理流程需要使用的参数,即指定的数据项,例如stime表示起始时间,etime表示结束时间,table表示查询的表名称,columns表示查询的列名等;depend表示该数据处理流程与其它数据处理流程相关联,其中id字段为关联的数据处理流程的id,mapping字段为设置的关联条件;output表示数据输出的终端路径,该终端路径既可以为系统的文件,也可以为其它的存储形式。在其它的实施例中,也可以使用其它格式进行封装,例如通过http get带参数的请求方式,将任务中的数据处理流程的每个字段及值作为参数一起进行传递。
上述数据导出方法,通过封装任务中复杂的数据交互逻辑,方便后续任务的执行及数据的调用,简化用户进行数据分析统计时的操作,提高效率。
在另一个实施例中,上述数据导出方法还包括步骤:设置该新增的数据处理流程的关联条件,使得新增的数据处理流程与任务中的其它数据处理流程关联。
具体的,每个任务可新增的数据处理流程数量可不限制,若任务中新增的数据处理流程为多个时,除了第一个数据处理流程外,当每新增一个数据处理流程时,可指定该新增的数据处理流程与其它数据处理流程之间的关联条件,即将数据处理流程之间的数据进行关联对应,其它数据处理流程可为该任务中之前增加的数据处理流程。关联条件可为关联的数据项,例如,新增数据处理流程2,并将数据处理流程2与数据处理流程1进行关联,设置关联条件为时间关联,即表示数据处理流程2的数据时间与数据处理流程1的数据时间相同,当数据处理流程1的数据查询时间变动时,数据处理流程2的数据查询时间也随之进行变动。当新增一个数据处理流程时,会自动生成一个执行编号,执行编号一般按数据处理流程新增的先后顺序进行排序,也可是随机产生的唯一的数,该执行编号可视为数据处理流程的ID(identification,身份标识),数据处理流程通过该ID进行关联。
上述数据导出方法,通过将任务中的数据处理流程进行关联,能更好地整合不同数据源之间的数据,方便进行数据分析及处理。
在另一个实施例中,上述数据导出方法还包括以下步骤:
(1)判断任务中的其它还未执行的数据处理流程与当前执行的数据处理流程是否关联。
具体的,在执行任务时,通过调用流程节点执行数据处理流程,当执行完一个数据处理流程时,需对该数据处理流程产生的中间数据进行处理,判断任务中的其它还未执行的数据处理流程与当前执行的数据处理流程是否关联,若关联,则将当前执行的数据处理流程生成的中间数据载入关联的数据处理流程中,若不关联,则继续执行下一数据处理流程。
(2)若关联,则将当前执行的数据处理流程生成的中间数据载入关联的数据处理流程中,使得关联的数据处理流程根据中间数据进行执行。
具体的,如果当前执行的数据处理流程生成的中间数据为该任务中其它未执行的数据处理流程所关联的数据,则按照约定的数据格式,将产生的中间数据载入该关联的数据处理流程的数据处理框架中,使得该关联的数据处理流程根据该中间数据进行执行。其中,约定的数据格式可为任务进行封装时的参数传递格式。
例如,导出在2015年9日1日注册的用户在2015年9月1日至2015年9月28日期间的消费金额,则创建任务后,新增数据处理流程1,获取在2015年9月1日注册的用户数据,新增数据处理流程2,获取在2015年9月1日至2015年9月28日期间的消费金额数据,并将新增数据处理流程2与新增数据处理流程1关联,关联条件为用户账号,则当执行完数据处理流程1后,产生的中间数据为在2015年9月1日注册的用户,因该中间数据为数据处理流程2的关联数据,则将该中间数据导入数据处理流程2,再执行数据处理流程2,即可获取所需导出的在2015年9日1日注册的用户在2015年9月1日至2015年9月28日期间的消费金额。
(3)输出任务中最后一个数据处理流程产生的结果数据,或输出该任务中各个数据处理流程产生的中间数据。
具体的,当需要获取数据分析结果时,可输出任务中最后一个数据处理流程产生的结果数据;当需要对中间数据进行分析或调试时,可将该任务中各个数据处理流程产生的中间数据合并输出。输出的数据可以文件形式进行保存,并提供链接地址供用户预览及下载,也可直接输出到指定的存储位置中。
上述数据导出方法,通过指定数据处理流程的数据源,生成与数据源对应的指令,并将指令转化为流程节点进行执行任务,能够自动协调和控制整个数据提取任务在不同数据源之间的数据流转,用户通过简单的操作即可获取所需数据,降低了操作难度,节约了人力、时间等资源,提高了执行效率,可以应用于快速分析TB级甚至PB级的海量数据。
图4为一个实施例中数据导出方法和装置的操作界面示意图。如图4所示,在一个实施例中,用户创建任务名称为用户活跃统计分析的任务,包括流程界面10,流程界面10包括数据处理流程1和数据处理流程2。其中,数据处理流程1中的站点即为数据源,并指定数据时间为2015年6月1日至2015年9月1日。
数据处理流程2中选择站点,即指定数据源,并通过勾选数据选项20选择所需数据项,通过关联选择框30选择关联流程及关联条件。用户通过该操作界面进行简单的操作,自动生成操作指令,即可获取所需数据,并得到不同数据源的数据整合分析的结果,简化了操作,提高了效率。
如图5所示,一种数据导出装置,包括创建模块510、指定模块520、生成模块530、执行模块540及设置模块550。
创建模块510,用于创建任务,并在任务中新增数据处理流程。
具体的,通过操作接口接收用户的操作指令,并根据该操作指令创建任务,操作接口可以是浏览器、客户端等形式的具有图形化界面的操作窗口。通过新增数据处理流程,可以指定数据源、所需的数据项等,对所需的数据进行提取处理。
指定模块520,用于在数据处理流程中指定数据源。
具体的,通过指定数据源可指定提取何处的数据,每个数据源都有一个特定标识,表示该数据来源于何处,例如来自本地数据,来自Hadoop分布式文件系统的数据,或是来自于其它能够提供数据的平台。每个数据源的数据处理框架可能相同或不同,不同的数据处理框架能够针对不同特点的数据进行存储、获取、处理及分析等,例如HBase、Hive、Spark、Storm等数据处理框架,其中,HBase作为一个具有高可靠性、高性能、面向列、可伸缩等优秀特性的分布式存储系统,非常适用于动态数据结构的快速存储和查询;Hive则适用于构建数据仓库,进行离线的海量数据分析等;Spark既能够提供交互式查询,还可以优化迭代工作负载,且适用于某些需要历史数据和实时数据联合分析的特定应用场合;Storm则适用于实时数据的分析和计算等。除了指定数据源外,还可指定数据项,数据项一般可包括数据存储位置、数据查询时间范围、数据类型及过滤条件等,例如可指定提取某游戏产品2015年3月至2015年6月期间用户的消费金额总数、最大消费金额等数据。
生成模块530,用于生成与指定的数据源对应的指令,并将指令转换为任务中的流程节点。
在一个实施例中,如图6所示,生成模块530包括检测单元532、生成单元534、转化单元536、分配单元538。
检测单元532,用于检测数据处理流程中的数据源所使用的数据处理框架。
具体的,指定的数据源中的数据处理框架不同,例如HBase、Hive、Spark、Storm等,检测并确定数据处理流程中的数据源所使用的数据处理框架。
生成单元534,用于根据数据处理框架生成对应的指令。
具体的,每种数据处理框架有其自带的程序执行语言,根据检测结果生成该数据处理框架能够识别的指令。例如,若数据处理框架为HBase,则自动生成HBase指令,若数据处理框架为Hive,则自动生成Hive指令等。
转化单元536,用于根据预设的配置文件解析指令,将指令转化为流程节点。
具体的,预设的配置文件中包含有不同数据处理框架的程序执行语言的解析及转化方法,根据该配置文件可将指令转化为流程节点,例如start节点表示该数据处理流程的起始点,end节点表示该数据处理流程的结束点,sub节点表示该数据处理流程的子节点。
分配单元538,用于分配流程节点的顺序编号。
具体的,每个流程节点均有一个顺序编号,可设置编号大的流程节点需等待编号小的流程节点执行结束后才会被调用。将任务描述为流,并根据不同的数据处理框架生成对应的指令,将指令转化为流程节点进行调用执行,方便实现不同数据处理框架之间的数据交换及传输,能整合不同数据处理框架的数据,使得各个数据处理框架的数据实现互通互联,资源共享。
执行模块540,用于根据流程节点执行任务,并输出结果数据。
具体的,调用该流程节点并执行该任务中的数据处理流程,以得到所需的数据结果,并将结果数据导出,输出格式可为csv,即每一列数据均是用英文逗号分隔的数据文件,也可为其它的数据输出格式例如xls等,并提供链接地址供用户预览及下载。
在一个实施例中,如图7所示,执行模块540包括建立单元542、执行单元544及读取单元546。
建立单元542,用于建立链表队列,将任务添加到链表队列中并进行加载。
具体的,可将创建的任务添加到链表队列中并进行加载,当任务被加载成功后,即成为可执行任务,如图3所示,该任务可能为以下某种状态:
PREP:表示任务被加载,任务刚刚被加载时即处于PREP状态。
RUNNING:表示任务正在执行,PREP状态的任务被启动后处于RUNNING状态。
SUSPENDED,表示任务被挂起,RUNNING状态的任务被用户挂起后处于SUSPENDED状态,SUSPENDED状态可重新回到RUNNING状态。
SUCCEEDED:表示任务执行成功,RUNNING状态的任务执行成功后处于SUCCEEDED状态。
KILLED:表示任务被停止,PREP状态的任务被删除后处于KILLED状态,RUNNING状态和SUSPENDED状态的任务被用户停止后也处于KILLED状态,被停止的任务可重新回到RUNNING状态进行执行。
FAILED:表示任务执行失败,RUNNING状态的任务执行失败后处于FAILED状态。
执行单元544,用于采用同步调度或异步调度的方式执行链表队列中的任务。
具体的,同步调度为按照链表队列中的顺序进行调度,即链表队列后端的任务需等待链表队列前端的任务执行完成后才会被调度,按照先进先出的原则执行任务。异步调度则可同时并发执行多个不同的任务,任务之间互不影响,每个任务均可启动单独的线程进行处理,可以同时为多个用户、多个任务处理多个数据集,大大提高了并发处理能力,并提高任务处理的效率。
读取单元546,用于读取任务的流程节点,并根据顺序编号调用流程节点逐一执行任务中的数据处理流程。
具体的,执行任务时,读取任务中的流程节点,并按照流程节点的顺序编号进行调用,逐一执行该任务中的数据处理流程。
设置模块550,用于设置新增的数据处理流程的关联条件,使得新增的数据处理流程与任务中的其它数据处理流程关联。
具体的,每个任务可新增的数据处理流程数量可不限制,若任务中需要的数据处理流程为多个时,除了第一个数据处理流程外,当每新增一个数据处理流程时,可指定该新增的数据处理流程与其它数据处理流程之间的关联条件,即将数据处理流程之间的数据进行关联对应,其它数据处理流程可为该任务中之前增加的数据处理流程。关联条件可为关联的数据项,例如,新增数据处理流程2,并将数据处理流程2与数据处理流程1进行关联,设置关联条件为时间关联,即表示数据处理流程2的数据时间与数据处理流程1的数据时间相同,当数据处理流程1的数据查询时间变动时,数据处理流程2的数据查询时间也随之进行变动。当新增一个数据处理流程时,会自动生成一个执行编号,执行编号一般按新增的先后顺序进行排序,也可是随机产生的唯一的数,该执行编号可视为数据处理流程的ID,数据处理流程通过该ID进行关联。
上述数据导出装置,通过指定数据处理流程的数据源,生成与数据源对应的指令,并将指令转化为流程节点进行执行任务,能够自动协调和控制整个数据提取任务在不同数据源之间的数据流转,用户通过简单的操作即可获取所需数据,降低了操作难度,节约了人力、时间等资源,提高了执行效率。
在另一个实施例中,上述数据导出装置除了包括创建模块510、指定模块520、生成模块530、执行模块540及设置模块550,还包括封装模块。
封装模块,用于将任务封装成JSON对象。
具体的,创建任务并新增数据处理流程完成后,将任务封装成JSON对象,在其它的实施例中,也可以使用其它格式进行封装,例如通过http get带参数的请求方式,将任务中的数据处理流程的每个字段及值作为参数一起进行传递。
上述数据导出装置,通过封装任务中复杂的数据交互逻辑,方便后续任务的执行及数据的调用,简化用户进行数据分析统计时的操作,提高效率。
在另一个实施例中,上述数据导出装置除了包括创建模块510、指定模块520、生成模块530、执行模块540及设置模块550,还包括判断模块和载入模块。
判断模块,用于判断任务中的其它还未执行的数据处理流程与当前执行的数据处理流程是否关联。
具体的,在执行任务时,通过调用流程节点执行数据处理流程,当执行完一个数据处理流程时,需对该数据处理流程产生的中间数据进行处理,判断任务中的其它还未执行的数据处理流程与当前执行的数据处理流程是否关联,若关联,则将当前执行的数据处理流程生成的中间数据载入关联的数据处理流程中,若不关联,则继续执行下一数据处理流程。
载入模块,用于当判断出任务中的其它还未执行的数据处理流程与当前执行的数据处理流程关联,则将当前执行的数据处理流程生成的中间数据载入该关联的数据处理流程中,使得关联的数据处理流程根据所述中间数据进行执行。
具体的,如果当前执行的数据处理流程生成的中间数据为该任务中其它未执行的数据处理流程所关联的数据,则按照约定的数据格式,将产生的中间数据载入该关联的数据处理流程的数据处理框架中,使得该关联的数据处理流程根据该中间数据进行执行。其中,约定的数据格式可为任务进行封装时的参数传递格式。
例如,导出在2015年9日1日注册的用户在2015年9月1日至2015年9月28日期间的消费金额,则创建任务后,新增数据处理流程1,获取在2015年9月1日注册的用户数据,新增数据处理流程2,获取在2015年9月1日至2015年9月28日期间的消费金额数据,并将新增数据处理流程2与新增数据处理流程1关联,关联条件为用户账号,则当执行完数据处理流程1后,产生的中间数据为在2015年9月1日注册的用户,因该中间数据为数据处理流程2的关联数据,则将该中间数据导入数据处理流程2,再执行数据处理流程2,即可获取所需导出的在2015年9日1日注册的用户在2015年9月1日至2015年9月28日期间的消费金额。
执行模块540还用于输出任务中最后一个数据处理流程产生的结果数据,或输出任务中各个数据处理流程产生的中间数据。
具体的,当需要获取数据分析结果时,可输出任务中最后一个数据处理流程产生的结果数据;当需要对中间数据进行分析或调试时,可将该任务中各个数据处理流程产生的中间数据合并输出。输出的数据可以文件形式进行保存,并提供链接地址供用户预览及下载,也可直接输出到指定的存储位置中。
上述数据导出装置,通过指定数据处理流程的数据源,生成与数据源对应的指令,并将指令转化为流程节点进行执行任务,能够自动协调和控制整个数据提取任务在不同数据源之间的数据流转,用户通过简单的操作即可获取所需数据,降低了操作难度,节约了人力、时间等资源,提高了执行效率,可以应用于快速分析TB级甚至PB级的海量数据。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据导出方法,其特征在于,包括以下步骤:
创建任务,并在所述任务中新增数据处理流程;
在所述数据处理流程中指定数据源;
生成与指定的所述数据源的数据处理框架对应的指令,并将所述指令转换为所述任务中的流程节点;
根据所述流程节点执行所述任务,并输出结果数据。
2.根据权利要求1所述的数据导出方法,其特征在于,所述数据导出方法还包括以下步骤:
设置所述新增的数据处理流程的关联条件,使得所述新增的数据处理流程与所述任务中的其它数据处理流程关联。
3.根据权利要求2所述的数据导出方法,其特征在于,所述数据导出方法还包括:
判断所述任务中的其它还未执行的数据处理流程与当前执行的数据处理流程是否关联;
若关联,则将当前执行的数据处理流程生成的中间数据载入所述关联的数据处理流程中,使得所述关联的数据处理流程根据所述中间数据进行执行;
输出所述任务中最后一个数据处理流程产生的结果数据,或输出所述任务中各个数据处理流程产生的中间数据。
4.根据权利要求1或2所述的数据导出方法,其特征在于,所述生成与指定的所述数据源的数据处理框架对应的指令,并将所述指令转换为所述任务中的流程节点的步骤具体包括:
检测所述数据处理流程中的数据源所使用的数据处理框架;
根据所述数据处理框架生成对应的指令;
根据预设的配置文件解析所述指令,将所述指令转化为流程节点;
分配所述流程节点的顺序编号。
5.根据权利要求4所述的数据导出方法,其特征在于,所述根据所述流程节点执行所述任务的步骤具体包括:
建立链表队列,将所述任务添加到链表队列中并进行加载;
采用同步调度或异步调度的方式执行所述链表队列中的任务;
读取所述任务的流程节点,并根据所述顺序编号调用所述流程节点逐一执行所述任务中的数据处理流程。
6.一种数据导出装置,其特征在于,包括:
创建模块,用于创建任务,并在所述任务中新增数据处理流程;
指定模块,用于在所述数据处理流程中指定数据源;
生成模块,用于生成与指定的所述数据源的数据处理框架对应的指令,并将所述指令转换为所述任务中的流程节点;
执行模块,用于根据所述流程节点执行所述任务,并输出结果数据。
7.根据权利要求6所述的数据导出装置,其特征在于,所述数据导出装置还包括:
设置模块,用于设置所述新增的数据处理流程的关联条件,使得所述新增的数据处理流程与所述任务中的其它数据处理流程关联。
8.根据权利要求7所述的数据导出装置,其特征在于,所述数据导出装置还包括:
判断模块,用于判断所述任务中的其它还未执行的数据处理流程与当前执行的数据处理流程是否关联;
载入模块,用于当判断出所述任务中的其它还未执行的数据处理流程与当前执行的数据处理流程关联,则将当前执行的数据处理流程生成的中间数据载入所述关联的数据处理流程中,使得所述关联的数据处理流程根据所述中间数据进行执行;
所述执行模块还用于输出所述任务中最后一个数据处理流程产生的结果数据,或输出所述任务中各个数据处理流程产生的中间数据。
9.根据权利要求6或7所述的数据导出装置,其特征在于,所述生成模块包括:
检测单元,用于检测所述数据处理流程中的数据源所使用的数据处理框架;
生成单元,用于根据所述数据处理框架生成对应的指令;
转化单元,用于根据预设的配置文件解析所述指令,将所述指令转化为流程节点;
分配单元,用于分配所述流程节点的顺序编号。
10.根据权利要求9所述的数据导出装置,其特征在于,所述执行模块包括:
建立单元,用于建立链表队列,将所述任务添加到链表队列中并进行加载;
执行单元,用于采用同步调度或异步调度的方式执行所述链表队列中的任务;
读取单元,用于读取所述任务的流程节点,并根据所述顺序编号调用所述流程节点逐一执行所述任务中的数据处理流程。
CN201510779568.2A 2015-11-13 2015-11-13 数据导出方法和装置 Active CN106708854B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510779568.2A CN106708854B (zh) 2015-11-13 2015-11-13 数据导出方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510779568.2A CN106708854B (zh) 2015-11-13 2015-11-13 数据导出方法和装置

Publications (2)

Publication Number Publication Date
CN106708854A CN106708854A (zh) 2017-05-24
CN106708854B true CN106708854B (zh) 2020-05-22

Family

ID=58930642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510779568.2A Active CN106708854B (zh) 2015-11-13 2015-11-13 数据导出方法和装置

Country Status (1)

Country Link
CN (1) CN106708854B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259063B (zh) * 2018-11-30 2023-08-15 北京数聚鑫云信息技术有限公司 一种以api方式实现数据导出的方法及装置
CN109766388B (zh) * 2018-12-28 2021-02-09 广州市申迪计算机系统有限公司 一种将数据存入HBase的方法和系统
CN110083625A (zh) * 2019-03-18 2019-08-02 北京奇艺世纪科技有限公司 实时流处理方法、设备、数据处理设备及介质
CN112825031B (zh) * 2019-11-21 2024-03-12 中盈优创资讯科技有限公司 基于json格式的流程描述方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033748A (zh) * 2010-12-03 2011-04-27 中国科学院软件研究所 一种数据处理流程代码的生成方法
CN102819589A (zh) * 2012-08-06 2012-12-12 北京久其软件股份有限公司 一种基于etl的数据优化方法及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071480A (zh) * 2007-06-15 2007-11-14 南京联创科技股份有限公司 复杂业务系统中基于工作流的通用构件化流程调度方法
CN101567013B (zh) * 2009-06-02 2011-09-28 阿里巴巴集团控股有限公司 一种etl调度的实现方法及装置
US20110219113A1 (en) * 2010-03-02 2011-09-08 Grewal Avininder Pal Singh Method and system for client assisted stateful handling of packets in a communications network
CN102299561A (zh) * 2011-08-02 2011-12-28 南京中德保护控制系统有限公司 多源数据采集的数据接入方法
CN103473378A (zh) * 2013-09-30 2013-12-25 国家电网公司 能够采集多种构造数据源的通用数据采集系统及采集方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033748A (zh) * 2010-12-03 2011-04-27 中国科学院软件研究所 一种数据处理流程代码的生成方法
CN102819589A (zh) * 2012-08-06 2012-12-12 北京久其软件股份有限公司 一种基于etl的数据优化方法及设备

Also Published As

Publication number Publication date
CN106708854A (zh) 2017-05-24

Similar Documents

Publication Publication Date Title
CA2935505C (en) Method and apparatus for scheduling concurrent task
US11188380B2 (en) Method and apparatus for processing task in smart device
CN111045655B (zh) 一种页面渲染的方法、装置、渲染服务器和存储介质
CN106708854B (zh) 数据导出方法和装置
EP3011442B1 (en) Method and apparatus for customized software development kit (sdk) generation
US11016673B2 (en) Optimizing serverless computing using a distributed computing framework
CN110224896B (zh) 一种网络性能数据采集方法、装置及存储介质
CN107729139A (zh) 一种并发获取资源的方法和装置
CN109885624B (zh) 数据处理方法、装置、计算机设备和存储介质
US20190220384A1 (en) Method, device, and computer readable medium for tracing computing system
CN110781180B (zh) 一种数据筛选方法和数据筛选装置
CN108319499B (zh) 任务调度方法及装置
WO2022188578A1 (zh) 一种多个服务共享同一个gpu的方法、系统、设备及介质
CN107643889B (zh) 基于模板引擎的页面渲染方法和装置
CN113722020B (zh) 接口调用方法、装置和计算机可读存储介质
CN110287163A (zh) 安全日志采集解析方法、装置、设备及介质
CN111026634A (zh) 一种接口自动化测试系统、方法、装置及存储介质
CN114372084A (zh) 面向传感流数据的实时处理系统
CN110955604A (zh) 一种信息显示方法、装置、服务器及存储介质
CN112015372B (zh) 一种异构服务的编排方法、处理方法、装置及电子设备
CN113342503A (zh) 实时进度反馈方法、装置、设备及存储介质
JP2009545043A (ja) バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム
CN111949521A (zh) 软件性能测试方法及装置
CN112818183B (zh) 一种数据合成方法、装置、计算机设备和存储介质
CN106301906B (zh) 基于分布式系统的对象配置方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant