CN113711536B - 从区块链网络中提取数据 - Google Patents
从区块链网络中提取数据 Download PDFInfo
- Publication number
- CN113711536B CN113711536B CN202080030363.3A CN202080030363A CN113711536B CN 113711536 B CN113711536 B CN 113711536B CN 202080030363 A CN202080030363 A CN 202080030363A CN 113711536 B CN113711536 B CN 113711536B
- Authority
- CN
- China
- Prior art keywords
- data
- event
- etl
- blockchain
- external
- 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
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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
Abstract
本发明涉及一种用于由具有对区块链网络访问的计算设备对表示在区块链网络上发生的事件的事件数据进行模型驱动的提取的方法。该计算设备被配置为ETL设备,该ETL设备用于执行ETL代码以使用所提取的事件数据来修改区块链网络外部的外部数据结构的数据内容。该方法包括检测事件、确定事件模式、提供和执行ETL代码。ETL代码包括用于提取表示检测到的事件的事件数据的机器可执行指令,使用所述事件模式来转换所提取的事件数据以符合定义所述外部数据结构的逻辑结构的数据模型,以及将所转换的数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容。
Description
背景技术
本公开涉及电子数据处理领域,以及更具体地,涉及从区块链网络提取数据。
区块链提供了共享分类账技术,区块链网络中的参与者可使用该共享分类账技术来记录不能被更改的事务。区块链提供单个真值:共享的、防篡改的和/或防篡改的分类账。该方法将事务跟踪从孤立模型(其中多个分类账被单独维护)改变为提供跨区块链网络的共同视图的模型。因为区块链使用共识来向分类账提交事务,所以结果最终变得一致。即使是系统管理员也不能删除事务。具有访问特权的区块链网络的每个成员具有同一分类账的副本,因此资产起源和可追溯性是透明和可信的。可以仅在需要知道的基础上共享信息。
发明内容
各个实施例提供了一种用于由访问区块链网络的计算设备对表示在区块链网络上发生的事件的事件数据进行模型驱动的提取的方法、以及一种用于执行如独立权利要求的主题所描述的方法的计算机程序产品和计算设备。在从属权利要求中描述了有利的实施例。如果本发明的实施例不相互排斥,则它们可以自由地彼此组合。
在一个方面,本发明涉及一种用于由访问区块链网络的计算设备对表示在区块链网络上发生的事件的事件数据进行模型驱动的提取的方法。该计算设备被配置为ETL设备,该ETL设备用于执行ETL代码以使用所提取的事件数据来修改区块链网络外部的外部数据结构的数据内容。
该方法包括检测发生在区块链网络上的事件。确定所述检测到的事件的事件模式,其中所述事件模式标识表示所述检测到的事件的所述事件数据的逻辑结构。提供ETL代码。ETL代码包括机器可执行指令集,所述机器可执行指令集被配置用于提取表示检测到的事件的事件数据,使用所述事件模式来转换所提取的事件数据以符合定义所述外部数据结构的逻辑结构的数据模型,以及将所转换的数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容。执行所提供的ETL代码。ETL-代码的执行使得ETL-设备提取表示检测到的事件的事件数据,使用所述事件模式转换所述提取的事件数据以符合所述外部数据结构的所述数据模型,以及将所述经转换的事件数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容。
根据实施例,ETL设备由以ETL对等体的形式的区块链网络包括。
根据各实施例,ETL设备是被配置成使用到区块链网络的对等体的加密安全消息传递(messaging)连接来监视在区块链网络上交换的数据的外部计算设备。
在一个进一步的方面,本发明涉及一种计算机程序产品,该计算机程序产品包括非易失性计算机可读存储介质,该非易失性计算机可读存储介质具有随其体现的计算机可读程序代码,该计算机可读程序代码用于由访问区块链网络的计算设备对表示在区块链网络上发生的事件的事件数据进行模型驱动的提取。该计算设备被配置为ETL设备,该ETL设备用于执行ETL代码以使用所提取的事件数据来修改区块链网络外部的外部数据结构的数据内容。
ETL设备的处理器执行程序代码使得处理器控制ETL设备检测发生在区块链网络上的事件。确定所述检测到的事件的事件模式,其中所述事件模式标识表示所述检测到的事件的所述事件数据的逻辑结构。提供ETL代码。ETL代码包括机器可执行指令集,所述机器可执行指令集被配置用于提取表示检测到的事件的事件数据,使用所述事件模式来转换所提取的事件数据以符合定义所述外部数据结构的逻辑结构的数据模型,以及将所转换的数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容。执行所提供的ETL代码。ETL-代码的执行使得ETL-设备提取表示检测到的事件的事件数据,使用所述事件模式转换所述提取的事件数据以符合所述外部数据结构的所述数据模型,以及将经转换的事件数据加载到外部数据结构以修改外部数据结构的数据内容。
在进一步的方面,本发明涉及一种计算设备,该计算设备具有针对表示发生在区块链网络上的事件的事件数据的模型驱动提取的对区块链网络的访问。该计算设备被配置为ETL设备,该ETL设备用于执行ETL代码以使用所提取的事件数据来修改区块链网络外部的外部数据结构的数据内容。
ETL设备包括处理器和存储机器可执行程序指令的存储器。由处理器执行程序指令致使处理器控制ETL设备检测发生在区块链网络上的事件。确定所述检测到的事件的事件模式,其中所述事件模式标识表示所述检测到的事件的所述事件数据的逻辑结构。提供ETL代码。ETL代码包括机器可执行指令集,所述机器可执行指令集被配置用于提取表示检测到的事件的事件数据,使用所述事件模式来转换所提取的事件数据以符合定义所述外部数据结构的逻辑结构的数据模型,以及将所转换的数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容。执行所提供的ETL代码。ETL-代码的执行使得ETL-设备提取表示检测到的事件的事件数据,使用所述事件模式转换所述提取的事件数据以符合所述外部数据结构的所述数据模型,以及将所述经转换的事件数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容。
根据实施例,ETL设备由区块链网络以ETL对等体的形式包括。
根据各实施例,ETL设备是被配置成使用到区块链网络的对等体的密码安全消息传递连接来监视在区块链网络上交换的数据的外部计算设备。
附图说明
在下文中,参考附图仅通过举例更详细地解释本发明的实施例,在附图中:
图1描绘了根据实施例的说明示例性计算设备的示意图,
图2描绘了根据实施例的说明示例性云计算环境的示意图,
图3描绘了根据实施例的说明示例性抽象模型层的示意图,
图4描绘了说明包括ETL对等体的示例性区块链网络的示意图,
图5描绘了说明包括ETL对等体的示例性区块链网络的示意图,
图6描绘了说明了包括ETL对等体的示例性区块链网络的示意图,
图7描绘了用于通过ETL设备从区块链中提取数据的示例性方法的示意性流程图,
图8描绘了说明包括事件数据的区块链的示例性块的示意图,
图9描绘了说明区块链的块的事件数据到外部数据结构的示例性映射的示意图,
图10描绘了说明包括事件数据的区块链的示例性块的示意图,以及
图11描绘了说明包括事件数据的区块链的示例性块的示意图。
具体实施方式
出于说明的目的呈现了本发明的不同实施例的描述,但并不旨在是详尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。选择在此使用的术语以最佳地解释实施例的原理、实际应用或在市场上找到的技术上的技术改进,或使得本领域普通技术人员能够理解在此公开的实施例。
实施例可具有提供从区块链提取数据的直接机制的有益效果。可能不需要实施额外的连接器来提取数据。许多有价值的信息片段可以例如通过执行对相应数据的分析而从区块链数据中提取。为了能够执行这样的分析,数据可被提取并提供给配置为用于分析的区块链网络外部的外部数据结构。
事件可以包括提供额外数据、修改现有数据和/或删除现有数据。可通过调用记录相应事件的区块链的块中的事务来提供事件。根据各实施例,事件可包括或触发数据查询。例如,在数据删除被检测为事件的情况下,对删除的回调可能是必要的,以便确定要删除哪些数据以便执行数据删除。在下文中,区块链也可以称为分类账。根据实施例,分类账可以与区块链相同。根据替代实施例,除区块链之外,分类账还可包括存储在其他数据集合中的其他数据,例如世界状态或私有数据。
区块链可用作分类账以存储任何类型的信息。尽管主要用于金融事务,但区块链可存储任何类型的信息,包括资产,即,产品、包装、服务、状态等。区块链可用于将任何类型的信息安全地存储在其不可变分类账中。去中心化的共识与传统的集中式共识不同,例如当一个中央数据库用于规则事务有效性时。去中心化的共识方案将权威和信任转移到去中心化的网络,并使其节点能够在块上连续和顺序地记录其事务,从而创建称为区块链的唯一链。因此,对中央中介的需要可通过使用密码学(例如,经由散列码)的去中心化共识方案来移除,以保护事务源的认证。
由于区块链可以被实施为经许可的分布式数据系统,被设计成具有严格的隐私和安全控制,其当前持久性实现方式不适合于链上分析,链上分析指在区块链技术本身上运行复杂的分析(如机器学习、预测分析和类似分析)。除此之外,许多分析要求来自单个系统中的不同源的数据,例如,通常从多个其他系统获得输入用于分析的基于Hadoop的数据湖或企业数据仓库。在这样的场景中,区块链系统将仅仅是另一事务系统,类似于需要向这样的中央分析系统提供其事务数据的订购(order)输入系统。在被许可的区块链网络中,所有用户和组件可以具有已知的身份。在每个通信触摸点处实现签名/验证逻辑,以及可以通过一系列背书和验证检查来同意事务。
对等体是维护分类账并且运行链码以便对分类账执行读取/写入操作的网络实体。对等体由区块链网络的成员拥有和维护。
例如,区块链可以是由超级分类帐架构区块链项目提供的区块链。超级分类帐架构是在Linux基金会的伞下的区块链框架实现。它为开发具有允许组件(诸如共识和成员服务)即插即用的模块化架构的应用或解决方案提供了基础。例如,可以提供包括系统的应用逻辑的智能合同(也被称为链码(链码))。
超级分类账架构可被用作实体(例如,商业伙伴共享初始信任和希望标识(例如,出于商业目的))之间的私有分类账。因此,超级分类帐架构上的区块链可以以被许可的私有区块链的形式来提供,即,为了被授权访问区块链,需要包括由参与实体授权的注册,展现用于标识和授权参与实体的用户ID,以及实现共识而无需像在参与匿名实体之间缺乏初始信任的公共区块链那样彻底挖掘。
作为用于被许可的区块链网络的平台,超级分类帐架构包括用于管理分配给区块链网络的所有成员的区块链网络身份的模块化证书管理机构组件。由此,基于访问控制列表(ACL)对网络活动的控制被使得能够保证每个事务可追踪到区块链网络的注册成员。证书管理机构可持有根证书以对被授权加入区块链网络的每个成员使用该根证书签署登记证书。信任由信任在该根证书的完整性保护中创建。导出的证书可以被更新或撤销。此外,可以向每个成员组件、服务器侧应用程序和偶尔向用户发布注册证书。可进一步授予每一登记用户事务证书的分配。每个事务证书可授权一个网络事务。对网络成员资格和动作的基于证书的控制可以使成员能够限制对私有和机密信道、应用程序和数据的访问。
超级分类帐架构包括成员资格服务提供商(MSP)组件,其提供在发布和验证证书以及用户认证之后的所有密码机制和协议的抽象。成员资格服务提供商可安装在每个对等体上,以确保向相应对等体发出的事务请求源自认证和授权的用户身份。超级分类帐架构还提供由订购(order)节点(也称为订购器)实现的订购服务。订购节点对事务进行订购,并将所订购的事务封装成块,所述块被发送到对等体以被写入到它们的分类账的实例。
超级分类账架构实现多个检查点,确保整个事务流程(包括对分类账的客户端认证、背书、订购和提交)中的数据一致性和完整性。在超级分类账区块链网络上,用于查询和事务的数据流由客户端侧应用程序通过在区块链信道上向对等体提交事务请求来发起。使用API,客户端应用程序在指定的区块链信道上将事务提议签署和提交给适当的背书的对等体。该初始事务提议是对背书的请求。各个区块链信道上的各个对等体验证提交客户端的身份和权限。如果有效,则各对等体针对客户端提供的输入运行指定的链码。基于针对调用的链码的事务结果和背书策略,每个对等体向应用程序返回签署的响应。同意该事务的每个签署的响应是该事务的背书。如果提议在链码中调用查询功能,则应用程序向客户端返回数据。如果提议在链码中调用函数来更新分类账,则应用程序继续以下步骤:应用将包括读/写集合和背书的事务转发给订购服务。区块链信道上使用的所有对等体通过应用链特定验证策略并运行并发控制版本检查来验证块中的每个事务。信道上的每个对等体验证事务的订购的块,然后将块提交(即,附加)到信道分类账的其本地副本。对等体还将每个块中的每个事务标记为有效或无效。验证过程失败的任何事务在块中被标记为无效。所有有效事务用于相应地用经修改的键/值对来更新状态数据库,即世界状态。闲聊数据传播协议被用于跨区块链信道连续地广播分类账数据,以确保分配给相应的区块链信道的对等体之间的同步的分类账。
实施例可以具有允许不只是简单地监听分类账上的事件的有益效果。如果包括表示事件的事件数据的附加块被添加到区块链,附加块不仅被转发到外部监听器,而且由以ETL对等体(ETL对等体是区块链网络的一部分)的形式提供的ETL设备执行ETL代码以提取、转换和加载来自所述区块链的所述事件数据,使得用于修改所述外部数据结构的所得数据集合符合所述外部数据结构的所述数据模型。由于ETL代码由区块链网络内的ETL对等体执行,可保护隐私以及满足注册要求。此外,通过事件数据以及外部数据结构的数据模型使用适于事件模式匹配的合适的ETL-Code可确保提取并考虑所有相关数据元素以修改外部数据结构。
实施例可具有以下有益效果:ETL对等体是区块链网络的一部分,即,ETL代码在区块链网络的安全周界内执行。作为区块链网络的安全周界的一部分的ETL对等体因此可被提供有对区块链网络处理的所有事件数据的完全访问。具体而言,ETL对等体因此可被启用以监听区块链网络内的完整通信,例如用于在区块链网络内路由数据的区块链网络的完整通信协议。区块链网络的通信协议可以例如以闲聊协议(即,闲聊数据传播)的形式来提供。闲聊协议提供可靠且可扩展的数据传播协议以确保数据完整性和一致性。为了增加区块链式网络性能、安全性和可扩展性,工作负荷可以一方面跨事务执行对等体(例如,背书的和提交对等体)和另一方面跨事务订购节点来划分。
根据闲聊协议的消息传递可以是连续的,其中区块链信道上的每个对等体不断地接收来自多个对等体的当前和一致的分类账数据。可以对每个闲聊消息进行签名。闲聊协议可管理对等体发现和区块链信道成员资格。为此,闲聊协议可持续地识别可用对等体并检测已经离线的对等体。闲聊协议可以跨区块链信道的所有对等体传播分类账数据。例如,由于延迟、网络分区或其他原因,与区块链信道的对等体的其余部分不同步的任何对等体(即,丢失的分类账数据)最终可通过联系拥有丢失数据的对等体而被同步到当前分类账状态。通过允许分类账数据的对等状态转移更新,可以使新连接的对等体加速。
基于闲聊协议的广播可包括对等体从同一信道的其他对等体接收消息并将接收的消息转发到相应信道上的多个随机选择的对等体。对等体可进一步锻炼拉取机制而不是等待消息的递送。重复该循环可使信道成员资格、分类账和状态信息持续保持当前并同步。对于区块链的附加块的散播,信道上的领导对等体可从订购服务拉取数据,该订购服务订购事务并将其打包成块,并使用闲聊协议向分配给区块链网络的同一成员的其他对等体发起块的散播。块可由订购服务签名,并被递送给在区块链信道上的领导对等体。区块链网络的每个成员可包括被选作领导对等体的一个对等体,该领导对等体可维持与订购服务的连接并发起区块链的附加块跨相应成员的其他对等体的分布。
区块链网络的在线对等体可以通过持续地广播存活消息指示它们的可用性。这些消息中的每一个可以例如包括公钥基础设施(PKI)ID以及发送方在消息上的签名。如果没有区块链信道的对等体从特定对等体接收到存活消息,则相应的对等体可以被认为是死的,以及最终从广播信道成员资格中被清除。由于存活消息被密码签名,因此防止恶意对等体模仿其他对等体,因为它们缺少由根证书颁发机构(CA)授权的签名密钥。
除了接收的消息的自动转发之外,状态协调过程可跨每个区块链信道上的对等体同步世界状态。由于不需要固定连接来基于闲聊协议维持数据传播,所以过程可靠地向共享分类账提供数据一致性和完整性,包括容忍节点崩溃。
由于区块链信道是分离的,一个信道上的对等体可能不能发送消息或共享任何其他信道上的信息。对等体可以属于多个信道,然而,分区的消息传递可以通过基于对等体的链码信道订阅来应用消息路由策略来防止数据被散布到未被分配给同一链码信道的对等体。
点对点消息的安全性可以例如由对等体的TLS层处理而不需要签名。可以通过由CA指派的它们的证书来认证对等体。可以根据闲聊协议来认证对等证书。认证可以由区块链网络的成员资格服务提供商来管理。当对等体第一次连接到区块链信道时,TLS会话可与成员身份绑定。由此,每个对等体基本上可关于区块链网络和区块链信道中的成员资格被认证给连接对等体。
区块链网络的对等体之间的完全通信可能超过区块链所包括的块的数据内容。由区块链网络处理的数据可使用分类账来存储。分类账存储关于对象的事实信息。事实信息可以包括关于对象的当前状态的事实(例如,对象的属性的值)以及导致各个状态的事务的历史。除了区块链之外,分类账还可包括世界状态。由此,由分类账包括并由区块链网络处理的数据可能超过由区块链包括的数据。区块链和世界状态各自表示关于一组对象的一组事实信息。世界状态可以数据集合的形式(例如,数据库)来提供,所述数据集合包括所述组对象的当前状态的高速缓存。由分类账的世界状态包括的对象的当前状态的集合也可被称为分类账状态。世界状态可具有提供直接访问当前状态,而不是必须通过遍历导致区块链提供的相应的当前状态的整个事务日志来计算当前状态的有益效果。分类账状态可以例如被表达为键-值对。随着分类账状态被创建、更新和/或删除,世界状态可频繁地改变。区块链提供使用块结构记录已经导致当前世界状态的所有改变的事务日志。事务被收集在附加到区块链的块内部。与世界状态相反,区块链一旦被写入就不能被修改,即,它被设计为不可变的。
作为区块链网络的一部分的ETL对等体被注册并且已被授权访问该区块链。由此,区块链所有者知道存在访问该数据的ETL对等体。ETL对等体可以预先被检查,以及其用于访问区块链上的数据的访问权限可以被适当地定义。在运行时,可检查认证凭证和/或数字证书的有效性以确保仅允许被证明具有有效认证凭证和/或数字证书证明的有效访问权限的实体(如ETL对等体)读取数据。因此,可以防止误用。
已知的公共区块链大多以货币为中心,即集中于两类事务:像银行账户一样收发货币。这些事务可以例如基于销售和购买,即,为所提供的产品和/或服务接收钱或花费钱。这意味着公共区块链的主要目标之一是(虚拟)货币的交易,也被称为密码货币。这可以被理解为在公共区块链中实现的共识机制的结果。为了实现关于事务的订购和正确性的协定(即,共识),实现用于验证在区块链中记录的事务的计算详尽过程。计算穷举过程例如包括求解数字拼图,像找到满足针对具有要被添加到区块链的事务的块的一个或多个预定义标准的散列值。由于散列值是不可预测的,即,已经对块的小改变如此广泛地改变所产生的散列值,使得它看起来与在没有小改变的情况下产生的散列值不相关,因此输入数据的变化必须被系统地测试,直到偶然找到满足预定义标准的散列值。数字拼图的解的证明充当见证人,证明块是真实的。为了操纵块,必须重复用于生成相应块以及区块链中的所有后续块所做的所有计算努力。在足够的对等体对事实感兴趣的情况下,假设这是不可能的或至少经济上高度不利的。为了使对等体投资计算能力来实现证明,一些奖励是必要的,因为对等体或者它们中的至少一些可能不一定对事实具有固有兴趣,即,必须在不信任方之间建立信任。在公共区块链中提供的奖励是例如一定量的密码货币。考虑到私人区块链,这样的奖励不是必需的,因为参与实体(例如公司)对事实具有固有兴趣。例如,仅受信方可被准予对区块链的访问。因此,密码货币不是私有区块链的必要部分。
实施例可具有适于处理通过区块链(例如,私有区块链)进行的多个不同类型的事务的有益效果。由此,数据提取不限于如通常在公共区块链中实现的单一类型的事务。可以处理事件数据的不同逻辑结构。考虑到密码,区块链所包括的信息可被简单地结构化,并且传入信息的模式可因此被预先已知。然而,对于像超级分类账结构的私有区块链而言情况并非如此。可以记录任何类型的事件数据,而在实施数据结构方面没有任何要求。
在这样一种多用途使用的情况下的数据提取可能证明是相当困难的:每个应用程序和每个数据类型可能必须分开处理,从而致使企业解决方案过时,因为它将需要针对每个终端用户单独地定制。
实施例可具有使用模型驱动的数据提取的有益效果。用于识别事件数据的逻辑结构和映射所识别的结构元素的事件模式是例如使用提供多个事件模式的库来自动确定的。此外,应用多用途转换,该多用途转换可例如通过数据管理者或使用机器学习来容易地调整到新的使用情况。由此,可以避免改变源代码的必要性,从而为集中于数据的应用提出大的益处。区块链网络的通信协议(例如,闲聊协议)可被用于同步区块链网络内的对等体。
可以使用集成到区块链网络中的ETL对等体来将模型驱动的数据提取插入到任何区块链网络中。因此作为监听器的ETL对等体是网络本身的一部分,允许它监听区块链网络的完整通信协议,使得ETL对等体能够考虑所有相关数据,甚至存储在私有数据集中的数据,即,包括不是区块链的一部分并且仅由区块链网络的有限数量的所选成员共享的数据的数据集合。
区块链信道是指区块链网络的两个或更多个所选成员之间的通信的私有子网。这样的区块链信道可以用于进行私有和机密事务的目的。区块链信道可由以下中的一者或多者来定义:被选择来参与私有通信子网的区块链网络的成员(例如,组织)、每个成员的锚对等体、共享分类账、链码应用程序以及订购服务节点。区块链网络上的每个事务可在区块链信道上执行,其中参与该事务的每一方必须被认证并被授权在该特定区块链信道上进行事务。加入区块链信道(即,被注册并被授权使用相应的区块链信道)的每个对等体可具有其自己的身份(例如,由成员资格服务提供商分配),该身份向信道认证相应的对等体。
尽管锚对等体可以被分配维持多个分类帐的多个信道,但是没有分类账数据可以从一个信道传递到另一个信道。这种通过区块链信道进行的分类账分离可以使用配置链码、身份成员资格服务和闲聊协议来定义和实施。包括关于区块链网络上的事务、分类账状态和信道成员资格的信息的数据的传播可以被限制为具有对某个区块链信道的可验证的成员资格的对等体。使用区块链信道造成的对等体和分类账数据的这种隔离可以使得需要私密和机密事务的区块链网络成员能够与同一区块链网络上的其他受限区块链网络成员(甚至商业竞争者)共存。
私有数据集可以用于保持来自已经分配给相同区块链信道的其他网络成员的数据私有。私有数据集合所包括的实际私有数据可被对等地发送(例如,经由闲聊协议)到仅被指派给被授权看到私有数据的区块链的那些成员的对等体。可以使用由各个对等体包括的私有数据库(也被称为私有状态数据库)在授权对等体上实现私有数据收集。授权对等体上的这些私有数据库可从这些授权对等体上的链码访问。根据实施例,可以不涉及订购服务,使得没有订购服务看到私有数据。私有数据跨授权对等体的对等分布可包括使用相应对等体之间的安全通信信道,而无需设置附加的区块链信道。由此,私有数据集可以使得被指派给相同区块链信道的区块链网络的有限数量的所选成员能够背书,提交和/或查询私有数据,而区块链网络中分配给同一信道的所有剩余成员都不能访问所述私有数据,不必建立单独的阻断链信道。私有数据的散列值可以被计算、背书、订购和写入到相应区块链信道上的每个对等体的分类账。由区块链包括的并且可由分配给相应信道的区块链网络的所有成员访问的散列值用作包括私有数据的事务的证据,并且可用于状态验证以及用于审计目的。区块链网络的有限数量的所选成员中共享私有数据集成员的每个成员可决定与其他第三方共享私有数据。第三方因此可被启用以计算所共享的私有数据的散列值,并检查所计算的散列值是否匹配信道分类账上记录的状态(即,存储在区块链的事务中的散列值),从而证明在特定时间点存在相应的状态。
实施例可具有实现对通过区块链中的事务收集的数据的分析的有益效果。实施例可具有实现对由区块链网络管理的区块链中记录的事务数据的分析的有益效果。
ETL设备可在提供区块链的区块链网络内部以专用计算对等设备(本文中也被称为ETL对等设备)的形式来提供。ETL对等体被配置成以安全的方式将在区块链中记录的事务数据提取、转换和加载到外部数据结构(例如,外部数据库)。此外,可提供数据分析以用于执行由外部数据结构提供的所提取和转换的数据的分析(例如,预测分析)。所提取的数据的转换可以包括对该数据的分类。
根据替代性实施例,ETL设备可以外部计算装置(即,在区块链网络之外运行)的形式被提供,该外部计算装置具有适当的安全集成以便例如使用到区块链网络的对等体的加密安全消息传递连接来监测在区块链网络上交换的数据。
区块链的一个或多个所有者可能必须同意专用ETL对等体变成区块链网络的一部分并获得对区块链的访问。例如,区块链的所有者可以是运行构成区块链网络的一个或多个对等体的实体,该实体初始化区块链并管理区块链的用户的注册,即,运行或使用构成区块链网络的对等体的其他实体。该注册可以包括由区块链的所有者授权使用该区块链。根据各实施例,区块链的所有者可以是形成联盟的一组实体,该联盟运行构成区块链网络的对等体并被授权使用该区块链。
根据实施例,由于同步,ETL对等体总是与区块链网络中的所有其他对等体处于相同的信息级别。根据各实施例,ETL对等体与区块链网络的其他对等体相比具有附加能力。ETL对等体被配置成检测事件。为了能够提取事件数据,ETL对等体被配置成通知发生了具有要被提取的事件数据的事件。这样的事件可包括记录在区块链的块中的一个或多个事务。根据各实施例,这样的事件可包括在内部具有多个事务的区块链的完整块。ETL对等体的事件检测允许捕获区块链网络内的事件。
ETL对等体在将事件数据消息传递到外部离链数据结构之前可将传入事件数据与例如存储在区块链的先前块中或ETL对等体可访问的数据集合的本地副本中的现有事件数据模式进行比较,并相应地调整要消息收发的事件数据。如果检测到的事件包括数据删除,例如分类账上的资产的删除,则区块链网络的对等体可能由于在区块链上记录的数据删除而删除本地数据集合中的相应数据。然而,在区块链上记录的这样的数据删除可能不能以相同的方式在外部数据结构上执行。如果外部链外数据结构(例如,数据库)包括比区块链和/或本地数据集合更复杂的逻辑结构,则情况尤其如此。从外部链外数据结构删除相同的数据可能引起一些麻烦。如果ETL对等体被配置成将来自和/或针对区块链的传入事件数据与现有数据进行比较,则ETL对等体可被启用以向外部链外数据结构发送显著更全面的删除通知。
根据各实施例,ETL-设备包括运行时事件模式选择器。模式选择器可被配置成使用已知事件模式的库从表示使用区块链记录的事件的事务有效载荷数据推断事件模式。
可为区块链建立库,包括预期发生的事件数据(即,事务)的事件模式。库可包含资产模式的形式的事件模式,而不是提供完整事务。由此,可以提供更原子方法,确保事务资产的免费组合不会导致并发症。ETL设备可访问库并使用该库来确定每个检测到的事件的事件模式。可以手动地或自动地建立附加事件模式。运行时事件模式选择器可确定哪个事件模式将用于事件数据,即,哪个事件模式匹配事件数据的逻辑结构。由此,所确定的事件模式取决于事件数据的类型,即到来的事件数据的逻辑结构。事件模式用于将数据元素映射到由外部数据结构的逻辑结构定义的结构元素。事件模式可被用于决定应用哪个映射以及它被应用的频率。例如,事务可包括定义相同类型的多个资产改变的事件。为了完全考虑这些多个改变,可能必须多次应用相同的映射。
在运行时期间,可分析要被添加到区块链的传入块以确定传入块的事务包括哪些类型的数据元素,例如哪些和多少资产。除了有效载荷数据之外,例如以事务的形式,块还可以包括元数据。元数据以及有效载荷数据(例如,正被创建、修改和/或删除的资产)可使用事件模式来标记,以使得可在稍后步骤中应用适当的转换。
根据各实施例,事件模式确定可例如使用JSON(JavaScript对象符号)模式描述来盲执行。实施例可以具有能够在没有数据泄漏的情况下确定数据元素类型的有益效果。所得模式可用于馈送映射创建器。一旦未知结构通过,就可以生成模式本身。这样的自动生成可以促进事件数据的迁移。
根据实施例,机器学习可以用于生成事件模式。ETL设备可以包括具有输入和输出的机器学习模型。机器学习模型可以被训练成响应于经由输入接收事件数据而经由输出提供事件模式。为了提供被配置用于提供事件模式的机器学习模型的训练可以包括提供用于生成机器学习模型的学习算法。此外,可以提供训练数据集。每个训练数据集可以包括训练事件数据和定义相应的训练事件数据的逻辑结构的训练事件模式。可以在训练数据集上执行学习算法以生成机器学习模型。
术语‘机器学习’是指用于通过以自动方式构建概率模型(被称为机器学习模型)来从训练数据集中提取有用信息的计算机算法。可以使用一个或多个学习算法(诸如线性回归、k最近邻技术、支持向量机或分类/回归树等)来执行机器学习。‘模型’可以例如是使得可以从其他已知值(例如,事件数据)预测未测量的值或值的集合(例如,定义事件数据的逻辑结构的事件模式)的方程或规则的集合。
根据实施例,ETL设备进一步包括ETL代码提取器。ETL代码提取器被配置成实现用于基于事件模式(例如,使用Jolt)从块和/或事务数据提取事件数据的机制。Jolt是提供JSON到JSON转换功能的java库。根据实施例,对于以JSON格式提供的事件数据,可在Jolt中执行基于映射的ETL代码。当在后端中以源格式检测到事件数据的特定数据元素时,ETL代码提取器用于将检测到的数据元素从源格式转换成元格式。元格式仍可为JSON。元格式可能未准备好被注入到外部数据结构中。例如,JSON格式可能未准备好被注入到SQL或另一数据库格式中。可在数据库连接器中处置进一步的数据库特定要求,数据库连接器可处置例如来自元格式(如JSON格式)的数据库兼容插入语句(如SQL插入语句)的创建。
根据实施例,ETL设备还包括信使,例如,网络通信接口,其与区块链外部的外部数据结构(例如,数据库)和区块链网络(即,离链)具有联系。信使可被配置为经由安全信道发送数据。此外,信使可包括某种存储器,使得即使在消息传递过程中断的情况下,被提供用于消息传递的数据也不会丢失。
实施例可以具有以下有益效果:实现事件数据提取与区块链安全性的集成以提供用于事件捕获的机制,避免随时间推移实现转换和维护的高努力,不需要额外的数据管理或数据谱系。
为了说明的目的,可以考虑以下示例:用户购买新物品的保险合同。该事件可触发要把包括写入两个附加资产的事务的要添加到区块链的两个附加块的生成。第一附加资产可以是包括用户名、密码的附加用户资产,以及可以是分配给购买保险合同的用户的其他信息。第二附加资产可以是包括关于保险合同的信息以及关于关注项目的信息的附加合同资产。关于关注项目的信息可例如作为嵌套键-值对象来提供。事件(即,购买在区块链的附加块中记录的保险合同)可由ETL设备检测,例如以ETL对等体的形式提供。ETL对等体可固有地包含和保存被实现用于处理关于区块链网络上的保险的购买的事件数据的安全层。由此,从外部观点来看,可以考虑所有认证措施。根据各实施例,可实现对高度可用(HA)事件捕捉的需要,以确保在任何种类的故障之际自动重新连接到区块链网络的不同对等体节点。
由于存储于区块链网络上的区块链的块中的数据的非模式文档形式,有效载荷数据的数据元素(例如,资产)可能不具有标识其结构的标题或任何附加元信息。因此,可以实现对事件数据的逻辑结构的分析以及与已知在区块链上的事件数据类型的逻辑结构元素的比较。这可以包括甚至在缺失字段的存在下正确地预测事件数据类型,如果它们例如对于事件是可选的。
ETL设备可被配置为接近待提取的事件数据的简单扁平化以及朝向给定目标数据模型的潜在的多进程格式化两者。在SQL的示例情况下,由附加用户资产、附加合同资产提供的数据以及由块提供的元数据信息可被映射到多个目标表,例如,包括用户相关信息的用户表、包括合同相关信息的合同表以及包括保险项目相关信息的项目表。从由事件数据结合事件模式提供的源结构到由外部数据结构的数据模型(例如,关系数据模型)提供的目标结构的映射可由用户完成,而无需使用图形界面进行源代码修改。可替代地,可以使用机器学习模块。为此目的,可以应用元数据分析(例如,列名、数据类型)以使用例如机器学习技术成功地自动生成映射。
映射用于生成ETL代码,该ETL代码被应用于由区块链提供的元数据以及资产数据。根据各实施例,ETL设备实现各机制,以确保在进一步处理之前所有转换都成功的,进一步处理例如,成功地处理由区块链的块提供的元数据到定义外部数据结构的逻辑结构的数据模型中的“混合”,以及保证使用外来键关系标识的依赖表的写入顺序。
根据各实施例,经转换的事件数据的加载包括由ETL设备经由消息传递网络将经转换的事件数据消息传递到区块链网络外部的外部计算装置。外部计算设备管理外部数据结构。各实施例可具有以下有益效果:通过将经转换的事件数据消息传递至外部计算设备以根据经转换的事件数据来修改外部数据结构的数据内容,事件数据可以被提供用于链外使用,例如,由可信数据分析器使用所述外部数据结构来执行数据分析。
根据实施例,ETL设备还包括映射创建器。映射创建器可被配置成将事件模式与块和/或事务分开。换言之,有效载荷数据和元数据可在实例块和/或事务级别上被映射到适当的事件模式。映射创建器可进一步配置成根据数据模型将结构ID插入和/或操纵至所提取的事件数据(例如,公钥和/或外键),以用于平坦化映射,作为JSON至关系映射的一个示例。根据各实施例,可存在其他映射以及像JSON到HBASE等。
映射创建器被配置成用于确定进入的数据是事务元数据还是有效载荷(例如,资源)数据。映射创建器进一步被配置为识别有效载荷数据与元数据之间的关系。根据各实施例,由区块链的块所包括的事件数据除了事务元数据之外可不包括资产数据的元数据。根据实施例,映射创建器可以从提供与区块链的有效载荷数据有关的元数据的本地数据集合确定资源数据的元数据。根据各实施例,所确定的关系可被用于标识要被提取以修改外部数据结构的数据内容的相关有效载荷数据。
映射创建器可以提供示出源格式(例如,嵌套JSON格式)和目标选择格式(例如,SQL数据库的表结构或NoSQL数据库的某个其他格式)的容易使用的图形界面。数据管理者可以将源格式与目标格式连接。根据实施例,可以使用具有输入和输出的机器学习模型来执行映射。机器学习模型可被训练以响应于经由输入接收到源格式和目标格式两者而经由输出提供这两种格式的映射。为了提供配置用于源格式到目标格式的机器学习模型的训练可以包括提供用于生成机器学习模型的学习算法。此外,可以提供训练数据集。每个训练数据集可以包括训练源格式、训练目标格式和相应训练源格式到相应训练目标形成器的映射的定义。可以在训练数据集上执行学习算法以生成机器学习模型。
上述映射可用于创建转换代码。实施例可具有实现允许将此映射创建器用于任意源和目标格式的多用途方法的有益效果。根据各实施例,映射可以全自动化方式实现。
根据各实施例,ETL设备进一步包括用于基于所确定的事件模式来生成ETL代码的ETL代码生成器。ETL代码用于将传入事件数据转换成与外部数据结构(例如,数据库)兼容的数据格式。ETL代码生成器可转换源格式到目标格式的映射,例如,使用jolt用于JSON到JSON转换。Jolt是提供JSON到JSON转换功能的java库。ETL码生成器可采取映射并使用映射来创建jolt转换规范。
根据实施例,提供ETL代码包括将事件数据映射到外部数据结构的逻辑结构。对于映射,使用所确定的事件模式以及外部数据结构的数据模型。此外,提供ETL-代码包括使用映射为事件生成ETL-代码。各实施例可具有自动提供用于提取、转换和加载表示检测到的事件的事件数据的ETL代码以便根据经转换的事件数据来修改外部数据结构的数据内容的有益效果。映射可以被实现为动态映射,该动态映射使得ETL设备能够根据定义外部数据结构的逻辑结构的数据模型将所提取的事件数据转换成不同的数据格式。定义外部数据结构的数据模型的信息可例如由管理外部数据结构的外部计算设备提供给ETL设备。
根据实施例,对事件的检测包括通过检测由ETL对等体提供以作为区块链的块的一部分被添加到区块链的事件数据的直接事件捕获。实施例可具有甚至在事件被记录在区块链中之前检测事件的有益效果。
根据实施例,直接从客户端或订购者捕获事件。客户端可以建议在区块链中记录的事务,即,建议链码调用以便添加事务。根据各实施例,可要求客户端请求一个或多个背书的对等体同意(例如,签名)所提议的链条调用的结果。其中,背书的对等体背书的策略定义,并且通过服务发现的方式找到。
订购者可以负责将事务打包成块并且将它们跨区块链网络分发给引导对等体。区块链网络的每个成员(也被称为组织)可在相应成员订阅的每个信道上拥有多个对等体。这些对等体中的一个或多个对等体可以充当相应信道的引导对等体,以便与代表相应成员以订购者的形式提供的网络订购服务进行通信。订购服务在信道上将块递送给引导对等体。引导对等体接收块并将它们分发给分配给同一成员的其他对等体。事务流程可以包括事务提议、将所提议的事务打包成块和验证块。订购者可以负责打包,它可以进一步涉及通过在区块链网络上分配块来进行的验证。订购者的实现可以例如基于Apache Kafka。ApacheKafka提供了一种具有高吞吐量容错特征的消息传递软件。订购者可以不具有持久性、不具有数据库以及不具有其自身的分类账。
使用订购者实现的订购服务可以向客户端和对等体提供共享通信信道,从而为包含事务的消息提供广播服务。客户端可以连接到这个信道并且在相应的信道上广播消息,该消息然后被递送给所有对等体。该信道可以支持所有消息的原子传递,即,具有全部订单传递的消息通信以及实现特定可靠性。由此,信道可以将相同的消息输出到所有连接的对等体,以及以相同的逻辑顺序将它们输出到所有这些对等体。
根据实施例,对事件的检测包括监测使用区块链网络的通信协议经由ETL对等体在区块链网络上路由的数据。该通信协议可以例如以闲聊协议的形式来实现。实施例可以具有以下有益效果:作为区块链网络的成员的ETL对等体被提供有对在区块链网络上路由的数据的访问,而不损害区块链间网络通信的安全性。特别地,可以维持被许可的区块链网络的安全性。区块链网络中的事务可经由通信协议在对等体之间发送和接收。
ETL对等体可经由通信协议(例如,闲聊协议)接收要被添加到区块链的传播的事件数据,并等待对等体共识以接受区块链中的传播的事件数据。一旦达成共识,ETL对等体就可将所接收的事件数据附加到本地数据集合(例如,内部状态数据库),就像经由闲聊协议接收相应事件数据的区块链网络的所有其他对等体一样。此外,ETL对等体可将事件数据检测为表示与修改外部数据结构的数据内容相关的事件的数据,并使用ETL代码将事件数据提供给外部世界的外部数据结构(即,区块链网络外部的计算设备)。ETL对等体监听闲聊协议,是指上述通过闲聊协议实现事件数据的方法,在对等体共识的情况下,将其存储在本地数据连接中,并将事件数据提供给外部数据结构。
根据实施例,ETL设备可访问由区块链网络提供的多个区块链。实施例可具有以下有益效果:ETL设备可使用外部数据结构为多个区块链提供对可信数据分析器的访问。区块链可由相同的所有者/多个所有者或不同的所有者所有。
例如,可信数据分析器可以经由外部数据结构访问不同所有者的不同区块链,例如,保险。可信数据分析器可以分析由外部数据结构提供的事件数据,以及预测响应于由事件数据表示的事件而需要采取的动作。例如,可信数据分析器可检测发生在相同区域中的大量相同种类的事务,例如,与自然灾害(如火灾、洪水等)情况下的保险有关的事务。可信数据分析器可通知外部管制实例关于大量事务,指示这些事务中涉及的保险公司的问题可能由于大的潜在损坏总和而出现。
ETL设备可提供有益的基础设施以提供这样的可信数据分析器,所述可信数据分析器利用使用区块链管理的相关事件数据执行那些预测。因此,可以由ETL设备为可信数据分析器提供全面且易于使用的方法,以获得用于执行分析、基于分析确定必要动作和/或从任意区块链应用程序及时触发相应必要动作的相关信息。
根据实施例,区块链可以具有相同的所有者。例如,公司可以拥有或使用多个区块链,以及使用在区块链中记录的事件数据来管理公司、商业智能等。可信数据分析器可以使用ETL设备来提供针对所有区块链的相应公司的数据分析。
根据各实施例,外部数据结构从多个ETL对等体接收经转换的事件数据,每个ETL对等体是提供不同区块链的不同区块链网络的成员。实施例可以具有以下有益效果:外部数据结构考虑来自多个区块链的事件数据。如前所述,该事件数据可由可信数据分析器用于执行数据分析,而无需数据分析器直接访问所有区块链和/或所有区块链网络。在这种情况下,多个ETL对等体用于实现向可信数据分析器提供其分析所需的信息的基础设施。
根据各实施例,使用库来确定事件模式,该库提供标识表示潜在地发生在区块链网络上的事件的类型的事件数据的逻辑结构的一个或多个事件模式。库可以例如提供标识表示潜在地由区块链包括的事件的类型的事件数据的逻辑结构的事件模式。实施例可以具有以下有益效果:可以通过比较表示事件的事件数据与由库提供的事件模式来确定事件模式。如果由库提供的事件模式匹配检测到的事件的事件数据的逻辑结构,则可选择相应的事件模式来标识逻辑结构,即,确定事件数据的数据元素的逻辑角色或含义。根据实施例,逻辑模式可以考虑可选数据元素,所述可选数据元素可以被与特定事件模式匹配的事件数据包括,但是不需要为了使事件数据与相应的事件模式匹配而存在。
根据实施例,在由库提供的事件模式中没有一个匹配所检测到的事件的事件数据的逻辑结构的情况下,所述方法还包括分析所检测到的事件的事件数据的逻辑结构,确定与所检测到的事件的事件数据的逻辑结构匹配的附加事件模式,以及将所述附加事件模式添加到所述库。各实施例可具有如下有益效果:提供用于提供事件模式的方法,即使在表示事件的事件数据包括未知的逻辑结构(即,与库所包括的任何事件模式不匹配)的情况下。根据各实施例,手动地执行事件数据的逻辑结构的分析和/或与检测到的事件的事件数据的逻辑结构匹配的附加事件模式的确定。根据各实施例,自动执行对逻辑结构的相应分析和/或对附加事件模式的确定。例如,使用机器学习来实现所述分析和/或确定。
根据各实施例,确定事件模式包括使用所确定的事件模式来给事件数据包括的一个或多个数据元素加标签。标签标识由所确定的事件模式定义的数据元素的结构类型。各实施例可具有如下有益效果:向事件数据提供以标识事件数据的数据元素的结构类型的标签的形式的信息。该信息可用于将事件数据包括的数据元素映射到由外部数据结构的数据模型定义的外部数据结构的逻辑结构。
根据实施例,标签用于将标记的数据元素映射到由外部数据结构的逻辑结构定义的结构元素。实施例可以具有如下有益效果:使用标签来标识事件数据的数据元素与外部数据结构的逻辑结构的逻辑类别之间的逻辑对应关系。
根据实施例,以数据库和用于使用数据模型管理数据库的数据库管理系统的形式提供外部数据结构。实施例可具有如下有益效果:使用外部数据结构以有效且高效的方式给予链外实体对事件数据的访问。链外实体(即,不是区块链网络的一部分的实体)可以例如是数据分析器,其需要访问事件数据以便分析它们的内容。由此,不同类型的外部实体可使用ETL设备被给予对事件数据的访问,而无需进一步修改区块链网络或由区块链网络包括的任何对等体。出于使用数据库作为事件数据的源(例如,用于执行数据分析操作)的一个或多个外部实体的目的,可以优化数据库和数据库管理系统。
根据实施例,数据库管理系统用于管理数据库使用的数据模型是以下数据模型之一:关系数据模型,层级数据模型、网络数据模型、面向对象的数据模型、图形数据模型,实体关系模型数据模型、键值数据模型、多维数据模型,面向列的数据模型、面向文档的数据模型和数据流数据模型。实施例可以具有以下有益效果:使得能够由ETL设备使用ETL代码将所提取的事件数据转换成任意目标数据格式。目标数据格式可以由将使用事件数据修改的外部数据库的数据模型来确定。相应的数据库可以是SQL数据库或NoSQL数据库。
根据实施例,转换所提取的事件数据包括向所提取的事件数据添加根据数据模型的一个或多个结构ID。实施例可以具有以下有益效果:经转换的数据可以更好地类似于由数据模型定义的外部数据结构的逻辑结构。因此,可以以更紧凑的方式(例如,归一化的方式)提供经转换的数据。例如,可因此抑制消息复制以防止双重发送。
根据实施例,结构ID包括以下各项中的一项或多项:主键和外键。实施例可具有如下有益效果:在关系目标(即,关系外部数据结构)的情况下,防止由于使用主键(PK)和外键(FK)而引起的事件加倍。在SQL特定上下文中,PK和FK可用于抑制消息重复,以便防止双重发送。
根据实施例,结构ID包括关系边。例如,可以在图形数据库(即,使用具有节点、关系边和属性的语义查询的图形结构来表示和存储数据的数据库)中使用这样的关系边。关系边通过表示被表示为节点的数据项之间的关系来直接关联数据项。图形数据库内的查询关系可能由于它们在数据库本身内的事实而是快速的。因此,图形数据库可使得能够直观可视化对大量互连的数据有益的关系。各实施例可具有如下有益效果:在外部数据结构是图形数据库的情况下实现将事件数据转换成外部数据结构的数据格式。在NoSQL特定上下文中,例如,可以添加以关系边形式的结构ID。
在数据库的关系模型中,主键指代唯一地指定关系(即,表)中的元组(即,行)的属性(即,列)的最小集合的特定选择。主键可以例如是标识记录的属性,即唯一id。更一般地,主键是候选键(即,最小超级键)的选择。任何其他候选密钥可被称为替换密钥。在关系数据库的上下文中,外键是指唯一地标识另一或相同表格的行的表格中的字段或字段集合。由此,在第二表中定义参考第一表中的主键的外键。在归一化数据库中,可以使用以外键形式的索引关键字来代替实际值(指存储在单独的表中的值)。例如,称为用户表的表具有被称为user_id的主键。称为合同表的另一表具有外键,该外键引用user_id以便唯一地识别两个表之间的关系。
根据实施例,ETL设备用于确保外部数据结构的一致性。由于区块链的封闭块中的数据不能稍后改变,所以可以使用一致性检查来检测和校正外部数据库中的错误。一致性检查可以包括将从ETL设备接收到的数据与存储在外部数据结构中的数据进行匹配。ETL设备可例如记录所执行的ETL代码并重新执行选择或所有ETL代码。例如,ETL设备可响应于管理外部数据结构的计算装置的请求而执行重新执行。因此,可以实施所提取的数据的一种后向证明。
根据实施例,所提取的事件数据的转换包括平坦化所提取的事件数据。实施例可以具有如下有益效果:转换所提取的事件数据的,从而实施很少的结构调整或不实施结构调整。外部数据结构的数据模型可以仅定义很少数结构好的要求结构,即,外部数据结构可以是去归一化的数据库。为了报告和分析,平坦结构可以是有优势的并且可以帮助性能。
根据实施例,所提取的事件数据包括元数据和有效载荷数据。实施例可以具有以下有益效果:不仅考虑由在区块链的块中重新排序的事务提供的有效载荷数据,而且还考虑元数据。元数据可例如包括识别产生包括相应事务的块的时间点的时间戳。该时间点可以被标识为以事务的形式在区块链中记录的相应事件的发生的时间。元数据可例如包括包含相应事务的块的创建者的创建者ID。相应创建者可被视为以相应事务的形式提供的事件数据的创建者。
根据实施例,在检测到的事件包括数据删除的情况下,事件数据的提取,进一步包括执行回调以便从所述区块链网络检索额外数据,以及使用所述额外数据来确定要从所述外部数据结构删除的一个或多个数据元素以便根据所述数据删除来修改所述外部数据结构的所述数据内容。实施例可具有如下有益效果:提供有效且高效的方法以考虑用于修改外部数据结构的数据内容的数据删除。实施例可使ETL设备能够确定哪些数据将被删除,以便在外部数据结构中实现数据删除,即使在逻辑和/或结构依赖性在外部数据结构的情况下相对于区块链而不同的情况下并且甚至在区块链仅包括标识要被删除的实际值而不是相应值的ID的情况下。
区块链可用于记录客户端使用区块链网络提供的区块链管理的底层数据结构的事件。底层数据结构可以例如是类似于数据库的数据集合。根据各实施例,ETL设备可包括或具有对相应底层数据结构的本地副本的访问权,以及对于在原始底层数据结构和/或底层数据结构的另一副本上发生的每个事件更新本地副本。在键值存储形式的底层数据结构中删除数据的情况下,表示删除记录在区块链中的事务可以仅包含将分配给有待删除的相应数据的键设置为“空”的语句。换言之,区块链内的数据的状态可例如被存储在键-值数据库中。在删除的情况下,在没有内容指定的情况下键被设置为无效。由于实现底层数据结构(即,源数据库)中向外部数据结构(即,目标数据库)的记录的数据删除所需的转换的可能任意复杂性,对相关删除的处理可能需要多步处理。因此,可提供机制使得即使在条目被删除的情况下也能够捕捉事件的完整数据结构。ETL设备被配置为在从键-值-数据-存储装置(即,底层数据结构的本地副本)删除键之前直接执行回调。由此,可以在删除之前使用键来确定要删除的实际值。根据各实施例,可替代地或附加地,区块链的查询可由ETL设备执行以便找到标识指派给要被删除的键的值的最近的条目。这可能总是可能的,因为一旦事务被适当地集成到区块链结构中,事务通常不能从区块链擦除。
如果“isDelete”在事务的写集上为真,则可以执行回调函数。作为说明性示例,可以考虑事务的以下读取集和写入集:
<TxReadWriteSet>
<Ns ReadWriteSet name=”chaincode1”>
<read-set>
<read key=”K1”,version=”1”>
<read key=”K2”,version=”1”>
</read-set>
<write-set>
<write key=”K1”,value=”V1”
<write key=”K3”,value=”V2”
<write key=”K4”,is Delete=”true”
</write-set>
</NsReadWriteSet>
<TxReadWriteSet>
当接收到“<write key=”K4”…”时,所引用的值为空,以及“isDelete”被设置为“真”。仅基于此信息,不可能确定删除哪个值。因此,可以执行回调函数以例如从分类账中查询键“K4”在其被删除之前的实际值。该外部数据结构可以不包括和/或不知道ID“K4”。由此,实际值需要根据事务定义的数据删除通知外部数据结构哪个值必须被删除。
根据实施例,回调针对由区块链网络提供的区块链或由区块链网络的对等体提供的本地数据收集。例如,本地数据收集由配置为区块链网络的对等体(即,ETL对等体)的ETL设备提供。实施例可具有使ETL对等体能够确定要被删除的实际数据值的有益效果,即使在区块链仅包括标识要被删除的实际数据值的ID而不是相应的数据值的情况下。实际数据值可从本地数据集合检索,尤其在识别相应数据值的ID被删除之前,或从包括将ID指派给实际数据值的事务的区块链的最近块检索。在已确定实际数据值之后,可根据由事件数据定义的数据删除从本地数据集删除相应ID和/或相应数据值。
根据实施例,从由区块链网络提供的区块链的块中提取事件数据。
根据实施例,区块链是具有受限访问以从区块链提取数据的许可区块链。ETL设备被注册并且包括允许ETL设备从区块链提取数据的访问权限。各实施例可具有实现一种方法的有益效果,该方法使用ETL设备(例如,以ETL对等体的形式)作为区块链网络的寄存器和被授权成员来访问在区块链网络内处理的事件数据以提取事件数据,同时符合提供被许可的区块链的区块链网络的安全设置。
由此,对记录在区块链上的事件数据的访问可被绑定到ETL对等体向分类账的成功注册。由于身份盗窃或伪造,任何有害的收听可能仅是可能的。然而,使用包括适当的密码密钥和/或安全密码的证书可以有效地防止这样的误用。在没有有效证书的情况下,不可能读取和解密在区块链网络上交换的数据。
实施例可以具有以下有益效果:使得能够实现针对由区块链包括的数据的全数据谱系。此外,还可以针对分配给区块链并且存储在区块链网络内的数据(例如,私有数据集合)实现全数据谱系。全数据谱系可以确保已知哪个实体在系统中(即,在区块链网络中)对数据做什么。
根据各实施例,区块链包括经加密的数据,其中ETL设备可访问解密密钥。事件数据的提取包括对事件数据进行解密。实施例可以具有以下有益效果:ETL设备甚至给予对由区块链提供的加密数据的访问。
根据实施例,事件数据的提取还包括从由区块链网络的对等体提供的本地数据集合检索附加事件数据。例如,本地数据收集由配置为区块链网络的对等体(即,ETL对等体)的ETL设备提供。附加事件数据被分配给从区块链的块提取的事件数据。实施例可具有以下有益效果:ETL对等体可访问未经由区块链记录和/或路由而是以本地数据集合的形式管理的添加事件数据。
根据实施例,本地数据集合是由区块链网络的有限对等体集合共享的私有数据集合,以及私有数据集合的私有数据使用被限制为仅由有限对等体集合中的对等体使用的加密安全通信连接来路由。例如,ETL设备被配置为区块链网络的对等体(即,ETL对等体)和有限的对等体集合的成员。
隐私对于区块链应用可能是高度重要的。在默认模式中,事务可用明文写入到块。然而,在执行事务本身应当是透明的,而不是其内容的情况下,这样的方法可能是不想要的。例如,业务应用可以包括供应链起源跟踪,该供应链起源跟踪包含关于对象的批发价格的数据,该数据不应被访问该区块链的终端用户看到。对策可例如包括仅包括私有(即,机密)的散列值,数据进入所述区块链的所述块并以位于所述区块链网络的对等体上的许可存储中的私有数据集合的形式提供所述私有数据,如同ETL对等体,其属于具有访问私有数据的授权的分类账上的被许可实体。这些对等体可以通过使用区块链网络的通信协议的替代手段(例如,使用gRCP连接)进行通信。由此,可使内置ETL对等体能够参与由通信协议实现的私有数据的交换,而不损害安全方面。
实施例可具有实现和保留数据限制的有益效果。受限数据可被存储在不是区块链的一部分的私有数据集合中。区块链可以例如仅包括私有数据的指示符,例如以相应私有数据的散列值的形式。
根据实施例,不仅可以提取由区块链包括的事件数据,而且可以提取由一个或多个私有数据集合包括的事件数据。隐私数据可以包括对于分类账的其他参与者隐藏的信息,例如,售价,可以不由分区块链的区块链所包括,而是以相应隐私数据的证明散列的形式来提供。它。相反,由区块链处理的所有数据可在区块链网络的通信协议上被处理,包括通过安全信道在所选对等体之间共享私有数据,其中所选对等体可具有存储在私有数据集合中的私有数据。由此,实施例可具有实现能够访问完整通信协议的综合数据提取的有益效果,包括不是或不是区块链的干净形式部分的数据传送。
根据实施例,加载包括使用经转换的数据的写入请求。实施例可以具有以下有益效果:使得能够使用经转换的数据来修改外部数据结构的数据内容。
根据实施例,该写入请求包括对以下各项中的至少一项的请求:使用经转换的数据来更新该外部数据结构的该数据内容的数据元素,删除由所述转换的数据识别的所述外部数据结构的所述数据内容的数据元素,以及将由所述经转换的数据提供的额外数据元素插入到所述外部数据结构的所述数据内容中。实施例可具有以下有益效果:不仅由于由经转换的事件数据表示的事件,额外数据元素可被添加到外部数据结构的数据内容,而且现有数据元素被更新或删除。
由此,在将事件数据消息传递到外部链外数据结构之前,ETL设备可将传入事件数据与例如存储在区块链的先前块中或ETL设备可访问的数据集合的本地副本中的现有事件数据进行比较,并相应地调整要消息收发的事件数据。如果检测到的事件包括数据删除,例如分类账上的资产的删除,则区块链网络的对等体可能由于在区块链上记录的数据删除而删除本地数据集合中的相应数据。然而,在区块链上记录的这样的数据删除可能不能以相同的方式在外部数据结构上执行。如果外部链外数据结构(例如,数据库)包括比区块链和/或本地数据集合更复杂的逻辑结构,则情况尤其如此。从外部链外数据结构删除相同数据可能引起一些麻烦。如果ETL设备被配置成将来自和/或用于区块链的传入事件数据与现有数据进行比较,则ETL设备可被启用来向外部链外数据结构发送显著更全面的删除通知。
根据各实施例,该计算机程序产品进一步包括被配置成实现该方法的任何实施例的计算机可读程序代码,该方法用于由具有本文中所描述的对区块链网络的访问的计算设备对表示在区块链网络上发生的事件的事件数据进行模型驱动的提取。
根据各实施例,具有对区块链网络的访问的计算设备(即,ETL设备)被进一步配置成执行本文中所描述的用于对表示在区块链网络上发生的事件的事件数据进行模型驱动的提取的方法的实施例中的任何实施例。
实施例可以具有以下益处:由于由ETL设备执行的数据提取是事件触发的,因此可以使用ETL设备来提供事件数据的近实时提取。事件检测可以例如使用超级分类帐架构和Apache NiFi的EventHub或信道事件Hub订阅来实现。事件集线器和信道事件集线器为超级分类帐架构提供事件通知服务。Apache NiFi使得基于基于流的编程模型的软件系统之间的数据流的自动化成为可能,以及提供类似在集群内操作的能力、使用TLS加密的安全性和可扩展性的特征。以ETL对等体的形式提供的ETL设备还可从事务读-写集合提供链上事件数据模式发现,即使没有元数据。可实现从事件数据的链上JSON格式朝向由外部数据结构(例如,SQL)使用的任意数据格式的图形映射。对于此类JSON格式到X格式转换,ETL设备可例如使用震动库和/或元格式。实施例可具有以下有益效果:未实施转换的硬译码,因此可将相同的ETL设备用于到不同目标格式的转换。ETL设备还可提供SQL插入机制和/或用于插入和/或更新密钥约束的逻辑。根据实施例,可以整合数据谱系。作为NiFi示出的示例的数据整合可以与Apache At1as一起使用。Apache At1as提供可扩展和可扩展的核心基础管理服务集,使得能够有效且高效地满足合规性要求。提供开放元数据管理和管理能力以构建数据资产的目录、对这些资产进行分类和管理以及在这些数据资产周围提供协作能力。
ETL设备可包括信使,例如,网络通信接口,其经由区块链网络外部的网络向管理外部数据结构的外部计算设备提供通信连接。ETL设备包括提供模型驱动的事件数据映射以供ETL代码生成器用作输入来生成ETL代码的设计模块。设计模块可以包括ETL代码生成器。设计模块可以包括映射创建器以及代码生成器。ETL设备可包括运行时源提取器,该运行时源提取器用于捕获事件并发现由表示相应事件的事件数据所包括的数据元素的种类。运行时源提取器可以包括事件检测器以及运行时模式选择器。ETL设备可进一步包括用于执行ETL代码的运行时源至目标转换器。为此目的,源至目标转换器可以包括ETL代码执行器。
预先理解的是,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便、按需的网络访问,所述可配置计算资源可以用最小的管理努力或与服务提供者的交互来快速配置和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可按需自动地单方面供应计算能力,诸如服务器时间和网络存储,而无需与服务的提供者的人类交互。
广泛网络接入:在网络上可用并且通过标准机制来访问能力,所述标准机制促进由异构瘦或厚客户端平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参见图1,示出了示例性计算设备10的示例的示意图。计算设备10被配置为用于执行ETL代码的ETL设备。ETL设备可以由ETL对等体形式的区块链网络包括。可替代地,ETL设备是被配置成使用到区块链网络的对等体的加密安全消息传递连接来监视在区块链网络上交换的数据的外部计算设备。根据各实施例,计算设备可被实现为云计算节点。计算设备10仅是合适的计算设备的一个示例,以及不旨在对本文描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,计算设备10能够被实现和/或执行上文阐述的任何功能。
计算设备10可以是计算机系统/服务器,其可与许多其他通用或专用计算系统环境或配置一起操作。可以适合于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的示例包括,但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机,手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品,网络PC、小型计算机系统、大型计算机系统和包括任何上述系统或设备的分布式云计算环境,等等。
可以在由计算机系统执行的计算机系统可执行指令(如程序模块)的一般上下文中描述计算设备10。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算设备10可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机系统存储介质两者中。
如图1所示,计算设备10以通用计算设备的形式示出。计算装置10的组件可包含(但不限于)一个或一个以上处理器或处理单元16、系统存储器28和将包含系统存储器28的不同系统组件耦合到处理器16的总线18。
总线18表示若干类型的总线结构中的任一种总线结构中的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,这样的架构包括视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,诸如例如PCI、PCI-X和PCIe。
计算设备10通常包括各种计算机系统可读介质。此类介质可以是可由计算设备10访问的任何可用介质,以及它包括易失性和非易失性介质、可移动和不可移动介质两者。
系统存储器28可包含呈易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓冲存储器32。计算设备10还可包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅通过举例的方式,可以提供存储系统34用于从不可移动、非易失性磁介质(未示出,以及通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,可以提供用于读写可移动非易失性磁盘(例如,“软盘”)的磁盘驱动器以及用于读写诸如CD-ROM、DVD-ROM或其他光学介质之类的可移动非易失性光盘的光盘驱动器。在这样的实例中,每一个都可以通过一个或多个数据介质接口连接到总线18。如下面将进一步描绘和描述的,存储器28可以包括至少一个程序产品,该程序产品具有被配置为执行本发明的实施例的功能的程序模块的集合(例如,至少一个)。
具有一组(至少一个)程序模块42的程序/实用程序40以及操作系统、一个或多个应用程序、其他程序模块和程序数据可以通过举例而非限制的方式存储在存储器28中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一者或其某一组合可包含联网环境的实施例。程序模块42通常执行本发明所描述的实施例的功能和/或方法。
计算设备10还可与一个或多个外部设备14(诸如键盘、定点设备、显示器24等);使得用户能够与计算设备10交互的一个或多个设备;和/或使得计算设备10能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)通信。这样的通信可以经由输入/输出(I/O)接口22发生。还有,计算设备10可经由网络适配器20与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)之类的一个或多个网络通信。如所描绘的,网络适配器20经由总线18与计算设备10的其他组件通信。应理解,尽管未示出,但可结合计算装置10使用其他硬件和/或软件组件。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据归档存储系统等。
现在参见图2,描绘了说明性云计算环境50。如图所示,云计算环境50包括一个或多个云计算节点10,云消费者使用的本地计算设备(诸如个人数字助理(PDA)或移动电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N)可与云计算节点10通信。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如上文描述的私有云、共同体云、公共云或混合云或其组合。这允许云计算环境50提供基础结构、平台和/或软件作为云消费者不需要维护本地计算设备上的资源的服务。应理解,图2中所示的计算装置54A-N的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化装置通信。
现在参见图3,示出了由云计算环境50(图2)提供的一组功能抽象层。应预先理解,图3中所示的部件、层和功能旨在仅是说明性的,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括大型机,在一个示例中为系统、基于RISC(精简指令集计算机)架构的服务器;在一个示例中为IBM />系统、IBM />系统、IBM />系统、存储设备、网络和联网组件。软件组件的示例包括网络应用服务器软件,在一个示例中为IBM />应用服务器软件;以及数据库软件,在一个示例中为IBM />数据库软件。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere和DB2是国际商业机器公司在全世界许多管辖区域注册的商标)。
虚拟化层62提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器、虚拟存储、虚拟网络(包括虚拟专用网络)、虚拟应用和操作系统;以及虚拟客户端。
在一个实例中,管理层64可提供下文所描述的功能。资源供应提供用于在云计算环境内执行任务的计算资源和其他资源的动态获取。例如,可以提供云存储位置,例如虚拟化层62的虚拟存储。计量和定价在云计算环境内利用资源时提供成本跟踪,并针对这些资源的消费进行计费或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及对数据和其他资源的保护。例如,可以验证尝试访问由云基础设施提供的存储位置的用户的身份。用户门户为消费者和系统管理员提供对云计算环境的访问,例如,对由云基础结构提供的存储位置的访问。服务级别管理提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)计划和履行提供云计算资源的预安排和采购,根据SLA预期该云计算资源的未来要求。
工作负载层66提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:映射和导航、软件开发和生命周期管理、虚拟教室教育交付、数据分析处理、事务处理、用于记录事件数据并且执行从区块链记录的事件数据的模型驱动的提取的区块链服务。
图4描绘了示出示例性区块链网络120的示意图,该示例性区块链网络120包括提供ETL能力100(即,被配置为ETL对等体)的对等体126形式的ETL设备。对等体126可以例如以图1的计算设备10的形式来实现。第一组织“组织1.客户端”的客户端122可以使用也被称为分类账127的区块链来记录事务。这些事务可包括要存储在分类账127中的任何类型的信息。分类账127可以是许可的分类账,即,仅允许注册和授权的成员访问分类账127。客户端122可以不是区块链网络120的一部分并且连接到区块链网络120的第一对等体126。区块链网络120可包括其他对等体,例如对等体129。区块链网络120的对等体126、129可使用区块链网络的通信协议(例如,数据散播闲聊协议)来共享数据。通信协议可确保区块链网络120的所有对等体共享相同的数据。客户端122可以发起ETL能力100,ETL能力100例如由第一对等体126提供。由此,第一对等体126被配置为ETL对等体。根据替换实施例,ETL能力100可由区块链网络120的另一独立对等体来提供。ETL能力100可被配置成提供和执行ETL代码。ETL代码包括经配置以用于从分类账127的块提取事件数据的机器可执行指令集,使用所述事件模式来转换所提取的事件数据以符合定义所述外部数据结构的逻辑结构的数据模型,例如,链外数据库140,并将转换的数据加载到链外数据库140,用于修改链外数据库140的数据内容。
客户端122可通过请求也由第一对等体126提供并被称为背书者的背书能力124同意(例如,签署)所提议的链码调用来调用链码125。根据备选实施例,背书者124可由区块链网络120的另一独立对等体提供。背书者124检查所提议的链码调用,在它满足由背书者124定义的背书策略的情况下对其进行签名,以及利用该提议调用链码125。链码125可以例如使用分类账127来生成查询或更新提议响应。对等体126向客户端122提供提议响应,以响应对链码125的调用。
为了将事务(tx)添加到分类账127,客户端122可以向提供订购服务的订购者122发送请求事务。定购者122负责对事务进行订购并将所订购的事务封装成块。订购的事务由定购者122以块的方式发送到由对等体126提供的提交层123。在实现接受块到区块链的共识时,块由提交层123提交到分类账127。提交到分类账127的块被转发到ETL能力100,从而导致块流。例如,添加到分类账127的每个块可被检测为由块所包括的事件数据表示的事件。
ETL能力100执行ETL代码以从所接收的块中提取由事务提供的事件数据,转换事件数据以符合链外数据库140的数据模型,并将转换的事件数据加载到链外数据库140。由此,链外数据库140能够使用ETL能力100从分类账127提取块所包括的事件数据。链外数据库140可例如由数据分析器用于分析区块链网络120外部的事件数据。数据库管理系统可以例如使用数据模型来使用针对所提取的事件数据的预期使用(例如,由数据分析器进行的分析)而优化的逻辑结构来管理由链外数据库140包括的数据。
图5描绘了示出包括以ETL对等体100的形式提供的ETL设备的示例性区块链网络120的示意图。ETL对等体100可以例如以图1的计算设备10的形式实现。在图5中所示的区块链网络120的情况下,背书者124“组织1.背书者”以及ETL能力100各自独立于第一对等体126提供,即,以独立的背书的对等体124和独立的ETL对等体100的形式提供。区块链网络120内的数据可使用闲聊协议(GP)在第一对等体126和背书的对等体124之间路由。客户端122可以经由公共区块链信道121“信道1”与ETL对等体100、背书的对等体124、第一对等体126以及订购者128进行通信。ETL对等体100可包括用于检测由事件数据表示的事件的事件检测器。事件检测可以包括直接事件捕获和/或通过闲聊协议捕获事件。事件检测可进一步包括对删除事务的回调。模式确定选择器104被提供用于确定所检测到的事件的事件数据的事件模式。相应的事件模式可以由ETL对等体所使用的一个或多个库来提供。事件模式可通过将事件数据及其逻辑结构与由事件模式标识的逻辑结构进行比较来确定。由事件模式选择器104确定的事件模式可由映射创建器106用来创建由事件数据包括的并且由事件模式分配有逻辑数据元素类型的数据元素到由链外数据库140的数据模型定义的逻辑结构的映射。该映射可在实例级上执行,考虑了有效载荷数据(即,资产数据)以及由区块链网络120提供的区块链的块的事务所包括的元数据。根据各实施例,进一步的结构ID(诸如私钥和/或外键)可被插入到事件数据中和/或被操纵。ETL代码生成器108生成将由ETL对等体执行的ETL代码,以便从区块链的块中提取、转换和加载表示检测到的事件的事件数据。使用基于事件数据的事件模式以及离链数据库140的数据模型定义的映射来生成ETL代码。由ETL代码生成器生成的ETL代码由ETL对等体100执行。ETL代码提取器110用于使用所确定的事件模式从块和事务中提取事件数据。所提取的事件数据被转换成符合定义链外数据库140的逻辑结构的数据模型,以及使用ETL对等体100的信使112被加载到链外数据库140中,该信使112被配置成建立从由区块链网络120包括的ETL对等体100到位于区块链网络120外部的外部链外数据库140的通信连接。
图6描绘了示出包括以ETL对等体100的形式提供的ETL设备的示例性区块链网络120的示意图。ETL对等体100可以例如以图1的计算设备10的形式实现。图6的区块链网络120和ETL对等体100与包括图5的ETL对等体100的区块链网络120相同。图6更详细地示出了由ETL对等体100处理的事件数据。ETL对等体100可由区块链网络120外部的客户机实例化,并接收被提交到由区块链网络120提供的区块链的块130。块130可以包括事务有效载荷数据,例如以下形式的事务:
此事务以名称为“JAVA EE”的书的形式定义附加资产并且提供关于此项(即,书)的附加信息。附加信息在DE、UK和US中定义了书的价格。
链外数据库140的数据模型可以是关系数据模型。因此,可以使用针对块130的事务确定的事件模式和链外数据库140的关系数据模型来将由块130包括的事件数据转换成符合相应数据模型的格式。所得到的经转换的事件数据可以具有两个表的逻辑结构。第一表格可以是识别书籍并具有以下形式的书籍表格:
表格“书”包括分配有主键的书名“JAVA EE”。此外,第二表被提供有附加信息。第二表具有以下形式:
表格“信息”为被分配主键的每个位置提供价格。此外,每个价格信息被分配有指向书表的第一键的相同外键“1”。由此,仅存储书表的信息就足够了,而不是存储每个不同价格信息的副本。
图7描绘了用于通过ETL设备从区块链提取数据的示例性方法的示意性流程图。ETL设备可例如被实现为由提供区块链的区块链网络所包括的ETL对等体。在框200中,由ETL设备检测事件。为了检测事件,可以使用ETL设备的运行时源提取器的事件检测器。在框202中,由ETL设备针对检测到的事件确定事件模式。为了确定,可以使用运行时源提取器的模式选择器以及提供事件模式的一个或多个库。所确定的事件模式标识表示所检测到的事件的事件数据的逻辑结构。在框204中,ETL设备提供ETL代码。ETL代码包括机器可执行指令集,所述机器可执行指令集被配置用于从由区块链网络提供的区块链的块提取检测到的事件的事件数据。ETL代码还可以被配置用于使用所确定的事件模式来转换所提取的事件数据以符合定义外部数据结构的逻辑结构的数据模型,例如,链外数据库,使用提取的事件数据修改其数据内容,以及用于将经转换的数据加载到外部数据结构以修改外部数据结构的数据内容。ETL代码的提供可包括使用ETL设备的映射创建器将事件数据映射到外部数据结构的逻辑结构。对于映射,可以使用所确定的事件模式以及外部数据结构的数据模型。此外,提供ETL-代码可包括使用映射为事件生成ETL-代码。在框206中,由ETL设备执行所提供的ETL代码。ETL设备可使用运行时源至目标转换器的代码执行器来执行ETL代码。ETL-代码的执行使得ETL-设备从区块链块中提取表示检测到的事件的事件数据,使用所述事件模式来转换所提取的事件数据以符合所述外部数据结构的所述数据模型,以及将转换的事件数据加载到外部数据结构以根据检测到的事件修改外部数据结构的数据内容。经转换的事件数据的加载可包括ETL设备经由消息传递网络将经转换的事件数据消息传递到区块链网络外部的外部计算装置。外部计算设备可以管理外部数据结构。
图8描绘了示出包括具有事件数据134、136、138的事务132的区块链的示例性块130的示意图。事务表示用户购买保险。为此目的,事务写入两个附加资产,即附加用户资产136和附加合同资产138。用户资产136可以包括用户相关数据,如用户名、密码等。合同资产138包括关于保险合同的信息(例如,合同ID)以及关于关注项目的附加信息(例如,价值、品牌、序列号等)。此外,事务132可包括元数据134,例如提供事务的时间戳、识别事务132的创建者、识别事务132的背书者等。
图9描绘了示意图,说明了图8的块130的事件数据到以根据关系数据模型定义的多个表142、144、146的形式提供的外部数据结构的示例性映射。用户表142可以包括用户相关信息,如来自元数据134的时间戳和创建者ID以及作为来自用户资源136的主密钥和密码的用户名。定约表144可以包括定约相关信息,如作为来自用户资产136的外键的用户名、作为来自合同资产138的主键和项目序列号的合同ID、以及时间戳以及来自元数据134的创建者ID。最后,项目表146可以包括作为外键或主键的项目的序列号、品牌和来自合同资产136的值。
图10描绘了示出具有包括事件数据134、136的事务132的区块链的另一示例性块130的示意图。除了元数据134(例如,时间戳、创建者ID、背书者ID等)之外,事件数据可以包括识别待删除的密钥“1239DWDIAJ0Q”的数据删除136。为了能够对外部数据结构执行此删除,可以要求ETL设备标识由密钥“1239DWDIAJ0Q”引用的实际数据值。为了标识相应的数据值,ETL-设备可以在执行本地数据集合上的数据删除之前使用针对本地数据集合的回调函数,或者ETL-设备可以搜索区块链以寻找键“1239DWDIAJ0Q”的最近分配。在已经标识由密钥“1239DWDIAJ0Q”引用的实际数据值之后,ETL设备可生成标识要从外部数据结构的数据内容中删除的数据元素的删除请求,以便根据由事务132定义的数据删除来修改数据内容。
图11描绘了示出具有包括事件数据134、136的事务132的区块链的示例性块130的示意图。除了元数据134(例如,时间戳、创建者ID、背书者ID等)之外,事件数据可以包括定义添加到私有数据集合的数据元素的数据散列值(“WIDAJIWJXAOIJ21D0I9CDJZ40MFXH2CMCN9F0J82βMVCD32WJAOX”)。为了防止由具有访问区块链的访问权限但没有访问相应数据元素的访问权限的实体对相应数据元素的未授权访问,仅散列值被记录在事务132中。因此,能够访问相应私有数据集合的副本的每个实体能够确定相应数据元素的实际值,同时阻止所有其他实体访问相应数据元素。实际数据元素可经由实体(如ETL设备)之间的安全信道被路由,其中有权访问私有数据集合的副本。为了能够提取相应的数据元素,ETL设备可使用数据散列值来标识该数据元素,以及可从私有数据集合中提取该数据元素,以便也向它提供外部数据结构。
应当理解,可以组合本发明的上述实施方式中的一个或多个,只要组合的实施方式不相互排斥即可。
本文中参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
本发明可以是系统、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储介质(或介质),所述计算机可读程序指令用于致使处理器执行本发明的各方面。
计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体例子的非穷举列表包括以下:便携式计算机盘,硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存),静态随机存取存储器(SRAM)、便携式致密盘只读存储器(CD-ROM),数字通用盘(DVD)、记忆棒、软盘、机械编码设备(诸如穿孔卡片或具有记录在其上的指令的凹槽中的凸起结构),以及上述的任意合适的组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令,指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,包括面向对象的Smalltalk、C++等编程语言,以及常规的过程式编程语言,诸如‘C’编程语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机系统的计算机上执行、部分地在用户计算机系统的计算机上执行、作为独立的软件包执行、部分在用户计算机系统”的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机系统的计算机,或者可连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的方面。
本文中参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述本发明的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
这些计算机可读程序指令可提供给通用计算机的处理器,专用计算机或其他可编程数据处理装置,以产生机器,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储介质,可编程数据处理装置,和/或以特定方式起作用的其他设备中,使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
计算机可读程序指令还可加载到计算机、其他可编程数据处理设备上,或使得在计算机上执行一系列操作步骤的其他装置,其他可编程装置或其他设备,以产生计算机实现的过程,使得在计算机上执行的指令,其他可编程装置或其他设备实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中所标注的功能可以不以图中所标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定的功能或动作或执行专用硬件与计算机指令的组合。
上述特征的可能组合可以是如下:
1.一种用于由具有对区块链网络访问的计算设备对表示在区块链网络上发生的事件的事件数据进行模型驱动的提取的方法,其中,所述计算设备被配置为ETL设备,所述ETL设备用于执行ETL代码以使用所述提取的事件数据来修改所述区块链网络外部的外部数据结构的数据内容,该方法包括:
检测发生在所述区块链网络上的所述事件,
确定所述检测到的事件的事件模式,其中所述事件模式标识表示所述检测到的事件的所述事件数据的逻辑结构,
提供所述ETL代码,其中所述ETL代码包括被配置用于提取表示所述检测到的事件的所述事件数据的机器可执行指令集,使用所述事件模式来转换所提取的事件数据以符合定义所述外部数据结构的逻辑结构的数据模型,以及将所述转换的数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容,
执行所述提供的ETL代码,其中所述ETL代码的执行使得所述ETL设备:
提取表示所述检测到的事件的所述事件数据,
使用所述事件模式转换所述提取的事件数据以符合所述外部数据结构的所述数据模型,
将所述转换的事件数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容。
2.如方案1所述的方法,其中,所述转换的事件数据的加载包括由所述ETL设备经由消息传递网络向所述区块链网络外部的外部计算装置消息传递所述转换的事件数据,其中所述外部计算装置管理所述外部数据结构。
3.如前述方案中任一项所述的方法,其中,提供所述ETL码包括:
将所述事件数据映射到所述外部数据结构的所述逻辑结构,其中对于所述映射,使用所述确定的事件模式以及所述外部数据结构的所述数据模型,
使用所述映射来为所述事件生成所述ETL代码。
4.如前述方案中任一项所述的方法,其中,所述ETL设备以ETL对等体的形式包括在所述区块链网络中。
5.如方案1至3中任一项所述的方法,其中,所述ETL设备是外部计算装置,所述外部计算装置被配置成用于使用到所述区块链网络的对等体的加密安全消息传递连接来监测在所述区块链网络上交换的数据。
6.如方案4所述的方法,其中,检测所述事件包括通过检测由所述ETL对等体提供以作为所述区块链的块的一部分被添加到所述区块链的事件数据来捕获直接事件。
7.如方案4所述的方法,其中,所述事件的检测包括使用所述区块链网络的通信协议来监视经由所述ETL对等体在所述区块链网络上路由的数据。
8.如前述方案中任一项的方法,其中,使用库来确定该事件模式,所述库提供标识表示潜在地发生在该区块链网络上的事件的类型的事件数据的逻辑结构的一个或多个事件模式。
9.如方案8所述的方法,其中,在由所述库提供的所述事件模式中没有一个匹配所述检测到的事件的所述事件数据的所述逻辑结构的情况下,所述方法进一步包括:
分析所述检测到的事件的所述事件数据的逻辑结构,
确定与所述检测到的事件的所述事件数据的逻辑结构匹配的附加事件模式,将所述附加事件模式添加到所述库。
10.如前述方案中任一项所述的方法,其中所述事件模式的所述确定包括使用所述确定的事件模式来给由所述事件数据包括的一个或多个数据元素加标签,其中所述标签识别由所述确定的事件模式定义的数据元素的结构类型。
11.如方案10所述的方法,其中,所述标签用于将标记的数据元素映射到由所述外部数据结构的逻辑结构定义的结构元素。
12.如前述方案中任一项所述的方法,其中,以数据库和用于使用所述数据模型管理所述数据库的数据库管理系统的形式提供所述外部数据结构。
13.如方案12所述的方法,其中,由所述数据库管理系统用于管理所述数据库的所述数据模型是以下数据模型中的一个:关系数据模型,层级数据模型、网络数据模型、面向对象的数据模型、图形数据模型,实体关系模型数据模型、键值数据模型、多维数据模型,面向列的数据模型、面向文档的数据模型和数据流数据模型。
14.如前述方案中任一项所述的方法,其中,所述转换所述提取的事件数据包括将根据所述数据模型将一个或多个结构ID添加到所述提取的事件数据。
15.如前述方案中任一项所述的方法,其中,提取事件数据,在所述检测到的事件包括数据删除的情况下,进一步包括执行回调以便从所述区块链网络检索额外数据,以及使用所述额外数据来确定要从所述外部数据结构删除的一个或多个数据元素以便根据所述数据删除来修改所述外部数据结构的所述数据内容。
16.如方案15所述的方法,其中,所述回调针对由所述区块链网络提供的区块链或由所述区块链网络的对等体提供的本地数据集合。
17.如前述方案中任一项所述的方法,其中,从由所述区块链网络提供的所述区块链的块中提取所述事件数据。
18.如前述方案中任一项所述的方法,其中,所述区块链是具有受限访问以从所述区块链提取数据的许可区块链,其中,所述ETL设备被注册并且包括使得所述ETL设备能够从所述区块链提取数据的访问权限。
19.如前述方案中任一项所述的方法,其中,所述区块链包括加密的数据,其中,所述ETL设备能够访问解密密钥,其中,提取事件数据包括解密所述事件数据。
20.如前述方案中任一项所述的方法,其中,提取事件数据进一步包括从由所述区块链网络的对等体提供的本地数据集合检索额外的事件数据,其中,所述额外的事件数据被分配给从所述区块链的所述块提取的所述事件数据。
21.如方案20所述的方法,其中,所述本地数据集合是由所述区块链网络的有限对等体集合共享的私有数据集合,并且所述私有数据集合的私有数据使用被限制为仅由所述有限对等体集合中的所述对等体使用的加密安全通信连接来路由。
22.如前述方案中任一项所述的方法,其中,所述加载包括使用所述转换的数据的写入请求。
23.如方案22所述的方法,其中,所述写入请求包括对以下中的至少一个的请求:使用所述转换的数据更新所述外部数据结构的所述数据内容的数据元素,删除由所述转换的数据识别的所述外部数据结构的所述数据内容的数据元素,将由所述经转换的数据提供的额外数据元素插入到所述外部数据结构的所述数据内容中。
24.一种计算机程序产品,包括非易失性计算机可读存储介质,所述非易失性计算机可读存储介质具有随其体现的计算机可读程序代码,所述计算机可读程序代码用于由具有对区块链网络访问的计算设备对表示在区块链网络上发生的事件的事件数据进行模型驱动的提取,其中,所述计算设备被配置为ETL设备,所述ETL设备用于执行ETL代码以使用所述提取的事件数据来修改所述区块链网络外部的外部数据结构的数据内容,其中,由所述ETL设备的处理器执行所述程序代码使得所述处理器控制所述ETL设备:
检测发生在所述区块链网络上的所述事件,
确定所述检测到的事件的事件模式,其中所述事件模式标识表示所述检测到的事件的所述事件数据的逻辑结构,
提供所述ETL代码,其中所述ETL代码包括被配置用于提取表示所述检测到的事件的所述事件数据的机器可执行指令集,使用所述事件模式来转换所提取的事件数据以符合定义所述外部数据结构的逻辑结构的数据模型,以及将所述转换的数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容,
执行所述提供的ETL代码,其中所述ETL代码的执行使得所述ETL设备:
提取表示所检测到的事件的所述事件数据,
使用所述事件模式转换所述提取的事件数据以符合所述外部数据结构的所述数据模型,
将所述转换的事件数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容。
25.一种具有对区块链网络的访问的计算设备,所述计算设备用于对表示在所述区块链网络上发生的事件的事件数据进行模型驱动的提取,其中,所述计算设备被配置为ETL设备,所述ETL设备用于执行ETL代码以使用所述提取的事件数据来修改所述区块链网络外部的外部数据结构的数据内容,
其中,所述ETL设备包括处理器和存储机器可执行程序指令的存储器,其中,由所述处理器执行所述程序指令使得所述处理器控制所述ETL设备:
检测发生在所述区块链网络上的所述事件,
确定所述检测到的事件的事件模式,其中所述事件模式标识表示所述检测到的事件的所述事件数据的逻辑结构,
提供所述ETL代码,其中所述ETL代码包括被配置用于提取表示所述检测到的事件的所述事件数据的机器可执行指令集,使用所述事件模式来转换所提取的事件数据以符合定义所述外部数据结构的逻辑结构的数据模型,以及将所转换的数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容,
执行所提供的ETL代码,其中所述ETL代码的执行使得所述ETL设备:
提取表示所检测到的事件的所述事件数据,
使用所述事件模式转换所述提取的事件数据以符合所述外部数据结构的所述数据模型,
将所述经转换的事件数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容。
Claims (25)
1.一种用于由具有对区块链网络访问的计算设备对表示在区块链网络上发生的事件的事件数据进行模型驱动的提取的方法,其中,所述计算设备被配置为ETL设备,所述ETL设备用于执行ETL代码以使用所述提取的事件数据来修改所述区块链网络外部的外部数据结构的数据内容,该方法包括:
检测发生在所述区块链网络上的所述事件,
确定所述检测到的事件的事件模式,其中所述事件模式标识表示所述检测到的事件的所述事件数据的逻辑结构,
提供所述ETL代码,其中所述ETL代码包括被配置用于提取表示所述检测到的事件的所述事件数据的机器可执行指令集,使用所述事件模式来转换所提取的事件数据以符合定义所述外部数据结构的逻辑结构的数据模型,以及将所述转换的数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容,
执行所述提供的ETL代码,其中所述ETL代码的执行使得所述ETL设备:
提取表示所述检测到的事件的所述事件数据,
使用所述事件模式转换所述提取的事件数据以符合所述外部数据结构的所述数据模型,
将所述转换的事件数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容。
2.如权利要求1所述的方法,其中,所述转换的事件数据的加载包括由所述ETL设备经由消息传递网络向所述区块链网络外部的外部计算装置消息传递所述转换的事件数据,其中所述外部计算装置管理所述外部数据结构。
3.如前述权利要求中任一项所述的方法,其中,提供所述ETL码包括:
将所述事件数据映射到所述外部数据结构的所述逻辑结构,其中对于所述映射,使用所述确定的事件模式以及所述外部数据结构的所述数据模型,
使用所述映射来为所述事件生成所述ETL代码。
4.如前述权利要求中任一项所述的方法,其中,所述ETL设备以ETL对等体的形式包括在所述区块链网络中。
5.如权利要求1至3中任一项所述的方法,其中,所述ETL设备是外部计算装置,所述外部计算装置被配置成用于使用到所述区块链网络的对等体的加密安全消息传递连接来监测在所述区块链网络上交换的数据。
6.如权利要求4所述的方法,其中,检测所述事件包括通过检测由所述ETL对等体提供以作为所述区块链的块的一部分被添加到所述区块链的事件数据来捕获直接事件。
7.如权利要求4所述的方法,其中,所述事件的检测包括使用所述区块链网络的通信协议来监视经由所述ETL对等体在所述区块链网络上路由的数据。
8.如前述权利要求中任一项所述的方法,其中,使用库来确定该事件模式,所述库提供标识表示潜在地发生在该区块链网络上的事件的类型的事件数据的逻辑结构的一个或多个事件模式。
9.如权利要求8所述的方法,其中,在由所述库提供的所述事件模式中没有一个匹配所述检测到的事件的所述事件数据的所述逻辑结构的情况下,所述方法进一步包括:
分析所述检测到的事件的所述事件数据的逻辑结构,
确定与所述检测到的事件的所述事件数据的逻辑结构匹配的附加事件模式,
将所述附加事件模式添加到所述库。
10.如前述权利要求中任一项所述的方法,其中所述事件模式的所述确定包括使用所述确定的事件模式来给由所述事件数据包括的一个或多个数据元素加标签,其中所述标签识别由所述确定的事件模式定义的数据元素的结构类型。
11.如权利要求10所述的方法,其中,所述标签用于将标记的数据元素映射到由所述外部数据结构的逻辑结构定义的结构元素。
12.如前述权利要求中任一项所述的方法,其中,以数据库和用于使用所述数据模型管理所述数据库的数据库管理系统的形式提供所述外部数据结构。
13.如权利要求12所述的方法,其中,由所述数据库管理系统用于管理所述数据库的所述数据模型是以下数据模型中的一个:关系数据模型,层级数据模型、网络数据模型、面向对象的数据模型、图形数据模型,实体关系模型数据模型、键值数据模型、多维数据模型,面向列的数据模型、面向文档的数据模型和数据流数据模型。
14.如前述权利要求中任一项所述的方法,其中,所述转换所述提取的事件数据包括将根据所述数据模型将一个或多个结构ID添加到所述提取的事件数据。
15.如前述权利要求中任一项所述的方法,其中,提取事件数据,在所述检测到的事件包括数据删除的情况下,进一步包括执行回调以便从所述区块链网络检索额外数据,以及使用所述额外数据来确定要从所述外部数据结构删除的一个或多个数据元素以便根据所述数据删除来修改所述外部数据结构的所述数据内容。
16.如权利要求15所述的方法,其中,所述回调针对由所述区块链网络提供的区块链或由所述区块链网络的对等体提供的本地数据集合。
17.如前述权利要求中任一项所述的方法,其中,从由所述区块链网络提供的所述区块链的块中提取所述事件数据。
18.如前述权利要求中任一项所述的方法,其中,所述区块链是具有受限访问以从所述区块链提取数据的许可区块链,其中,所述ETL设备被注册并且包括使得所述ETL设备能够从所述区块链提取数据的访问权限。
19.如前述权利要求中任一项所述的方法,其中,所述区块链包括加密的数据,其中,所述ETL设备能够访问解密密钥,其中,提取事件数据包括解密所述事件数据。
20.如前述权利要求中任一项所述的方法,其中,提取事件数据进一步包括从由所述区块链网络的对等体提供的本地数据集合检索额外的事件数据,其中,所述额外的事件数据被分配给从所述区块链的所述块提取的所述事件数据。
21.如权利要求20所述的方法,其中,所述本地数据集合是由所述区块链网络的有限对等体集合共享的私有数据集合,并且所述私有数据集合的私有数据使用被限制为仅由所述有限对等体集合中的所述对等体使用的加密安全通信连接来路由。
22.如前述权利要求中任一项所述的方法,其中,所述加载包括使用所述转换的数据的写入请求。
23.如权利要求22所述的方法,其中,所述写入请求包括对以下中的至少一个的请求:使用所述转换的数据更新所述外部数据结构的所述数据内容的数据元素,删除由所述转换的数据识别的所述外部数据结构的所述数据内容的数据元素,将由所述经转换的数据提供的额外数据元素插入到所述外部数据结构的所述数据内容中。
24.一种计算机程序产品,包括非易失性计算机可读存储介质,所述非易失性计算机可读存储介质具有随其体现的计算机可读程序代码,所述计算机可读程序代码用于由具有对区块链网络访问的计算设备对表示在区块链网络上发生的事件的事件数据进行模型驱动的提取,其中,所述计算设备被配置为ETL设备,所述ETL设备用于执行ETL代码以使用所述提取的事件数据来修改所述区块链网络外部的外部数据结构的数据内容,其中,由所述ETL设备的处理器执行所述程序代码使得所述处理器控制所述ETL设备:
检测发生在所述区块链网络上的所述事件,
确定所述检测到的事件的事件模式,其中所述事件模式标识表示所述检测到的事件的所述事件数据的逻辑结构,
提供所述ETL代码,其中所述ETL代码包括被配置用于提取表示所述检测到的事件的所述事件数据的机器可执行指令集,使用所述事件模式来转换所提取的事件数据以符合定义所述外部数据结构的逻辑结构的数据模型,以及将所述转换的数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容,
执行所述提供的ETL代码,其中所述ETL代码的执行使得所述ETL设备:
提取表示所检测到的事件的所述事件数据,
使用所述事件模式转换所述提取的事件数据以符合所述外部数据结构的所述数据模型,
将所述转换的事件数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容。
25.一种具有对区块链网络的访问的计算设备,所述计算设备用于对表示在所述区块链网络上发生的事件的事件数据进行模型驱动的提取,其中,所述计算设备被配置为ETL设备,所述ETL设备用于执行ETL代码以使用所述提取的事件数据来修改所述区块链网络外部的外部数据结构的数据内容,
其中,所述ETL设备包括处理器和存储机器可执行程序指令的存储器,其中,由所述处理器执行所述程序指令使得所述处理器控制所述ETL设备:
检测发生在所述区块链网络上的所述事件,
确定所述检测到的事件的事件模式,其中所述事件模式标识表示所述检测到的事件的所述事件数据的逻辑结构,
提供所述ETL代码,其中所述ETL代码包括被配置用于提取表示所述检测到的事件的所述事件数据的机器可执行指令集,使用所述事件模式来转换所提取的事件数据以符合定义所述外部数据结构的逻辑结构的数据模型,以及将所转换的数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容,
执行所提供的ETL代码,其中所述ETL代码的执行使得所述ETL设备:
提取表示所检测到的事件的所述事件数据,
使用所述事件模式转换所述提取的事件数据以符合所述外部数据结构的所述数据模型,
将所述经转换的事件数据加载到所述外部数据结构以修改所述外部数据结构的所述数据内容。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19170763 | 2019-04-24 | ||
EP19170763.7 | 2019-04-24 | ||
PCT/EP2020/057574 WO2020216536A1 (en) | 2019-04-24 | 2020-03-19 | Extracting data from a blockchain network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113711536A CN113711536A (zh) | 2021-11-26 |
CN113711536B true CN113711536B (zh) | 2023-09-15 |
Family
ID=66251637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080030363.3A Active CN113711536B (zh) | 2019-04-24 | 2020-03-19 | 从区块链网络中提取数据 |
Country Status (10)
Country | Link |
---|---|
US (2) | US11449476B2 (zh) |
EP (1) | EP3959842A1 (zh) |
JP (1) | JP7461695B2 (zh) |
KR (1) | KR20210133289A (zh) |
CN (1) | CN113711536B (zh) |
AU (1) | AU2020261982B2 (zh) |
CA (1) | CA3137242A1 (zh) |
IL (1) | IL287252A (zh) |
SG (1) | SG11202109836QA (zh) |
WO (1) | WO2020216536A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10929352B2 (en) * | 2018-05-29 | 2021-02-23 | Oracle International Corporation | Securing access to confidential data using a blockchain ledger |
US11416510B2 (en) * | 2019-04-10 | 2022-08-16 | Kpmg Llp | Systems and methods for applying lifecycle processes to digital data objects utilizing distributed ledger technology and artificial intelligence |
CA3137242A1 (en) | 2019-04-24 | 2020-10-29 | International Business Machines Corporation | Extracting data from a blockchain network |
US11647078B2 (en) * | 2020-04-16 | 2023-05-09 | Verizon Patent And Licensing Inc. | Content consumption measurement for digital media using a blockchain |
US11762889B2 (en) * | 2020-05-06 | 2023-09-19 | Jpmorgan Chase Bank, N.A. | Method and apparatus for implementing an automatic data ingestion module |
US11233640B2 (en) * | 2020-05-13 | 2022-01-25 | Ridgeline, Inc. | Mutation processing for events |
US11949784B2 (en) | 2020-05-13 | 2024-04-02 | Ridgeline, Inc. | Auditing for events |
US11556517B2 (en) * | 2020-05-17 | 2023-01-17 | International Business Machines Corporation | Blockchain maintenance |
US11854038B1 (en) * | 2020-06-16 | 2023-12-26 | Balan Mahesh | Multi-party, multi-point type decentralized loyalty system for promotion and point issuance using a permission-based distributed ledger for promotion, point issuance, and point redemption |
CN111935000B (zh) * | 2020-09-25 | 2021-01-08 | 支付宝(杭州)信息技术有限公司 | 消息传输方法及装置 |
US20220150073A1 (en) * | 2020-11-09 | 2022-05-12 | International Business Machines Corporation | Blockchain based verifiabilty of user status |
CA3206364A1 (en) * | 2020-11-09 | 2022-05-12 | Automobilia Ii, Llc | Methods, systems and computer program products for media processing and display |
US11849026B2 (en) * | 2021-04-13 | 2023-12-19 | Sap Se | Database integration with an external key management system |
US11816087B2 (en) * | 2021-07-13 | 2023-11-14 | Tata Consultancy Services Limited | Method and system for blockchain monitoring |
US11709820B2 (en) * | 2021-09-03 | 2023-07-25 | Bank Of America Corporation | System for implementing intelligent data analysis |
US20230091179A1 (en) * | 2021-09-17 | 2023-03-23 | B Data Solutions Inc. | System and method for building a trusted network of devices |
US11907179B2 (en) | 2021-09-23 | 2024-02-20 | Bank Of America Corporation | System for intelligent database modelling |
CN114495445A (zh) * | 2021-12-28 | 2022-05-13 | 山东华特智慧科技有限公司 | 一种智慧水利的实现方法、系统、设备及可读存储介质 |
CN114374633B (zh) * | 2022-01-07 | 2023-11-10 | 广东工业大学 | 一种基于智能合约的可信物联网云服务评价方法及系统 |
US11928125B2 (en) | 2022-07-05 | 2024-03-12 | Capital One Services, Llc | Cleaning and organizing schemaless semi-structured data for extract, transform, and load processing |
CN116599966A (zh) * | 2023-05-09 | 2023-08-15 | 天津大学 | 基于区块链共享的边缘云服务并行资源分配方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664650A (zh) * | 2018-05-17 | 2018-10-16 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的事务处理方法、装置、设备及存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060553B2 (en) * | 2003-08-27 | 2011-11-15 | International Business Machines Corporation | Service oriented architecture for a transformation function in a data integration platform |
KR20070057806A (ko) | 2004-08-31 | 2007-06-07 | 인터내셔널 비지네스 머신즈 코포레이션 | 엔터프라이즈 데이터 통합 시스템을 위한 아키텍처 |
US10607442B2 (en) * | 2015-09-25 | 2020-03-31 | Bally Gaming, Inc. | Unified digital wallet |
US9990408B2 (en) | 2015-11-10 | 2018-06-05 | OpenMetrik Inc. | System and methods for integrated performance measurement environment |
KR20180115768A (ko) | 2016-02-23 | 2018-10-23 | 엔체인 홀딩스 리미티드 | 블록체인으로부터 데이터의 안전한 추출을 위한 암호화 방법 및 시스템 |
US20210211468A1 (en) * | 2016-05-27 | 2021-07-08 | Wells Fargo Bank, N.A. | Systems and methods for service compliance via blockchain |
US10621150B2 (en) | 2017-03-05 | 2020-04-14 | Jonathan Sean Callan | System and method for enforcing the structure and content of databases synchronized over a distributed ledger |
US10515233B2 (en) | 2017-03-19 | 2019-12-24 | International Business Machines Corporation | Automatic generating analytics from blockchain data |
US20180308072A1 (en) | 2017-04-21 | 2018-10-25 | Gem | Method and apparatus for blockchain management |
US10944546B2 (en) * | 2017-07-07 | 2021-03-09 | Microsoft Technology Licensing, Llc | Blockchain object interface |
CN107562775B (zh) | 2017-07-14 | 2020-04-24 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
US11751966B2 (en) | 2017-07-27 | 2023-09-12 | Intuitive Surgical Operations, Inc. | Medical device handle |
US10565192B2 (en) | 2017-08-01 | 2020-02-18 | International Business Machines Corporation | Optimizing queries and other retrieve operations in a blockchain |
US11032293B2 (en) * | 2018-02-10 | 2021-06-08 | SmartAxiom, Inc. | System and method for managing and securing a distributed ledger for a decentralized peer-to-peer network |
CA3137242A1 (en) | 2019-04-24 | 2020-10-29 | International Business Machines Corporation | Extracting data from a blockchain network |
-
2020
- 2020-03-19 CA CA3137242A patent/CA3137242A1/en active Pending
- 2020-03-19 AU AU2020261982A patent/AU2020261982B2/en active Active
- 2020-03-19 KR KR1020217031493A patent/KR20210133289A/ko not_active Application Discontinuation
- 2020-03-19 JP JP2021561869A patent/JP7461695B2/ja active Active
- 2020-03-19 EP EP20711599.9A patent/EP3959842A1/en active Pending
- 2020-03-19 CN CN202080030363.3A patent/CN113711536B/zh active Active
- 2020-03-19 SG SG11202109836Q patent/SG11202109836QA/en unknown
- 2020-03-19 WO PCT/EP2020/057574 patent/WO2020216536A1/en unknown
- 2020-03-25 US US16/829,535 patent/US11449476B2/en active Active
-
2021
- 2021-10-13 IL IL287252A patent/IL287252A/en unknown
-
2022
- 2022-09-13 US US17/931,567 patent/US11921682B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664650A (zh) * | 2018-05-17 | 2018-10-16 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的事务处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3959842A1 (en) | 2022-03-02 |
US11449476B2 (en) | 2022-09-20 |
AU2020261982A1 (en) | 2021-09-30 |
JP2022529967A (ja) | 2022-06-27 |
US11921682B2 (en) | 2024-03-05 |
IL287252A (en) | 2021-12-01 |
CN113711536A (zh) | 2021-11-26 |
KR20210133289A (ko) | 2021-11-05 |
JP7461695B2 (ja) | 2024-04-04 |
US20200341951A1 (en) | 2020-10-29 |
WO2020216536A1 (en) | 2020-10-29 |
SG11202109836QA (en) | 2021-10-28 |
AU2020261982B2 (en) | 2023-07-06 |
CA3137242A1 (en) | 2020-10-29 |
US20230004537A1 (en) | 2023-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113711536B (zh) | 从区块链网络中提取数据 | |
JP7454616B2 (ja) | 分散型元帳におけるdagベースのトランザクション処理方法およびシステム | |
US20200145196A1 (en) | System and method for implementing a resolver service for decentralized identifiers | |
US11449478B2 (en) | Blockchain implemented data migration audit trail | |
US20220027348A1 (en) | Cross-shard private atomic commit | |
JP2021533448A (ja) | ハイパーレッジャファブリックブロックチェーンにおいてsqlベースのリッチクエリをサポートするためのシステムおよび方法 | |
CA3136622A1 (en) | Systems, devices, and methods for dlt-based data management platforms and data products | |
US11736456B2 (en) | Consensus service for blockchain networks | |
US11689616B2 (en) | Optimization of delivery of blocks | |
CN115769241A (zh) | 针对经许可的区块链的隐私保护架构 | |
US11917088B2 (en) | Integrating device identity into a permissioning framework of a blockchain | |
CN111291394B (zh) | 一种虚假信息管理方法、装置和存储介质 | |
US11816069B2 (en) | Data deduplication in blockchain platforms | |
US11550796B2 (en) | Coexistence mediator for facilitating blockchain transactions | |
US20220407707A1 (en) | Generative cryptogram for blockchain data managment | |
US20230101685A1 (en) | Parallel processing of blockchain procedures | |
US11640392B2 (en) | Blockchain endorsement agreement | |
CN111698198B (zh) | 秘密生成和份额分发 | |
US11743327B2 (en) | Topological ordering of blockchain associated proposals | |
US20240020299A1 (en) | Api management for batch processing |
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 |