CN105069029B - 一种实时etl系统及方法 - Google Patents
一种实时etl系统及方法 Download PDFInfo
- Publication number
- CN105069029B CN105069029B CN201510425219.0A CN201510425219A CN105069029B CN 105069029 B CN105069029 B CN 105069029B CN 201510425219 A CN201510425219 A CN 201510425219A CN 105069029 B CN105069029 B CN 105069029B
- Authority
- CN
- China
- Prior art keywords
- etl
- input data
- data
- node
- network
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000012360 testing method Methods 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims description 80
- 238000009826 distribution Methods 0.000 claims description 54
- 239000000284 extract Substances 0.000 claims description 7
- 239000004744 fabric Substances 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 4
- 241001269238 Data Species 0.000 claims description 3
- 238000011017 operating method Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (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)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种实时ETL系统及方法,包括ETL客户端、分布式数据缓存队列、分布式状态管理机和ETL群集;所述ETL客户端,用于设计ETL流程、测试ETL流程和发布ETL流程;所述分布式数据缓存队列,用于缓存输入数据;所述分布式状态管理机,用于存储系统状态信息;所述ETL群集,用于按行从数据源获取输入数据,并将输入数据缓存到分布式数据缓存队列中,然后对输入数据进行处理。本发明具有很高的效率,能够解决目前ETL技术应用在实时大数据环境下的局限性问题。
Description
技术领域
本发明涉及数据处理技术,特别是涉及一种实时ETL系统及方法。
背景技术
ETL(Extract-Transformation-Loading)即数据的抽取、转换和加载,也叫数据集成,是构建数据仓库的一种重要技术。
传统ETL过程将批量数据从业务数据库等数据源中抽取出来,经过清洗、转换等分析统计处理后,最终按照预先定义好的数据仓库模型将结果加载到数据仓库中。ETL过程通常采用定时任务调度的方式执行,当满足时间条件时,ETL服务器调度执行预先定义好的ETL任务,每次对数据源中的一批数据进行操作,将结果加载到数据仓库中,适用于对原始数据进行定时的批量处理情况,其业务流程如图1所示。
但是,随着电子商务、移动互联网、电信业务的发展,对业务数据分析的时限要求越来越高,出现了一批诸如用户点击流分析、基于位置的服务、实时账单查询等应用,这些应用都要求业务系统中的数据能尽快被后台分析系统感知。传统的ETL技术方案在面对实时大数据分析应用的情况下,其局限性非常明显,主要表现在以下几个方面:
(1)时间片调度方式不能满足实时性要求:传统ETL方案中数据处理任务按时间片调度,即每隔一段时间调度一次任务,对业务系统中的数据进行抽取、转换、加载操作,后台分析系统能否在业务系统的数据发生改变的情况下立即与之同步取决于调度的时间片大小,时间片过大则分析系统同步时延较大,这在时延要求较高的实时分析环境下是不允许的;时间片过小则会导致计算资源浪费。
(2)大数据环境下执行ETL任务效率不高:传统ETL方案中所有任务在特定的ETL服务器上执行,在大数据环境下,单台处理机的执行效率有限,且不易扩展。
(3)可靠性得不到保障:ETL服务器主机或网络连接中断导致所有正在运行ETL任务失败,严重时会导致数据丢失、混乱,这在可靠性要求较高的场景中是不允许的。
发明内容
本发明的目的在于克服现有技术的不足,提供一种实时ETL系统及方法,具有很高的效率,能够解决目前ETL技术应用在实时大数据环境下的局限性问题。
本发明的目的是通过以下技术方案来实现的:一种实时ETL系统,包括ETL客户端、分布式数据缓存队列、分布式状态管理机和ETL群集。
所述ETL客户端,用于设计ETL流程、测试ETL流程和发布ETL流程。
所述分布式数据缓存队列,用于缓存输入数据。
所述分布式状态管理机,用于存储系统状态信息。
所述ETL群集,用于按行从数据源获取输入数据,并将输入数据缓存到分布式数据缓存队列中,然后对输入数据进行处理。
所述系统状态信息包括输入数据的元数据信息和当前的分布式数据缓存队列的队列信息。
所述ETL群集包括多个ETL节点,多个ETL节点组成分布式数据处理ETL网络,分布式数据处理ETL网络包括抽取任务分布式子网络和处理任务分布式子网络。
所述抽取任务分布式子网络,用于按行从数据源中获取输入数据,并将输入数据缓存到分布式数据缓存队列。
所述处理任务分布式子网络,用于对输入数据进行处理和转换,并输出结果数据。
一种实时ETL方法,包括以下步骤:
S1.设计和测试ETL流程,将测试合格的ETL流程以元数据的方式存储为xml文件;
S2.将测试合格的ETL流程构造成能够在ETL群集中运行的分布式数据处理ETL流程,并将该分布式数据处理ETL流程发送到ETL群集;
S3.ETL群集中的多个ETL节点组成分布式数据处理ETL网络,构建每个数据源的分布式数据缓存队列,按行从数据源中获取输入数据,将输入数据发送到该数据源对应的分布式数据缓存队列,将该分布式数据缓存队列的队列信息和该分布式数据缓存队列对应数据源中输入数据的元数据信息发送到分布式状态管理机;
S4.从分布式数据缓存队列中抽取输入数据,并使输入数据流经分布式数据处理ETL网络中的处理任务分布式子网络中的所有ETL节点;
S5.每条进入分布式数据处理ETL网络中的输入数据形成一个消息树;
S6.判断每条输入数据是否在分布式数据处理ETL网络中被完全处理:
若存在输入数据未被完全处理,则从分布式数据缓存队列中重新抽取该输入数据,将该输入数据发送到分布式数据处理ETL网络中,重新处理;
若所有输入数据均被完全处理,输出处理完成后的结果数据。
所述步骤S2包括以下子步骤:
S21.检测ETL流程的DAG图中入度为0的ETL转换单元,并将该入度为0的ETL转换单元归类到输入步骤节点集合;检测ETL的DAG图中出度为0的ETL转换单元,并将该出度为0的ETL转换单元归类到输出步骤节点集合;将ETL流程的DAG图中除入度为0、出度为0以外的ETL转换单元归类到中间处理步骤节点集合;
S22.从步骤S1中的xml文件中读取每个ETL转换单元的元数据,并构建每个ETL转换单元的元数据对象;
S23.根据输入步骤节点集合中各ETL转换单元的元数据对象和ETL流程的DAG图中各ETL转换单元间的连接关系构成抽取任务分布式子网络;
S24.根据中间处理步骤节点集合中各ETL转换单元的元数据对象和ETL流程的DAG图中各ETL转换单元间的连接关系构成处理任务分布式子网络。
所述步骤S3还包括:将步骤S22中的元数据存储在分布式数据缓存队列中。
所述步骤S6中判断输入数据是否被处理完成的方式为:为输入数据的消息树分配一个变量,并将该变量均初始化为0,待所述输入数据经过处理任务分布式子网络处理后,判断所述变量是否为0。
若该变量为0,则该输入数据被完全处理。
若该变量不为0,则该输入数据未被完全处理。
所述判断输入数据是否被处理完成的方式包括以下子步骤:
S61.定义处理任务分布式子网络中任意一个ETL节点为k,接收到的输入数据为A,则ETL节点k为输入数据A生成一个随机的64位标识符SA,并将标识符SA保存到该处理任务分布式子网络的标识序列中,为ETL节点k的消息树分配一个64位的变量result,并将该变量result均初始化为0,然后将变量result通过公式(1)与标识符SA进行异或运算:
result=SA XOR result 公式(1)
S62.若处理任务分布式子网络中ETL节点k之后无用于对输入数据A进行处理的ETL节点,则ETL节点k处理完成后,变量result再次通过公式(1)与标识符SA进行异或运算,跳转步骤S63;
若处理任务分布式子网络中ETL节点k之后有用于对输入数据A进行处理的ETL节点,则ETL节点k生成输入数据A的一个或多个中间输出值{A1,A2,A3,…,AN},并将中间输出值{A1,A2,A3,…,AN}发送给后续ETL节点,每个AN表示ETL节点k的一个中间输出值,为每个中间输出值AN生成一个随机的64位标识符并将标识符记录到该处理任务分布式子网络的标识序列中,变量result的值通过公式(2)进行更新:
公式(2)
ETL节点k处理完成后,变量result再次与标识符SA通过公式(1)进行异或运算;
S63.每过间隔时间t检测一次变量result的值:
若变量result的值为0,则输入数据A被完全处理;
若变量result的值不为0,则经过超时时长p后再次检测该result的值,若该变量result的值仍不为0,则输入数据A未被完全处理。
步骤S4中每个ETL节点对输入数据进行处理,ETL节点对输入数据进行处理包括以下步骤:
S41.处理任务分布式子网络中的任意一个ETL节点在自己的输入缓存区中获取该ETL节点的输入数据和输入数据的元数据信息;
S42.所述ETL节点根据自己的节点元数据信息中描述的操作步骤对输入数据进行处理,并修改输入数据的元数据信息,生成该ETL节点的输出数据的元数据信息;
S43.所述ETL节点将自己的输出数据和输出数据的元数据信息打包后发给处理任务分布式子网络中后续ETL节点。
所述ETL节点一直保持运行状态,除非主动停止该ETL节点。
本发明的有益效果是:
(1)本发明中ETL群集节点一直保持运行状态,输入数据到来后能够很快被处理;
(2)输入数据缓存到分布式数据缓存队列中,ETL群集节点直接从分布式数据缓存队列中获取新数据,ETL群集节点从而能够获取实时更新的数据;
(3)在分布式数据处理ETL网络中进行数据的流处理,每秒支持百万级数据的流量,具有很高的数据吞吐量;
(4)分布式数据缓存队列将输入数据分散存储在ETL群集中的多个ETL群集节点上,降低了ETL系统中单个ETL群集节点的访问瓶颈问题;
(5)分布式数据处理ETL网络中某个ETL群集节点失效导致输入数据处理失败后,会重新将该输入数据网送到分布式数据处理ETL网络中,避免了因单个ETL群集节点失效导致ETL系统整个任务失败;
(6)分布式数据缓存队列中,队列分布在多个节点之上,且每个节点在ETL群集中均有备份,避免了因某个节点失效导致分布式数据缓存队列不可用;
(7)ETL系统各部件之间的状态管理由分布式状态管理机完成,状态信息分布在ETL群集的多个ETL群集节点上,且每个ETL群集节点的数据在ETL群集中均有备份,避免了因单个ETL群集节点失效造成的状态信息不可用。
附图说明
图1为现有的ETL技术的处理流程;
图2为本发明一种实时ETL系统的结构框图;
图3为本发明一种实时ETL方法的流程图;
图4为ETL执行流程完全性检测示意图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
如图2所示,一种实时ETL系统,包括ETL客户端、分布式数据缓存队列、分布式状态管理机和ETL群集。
所述ETL客户端,用于设计ETL流程、测试ETL流程和发布ETL流程。ETL客户端还用于创建每个数据源的分布式数据缓存队列,发送ETL流程的输入数据的元数据信息和分布式数据缓存队列信息到分布式状态管理机。
所述分布式数据缓存队列,用于缓存输入数据。分布式数据缓存队列用于缓存一端时间期限内的实时输入数据,当发生ETL节点失效时,ETL流程可以从该分布式数据缓存队列中重新获取输入数据。
所述分布式状态管理机,用于存储系统状态信息。分布式状态管理机还用于ETL系统运行时各部件之间的状态信息交换,所述系统状态信息包括输入数据的元数据和当前的分布式数据缓存队列。
所述ETL群集,用于按行从数据源获取输入数据,并将输入数据缓存到分布式数据缓存队列中,然后对输入数据进行处理。
所述ETL群集包括多个ETL节点,多个ETL节点组成分布式数据处理ETL网络,分布式数据处理ETL网络包括抽取任务分布式子网络和处理任务分布式子网络。
所述抽取任务分布式子网络,用于按行从数据源中获取输入数据,并将输入数据缓存到分布式数据缓存队列。
所述处理任务分布式子网络,用于对输入数据进行处理和转换,并输出结果数据。
如图3所示,一种实时ETL方法,包括以下步骤:
S1.设计和测试ETL流程,将测试合格的ETL流程以元数据的方式存储为xml文件。
ETL客户端有可视化的界面用来设计和测试ETL流程,测试ETL流程是在ETL客户端所在的机器上模拟运行该ETL流程,用于测试所设计的ETL流程能否按预期设想运行并得到正确的结果。
将测试好的ETL流程以元数据的方式存储为xml文件,具体的元数据有:转换中每个步骤所做的工作、每个步骤输出行的元数据以及转换的数据库连接。
S2.将测试合格的ETL流程构造成能够在ETL群集中运行的分布式数据处理ETL流程,并将该分布式数据处理ETL流程发送到ETL群集。
所述ETL流程包括一个或多个输入步骤、中间处理步骤(即转换步骤)和输出步骤。ETL流程运行时按行从数据源中获取输入数据,经过中间步骤的处理,将结果数据通过输出步骤存储到目标仓库中。
本发明中输入数据从分布式数据缓存队列中获取,一项简单的ETL流程中包括至少一个分布式数据缓存队列,输入数据从ETL系统外部被推送到分布式数据缓存队列中。输入数据的元数据信息包括行的字段名、类型和精度信息。
输入步骤获取输入数据后,将输入数据流到中间处理步骤(转换步骤),中间处理步骤包括多种不同的类型,如字段查询、记录行合并、字段添加或修改、记录行拆分等。每个中间处理步骤代表对行的一种操作。多个中间处理步骤连接起来就可以完成复杂的数据处理任务。输出步骤通常包括将结果数据输出到数据库表、日志文件、数据仓库等目标存储中。输入步骤、中间处理步骤和输出步骤一起构成了数据流的DAG网络。
所述步骤S2包括以下子步骤:
S21.检测ETL流程的DAG图中入度为0的ETL转换单元,并将该入度为0的ETL转换单元归类到输入步骤节点集合;检测ETL的DAG图中出度为0的ETL转换单元,并将该出度为0的ETL转换单元归类到输出步骤节点集合;将ETL流程的DAG图中除入度为0、出度为0以外的ETL转换单元归类到中间处理步骤节点集合;
S22.从步骤S1中的xml文件中读取每个ETL转换单元的元数据,并构建每个ETL转换单元的元数据对象;
S23.根据输入步骤节点集合中各ETL转换单元的元数据对象和ETL流程的DAG图中各ETL转换单元间的连接关系构成抽取任务分布式子网络;
S24.根据中间处理步骤节点集合中各ETL转换单元的元数据对象和ETL流程的DAG图中各ETL转换单元间的连接关系构成处理任务分布式子网络。
S3.ETL群集中的多个ETL节点组成分布式数据处理ETL网络,构建每个数据源的分布式数据缓存队列,按行从数据源中获取输入数据,将输入数据发送到该数据源对应的分布式数据缓存队列,将该分布式数据缓存队列的队列信息和该分布式数据缓存队列对应数据源中输入数据的元数据信息发送到分布式状态管理机。
所述步骤S3还包括:将步骤S22中的元数据存储在分布式数据缓存队列中。
S4.从分布式数据缓存队列中抽取输入数据,并使输入数据流经分布式数据处理ETL网络中的处理任务分布式子网络中的所有ETL节点。
步骤S4中每个ETL节点对输入数据进行处理,ETL节点对输入数据进行处理包括以下步骤:
S41.处理任务分布式子网络中的任意一个ETL节点在自己的输入缓存区中获取该ETL节点的输入数据和输入数据的元数据信息;
S42.所述ETL节点根据自己的节点元数据信息中描述的操作步骤对输入数据进行处理,并修改输入数据的元数据信息,生成该ETL节点的输出数据的元数据信息;
S43.所述ETL节点将自己的输出数据和输出数据的元数据信息打包后发给处理任务分布式子网络中后续ETL节点。
S5.每条进入分布式数据处理ETL网络中的输入数据形成一个消息树;
S6.判断每条输入数据是否在分布式数据处理ETL网络中被完全处理:
若存在输入数据未被完全处理,则从分布式数据缓存队列中重新抽取该输入数据,将该输入数据发送到分布式数据处理ETL网络中,重新处理;
若所有输入数据均被完全处理,输出处理完成后的结果数据。
所述步骤S6中判断输入数据是否被处理完成的方式为:为输入数据的消息树分配一个变量,并将该变量均初始化为0,待所述输入数据经过处理任务分布式子网络处理后,判断所述变量是否为0:
若该变量为0,则该输入数据被完全处理;
若该变量不为0,则该输入数据未被完全处理。
所述判断输入数据是否被处理完成的方式包括以下子步骤:
S61.定义处理任务分布式子网络中任意一个ETL节点k,接收到的输入数据为A,则ETL节点k为输入数据A生成一个随机的64位标识符SA,并将标识符SA保存到该处理任务分布式子网络的标识序列中,如图4所示,为ETL节点k的消息树分配一个64位的变量result,并将该变量result均初始化为0,然后将变量result通过公式(1)与标识符SA进行异或运算:
result=SA XOR result 公式(1)
S62.若处理任务分布式子网络中ETL节点k之后无用于对输入数据A进行处理的ETL节点,如图4(a)所示,则ETL节点k处理完成后,变量result再次通过公式(1)与标识符SA进行异或运算,跳转步骤S63;
若处理任务分布式子网络中ETL节点k之后有用于对输入数据A进行处理的ETL节点,如图4(b)所示,则ETL节点k生成输入数据A的一个或多个中间输出值{A1,A2,A3,…,AN},并将中间输出值{A1,A2,A3,…,AN}发送给后续ETL节点,每个AN表示ETL节点k的一个中间输出值,为每个中间输出值AN生成一个随机的64位标识符如图4(c)所示,并将标识符记录到该处理任务分布式子网络的标识序列中,变量result的值通过公式(2)进行更新:
公式(2)
ETL节点k处理完成后,变量result再次与标识符SA通过公式(1)进行异或运算;
S63.每过间隔时间t检测一次变量result的值:
若变量result的值为0,则输入数据A被完全处理;
若变量result的值不为0,则经过超时时长p后再次检测该result的值,若该变量result的值仍不为0,则输入数据A未被完全处理;间隔时间t为20毫秒~40毫秒。超时时长为20秒~30秒。
所述ETL节点一直保持运行状态,除非主动停止该ETL节点。所述ETL节点用于运行对应的ETL转换单元。
Claims (9)
1.一种实时ETL系统,其特征在于:包括ETL客户端、分布式数据缓存队列、分布式状态管理机和ETL群集;
所述ETL客户端,用于设计ETL流程、测试ETL流程和发布ETL流程,还用于创建每个数据源的分布式数据缓存队列,发送ETL流程的输入数据的元数据信息和分布式数据缓存队列信息到分布式状态管理机;
所述分布式数据缓存队列,用于缓存输入数据;分布式数据缓存队列用于缓存一段时间期限内的实时输入数据,当发生ETL节点失效时,ETL流程可以从该分布式数据缓存队列中重新获取输入数据;
所述分布式状态管理机,用于存储系统状态信息,还用于ETL系统运行时各部件之间的状态信息交换,所述系统状态信息包括输入数据的元数据和当前的分布式数据缓存队列;
所述ETL群集,用于按行从数据源获取输入数据,并将输入数据缓存到分布式数据缓存队列中,然后对输入数据进行处理。
2.根据权利要求1所述的一种实时ETL系统,其特征在于:所述ETL群集包括多个ETL节点,多个ETL节点组成分布式数据处理ETL网络,分布式数据处理ETL网络包括抽取任务分布式子网络和处理任务分布式子网络;
所述抽取任务分布式子网络,用于按行从数据源中获取输入数据,并将输入数据缓存到分布式数据缓存队列;
所述处理任务分布式子网络,用于对输入数据进行处理和转换,并输出结果数据。
3.一种实时ETL方法,其特征在于:包括以下步骤:
S1.设计和测试ETL流程,将测试合格的ETL流程以元数据的方式存储为xml文件;
S2.将测试合格的ETL流程构造成能够在ETL群集中运行的分布式数据处理ETL流程,并将该分布式数据处理ETL流程发送到ETL群集;
S3.ETL群集中的多个ETL节点组成分布式数据处理ETL网络,构建每个数据源的分布式数据缓存队列,按行从数据源中获取输入数据,将输入数据发送到该数据源对应的分布式数据缓存队列,将该分布式数据缓存队列的队列信息和该分布式数据缓存队列对应数据源中输入数据的元数据信息发送到分布式状态管理机;
S4.从分布式数据缓存队列中抽取输入数据,并使输入数据流经分布式数据处理ETL网络中的处理任务分布式子网络中的所有ETL节点;
S5.每条进入分布式数据处理ETL网络中的输入数据形成一个消息树;
S6.判断每条输入数据是否在分布式数据处理ETL网络中被完全处理:
若存在输入数据未被完全处理,则从分布式数据缓存队列中重新抽取该输入数据,将该输入数据发送到分布式数据处理ETL网络中,重新处理;
若所有输入数据均被完全处理,输出处理完全后的结果数据。
4.根据权利要求3所述的一种实时ETL方法,其特征在于:所述步骤S2包括以下子步骤:
S21.检测ETL流程的DAG图中入度为0的ETL转换单元,并将该入度为0的ETL转换单元归类到输入步骤节点集合;检测ETL的DAG图中出度为0的ETL转换单元,并将该出度为0的ETL转换单元归类到输出步骤节点集合;将ETL流程的DAG图中除入度为0、出度为0以外的ETL转换单元归类到中间处理步骤节点集合;
S22.从步骤S1中的xml文件中读取每个ETL转换单元的元数据,并构建每个ETL转换单元的元数据对象;
S23.根据输入步骤节点集合中各ETL转换单元的元数据对象和ETL流程的DAG图中各ETL转换单元间的连接关系构成抽取任务分布式子网络;
S24.根据中间处理步骤节点集合中各ETL转换单元的元数据对象和ETL流程的DAG图中各ETL转换单元间的连接关系构成处理任务分布式子网络。
5.根据权利要求4所述的一种实时ETL方法,其特征在于:所述步骤S3还包括:将步骤S22中的元数据存储在分布式数据缓存队列中。
6.根据权利要求3所述的一种实时ETL方法,其特征在于:所述步骤S6中判断输入数据是否被处理完全的方式为:为输入数据的消息树分配一个变量,并将该变量均初始化为0,待所述输入数据经过处理任务分布式子网络处理后,判断所述变量是否为0:
若该变量为0,则该输入数据被完全处理;
若该变量不为0,则该输入数据未被完全处理。
7.根据权利要求6所述的一种实时ETL方法,其特征在于:所述判断输入数据是否被处理完全的方式包括以下子步骤:
S61.定义处理任务分布式子网络中任意一个ETL节点为k,接收到的输入数据为A,则ETL节点k为输入数据A生成一个随机的64位标识符SA,并将标识符SA保存到该处理任务分布式子网络的标识序列中,为ETL节点k的消息树分配一个64位的变量result,并将该变量result均初始化为0,然后将变量result通过公式(1)与标识符SA进行异或运算:
result=SA XOR result 公式(1)
S62.若处理任务分布式子网络中ETL节点k之后无用于对输入数据A进行处理的ETL节点,则ETL节点k处理完成后,变量result再次通过公式(1)与标识符SA进行异或运算,跳转步骤S63;
若处理任务分布式子网络中ETL节点k之后有用于对输入数据A进行处理的ETL节点,则ETL节点k生成输入数据A的一个或多个中间输出值{A1,A2,A3,…,AN},并将中间输出值{A1,A2,A3,…,AN}发送给后续ETL节点,每个AN表示ETL节点k的一个中间输出值,为每个中间输出值AN生成一个随机的64位标识符并将标识符记录到该处理任务分布式子网络的标识序列中,变量result的值通过公式(2)进行更新:
ETL节点k处理完成后,变量result再次与标识符SA通过公式(1)进行异或运算;
S63.每过间隔时间t检测一次变量result的值:
若变量result的值为0,则输入数据A被完全处理;
若变量result的值不为0,则经过超时时长p后再次检测该result的值,若该变量result的值仍不为0,则输入数据A未被完全处理。
8.根据权利要求3所述的一种实时ETL方法,其特征在于:步骤S4中每个ETL节点对输入数据进行处理,ETL节点对输入数据进行处理包括以下步骤:
S41.处理任务分布式子网络中的任意一个ETL节点在自己的输入缓存区中获取该ETL节点的输入数据和输入数据的元数据信息;
S42.所述ETL节点根据自己的节点元数据信息中描述的操作步骤对输入数据进行处理,并修改输入数据的元数据信息,生成该ETL节点的输出数据的元数据信息;
S43.所述ETL节点将自己的输出数据和输出数据的元数据信息打包后发给处理任务分布式子网络中后续ETL节点。
9.根据权利要求3所述的一种实时ETL方法,其特征在于:所述ETL节点一直保持运行状态,除非主动停止该ETL节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510425219.0A CN105069029B (zh) | 2015-07-17 | 2015-07-17 | 一种实时etl系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510425219.0A CN105069029B (zh) | 2015-07-17 | 2015-07-17 | 一种实时etl系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105069029A CN105069029A (zh) | 2015-11-18 |
CN105069029B true CN105069029B (zh) | 2019-01-29 |
Family
ID=54498401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510425219.0A Expired - Fee Related CN105069029B (zh) | 2015-07-17 | 2015-07-17 | 一种实时etl系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105069029B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282356A (zh) * | 2021-06-16 | 2021-08-20 | 泰瑞数创科技(北京)有限公司 | 一种实时执行本地分布式分析的方法、系统及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101571B (zh) * | 2018-07-17 | 2020-12-08 | 新华三大数据技术有限公司 | Etl设计过程的处理方法、装置和设备 |
CN109800226A (zh) * | 2018-12-25 | 2019-05-24 | 北京明略软件系统有限公司 | 一种数据治理中的任务管理方法及装置 |
CN111082976B (zh) * | 2019-12-02 | 2022-07-29 | 东莞数汇大数据有限公司 | 一种支持etl任务调度可视化的方法 |
CN112416752B (zh) * | 2020-11-02 | 2023-06-06 | 四川新网银行股份有限公司 | 一种基于数据仓库etl分层测试的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317928A (zh) * | 2014-10-31 | 2015-01-28 | 北京思特奇信息技术股份有限公司 | 一种基于分布式数据库的业务etl方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9811574B2 (en) * | 2013-11-11 | 2017-11-07 | Work4Labs, Inc. | Extract Transform Load (ETL) applications for job matching |
-
2015
- 2015-07-17 CN CN201510425219.0A patent/CN105069029B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317928A (zh) * | 2014-10-31 | 2015-01-28 | 北京思特奇信息技术股份有限公司 | 一种基于分布式数据库的业务etl方法及系统 |
Non-Patent Citations (3)
Title |
---|
ETL多点缓存技术的数据仓库系统构建;邵天会 等;《河南科学》;20121130;第30卷(第11期);第1601~1604页 |
一种ETL与数据清洗相结合的分布式数据集成工具的研究与实现;陈雪峰;《中国优秀硕士学位论文全文数据库信息科技辑》;20150615(第06期);第I138-368页 |
公共数据中心的ETL系统设计与实现;赵俊 等;《计算机应用与软件》;20111031;第28卷(第10期);第167~190页 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282356A (zh) * | 2021-06-16 | 2021-08-20 | 泰瑞数创科技(北京)有限公司 | 一种实时执行本地分布式分析的方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105069029A (zh) | 2015-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105069029B (zh) | 一种实时etl系统及方法 | |
US7908160B2 (en) | System and method for producing audit trails | |
CN107103064B (zh) | 数据统计方法及装置 | |
CN110908641B (zh) | 基于可视化的流计算平台、方法、设备和存储介质 | |
CN104065741A (zh) | 数据采集系统和数据采集方法 | |
CN110581773A (zh) | 一种自动化服务监控与报警管理系统 | |
Sang et al. | Precise, scalable, and online request tracing for multitier services of black boxes | |
JP2015528612A (ja) | 分散システムにおいてユーザリクエストの実行を監視するための方法及びシステム | |
CN109471845A (zh) | 日志管理方法、服务器及计算机可读存储介质 | |
CN112000350B (zh) | 一种动态规则更新方法、装置及存储介质 | |
WO2017092582A1 (zh) | 一种数据处理方法和装置 | |
CN111124830B (zh) | 一种微服务的监控方法及装置 | |
US11892976B2 (en) | Enhanced search performance using data model summaries stored in a remote data store | |
US11294740B2 (en) | Event to serverless function workflow instance mapping mechanism | |
CN111314158B (zh) | 大数据平台监控方法、装置及设备、介质 | |
CN105989163A (zh) | 数据实时处理方法及系统 | |
US20180143897A1 (en) | Determining idle testing periods | |
CN114356692A (zh) | 一种应用监控链路的可视化处理方法、装置及存储介质 | |
CN109409948B (zh) | 交易异常检测方法、装置、设备及计算机可读存储介质 | |
CN111130882A (zh) | 网络设备的监控系统及方法 | |
Iuhasz et al. | Monitoring of exascale data processing | |
CN113918636A (zh) | 一种基于etl的数据处理量分析方法 | |
Kim et al. | Optimizing Logging and Monitoring in Heterogeneous Cloud Environments for IoT and Edge Applications | |
CN107066366B (zh) | 面向物联网的复杂事件处理引擎状态监控与灾难恢复方法 | |
Valerio et al. | Capturing workflow event data for monitoring, performance analysis, and management of scientific workflows |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190129 |
|
CF01 | Termination of patent right due to non-payment of annual fee |