CN116097247A - 自动化etl工作流生成 - Google Patents
自动化etl工作流生成 Download PDFInfo
- Publication number
- CN116097247A CN116097247A CN202180056864.3A CN202180056864A CN116097247A CN 116097247 A CN116097247 A CN 116097247A CN 202180056864 A CN202180056864 A CN 202180056864A CN 116097247 A CN116097247 A CN 116097247A
- Authority
- CN
- China
- Prior art keywords
- etl
- data
- source
- workflow
- data set
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- 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
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Library & Information Science (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
示例性实施例公开了一种系统和方法、计算机程序产品和计算机系统。示例性实施例可以包括:接收数据分析请求;使用知识图谱用于基于所接收的数据分析请求确定源数据集,其中该知识图谱表示基于提取、变换和加载(ETL)的本体,其中该知识图谱包括表示实体的节点和表示实体之间的关系的边,并且其中该实体是基于ETL的本体的概念的实例;构建ETL工作流用于根据与知识图谱中的源数据集相关联的数据沿袭来处理源数据集;以及执行ETL工作流。
Description
背景技术
示例性实施例涉及数字计算机系统领域,并且更具体地,涉及用于自动化提取、变换和加载(ETL)工作流生成的方法。
在计算中,ETL可以是将数据从一个或多个源系统复制到目的地系统中的一般过程,该目的地系统可与源不同地表示数据或在与源不同的上下文中表示数据。ETL系统可从源系统提取数据,实施数据质量和一致性标准,使数据一致,使得单独的源系统可一起使用,并最终以呈现就绪格式传递数据,使得应用开发者可构建应用,且最终用户可作出决定。然而,这样的ETL系统仅对于专家是可访问的,这强烈地限制了其潜在影响。
发明内容
示例性实施例公开了一种系统和方法、计算机程序产品和计算机系统。示例性实施例可以包括:接收数据分析请求;使用知识图谱用于基于所接收的数据分析请求确定源数据集,其中所述知识图谱表示基于提取、变换和加载(ETL)的本体,其中所述知识图谱包括表示实体的节点和表示实体之间的关系的边,并且其中所述实体是基于ETL的本体的概念的实例;构建ETL工作流用于根据与知识图谱中的源数据集相关联的数据沿袭(datalineage)来处理源数据集;以及执行该ETL工作流。
附图说明
结合附图,将最好地理解以下具体实施方式,其通过示例给出并且不旨在将示例性实施例仅限制于此,其中:
图1A是根据示例性实施例的计算机系统的框图。
图1B描绘了根据示例性实施例的基于ETL的本体。
图2是根据示例性实施例的用于自动化工作流生成的方法的流程图。
图3是根据示例性实施例的计算机系统的框图。
图4A是根据示例性实施例的执行数据分析的方法的流程图。
图4B是示出根据示例性实施例的用于识别源数据集的方法的框图。
图4C是根据示例性实施例的知识图谱的框图。
图4D描绘了根据示例性实施例的数据沿袭。
图4E是示出根据示例性实施例的用于确定数据变换的方法的框图。
图4F是示出根据示例性实施例的源数据集和目标数据集之间的依赖关系的框图。
图4G是示出根据示例性实施例的ETL执行阶段的框图。
图5是根据示例性实施例的用于实现数据访问规则的方法的流程图。
图6是根据示例性实施例的用于确定数据变换的方法的流程图。
图7A是根据示例性实施例的用于将变换逻辑转变为ETL工作流的方法的流程图。
图7B是示出根据示例性实施例的用于确定工作流执行阶段的方法的框图。
图7C是根据示例性实施例的用于工作流执行的方法的流程图。
图7D是根据示例性实施例的用于工作流阶段执行的方法的流程图。
图7E是根据示例性实施例的用于处理数据集的方法的流程图。
图8A是根据示例性实施例的用于执行ETL工作流的方法的流程图。
图8B描绘了根据示例性实施例的ETL工作流元数据的示例。
图8C是示出根据示例性实施例的用于监视ETL工作流执行的方法的框图。
图9是根据示例性实施例的执行环境的框图。
图10描绘了根据示例性实施例的计算机系统的示例性框图。
图11描绘了根据示例性实施例的云计算环境。
图12描绘了根据示例性实施例的抽象模型层。
附图不一定是按比例的。附图仅仅是示意性表示,而不是旨在描绘示例性实施例的具体参数。附图旨在仅描绘典型的示例性实施例。在附图中,相同的标号表示相同的元素。
具体实施方式
本发明的各个实施例的描述将出于说明的目的而呈现,但不旨在是详尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。本文所使用的术语被选择为最好地解释实施例的原理、实际应用或对市场上存在的技术的改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
基于ETL的本体可以包含类别、属性和概念之间的关系的表示、形式命名和定义。基于ETL的本体可以通过定义ETL相关任务的类和类层次来提供。类可使用ETL相关任务的一般概念来定义。一般概念可以是例如数据集。可以基于类来定义子类。例如,数据集类可具有专门化数据集的子类。例如,子类可以指示与数据集相关联的用户角色、用于处理数据集的数据沿袭等。每个类可以与描述类的概念的属性相关联。知识图谱可以表示基于ETL的本体的概念术语和关系术语。
知识图谱可以是图。图可以指属性图,其中数据值被存储为节点和边上的属性。属性图可由图数据库管理系统或提供包装器层的其它数据库系统管理和处理,该包装器层将属性图转换成例如关系表以用于存储,并在读取或查询时将关系表转换回属性图。该图可以是例如有向图。该图可以是节点(也称为顶点)和边的集合。图的边连接图的任何两个节点。边可以由有序节点对(v1,v2)表示,并且可以从节点v1向节点v2穿过。图的节点可以表示实体。实体可以指数据集、用户等。实体(和对应节点)可以具有一个或多个实体属性或性质,其可以被分配值。例如,用户的实体属性可以包括用户ID、用户的位置等。表示节点的属性值是由节点表示的实体的实体属性的值。边可以被分配至少指示连接到该边的两个节点之间的关系的一个或多个边属性值。表示边的属性值是边属性的值。该关系例如可以包括根据特定层次的继承(例如父和子)关系和/或关联关系。例如,节点v1和v2之间的继承关系可被称为v1和v2之间的“是(is-a)关系”,例如“v2是v1的父(v2 is-a parent of v1)”。节点v1和v2之间的关联关系可以被称为v1和v2之间的“具有(has-a)关系”,例如,“v2与v1具有具有(has-a)关系”意味着v1是v2的一部分、v1是v2的组成部分或者v1与v2相关联。
术语“ETL工作流”可指系统可为了执行ETL任务而执行的操作集合。该操作集合可以包括顺序和/或并行操作。
如本文所使用的术语“数据集”是指一个或多个数据记录的集合。例如,数据集可以以包含在文件中的相关记录的集合的形式提供,例如,数据集可以是包含课堂中所有学生的记录的文件。数据集可以是例如一个或多个表。一个或多个表可以是数据库的表或Hadoop文件系统的文件等。在另一示例中,数据集可包括诸如HTML页面或其他文档类型等一个或多个文档。
根据一个实施例,确定源数据集包括执行数据分析请求的自然语言处理并且使用经处理的数据分析请求用于确定源数据集。该实施例的目的可以是使ETL执行更加用户友好,而不依赖于特定的专业知识。这可随着可执行ETL任务的用户的数量的增加而增加数据的可用性。这对于云环境可能是特别有利的,在云环境中,使用本主题可以增加数据中心的可用性。
根据一个实施例,该方法还包括将所构建的ETL工作流合并到知识图谱中作为源数据集的性质、作为数据分析请求的请求者的用户的性质、作为与用户相关的实体、或者作为与源数据集相关的实体。
该实施例可节省构建ETL工作流原本将需要的处理资源,该ETL工作流已经存储在知识图谱中。
根据一个实施例,该方法还包括针对另外接收到的数据分析请求重复该方法。知识图谱的共享一个或多个步骤的ETL工作流集合可以被识别。可执行所述一个或多个步骤,并且可适配所述ETL工作流集合,使得它们使用所述一个或多个步骤的执行结果而不执行所述一个或多个步骤。
该实施例的优点可以是,它可以识别由多个工作流构建的相同或相似的数据,并且将其向上游移动,使得相同的数据不被重复(存储优化)并且不被多次构建(CPU优化)。例如,如果多个用户在其工作流中联合(join)相同的表,则系统可以预联合它们并且然后跨这些工作流共享。因此,在该示例中,一个或多个步骤涉及相同表的联合。
该实施例可以使能数据处理模式的识别,并向用户提供用于数据定义阶段的推荐。例如,一些数据清洗可以由用户应用于某些列以便与其他表联合。在新用户将导出对应表的这种情况下,系统可以提供如何修改SQL语句以遵循常见模式的建议,以及建议的基本原理。在该示例中,一个或多个步骤涉及清洗的应用,例如,清洗可针对由ETL工作流集合通常使用的源数据集应用一次。
共享步骤的另一示例可以基于关于不同数据实体通常如何被联合的推荐来确定:例如,硬件合同可以使用合同交付日期和销售国家列来与公司的收入数据联合。
根据一个实施例,该方法还包括针对另外接收到的数据分析请求重复该方法,其中使用知识图谱的ETL工作流来执行ETL工作流的构建。例如,ETL工作流的构建包括选择知识图谱的一个ETL工作流,其中所构建的ETL工作流是所选择的ETL工作流。
根据一个实施例,知识图谱还指示与用户和数据集相关联的数据访问规则。ETL工作流的构建包括使用知识图谱来识别应用于作为数据分析请求的请求者的用户和/或应用于源数据集的数据访问规则,并且在ETL工作流中包括用于根据所识别的数据访问规则来处理源数据集的条件。
该实施例可将治理规则和策略嵌入到ETL工作流中,并可因此保证它们的遵从性(compliance)。因此,该实施例可以提供对数据的安全访问。
根据一个实施例,数据访问规则包括治理策略和/或用户访问权限。
根据一个实施例,所识别的数据访问规则指示以下中的至少一个:源数据集的哪个部分可以从用户的位置被访问,源数据集的哪个部分可以被复制到目标系统的位置,目标系统被指示在数据沿袭中,用户是否可以将数据写入目标系统,或者用户是否可以提交工作负载。
根据一个实施例,ETL工作流的构建包括:根据所述数据沿袭来定义目标数据集。目标数据集与源数据集具有直接依赖关系。该方法还包括确定所述源数据集的刷新速率,并且基于所确定的刷新速率,刷新所述源数据集,使得根据所述ETL工作流处理所刷新的源数据集,其中所述源数据集的所述刷新使用依赖于所述源数据集的所有数据集。刷新可以或可以不被包括作为ETL工作流的一部分。例如,如果刷新速率与期望刷新速率不兼容,则可以根据期望刷新速率来执行对源数据集的刷新。在一个示例中,如果所确定的刷新速率小于期望刷新速率,则可以根据期望刷新速率来执行对源数据集的刷新。在一个示例中,期望刷新速率可能需要在一周的每个星期二刷新源数据集,而所确定的刷新速率需要在一周的每个星期一刷新;尽管两个刷新速率具有相同的频率,但是由于两个刷新速率具有不同的相位,因此它们是不兼容的。期望刷新速率可以例如高于或等于目标数据集的刷新速率,例如如果目标数据集的刷新速率是每月一次,则期望刷新速率可以是每周一次、每天一次等。确定源数据集的刷新速率还包括提示用户提供指示基于该刷新速率是否要刷新该源数据集的输入,其中基于该输入来执行该源数据集的刷新。在另一示例中,确定源数据集的刷新速率还包括由计算机系统将刷新速率与预定义的刷新速率阈值进行比较。预定义的刷新速率阈值可以是例如由用户定义的期望刷新速率。
表的刷新速率定义了表被更新的频率。刷新速率可以是数据集定义的一部分。例如,数据集可以根据其相关联的刷新速率自动被刷新。数据集可以被周期性地刷新(定期刷新)或根据需要手动刷新(一次性刷新)。用户可以(例如在数据分析请求中)定义与直接依赖关系的刷新速率冲突的目标数据集的期望刷新速率。在这种情况下,计算机系统可以改变后者(如果直接依赖关系的所有者允许的话)或者创建具有期望刷新速率的直接依赖关系的副本的附加集合。当用户定义具有调度刷新的数据集的派生时,计算机系统可以基于用于直接依赖关系的调度来推荐用于目标数据集的刷新调度。例如,如果源数据集的刷新速率是一周,其长于例如一天的期望刷新速率,则在由ETL工作流使用之前,源数据集可能需要根据期望刷新速率来刷新。
根据一个实施例,该方法还包括创建ETL工作流元数据。该ETL工作流元数据包括指示ETL工作流的执行状态的执行元数据和指示源数据集的每个子集的执行状态的数据集元数据。该ETL工作流元数据可与该ETL工作流相关联地提供。
根据一个实施例,该方法还包括:使用执行元数据来检测ETL工作流的执行失败,其中在检测到的执行失败发生之前无失败地处理源数据集的一个或多个子集,以及执行ETL工作流的部分重新执行以用于处理源数据集的未处理子集。该实施例可以使能从失败的ETL工作流的失败点重新运行失败的ETL工作流。这可节省否则重新运行整个失败的ETL工作流所需的处理资源。
根据一个实施例,如果源数据集未被刷新,则执行ETL工作流的重新执行。该实施例可以防止冲突数据的变换,并且因此可以增加根据本主题产生的数据的可靠性。
根据一个实施例,知识图谱是使用多个ETL系统的ETL作业的日志数据来生成的,其中ETL工作流的执行在ETL系统上执行,该ETL系统是ETL系统的一部分或不是ETL系统的一部分。
根据一个实施例,该方法被自动执行。例如,ETL工作流可自动地被构建并在接收到数据分析请求时自动地被执行。
图1A描绘了示例性计算机系统100。计算机系统100例如可以被配置为执行主数据管理和/或数据仓储。计算机系统100包括数据集成系统101和一个或多个客户端系统105或数据源。客户端系统105可以包括计算机系统。客户端系统105可以经由网络连接与数据集成系统101通信,该网络连接包括例如无线局域网(WLAN)连接、WAN(广域网)连接、LAN(局域网)连接、因特网或其组合。数据集成系统101可以控制对中央储存库103的访问(读取和写入访问等)。
存储在中央储存库103中的数据记录可以具有属性集合109A-P的值,诸如公司名称属性。尽管根据少数属性描述了本示例,但是可以使用更多或更少的属性。
存储在中央储存库103中的数据记录可以从客户端系统105接收,并且在存储在中央储存库103中之前由数据集成系统101处理。所接收的记录可以或可以不具有相同的属性集合109A-P。例如,由数据集成系统101从客户端系统105接收的数据记录可能不具有属性集合109A-P的所有的值,例如,数据记录可以具有属性集合109A-P的属性子集的值,并且可以不具有剩余属性的值。换句话说,由客户端系统105提供的记录可以具有不同的完整性。完整性是包括数据值的数据记录的属性的数量与属性集合109A-P中的属性的总数的比率。另外,从客户端系统105接收的记录可以具有与中央储存库103的存储记录的结构不同的结构。例如,客户端系统105可以被配置为提供XML格式、JSON格式或能够将属性和对应属性值相关联的其它格式的记录。
在另一示例中,数据集成系统101可以使用一个或多个ETL批处理或经由超文本传输协议(“HTTP”)通信或经由其他类型的数据交换从客户端系统105导入中央储存库103的数据记录。
数据集成系统101可以被配置为从用户110接收请求以执行特定分析。在接收到请求时,数据集成系统101可以定义与请求相对应的ETL工作流和/或执行ETL工作流。数据集成系统101可通过根据本主题构建ETL工作流或通过请求另一系统根据本主题构建ETL工作流并接收所构建的ETL工作流来定义ETL工作流本身。例如,ETL工作流的执行可以使数据集成系统101从一个或多个客户端系统105接收或检索记录,如本文所述。数据集成系统101可以使用一个或多个算法,诸如实现本方法的至少一部分的算法120,来处理接收到的记录。例如,数据集成系统101可以根据ETL工作流使用算法120来处理从客户端系统105接收的数据记录。ETL工作流可以例如由算法120使用知识图谱121来定义或构建。知识图谱121可以例如表示如参考图1B描述的基于ETL的本体。
图1B示出了基于ETL的本体140的示例。基于ETL的本体140包括概念和角色。概念和角色是基于ETL的本体140的术语方面的示例。概念和角色可以以各种方式表达。图1B以图形形式示出了概念和角色。
基于ETL的本体140可以包含两种术语:概念术语和关系术语。基于ETL的本体140中的每个节点标识概念术语。基于ETL的本体140可以包括例如概念术语141、142、143、144、145、146、147、148和149。概念术语141包括数据集概念,而术语142至149分别包括用户、治理规则、许可、工作流、改变历史、数据沿袭、数据实体以及数据集存储概念。在该示例中,概念术语142至147可以各自是概念术语141的子类。概念术语141可以是概念术语142至147的超类。
概念术语141到149中的每一个可以经由一个或多个关系术语彼此相关联。关系术语可以是连接两个概念术语的性质。基于ETL的本体140还可以包括描述概念术语和关系术语的性质或属性。例如,数据集概念的表属性可包括先前对数据集执行的分析类型、指示如何从其它数据集获得数据集的SQL语句、数据集的位置等。用户概念的用户性质可以例如包括用户的用户ID、用户的位置等。数据沿袭概念的数据沿袭性质可以指示数据操作和存储数据操作的结果的目标系统。
基于ETL的本体140可以用于创建知识图谱121。为此,可以收集关于ETL任务的数据。利用该收集的数据以及基于ETL的本体140,可以创建基于ETL的本体140的术语的特定实例,并且可以确定术语的性质的值,从而产生知识图谱121。知识图谱因此可以表示基于ETL的本体140。知识图谱包括表示实体的节点和表示实体之间的关系的边。实体是基于ETL的本体的概念的实例。
图2是根据本主题的示例的用于执行ETL任务的方法的流程图。为了解释的目的,图2中描述的方法可以在图1A中示出的系统中实现,但是不限于该实现。图2的方法可以例如由数据集成系统101执行。
在步骤201中可接收数据分析请求。数据分析请求是请求。数据分析请求可以是例如准备用于随后分析所准备的数据的请求。在另一示例中,数据分析请求可以指示数据分析,其中数据分析可以要求在分析之前准备源数据。可以从用户110接收数据分析请求。术语“用户”可以指实体,例如个人、计算机或在计算机上执行的发出数据分析请求的应用。数据分析请求可以经由数据集成系统101的ETL接口接收。
在一个示例中,数据分析请求可以是SQL语句。SQL语句可以指定一个或多个表。这对于专家用户可能特别有利。在另一示例中,数据分析请求可以包括自然语言数据。因此,在步骤201中可以执行数据分析请求的自然语言处理,从而产生处理后的数据分析请求。这可向普通用户提供用户友好界面以执行ETL任务而无需专门知识。
可以分析所接收或处理后的数据分析请求,以便确定或导出基于ETL的本体140的术语和/或性质的值。具体地,与基于ETL的本体中的数据集相关联的性质可以从数据分析请求中导出。例如,基于处理后的数据分析请求,可以确定分析类型和一个或多个数据表名。项和/或性质的导出值可有利地用于执行ETL任务。
ETL任务的配置可从定义哪些表将在ETL任务中使用开始。为此,知识图谱121可以用于基于在步骤203中接收到的数据分析请求来确定或识别源数据集。从数据分析请求导出的性质可以用于识别知识图谱121中表示源数据集的一个或多个节点。例如,分析类型或表名可以用于识别与该分析类型或知识图谱中的表名相关联的源数据集。
在步骤205中可以构建或确定ETL工作流。ETL工作流可以用于根据知识图谱中与源数据集相关联的数据沿袭来处理源数据集。ETL工作流可包括可能需要被执行以便完成ETL任务的数据操作的步骤。例如,在ETL任务开始之前,可能需要在目标关系型数据库中创建表。这些将是ETL工作流所产生的记录的目的地。为此,知识图谱中与源数据集相关联的数据沿袭可以指示目标关系型数据库。创建和管理那些目标表的步骤可被包括在ETL工作流中。数据沿袭可以进一步用于确定变换操作,诸如检索输入数据、逐行读取输入、以及将值(变换的或未变换的)映射到输出列。在变换期间,可从源数据集读取数据,且可将数据映射到多个输出表,这取决于变换逻辑。变换操作可被包括在ETL工作流中。此外,对源数据集和目标数据库的数据访问可以由一个或多个访问规则约束。为此,知识图谱可以用于识别对源数据集和/或目标数据库的访问规则。这些访问规则可以在ETL工作流中实现。
因此,通过简单地发送分析请求,用户可接收ETL工作流,该ETL工作流使用户能够准备数据以便执行分析。在一个示例中,ETL工作流可进一步包括用于在目标数据库处执行分析的步骤。这可以使能用于执行分析的全自动化方法。
ETL工作流可在步骤207中执行。此外,在步骤207中,ETL工作流可以被插入知识图谱中,以用于知识图谱的进一步使用。ETL工作流可与源数据集概念和/或知识图谱中的用户概念相关联。在一个示例中,如果发生可能影响在步骤203中确定的源数据集的改变,则可以自动重复步骤207。例如,如果源数据集和它可能依赖的数据集的至少一部分(例如全部)改变,则可以自动重复步骤207。
在另一示例中,在接收到数据分析请求时,可以自动执行步骤203-207。在接收到进一步的数据分析请求时,可以自动重复步骤203-207。在每次迭代中,构建ETL工作流的步骤可包括确定现有ETL工作流是与源数据集相关联还是与知识图谱中的用户110相关联,并且如果是,则使用该现有工作流作为所构建的工作流,否则如关于步骤205所描述的那样构建ETL工作流。
图3是根据本主题的示例的计算机系统300的框图。计算机系统300包括自动化引擎301和执行环境305。自动化引擎301包括ETL接口302和知识图谱303。ETL接口302被配置为接收自然语言或SQL语句形式的数据分析请求。自动化引擎301例如可被配置为使用知识图谱303来执行图2的方法步骤201至205。所得到的ETL工作流可在执行环境305中执行。
图4A是根据本主题的示例的用于执行ETL任务的方法的流程图。
在步骤401中,可以识别源数据集。源数据集可以用于执行分析。例如,可以响应于接收到数据分析请求来识别源数据集。例如,可以从数据科学家接收数据分析请求。数据分析请求可以要求产生提供推荐,例如,用评估交易的概率和潜在大小来确定什么客户可以购买什么产品。如图4B所示,数据分析请求415可以包括自然语言输入数据,诸如关键词“交易历史”和“客户数据”。可以解析和处理数据分析请求415,以便评估基于ETL的本体的一个或多个性质(命名请求性质)。请求性质可以例如包括提交数据分析请求415的用户的指示。请求性质还可以包括用户的角色。请求性质还可以包括所请求的分析的类型等。
如图4B所示,数据分析请求415可以用于使用知识图谱416来识别候选源数据集417。知识图谱416例如可以表示如参照图1B描述的基于ETL的本体。每个候选源数据集417与其所位于的数据源相关联。例如,诸如分析类型的所评估的请求性质的一部分可用于标识候选源数据集417。通过使用请求性质的另外的性质,可以进一步细化搜索。例如,基于用户角色,可以排除候选源数据集417中的一些。由于用户角色涉及数据科学家,因此可以在候选源数据集417之中选择源数据集421和422。在该示例中,源数据集421和422中的每一个分别包括两个表421a-b和422a-b。如同知识图谱416的其它表一样,所标识的源数据表421和422中的每一个可与性质或元数据(命名表属性)相关联。为了简化的目的,图4B仅示出了源表421a的表属性418a。表属性418a可例如包括合同的开始日期、合同的结束日期、合同值、所售物品的ID、卖方的ID、源表421a的位置、源表421a的所有者,以及源表421a的刷新速率。所识别的数据表421a-b和422a-b中的每一个可以是知识图谱416的实体。知识图谱416例如可使用由诸如数据科学家的不同用户执行的ETL作业来构建。即,可以使用指示数据科学家和其他类型用户的ETL作业的数据来定义基于ETL的本体的术语的实例。
图4C描绘了知识图谱416的子图420。子图420涉及与数据分析请求415的“交易历史”关键词匹配的用户和数据集。所识别的源表421a和421b可以是如图4C所示的知识图谱416的子图420的节点。源表421a和421b链接到它们所驻留的数据源423,并且可以从该数据源423检索它们的位置426。数据源表421a和421b链接到已经从源表421a和421b产生的目标表424a。表421a、421b和424a中的每一个还与子图420的进一步指定该表的其他实体链接。例如,拥有目标表424a并可以读取链接到该表的源表421a和421b的用户425。用户425还可以被链接到其他实体,这些实体进一步指定用户的特征,诸如用户的位置426和用户的角色427。图4C示出了直接或间接与源表421a和421b相关的另外的示例实体423至436。例如,数据集的执行和更新的状态可以由节点429、432和433提供。可以提供分别指示目标数据集和源数据集的样本数据实体434到436。
源表421a和421b是在子图420中的步骤401中识别的那些,因为它们被链接到具有与发送数据分析请求并根据所请求的数据分析执行分析的用户类似的角色的用户425。类似地,可以在步骤401中使用知识图谱416来识别源表422a和422b。
在识别源数据集421和422之后,该方法进行到步骤403,其中可以确定数据变换。可以确定数据转换,使得可以根据数据分析请求将它们应用于源表421a-b和422a-b。可以使用与源表421a-b和422a-b相关联的数据沿袭,例如430,来确定数据变换。图4D示出了涉及目标表424a和对应的源表421a-b的示例数据沿袭。该数据沿袭基于表的表属性之一来指示表之间的关系,其中,所述表属性可以是value_usd属性。
如图4D所示,源和目标表421a-b和424a中的每一个都与SQL语句相关联。源表421a与SQL语句441a相关联,该SQL语句441a指示源表421a的表属性的值是从表442a获得的。源表421b与SQL语句441b相关联,该SQL语句441b指示源表421b的表属性的值是从表442b获得的。目标表424a与SQL语句440a相关联,该SQL语句440a指示为了获得目标表424a而应用于源表421a-b的变换。可以基于与表421a-b和424a相关联的SQL语句来确定数据变换。具体地,如图4E所示,所确定的数据变换440a和440b可以用于分别从源表421a-b和422a-b获得目标表424a和424b。例如,数据变换440a和440b被应用于源表421a-b和422a-b,以便分别获得目标表424a和424b。图5和图6提供了步骤403的实现细节。
在确定数据变换之后,该方法进行到步骤405,其中变换逻辑可被转变成ETL工作流。所确定的数据变换可被包括在ETL工作流中。此外,可以确定目标表424a和424b的依赖关系。如图4F所示,目标表424a具有与源表421a和421b的直接依赖关系,其中源表421a-b分别具有与表442a-b的依赖关系。类似地,目标表424b具有与源表422a和422b的直接依赖关系,其中源表422a-b可以不具有依赖关系。依赖关系可有利地用于增强具有使能源数据集的高效处理的附加数据操作或步骤的ETL工作流。例如,如果源表421a-b的刷新速率小于(即,不太频繁)期望速率阈值,则可以定义ETL工作流的数据操作,使得可以在源表421a-b被变换之前根据期望速率来刷新。源表421a-b的刷新可以使用所有的依赖关系表,即分别是源表的442a和442b。依赖关系也可以用于确定可以产生目标表424a和424b的方式。这例如在图4G中示出,其中基于目标表424a和424b的依赖关系来定义变换的阶段。该阶段可以是ETL工作流的构建块。这些阶段中的每个阶段可以描述数据源、一个或多个数据处理(或数据变换)步骤和/或目标系统,并且可以定义将数据从输入链路移动到输出链路的处理逻辑。该阶段可以包括顺序的和/或并行的阶段。当两个阶段是顺序的时,第二阶段可能不在第一阶段完成之前开始执行。阶段也可以是并行的。在本示例之后,可以定义两个并行阶段以便执行,第一阶段与目标表424a相关联,并且第二阶段与目标表424b相关联。图7A提供了步骤405的实现细节。
在确定ETL工作流之后,该方法进行到步骤407,其中定义工作流时间表,使得ETL工作流可在步骤409中根据时间表来执行。这可以导致目标表424a和424b的产生。然后在步骤411中可以对所产生的数据执行分析,并且在步骤413中可以将分析结果填充到结果数据集中。
图5是根据本主题的示例的用于实现数据访问规则的方法500的流程图。方法500可以实现ETL工作流的产生。数据访问规则可以与知识图谱416中的源数据集421和422相关联,并且可以在定义步骤403的数据变换时被考虑。
在步骤501中,可从具有经定义的用户ID(uid)的数据科学家的用户接收自然语言查询。与步骤401一样,在步骤502中,可以解析自然语言查询以便确定源和目标数据集并产生可用于执行从源数据集到目标数据集的数据变换的对应SQL语句。如块503中所指示,步骤502可以产生用户uid、源数据集421和422以及目标数据集424a和424b。在步骤504中,可以确定或检索用户以及源和目标数据集的位置。例如,可以确定源数据集421的位置是如知识子图谱420中所示的数据源423。可以确定(步骤505)是否可以从用户的位置访问源数据集421-422的任何部分。在源数据集421-422的一部分可能不能从用户的位置访问的情况下,可以在步骤507中生成报告错误,并且该方法可以在步骤508中结束。如图5所示,在这种情况下,改变治理策略的能力是不太可能的。在可以从用户的位置访问源数据集421-422的任何部分的情况下,可以确定(步骤506)源数据集421-422的任何部分是否可以分别被复制到目标数据集424a和424b的位置。在源数据集421-422的一部分不能被复制到目标数据集424a的位置的情况下,该方法进行到步骤507和508。如图5所示,在这种情况下,改变治理策略的能力是不太可能的。
在源数据集421-422的任何部分可以分别被复制到目标数据集424a和424b的位置的情况下,可以确定(步骤509)用户是否可以写入目标数据库,其中目标数据集424a和424b可以在该目标数据库中。在用户不可以写入目标数据库的情况下,在步骤510中可发出报告警告,并且该方法进行到步骤511。在用户可以写入目标数据库的情况下,该方法进行到步骤511,其中可以确定目标数据集424a的名称是否可用。在目标数据集名称不可用的情况下,在步骤512中可以发出报告警告,并且该方法进行到步骤513。在目标数据集名称可用的情况下,该方法进行到步骤513,在该步骤中可以确定用户是否可以提交工作负载。在用户可能不提交工作负载的情况下,在步骤514中可以发出报告警告,并且该方法进行到步骤515。如图5所示,报告警告允许继续,因为它们的相关问题在实际提交之前可以被修复。在用户可提交工作负载的情况下,这可指示用户可执行ETL工作流或指示ETL工作流可进一步被定义,如步骤515所指示的。
如图5中定义的数据访问规则可以用于定义可以应用于ETL工作流的数据变换的条件(例如,涉及过滤和匿名化)。例如,图5的步骤可被包括作为如图6所示的ETL工作流的步骤。步骤601可提供可被用于执行数据变换的SQL语句,以及用户和源和目标数据集的位置。在步骤603中,可以检测可以被过滤的源数据集和/或目标数据集的行和列。在步骤605中,可以检测可以被匿名化的源数据集和/或目标数据集的行和列。在步骤607中,可以根据如图5中所描述的数据治理规则和策略将过滤器应用于SQL语句,图6的方法的步骤之后可以是如图7A中所描述的产生工作流的方法609。这可以使能调整SQL语句以确保与治理规则和策略的遵从性。因此,取决于规则,相同的查询可能返回不同的结果,这取决于目标数据集、源数据集的位置以及提交查询的用户。例如,欧洲(EU)或美国(US)数据可以根据通用数据保护规则(GDPR)或联邦法律来过滤。
图7A是根据本主题的示例的用于将转换逻辑转变为工作流的方法的流程图。在步骤701中,可以为源数据集421-422拉取依赖关系。例如,步骤701可以指示源表421a-b(参见图4F)是目标表424a的直接依赖关系,并且分别依赖于源表442a和442b。可以确定(步骤702)依赖关系是否满足刷新速率要求。根据图4F的示例,在步骤702中可以确定源表421a-b、442a-b和422a-b中的每一个的刷新速率是否满足刷新速率要求,例如,刷新速率是否大于期望速率阈值。在依赖关系满足刷新速率要求的情况下,在步骤703中可以仅选择直接依赖关系,并且该方法进行到步骤705。根据图4F的示例,在依赖关系满足刷新速率要求的情况下,可以仅选择包括源表421a-b和422a-b的(目标表424a和424b的)直接依赖关系。在依赖关系不满足刷新速率要求的情况下,在步骤704中可以选择所有依赖关系,并且方法进行到步骤705。根据图4F的示例,并且在依赖关系仅包括源表421a-b并且不满足刷新速率要求的情况下,源表442a-b可被添加到源表421a-b以便一起用于使能数据变换。在一个示例中,为了满足刷新速率要求,如果源数据集421a-b和442a-b的所有者允许,则可以针对它们的位置中的源数据集421a-b和442a-b改变刷新速率。否则,可以创建这些源数据集的复制依赖关系数据集,并且可以调整它们的刷新速率以满足刷新速率要求。因此,步骤704或703可以产生满足刷新速率要求和对应SQL查询的依赖关系数据集,如步骤705中所示。在步骤706中可以确定该数据是否足以用于最终工作流生成。在数据不足以用于最终工作流生成的情况下,在步骤707中,可以请求用户提供缺失数据,并且该方法进行到步骤708。例如,如果数据的内容至少指示源数据集、目标数据集以及源数据集到目标数据集的变换操作,则该数据可能是足够的。在数据足以用于最终工作流生成的情况下,该方法进行到步骤708,其中可定义并行和顺序执行阶段。例如,可以基于图4A-图6中定义的变换来定义阶段。在定义了并行和顺序阶段之后,该方法进行到步骤709,在该步骤709中,在阶段之间建立连接。在步骤710中,可以存储所得到的ETL工作流,并且该方法可以在步骤711中结束。图7B-图E提供了所存储的工作流的操作的示例。
图7B示出了针对目标数据集424a定义的批的示例。可基于依赖关系来定义三个批。例如,批723包括目标数据集424a。作为源表421a和421b的目标数据集424a的直接依赖关系属于另一批722。源表421a和421b所依赖的源表442a和442b属于另一批721。批721到723中的每一个可提供为含有作为批的表上的单元处理的指令的文件。批内的表可以并行构建,因为它们彼此之间可能没有依赖关系。图7C是根据本主题的示例的用于执行具有阶段的ETL工作流的方法730的流程图。ETL工作流的工作流阶段733可在步骤731中检索。例如,假设阶段是顺序的,则在步骤735中可以确定是否存在工作流的未执行阶段。在没有工作流的未执行阶段的情况下,该方法结束。在存在工作流的未执行阶段的情况下,该方法进行到步骤737,在该步骤737中执行该阶段。可在步骤739中确定所述阶段的执行是否成功。在该阶段的执行成功的情况下,在步骤741中该阶段可被标记为成功,并且可对下一级重复步骤735至743。在阶段的执行不成功的情况下,可在步骤743中提供报告错误,且所述方法可结束。参照图7D进一步描述阶段的执行。在步骤751中,可以检索该阶段的数据集753。例如,假设数据集可以被顺序地处理,则在步骤755中可以确定是否存在所确定的数据集的未处理数据集。在所确定的数据集中没有未处理的数据集的情况下,该方法结束。在存在所确定的数据集的未处理数据集的情况下,该方法进行到步骤757,在该步骤757中处理未处理数据集。可以在步骤759中确定数据集的处理是否成功。在数据集的处理成功的情况下,在步骤761中,数据集可被标记为成功处理,并且可对下一个确定的数据集重复步骤755到763。在数据集的执行不成功的情况下,在步骤763中可以提供报告错误,并且该方法可以结束。参考图7E描述了示例数据集处理方法(步骤757)。如果可能需要处理的一个或多个源数据集771尚未被检索,则可以在步骤770中检索它们。可以确定(步骤772)检索到的源数据集是否可读。在源数据集771不可读的情况下,可以在步骤773中提供报告错误,并且该方法可以结束。在源数据集771是可读的情况下,可在步骤774中计算预期目标模式775。在步骤776中可以确定目标数据集是否存在。在目标数据集不存在的情况下,可以在步骤777中创建目标数据集,并且该方法进行到步骤778。在目标数据集存在的情况下,该方法进行到步骤778。在步骤778中可以确定目标数据集是否与预期目标模式兼容。在目标数据集与预期目标模式不兼容的情况下,可以在步骤782中提供报告错误,并且该方法可以结束。在目标数据集与预期目标模式兼容的情况下,可以在步骤779中确定目标数据集是否可写入。在目标数据集不可写入的情况下,在步骤782中可提供报告错误,并且该方法可结束。在目标数据集可写入的情况下,在步骤780中可以截断目标数据集,并在步骤781中用从源数据集的处理得到的新数据来填充目标数据集。
图8A是根据本主题的示例的用于执行ETL工作流的方法的流程图。为了解释的目的,图8A中描述的方法可以利用图4A-7A中定义的示例来实现,但不限于该实现。
在步骤801中,可以创建ETL工作流元数据。该ETL工作流元数据包括指示ETL工作流的执行状态的执行元数据和指示源数据集的每个子集的执行状态的数据集元数据。图8B示出了ETL工作流元数据的示例。执行元数据820可指示ETL工作流,并且可包括工作流的名称、工作流的所有者、工作流的优先级、工作流中涉及的数据集的状态、以及工作流的状态历史。状态历史823指示状态改变时间和状态细节。工作流中涉及的每个数据集822可以与相应的数据集元数据(数据集状态821)相关联。数据集元数据例如可包括表属性,诸如数据集的名称、数据集的模式、数据集的密钥、数据集的组织、获得数据集的SQL语句、数据集的位置、数据集的所有者、以及数据集的更新时间。数据集元数据还可包括数据集状态821。数据集状态821可指示数据集的状态历史823。如图8B所示,执行元数据820和数据集元数据可以根据使能跟踪工作流执行的进展状态的预定义结构来链接。
在步骤803中,可执行ETL工作流,其中使用ETL工作流元数据来监视执行。如图8C所示,执行元数据820指示由于失败的数据集状态而导致的执行失败。数据集元数据可用于标识失败的数据集。如图8C所示,与目标数据集424a相关联的数据集状态是成功的。然而,与目标数据集424b相关联的数据集状态是失败状态。如图8C所示,与每个数据集和ETL工作流相关联的状态历史823的一个或多个实例指示何时发生失败,以及涉及哪些源表。
使用ETL工作流元数据,ETL工作流可在步骤805中重新开始,其中仅重新运行失败的阶段,并且假设成功构建的数据集中的数据对于工作流要求是足够新的。
图9是根据本主题的示例的执行环境900的框图。图9描述了由执行环境900提供的功能层集合。该功能层集合包括用户层901、ETL工作流产生层902和执行层903。用户层901可以包括用于从用户接收数据分析请求的ETL接口。ETL工作流生成层902包括服务和对应的数据输入或输出数据。每个服务可以被配置为执行ETL工作流生成方法的相应步骤。例如,数据发现服务可被配置为标识与接收到的数据分析请求相对应的源数据集。数据沿袭服务可以被配置为确定与所接收的数据分析请求相对应的数据变换。工作流编译服务可被配置成构建ETL工作流。工作流执行服务可被配置成使用执行层903来执行ETL工作流。ETL工作流生成层902的服务中的任何服务可以潜在地使用所列出的元数据中的任何元数据。例如,数据发现服务可使用治理元数据或执行状态来对结果进行排名。
图10描述了根据示例性实施例的系统内的设备的框图。应当理解,图10仅提供了一种实现方式的说明,而不暗示对其中可实现不同实施例的环境的任何限制。可以对所描述的环境进行许多修改。
这里使用的设备可以包括一个或多个处理器02、一个或多个计算机可读RAM 04、一个或多个计算机可读ROM 06、一个或多个计算机可读存储介质08、设备驱动器12、读取/写入驱动器或接口14、网络适配器或接口16,所有这些都通过通信结构18互连。通信结构18可以用设计用于在处理器(例如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其它硬件组件之间传递数据和/或控制信息的任何架构来实现。
一个或多个操作系统10以及一个或多个应用程序11被存储在一个或多个计算机可读存储介质08上,用于由一个或多个处理器02经由一个或多个相应的RAM 04(通常包括高速缓冲存储器)来执行。在所示实施例中,每个计算机可读存储介质08可以是内部硬盘驱动器的磁盘存储设备、CD-ROM、DVD、记忆棒、磁带、磁盘、光盘、诸如RAM、ROM、EPROM、闪存的半导体存储设备或能够存储计算机程序和数字信息的任何其它计算机可读有形存储设备。
本文使用的设备还可以包括读取/写入驱动器或接口14,以从一个或多个便携式计算机可读存储介质26读取和向其写入,所述设备上的应用程序11可以存储在一个或多个便携式计算机可读存储介质26上,经由相应的读取/写入驱动器或接口14读取,并加载到相应的计算机可读存储介质08中。
本文使用的设备还可以包括网络适配器或接口16,诸如TCP/IP适配卡或无线通信适配器(诸如使用OFDMA技术的4G无线通信适配器)。所述计算设备上的应用程序11可以从外部计算机或外部存储设备经由网络(例如,因特网、局域网或其他广域网或无线网络)和网络适配器或接口16下载到计算设备。从网络适配器或接口16,程序可以被加载到计算机可读存储介质08上。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
本文使用的设备还可以包括显示屏20、键盘或小键盘22、以及计算机鼠标或触摸板24。设备驱动器12与显示屏20对接以用于成像,与键盘或小键盘22对接,与计算机鼠标或触摸板24对接,和/或与显示屏20对接以用于压力感测字母数字字符输入和用户选择。设备驱动器12、R/W驱动器或接口14和网络适配器或接口16可包括硬件和软件(存储在计算机可读存储介质08和/或ROM 06上)。
本文描述的程序是基于在示例性实施例中的特定一个中实现它们的应用来识别的。然而,应当理解,本文的任何特定程序术语仅为了方便而使用,因此示例性实施例不应当限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。
基于前述内容,公开了一种计算机系统、方法和计算机程序产品。然而,在不偏离示例性实施例的范围的情况下,可以进行许多修改和替换。因此,示例性实施例已经通过示例而非限制的方式公开。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,示例性实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级(例如,国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户端界面从各种客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图11,描述了说明性的云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点40,所述本地计算设备例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点40可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图11中所示的计算设备54A-N的类型仅旨在说明,并且计算节点40和云计算环境50可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参考图12,示出了由云计算环境50(图11)提供的功能抽象层集合。应当预先理解,图12中所示的组件、层和功能仅旨在说明,并且示例性实施例不限于此。如所描绘的,提供了以下层和对应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境内利用资源时的成本跟踪,以及用于消耗这些资源的开帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA预期未来需求。
工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育递送93;数据分析处理94;交易处理95;以及自动提取、变换和加载工作流生成96。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,诸如Smalltalk、C++等)和过程编程语言(诸如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
Claims (20)
1.一种计算机实现的方法,所述方法包括:
接收数据分析请求;
使用知识图谱用于基于所接收的数据分析请求确定源数据集,其中所述知识图谱表示基于提取、变换和加载(ETL)的本体,其中所述知识图谱包括表示实体的节点和表示所述实体之间的关系的边,并且其中所述实体是所述基于ETL的本体的概念的实例;
构建ETL工作流用于根据与所述知识图谱中的所述源数据集相关联的数据沿袭来处理所述源数据集;以及
执行所述ETL工作流。
2.根据权利要求1所述的方法,其中基于所接收的数据分析请求确定所述源数据集还包括:
执行所述数据分析请求的自然语言处理;以及
基于经处理的数据分析请求确定所述源数据集。
3.根据权利要求1所述的方法,还包括:
将所构建的ETL工作流合并到所述知识图谱中作为所述源数据集的属性、作为提交所述数据分析请求的用户的属性、作为与用户相关的实体或者作为与所述源数据集相关的实体。
4.根据权利要求3所述的方法,还包括:
接收第二数据分析请求;
使用所述知识图谱用于基于所述第二数据分析请求确定第二源数据集;
构建第二ETL工作流用于根据与所述知识图谱中的所述第二源数据集相关联的数据沿袭来处理所述第二源数据集;
识别所述第二ETL工作流与所执行的ETL工作流共享一个或多个步骤;以及
适配所述第二ETL工作流使得其使用所执行的ETL工作流内的所共享的一个或多个步骤的结果。
5.根据权利要求1所述的方法,其中所述知识图谱还指示与用户和数据集相关联的数据访问规则,其中所述ETL工作流的所述构建包括使用所述知识图谱数据来识别应用于作为所述数据分析请求的请求者的用户或所述源数据集的数据访问规则,并且其中用于根据所识别的数据访问规则来处理所述源数据集的条件被包括在所述ETL工作流中。
6.根据权利要求5所述的方法,其中所述数据访问规则包括治理策略和用户访问权限。
7.根据权利要求5所述的方法,其中所识别的数据访问规则指示来自组中的项目中的至少一个,所述组包括所述源数据集的哪个部分可以从所述用户的位置访问、所述源数据集的哪个部分可以被复制到目标系统的位置、哪个目标系统被指示在所述数据沿袭中、所述用户是否可以向所述目标系统写入数据以及所述用户是否可以提交工作负载。
8.根据权利要求1所述的方法,其中所述ETL工作流的所述构建包括:
根据所述数据沿袭定义目标数据集,其中所述目标数据集与所述源数据集具有直接依赖关系;
确定所述源数据集的刷新速率,以及
基于所确定的刷新速率来刷新所述源数据集,其中刷新所述源数据集包括根据所述ETL工作流来处理所述源数据集,并且其中刷新所述源数据集使用依赖于所述源数据集的所有数据集。
9.根据权利要求1所述的方法,还包括:
创建ETL工作流元数据,其中所述ETL工作流元数据包括指示所述ETL工作流的执行状态的执行元数据和指示所述源数据集的每个子集的执行状态的数据集元数据;以及
提供所述ETL工作流元数据。
10.根据权利要求9所述的方法,还包括:
使用所述执行元数据来检测所述ETL工作流的执行失败,其中在检测到的执行失败发生之前无失败地处理所述源数据集的一个或多个子集;以及
执行所述ETL工作流的部分重新执行用于处理所述源数据集的未处理子集。
11.根据权利要求10所述的方法,其中如果所述源数据集未被刷新,则正在执行的ETL工作流被重新执行。
12.根据权利要求1所述的方法,其中所述知识图谱是使用多个ETL系统的ETL作业的日志数据生成的,并且其中所述ETL工作流的所述执行是在是所述多个ETL系统的一部分的ETL系统上执行的。
13.根据权利要求1所述的方法,其中所述知识图谱是使用多个ETL系统的ETL作业的日志数据生成的,并且其中所述ETL工作流的所述执行是在不是所述多个ETL系统的一部分的ETL系统上执行的。
14.一种计算机程序产品,所述计算机程序产品包括:
一个或多个非暂时性计算机可读存储介质和存储在所述一个或多个非暂时性计算机可读存储介质上的能够执行方法的程序指令,所述方法包括:
接收数据分析请求;
使用知识图谱用于基于所接收的数据分析请求确定源数据集,其中所述知识图谱表示基于提取、变换和加载(ETL)的本体,其中所述知识图谱包括表示实体的节点和表示所述实体之间的关系的边,并且其中所述实体是所述基于ETL的本体的概念的实例;
构建ETL工作流用于根据与所述知识图谱中的所述源数据集相关联的数据沿袭来处理所述源数据集;以及
执行所述ETL工作流。
15.根据权利要求14所述的计算机程序产品,其中基于所接收的数据分析请求确定所述源数据集还包括:
执行所述数据分析请求的自然语言处理;以及
基于经处理的数据分析请求确定所述源数据集。
16.根据权利要求14所述的计算机程序产品,还包括:
将所构建的ETL工作流合并到所述知识图谱中作为所述源数据集的属性、作为是所述数据分析请求的请求者的用户的属性、作为与用户相关的实体或者作为与所述源数据集相关的实体。
17.一种计算机系统,所述计算机系统包括:
一个或多个计算机处理器、一个或多个计算机可读存储介质,以及存储在所述计算机可读存储介质中的一个或多个上的程序指令,所述程序指令用于由能够执行一种方法的所述一个或多个处理器中的至少一个执行,所述方法包括:
接收数据分析请求;
使用知识图谱用于基于所接收的数据分析请求确定源数据集,其中所述知识图谱表示基于提取、变换和加载(ETL)的本体,其中所述知识图谱包括表示实体的节点和表示所述实体之间的关系的边,并且其中所述实体是所述基于ETL的本体的概念的实例;
构建ETL工作流用于根据与所述知识图谱中的所述源数据集相关联的数据沿袭来处理所述源数据集;以及
执行所述ETL工作流。
18.根据权利要求17所述的计算机系统,其中基于所接收的数据分析请求确定所述源数据集还包括:
执行所述数据分析请求的自然语言处理;以及
基于经处理的数据分析请求确定所述源数据集。
19.根据权利要求17所述的计算机系统,还包括:
将所构建的ETL工作流合并到所述知识图谱中作为所述源数据集的属性、作为是所述数据分析请求的请求者的用户的属性、作为与用户相关的实体或者作为与所述源数据集相关的实体。
20.根据权利要求19所述的计算机系统,还包括:
接收第二数据分析请求;
使用所述知识图谱用于基于所述第二数据分析请求确定第二源数据集;
构建第二ETL工作流用于根据与所述知识图谱中的所述第二源数据集相关联的数据沿袭来处理所述第二源数据集;
识别所述第二ETL工作流与所执行的ETL工作流共享一个或多个步骤;以及
适配所述第二ETL工作流使得其使用所执行的ETL工作流内的所共享的一个或多个步骤的结果。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/985,268 | 2020-08-05 | ||
US16/985,268 US11334593B2 (en) | 2020-08-05 | 2020-08-05 | Automated ETL workflow generation |
PCT/IB2021/055247 WO2022029516A1 (en) | 2020-08-05 | 2021-06-15 | Automated etl workflow generation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116097247A true CN116097247A (zh) | 2023-05-09 |
Family
ID=80115100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180056864.3A Pending CN116097247A (zh) | 2020-08-05 | 2021-06-15 | 自动化etl工作流生成 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11334593B2 (zh) |
JP (1) | JP2023536300A (zh) |
CN (1) | CN116097247A (zh) |
WO (1) | WO2022029516A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3475888A1 (en) * | 2016-08-22 | 2019-05-01 | Oracle International Corporation | System and method for ontology induction through statistical profiling and reference schema matching |
JP2022065502A (ja) * | 2020-10-15 | 2022-04-27 | 株式会社日立製作所 | Etlワークフロー推奨装置、etlワークフロー推奨方法及びetlワークフロー推奨システム |
US20220147509A1 (en) * | 2020-10-18 | 2022-05-12 | Trigyan Corporation Inc. | Methods and systems for data management, integration, and interoperability |
US11436244B2 (en) * | 2021-01-27 | 2022-09-06 | Sap Se | Intelligent data enrichment using knowledge graph |
US11847130B2 (en) * | 2021-05-21 | 2023-12-19 | Capital One Services, Llc | Extract, transform, load monitoring platform |
US11966381B2 (en) | 2021-11-09 | 2024-04-23 | Microsoft Technology Licensing, Llc | Event driven data health monitoring |
US20230316188A1 (en) * | 2022-03-29 | 2023-10-05 | International Business Machines Corporation | Workflow transformation framework |
US12026134B2 (en) * | 2022-05-23 | 2024-07-02 | Microsoft Technology Licensing, Llc | Flow-based data quality monitoring |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6208990B1 (en) | 1998-07-15 | 2001-03-27 | Informatica Corporation | Method and architecture for automated optimization of ETL throughput in data warehousing applications |
US6604110B1 (en) | 2000-08-31 | 2003-08-05 | Ascential Software, Inc. | Automated software code generation from a metadata-based repository |
US7756852B2 (en) | 2004-01-21 | 2010-07-13 | Oracle International Corporation | Concurrent execution of groups of database statements |
EP2079020B1 (en) | 2008-01-03 | 2013-03-20 | Accenture Global Services Limited | System amd method for automating ETL applications |
US9053576B2 (en) | 2010-12-21 | 2015-06-09 | International Business Machines Corporation | Identifying reroutable data columns in an ETL process |
US10740396B2 (en) | 2013-05-24 | 2020-08-11 | Sap Se | Representing enterprise data in a knowledge graph |
US9582556B2 (en) | 2013-10-03 | 2017-02-28 | International Business Machines Corporation | Automatic generation of an extract, transform, load (ETL) job |
US10771538B2 (en) | 2015-10-08 | 2020-09-08 | International Business Machines Corporation | Automated ETL resource provisioner |
US10268753B2 (en) * | 2015-12-22 | 2019-04-23 | Opera Solutions Usa, Llc | System and method for optimized query execution in computerized data modeling and analysis |
US11481408B2 (en) | 2016-11-27 | 2022-10-25 | Amazon Technologies, Inc. | Event driven extract, transform, load (ETL) processing |
EP3611630A1 (en) | 2018-08-17 | 2020-02-19 | Ontoforce NV | Automated extract, transform, and load process |
EP3647965A1 (en) | 2018-10-30 | 2020-05-06 | Siemens Aktiengesellschaft | Method and system for integrating data from different data sources into a knowledge graph storage unit |
US11269911B1 (en) * | 2018-11-23 | 2022-03-08 | Amazon Technologies, Inc. | Using specified performance attributes to configure machine learning pipeline stages for an ETL job |
CN109739893B (zh) | 2018-12-28 | 2022-04-22 | 上海尚往网络科技有限公司 | 一种元数据管理方法、设备及计算机可读介质 |
CN110704528A (zh) | 2019-10-11 | 2020-01-17 | 苏州易博创云网络科技有限公司 | 可自动识别与配置转换的数据处理方法 |
US11151320B1 (en) * | 2020-04-21 | 2021-10-19 | Microsoft Technology Licensing, Llc | Labeled knowledge graph based priming of a natural language model providing user access to programmatic functionality through natural language input |
-
2020
- 2020-08-05 US US16/985,268 patent/US11334593B2/en active Active
-
2021
- 2021-06-15 CN CN202180056864.3A patent/CN116097247A/zh active Pending
- 2021-06-15 WO PCT/IB2021/055247 patent/WO2022029516A1/en active Application Filing
- 2021-06-15 JP JP2023507261A patent/JP2023536300A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220043826A1 (en) | 2022-02-10 |
US11334593B2 (en) | 2022-05-17 |
JP2023536300A (ja) | 2023-08-24 |
WO2022029516A1 (en) | 2022-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11334593B2 (en) | Automated ETL workflow generation | |
US20200401385A1 (en) | System and method for metadata-driven external interface generation of application programming interfaces | |
JP7461698B2 (ja) | ドメインインデックス制約リポジトリを用いた異常及びドリフトの検出 | |
US9800675B2 (en) | Methods for dynamically generating an application interface for a modeled entity and devices thereof | |
US9483506B2 (en) | History preserving data pipeline | |
US20240152527A1 (en) | Systems and methods for storing and accessing database queries | |
Khalifa et al. | The six pillars for building big data analytics ecosystems | |
EP2784700A2 (en) | Integration of transactional and analytical capabilities of a database management system | |
US8285576B2 (en) | Automated derivation, design and execution of industry-specific information environment | |
US11157467B2 (en) | Reducing response time for queries directed to domain-specific knowledge graph using property graph schema optimization | |
US11303530B2 (en) | Ranking of asset tags | |
CN115516441A (zh) | 用于实体的多个唯一标识符的多值主键 | |
US20230252044A1 (en) | Ontology driven data synchronization mechanism | |
US11836469B2 (en) | Dynamic code snippet promotion | |
US20220405065A1 (en) | Model Document Creation in Source Code Development Environments using Semantic-aware Detectable Action Impacts | |
Davidson et al. | Disposal by Design. | |
US11074508B2 (en) | Constraint tracking and inference generation | |
US20240119045A1 (en) | Systems and Methods for Intelligent Database Report Generation | |
US12032574B2 (en) | Systems and methods for intelligent database report generation | |
Smits | Improving integration Platforms as a Service through the addition of enterprise data catalog features | |
US20240184781A1 (en) | Systems and Methods for Intelligent Database Report Generation | |
EP4239495A1 (en) | Ontology driven data synchronization mechanism | |
US20210286819A1 (en) | Method and System for Operation Objects Discovery from Operation Data | |
EP3289454B1 (en) | Online data management system | |
Zhang | Cloud Infrastructure Services Selection and Evaluation |
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 |