CN115794930B - 一种可扩展的多区块链数据etl处理***及方法 - Google Patents
一种可扩展的多区块链数据etl处理***及方法 Download PDFInfo
- Publication number
- CN115794930B CN115794930B CN202310079786.XA CN202310079786A CN115794930B CN 115794930 B CN115794930 B CN 115794930B CN 202310079786 A CN202310079786 A CN 202310079786A CN 115794930 B CN115794930 B CN 115794930B
- Authority
- CN
- China
- Prior art keywords
- data
- block
- etl
- module
- chain
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种可扩展的多区块链数据ETL***及方法。目前市场上的区块链种类繁多,且各区块链的数据格式都不尽相同,因此针对单一区块链设计的ETL工具或者数据服务,例如区块链数据浏览器Etherscan,仅仅对以太坊进行了支持,无法目前多链或跨链应用需要同时处理或访问多条区块链的需求。该***针对性地解决了目前区块链种类繁多、区块链数据格式各异的情况下,多链数据处理、数据清理、数据访问、数据同步、数据分析难的问题,它的可扩展的多链数据适配器不仅可以满足不同区块链数据获取的需求,同时数据流下游可自定义的Handler(处理器)也使得用户可以实现包括ETL,数据同步,数据分析等功能。
Description
技术领域
本发明涉及区块链及大数据处理技术领域,尤其涉及一种可扩展的多区块链数据ETL处理***及方法。
背景技术
目前区块链种类繁多,且各区块链的数据格式都不尽相同,因此针对单一区块链设计的ETL工具或者数据服务,例如区块链数据浏览器Etherscan和去中心化数据处理工具The Graph等,都仅对以太坊进行了支持,无法满足目前多链或跨链应用需要同时处理或访问多条区块链的需求。目前行业内并没有一套通用的、可扩展的多链数据ETL***。所以很多区块链应用开发者,都不得不花费大量人力物力去自己构建数据ETL管道。
发明内容
鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种可扩展的多区块链数据ETL处理***及方法,以解决现有技术的不足。
为实现上述目的,本发明提供了一种可扩展的多区块链数据ETL处理***,包括作业调度模块、多链ETL模块、数据存储模块、消息平台模块,所述作业调度模块、多链ETL模块相连接,所述多链ETL模块还与数据存储模块、消息平台模块相连接,所述数据存储模块、消息平台模块连接,其中:
作业调度模块,用于持续检查每个集成区块链的最新区块高度和最后一个成功处理的区块,如果最后一个成功处理的区块落后于最新区块高度,将作业分派给多链ETL模块,以从指定区块链同步数据;
多链ETL模块,用于从区块链节点API中获取特定区块范围的区块链数据,然后提取交易、事件和区块元数据,并将交易、事件和区块元数据转化为统一的格式后存储,通知服务通知下游事件处理器已处理的事件和交易;最后,校验审计服务根据区块元数据中的信息验证已处理的数据的校验;
数据存储模块,用于选择可扩展的NoSQL数据库作为TXN存储和事件存储的底层数据库,实现快速查询,并容纳来自多个区块链的不断增长的数据规模;
消息平台模块,用于将处理后的数据分配给下游处理程序。
进一步的,所述多链ETL模块中,区块链数据适配器从区块链节点API中获取特定区块范围的区块链数据。
进一步的,所述区块链数据适配器包括以太坊数据适配器、福洛链数据适配器、BNB链数据适配器、Polygon链数据适配器。
进一步的,所述多链ETL模块将交易、事件和区块元数据转化为统一的格式后,通过数据持久服务将交易、事件和区块元数据保存到数据存储模块中。
进一步的,所述多链ETL模块的的数据校验验证结果在作业调度模块的任务审计数据库中更新。
进一步的,所述数据存储模块为一个可扩展的多链交易存储和事件存储模块。
进一步的,所述数据存储模块中存储的数据都带有HTTP查询API。
进一步的,所述消息平台模块是一个一对多的pub/sub平台。
本发明还提供一种可扩展的多区块链数据ETL处理方法,包括以下步骤:
步骤1.配置自定义的区块链数据适配器:按要求实现区块链数据适配器的相关接口,使得适配器将区块链数据转换成结构化数据;
步骤2.激活区块链适配器任务:适配器实现模板的接口后,用户将所述适配器通过任务调度模块进行激活,适配器即把目标区块链的数据进行ETL操作,用户在同步区块链审计表中观测将区块内的信息通过ETL同步至数据仓库和下游的进度;
步骤3.实现下游事件处理器:通过实现下游事件处理器接口的方式,将即时的区块链数据信息同步到应用中;
步骤4.查询结构化数据:调用存储模块附带的查询API,获取区块链上的结构化数据;
步骤5. ETL任务审计及预警:通过查询任务调度模块中的任务审计数据库,查看区块同步及ETL过程是否存在异常,在同步出现异常时对用户进行预警。
进一步的,所述异常包括遗漏、缺口、校验失败。
本发明的有益效果是:
本发明通过可自定义适配器的方式,对多链数据ETL提供了支持。同时本发明中的消息平台和下游可自定义的事件处理器,可以满足用户构建不同场景的区块链应用的需求。它的可扩展的多链数据适配器不仅可以满足不同区块链数据获取的需求,同时数据流下游可自定义的Handler(处理器)也使得用户可以实现包括ETL, 数据同步,数据分析等功能。它可以帮助开发者快速构建多链数据服务,节省开发者的时间和经济成本和运维负担。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的***原理框图。
图2是本发明的方法流程图。
具体实施方式
如图1所示,本发明公开了一种可扩展的多区块链数据ETL处理***,包括作业调度模块、多链ETL模块、数据存储模块、消息平台模块,所述作业调度模块、多链ETL模块相连接,所述多链ETL模块还与数据存储模块、消息平台模块相连接,所述数据存储模块、消息平台模块连接,其中:
作业调度模块:作业调度模块持续检查每个集成区块链的最新区块高度和最后一个成功处理的区块。如果最后一个成功处理的区块落后于最新区块高度,它将作业分派给多链ETL模块,以从指定区块链同步数据。
多链ETL模块:在多链ETL模块中,区块链数据适配器从区块链节点API中获取特定区块范围的区块链数据,然后提取交易(TXN)、事件和区块元数据,并将其转化为统一的格式。数据持久服务随后将TXN数据和事件数据保存到数据存储中,以便进一步查询。接下来,通知服务发送消息,通知下游已处理的事件和TXN。最后,校验审计服务将根据区块元数据中的信息,验证已处理数据的校验,以确保区块中的所有数据都已处理。验证结果会在作业调度模块的任务审计数据库中更新,这样调度员就可以捡起失败的作业来重新运行。
整个ETL过程是同位素和可并行的,所以它可以很容易地扩大规模,以赶上并同步到最新的区块。此外,与新的区块链集成只需要最小的区块链数据适配器的开发,而不是建立一个完整的ETL管道。为各种区块链提供内置的数据适配器实现,内置区块链数据适配器包括以太坊数据适配器、福洛链数据适配器、BNB链数据适配器、Polygon链数据适配器。通过适配器或其他等效模块,完成对多条不同的区块链数据的提取、转换、加载的过程。
数据存储模块:本发明提出了一个可扩展的多链交易(TXN)存储和事件存储设计,选择可扩展的NoSQL数据库(例如MongoDB)作为TXN存储和事件存储的底层数据库,以实现快速查询。并且通过其良好的可扩展性开容纳来自多个区块链的不断增长的数据规模。TXN存储和事件存储分别以{blockchainId}:{txHash}和{blockchainId}:{eventId}为主键,以方便低延迟的键值搜索。我们还添加了blockNumber和contractId的索引用于快速查询。此外,我们还使用分布式对象存储(例如Minio)来存储完整的区块数据,其路径以{blockchainId}:{blockNumber}为前缀,用于导出和分析目的。所有的存储都带有HTTP查询API,方便下游应用更容易地检索已处理的链上数据。
消息平台模块:消息平台是一个一对多的pub/sub平台,用于将处理后的数据分配给下游处理程序。开发人员可以编写的自定义事件处理器(event handler),以构建实时的区块链应用。
本发明通过适配器或其他等效模块,完成对多条不同的区块链数据的提取、转换、加载的过程。在ETL完成后,该***会通过校验和(checksum)或其他等价方式,保证区块内所有信息均被执行过完整的ETL过程。完整性校验的结果会在区块审计数据库保内永久保存。在ETL完成后,***会将部分经过适配器转换而得到的结构化数据存储至数据流平台的数据仓库中,该数据仓库由多个子数据仓库组成。其中包括但不限于区块全量原始信息、区块元信息仓库、交易信息仓库、事件信息仓库、用户信息仓库、同质化代币信息仓库和非同质化代币信息仓库等。用户可以通过调用这些仓库的查询接口获取即时的区块链数据信息等。
如图2所示,本发明还提供一种可扩展的多区块链数据ETL处理方法,包括以下步骤:
步骤1.配置自定义的区块链数据适配器:按要求实现区块链数据适配器的相关接口,使得适配器将区块链数据转换成结构化数据;
步骤2.激活区块链适配器任务:适配器实现模板的接口后,用户将所述适配器通过任务调度模块进行激活,适配器即把目标区块链的数据进行ETL操作,用户在同步区块链审计表中观测将区块内的信息通过ETL同步至数据仓库和下游的进度;
步骤3.实现下游事件处理器:通过实现下游事件处理器接口的方式,将即时的区块链数据信息同步到应用中;
步骤4.查询结构化数据:调用存储模块附带的查询API,获取区块链上的结构化数据;
步骤5. ETL任务审计及预警:通过查询任务调度模块中的任务审计数据库,查看区块同步及ETL过程是否存在异常,在同步出现异常时对用户进行预警。所述异常包括遗漏、缺口、校验失败。
上述步骤可以在不同区块链上应用,达到多链适配的效果。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (7)
1.一种可扩展的多区块链数据ETL处理***,其特征在于,包括作业调度模块、多链ETL模块、数据存储模块、消息平台模块,所述作业调度模块、多链ETL模块相连接,所述多链ETL模块还与数据存储模块、消息平台模块相连接,所述数据存储模块、消息平台模块连接,其中:
作业调度模块,用于持续检查每个集成区块链的最新区块高度和最后一个成功处理的区块,如果最后一个成功处理的区块落后于最新区块高度,将作业分派给多链ETL模块,以从指定区块链同步数据;
多链ETL模块,用于从区块链节点API中获取特定区块范围的区块链数据,然后提取交易、事件和区块元数据,并将交易、事件和区块元数据转化为统一的格式后存储,通知服务通知下游事件处理器已处理的事件和交易;最后,校验审计服务根据区块元数据中的信息验证已处理的数据的校验;
所述多链ETL模块中,区块链数据适配器从区块链节点API中获取特定区块范围的区块链数据;所述区块链数据适配器包括但不限于以太坊数据适配器、福洛链数据适配器、BNB链数据适配器、Polygon链数据适配器;所述多链ETL模块将交易、事件和区块元数据转化为统一的格式后,通过数据持久服务将交易、事件和区块元数据保存到数据存储模块中;
数据存储模块,用于选择可扩展的NoSQL数据库作为TXN存储和事件存储的底层数据库,实现快速查询,并容纳来自多个区块链的不断增长的数据规模;
消息平台模块,用于将处理后的数据分配给下游事件处理器。
2.如权利要求1所述的一种可扩展的多区块链数据ETL处理***,其特征在于:所述多链ETL模块的数据校验验证结果在作业调度模块的任务审计数据库中更新。
3.如权利要求1所述的一种可扩展的多区块链数据ETL处理***,其特征在于:所述数据存储模块为一个可扩展的多链交易存储和事件存储模块。
4.如权利要求3所述的一种可扩展的多区块链数据ETL处理***,其特征在于:所述数据存储模块中存储的数据都带有HTTP查询API。
5.如权利要求1所述的一种可扩展的多区块链数据ETL处理***,其特征在于:所述消息平台模块是一个一对多的pub/sub平台。
6.一种应用于如权利要求1-5任一项所述的可扩展的多区块链数据ETL处理***的方法,其特征在于,包括以下步骤:
步骤1.配置自定义的区块链数据适配器:按要求实现区块链数据适配器的相关接口,使得适配器将区块链数据转换成结构化数据;
步骤2.激活区块链适配器任务:适配器实现模板的接口后,用户将所述适配器通过任务调度模块进行激活,适配器即把目标区块链的数据进行ETL操作,用户在同步区块链审计表中观测将区块内的信息通过ETL同步至数据仓库和下游的进度;
步骤3.实现下游事件处理器:通过实现下游事件处理器接口的方式,将即时的区块链数据信息同步到应用中;
步骤4.查询结构化数据:调用存储模块附带的查询API,获取区块链上的结构化数据;
步骤5.ETL任务审计及预警:通过查询任务调度模块中的任务审计数据库,查看区块同步及ETL过程是否存在异常,在同步出现异常时对用户进行预警。
7.如权利要求6所述的方法,其特征在于,所述异常包括遗漏、缺口、校验失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310079786.XA CN115794930B (zh) | 2023-02-08 | 2023-02-08 | 一种可扩展的多区块链数据etl处理***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310079786.XA CN115794930B (zh) | 2023-02-08 | 2023-02-08 | 一种可扩展的多区块链数据etl处理***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115794930A CN115794930A (zh) | 2023-03-14 |
CN115794930B true CN115794930B (zh) | 2023-04-18 |
Family
ID=85430424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310079786.XA Active CN115794930B (zh) | 2023-02-08 | 2023-02-08 | 一种可扩展的多区块链数据etl处理***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794930B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383754A (zh) * | 2016-09-19 | 2017-02-08 | 北京众享比特科技有限公司 | 一种基于区块链技术的数据库备份、恢复方法和*** |
CN107463709A (zh) * | 2017-08-21 | 2017-12-12 | 北京奇艺世纪科技有限公司 | 一种基于多数据源的etl处理方法及装置 |
CN110069564B (zh) * | 2017-08-23 | 2021-02-12 | 杭州嘉楠耘智信息科技有限公司 | 基于区块链的信息查询***及方法 |
CN111401895A (zh) * | 2020-03-11 | 2020-07-10 | 北京价值互联科技有限公司 | 一种去中心化的跨链转入转出方法及*** |
CN112487027B (zh) * | 2020-12-02 | 2022-08-23 | 山东浪潮科学研究院有限公司 | 基于区块链电子交易的高效数据查询实现方法 |
CN113821566A (zh) * | 2021-09-10 | 2021-12-21 | 杭州链网科技有限公司 | 一种基于多链分片的区块链聚合架构 |
CN114780335A (zh) * | 2022-04-11 | 2022-07-22 | 深圳市金蝶天燕云计算股份有限公司 | 监测数据的关联方法、装置、计算机设备和存储介质 |
-
2023
- 2023-02-08 CN CN202310079786.XA patent/CN115794930B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115794930A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107783975B (zh) | 分布式数据库同步处理的方法和装置 | |
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
EP2474919B1 (en) | System and method for data replication between heterogeneous databases | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
CN112445626B (zh) | 一种基于消息中间件的数据处理方法和装置 | |
CN110543512B (zh) | 一种信息同步方法,装置及*** | |
CN103345386A (zh) | 一种软件生产方法、装置及运行*** | |
CN103229143A (zh) | 具有可扩展和可定制的计算引擎的面向网络服务的架构内的服务提供者 | |
CN113127564B (zh) | 一种参数同步方法和装置 | |
CN112306719A (zh) | 一种任务调度方法与装置 | |
CN108140035B (zh) | 分布式***的数据库复制方法及装置 | |
CN111538573A (zh) | 异步任务处理方法、装置及计算机可读存储介质 | |
CN114020819A (zh) | 一种多***参数同步方法及装置 | |
EP3062182A1 (en) | Method of and system for controlling manufacturing processes in discrete production lines | |
CN115794930B (zh) | 一种可扩展的多区块链数据etl处理***及方法 | |
CN112328680B (zh) | 一种电子元器件数据的处理方法、数据接口及管理*** | |
CN114020844A (zh) | 基于配置的数据监听同步方法 | |
CN116501700B (zh) | 一种app格式化文件离线存储方法、装置、设备及存储介质 | |
CN113014618A (zh) | 消息处理方法、***和电子设备 | |
CN111782489B (zh) | 数据表监控方法及装置 | |
CN112711466B (zh) | 悬挂事务巡检方法和装置、电子设备和存储介质 | |
CN115408460A (zh) | 一种疫苗生产过程信息集成*** | |
CN115170152A (zh) | 一种数据分发方法、装置、设备和存储介质 | |
CN113127036A (zh) | 软件开发***、代码的持续集成方法、装置和介质 | |
CN115328670B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |