CN110023923A - 生成数据变换工作流 - Google Patents
生成数据变换工作流 Download PDFInfo
- Publication number
- CN110023923A CN110023923A CN201780073061.2A CN201780073061A CN110023923A CN 110023923 A CN110023923 A CN 110023923A CN 201780073061 A CN201780073061 A CN 201780073061A CN 110023923 A CN110023923 A CN 110023923A
- Authority
- CN
- China
- Prior art keywords
- data
- transformation
- code
- data object
- etl
- 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.)
- Granted
Links
- 230000009466 transformation Effects 0.000 claims abstract description 138
- 238000013499 data model Methods 0.000 claims abstract description 24
- 230000004048 modification Effects 0.000 claims abstract description 23
- 238000012986 modification Methods 0.000 claims abstract description 23
- 238000003860 storage Methods 0.000 claims description 70
- 238000000034 method Methods 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 26
- 238000000605 extraction Methods 0.000 claims description 4
- 238000003909 pattern recognition Methods 0.000 claims description 4
- 241000406668 Loxodonta cyclotis Species 0.000 claims 1
- 238000013501 data transformation Methods 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 33
- 238000013500 data storage Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000000429 assembly Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- NQGMIPUYCWIEAW-UHFFFAOYSA-N Antibiotic SF 2738 Natural products COc1cc(nc(C=NO)c1SC)-c1ccccn1 NQGMIPUYCWIEAW-UHFFFAOYSA-N 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001172 regenerating effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- JLQUFIHWVLZVTJ-UHFFFAOYSA-N carbosulfan Chemical compound CCCCN(CCCC)SN(C)C(=O)OC1=CC=CC2=C1OC(C)(C)C2 JLQUFIHWVLZVTJ-UHFFFAOYSA-N 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003455 independent Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- 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/282—Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
可以生成数据变换工作流以变换数据对象。可以识别数据对象的源数据模式和数据对象的目标数据格式或目标数据模式。可以进行所述源数据模式与所述目标数据格式或模式的比较,以确定可以执行什么变换来将所述数据对象变换为所述目标数据格式或模式。然后可以生成用于执行变换操作的代码。可以存储所述代码以用于后续修改或执行。
Description
背景技术
随着组织创建、跟踪和保留信息的技术能力不断提高,已经开发出各种用于管理和存储不断增长的信息的不同技术。例如,数据库系统为客户提供许多不同的专用或定制的硬件和软件配置来管理存储的信息。组织必须存储和管理的数据量越来越多,常常相应地增加了数据存储和管理技术(如数据库系统)的规模和复杂性,从而增加了维护信息的成本。新技术旨在通过引入提供不同处理或维护能力的不同数据格式来降低维护数据的复杂性和存储要求。但是,引入多种数据格式并非没有代价。数据通常由不同系统处理,这些系统可能不支持数据的当前数据格式。因此,期望在不同格式之间变换数据的能力。
附图说明
图1A示出了根据一些实施例的生成数据变换工作流的逻辑框图。
图1B示出了根据一些实施例的根据数据变换工作流的变换后的数据对象。
图2是示出根据一些实施例的提供不同服务的提供商网络的框图,该提供商网络包含生成数据变换工作流的提取变换加载(ETL)服务。
图3是示出根据一些实施例的生成数据变换工作流的ETL服务的框图。
图4是示出根据一些实施例的ETL作业创建的逻辑框图。
图5A是示出根据一些实施例的修改ETL作业图的交互的逻辑框图。
图5B是示出根据一些实施例的从ETL作业代码生成ETL作业图的逻辑图。
图5C是示出根据一些实施例的用于修改ETL作业代码的交互的逻辑框图。
图6是根据一些实施例的用于修改ETL作业的示例图形用户界面。
图7是示出根据一些实施例的用于实施生成数据变换工作流的方法和技术的高级流程图。
图8示出了根据一些实施例的被配置为实施本文描述的各种方法、技术和系统的示例系统。
尽管本文通过实例的方式针对若干实施例和说明性图式描述了实施例,但是所属领域的技术人员将认识到,实施例不限于所描述的实施例或图式。应当理解,图式和对其的详细描述并非旨在将实施例限制于所公开的特定形式,而是相反,其意图是涵盖落入由所附权利要求书限定的精神和范围内的所有修改、等同物和替代物。本文使用的标题仅用于组织目的,并不意指用于限制说明书或权利要求书的范围。如在整个本申请中所使用的,词语“可以”以允许的意义使用(即,意指具有可能性),而不是强制意义(即,意指必须)。类似地,词语“包含(include/including/includes)”意指包含但不限于。
还应该理解,尽管本文可以使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于区分一个要素与另一个要素。例如,第一触点可以被称为第二触点,并且类似地,第二触点可以被称为第一触点,而不脱离本发明的范围。第一触点和第二触点都是触点,但它们不是相同的触点。
具体实施方式
本文描述了生成数据变换工作流的各种实施例。越来越多的数据存储和处理系统鼓励使用各种数据格式来存储数据对象。一些数据格式提供结构化数据模式,如关系表格式和其它数据格式可以提供半结构化或非结构化数据模式,比如非关系数据库中的分组或项集合。根据不同数据格式存储数据对象为管理数据的实体提供机会以优化存储数据以维护或处理数据的方式。然而,由于数据通常在可能不支持相同数据格式的不同处理系统之间共享,因此经常执行从一种数据格式到另一种数据格式的数据变换以使数据更广泛地可用于不同系统。
由于数据格式可能差异很大,因此将数据从一种格式变换为另一种格式通常是一项繁重的任务。例如,可能需要发现源数据模式与目标数据模式或格式之间的差异,以便确定应该执行什么变换以实现期望的结果。由于源和目标数据模式或格式的许多可能组合,此类确定通常要求开发人员手动生成应用一系列变换以实现所需结果的自定义变换工作流。这样的工作增加了使数据在开发成本和实现期望的变换的滞后时间方面广泛可用的成本。此外,随着新数据格式的不断引入,必须更新或获取技术知识和技能,以便生成涉及新数据格式的新变换工作流。
在各种实施例中,可以自动生成数据变换工作流以将存储在源数据模式(和格式)中的数据变换为目标数据格式。这样,变换工作流创建的开发成本显著降低。自动生成变换工作流还可以提高可执行数据变换的速度,减少确定需要变换和能够执行所需变换之间的滞后时间。图1示出了根据一些实施例的生成数据变换工作流的逻辑框图。
数据对象112可以是任何形式的数据或数据结构(例如,文件、目录、数据库表、日志、块、分区、组块(chunk)或字节范围)。数据对象112可以存储在数据存储库中(例如,在一些实施例中的基于块的持久存储装置中,例如硬盘驱动器,或者在其它实施例中的易失性数据存储库中,例如系统存储器组件)。可以根据源数据模式110存储数据对象112。与源数据模式110类似的数据模式可以包含不同类型的结构信息(例如,数据对象中的列或对象的数量、数据对象中的数据类型、数据对象中的数据结构或值的排列、期望值(例如,用于确定值的默认值或表达式)、关键数据值、数据的存在或包含逻辑或物理分区或分片,和/或可用于访问或处理数据对象112的数据的任何其它数据。例如,源数据模式110可以指示数据对象112中存在5列数据,第一列是用于存储用户识别符的整数值,剩余的4列是存储其它数据的字符串值。除了数据对象的数据模式之外,数据对象的数据格式也是已知的。数据格式可以是数据对象的编码,例如数据的文件类型,包含但不限于结构化文件类型(例如,面向列的关系文件类型、面向行的关系文件类型)、半结构化文件类型(例如,逗号分隔值(CSV)文件类型或可扩展标记语言(XML)),或非结构化文件类型(例如,媒体文件类型或文本文件类型)。例如,数据对象112的源数据格式可以是CSV文件,指示表的条目(例如,行)中的数据字段通过列分隔。以下关于图1B讨论数据格式和数据模式的进一步示例。
目标数据格式120可以是与数据对象112的源数据格式不同的数据格式。例如,文件类型可以是不同的(例如,用于目标数据格式120的优化行列式(Optimized RowColumnar,ORC)文件格式和用于数据对象112的Parquet列式格式)。在一些实施例中,数据模式或结构可以是不同的(例如,不同数量的列、不同的数据值、不同的数据值的聚合或分离等)。在一些实施例中,还可以识别数据对象112的目标数据模式。数据对象112的目标数据模式可以与源数据模式110不同。例如,来自源数据模式110的一些数据值可以在目标数据模式中被丢弃、删除、修改或转换(例如,一种货币的数据值可以被转换为另一种货币的数据值)。因此,在一些实施例中,代替目标数据格式120或者除了目标数据格式120之外,可以生成变换工作流以将数据从源数据模式110变换为目标数据模式(然后可以根据相同或不同的数据格式来存储)。例如,数据对象112可以存储在具有6列的数据模式的ORC文件中,并且目标数据模式可以仅包含4列。变换工作流可以将变换后的数据对象存储为ORC文件。在指定目标数据模式并且未指定目标数据格式的实施例中,可以执行多种可能数据格式中的识别、确定或选择(例如,从多个列定向数据格式中进行选择)。例如,可以选择导致最小数据对象的数据格式,或者可以选择由不同数据处理引擎最广泛支持的数据格式。
变换确定130可以识别或以其它方式获得源数据模式110和目标数据格式120(和/或目标数据模式),以便比较源数据模式和目标数据格式和/或模式以确定要应用于数据对象112以将数据对象变换为目标数据格式120(和/或目标数据模式)的一个或多个变换。例如,在一些实施例中,可以执行基于规则的比较以执行文件类型比较以识别目标数据格式的文件类型的不同特征(例如,包含在目标数据格式中的不同标头或元数据信息、不同的分隔符或表示数据值的机制等)。可以相应地选择实现这些不同特征的变换(例如,重写、插入或修改标头或元数据信息的变换、应用不同分隔符的变换等)。源数据模式110和目标数据模式的差异可以指示用以聚合、组合、分组、拆分、分离、重新排列或重构数据值的位置(例如,改变数据值到列的映射、将来自多个字段的值组合到单个字段中,或者对数据值的形式进行关系化或去关系化)的变换。源数据模式110和目标数据模式的差异可以指示用以删除、选择、过滤、修改、转换或改变数据对象的数据值的变换。
在各种实施例中,可以确定变换的排序。例如,可以分析所选择的变换之间的相依性(例如,通过确定变换是否依赖于另一变换的性能)来确定应该执行变换的排序。其它操作,例如与维护数据对象的数据存储库或维护变换后的数据对象的数据存储库建立连接的操作,可以包含在工作流中。
所确定的变换可以被识别为代码生成140,代码生成140可以生成编码语言或脚本中的代码以执行工作流的变换。例如,代码生成140可以基于所确定的变换、变换之间的相依性、源数据模式和目标数据格式和/或模式来实施要执行的预定义变换的库,从库中汇编代码,以及填充变换的参数、输入、输出或其它自变量。在一个实施例中,代码生成140可以以不同语言或脚本提供代码(例如,响应于生成代码指定的语言或脚本的请求)。
可以存储所生成的代码(如下面关于图4所讨论的),且根据请求进行修改(如下面参照图5A-6所讨论的)。在一些实施例中,可以生成表示可以经由界面向用户提供的变换和其它操作的图,如下面关于图6所讨论的。可以将存储的或经过修改的代码提供给变换执行150,变换执行150可以编译、解释或以其它方式执行代码以将确定的变换应用于数据对象112。变换成目标数据格式120和/或模式可以导致创建一个或多个变换后的数据对象120。变换后的数据对象160可以与数据对象112存储在同一数据存储库中,或者存储在不同的数据存储库中。
请注意,先前关于生成数据变换工作流的描述是逻辑说明,因此不应被解释为限制用于实施数据存储库、数据对象、变换确定、代码生成或变换执行的架构。
图1B示出了根据一些实施例的根据数据变换工作流的变换后的数据对象。可以根据源数据格式170(例如JavaScript对象表示法(JSON)文件)和源数据模式172来存储源数据对象。源数据模式172可以描述具有表名称174c“原始分数”、列名称174a“用户”、“分数1”、“分数2”和列数据类型174b“字符串”、“整数”、“整数”的表。在不同的实施例中,可以使用不同的变换目标来生成数据变换工作流。在一些实施例中,可以提供目标数据格式180。例如,目标数据格式180可以是关系数据库文件,将源数据模式172描述的表编码成关系数据库文件类型,如图1B中所描绘。变换目标也可以是目标数据模式182。例如,目标数据模式182可以指定表名称184c“平均分数”、列名称184a“用户”和“平均分数”,以及列数据类型184b“字符串”和“浮动“。在一些实施例中,可以生成变换工作流以对用户的从源数据模式172到目标数据模式182的分数求平均。可以为源数据对象生成不同的变换工作流,例如将源数据对象变换为具有不同数据格式的相同数据模式、具有不同数据模式的相同数据格式,或者不同数据模式和不同数据格式的变换后的数据对象。因此,图1B中示出的变换不希望是限制性的。
本说明书以提供商网络的一般描述开始,该提供商网络实施提取、变换、加载(ETL)服务,该服务识别、变换和移动存储在提供商网络或外部数据存储库中的数据。接着讨论包含可以作为实施ETL服务的一部分采用的不同组件/模块或组件/模块的布置的ETL服务的各种示例。接着讨论用以实施生成数据变换工作流的许多不同的方法和技术,其中一些在附随的流程图中示出。最后,提供可以在其上实施各种组件、模块、系统、装置和/或节点的示例计算系统的描述。在整个说明书中提供了各种示例。
图2是示出根据一些实施例的提供不同服务的提供商网络的框图,所述服务包含生成数据变换工作流的提取、变换、加载(ETL)服务。提供商网络200可以是私有或封闭系统,或者可以由例如公司或公共部门组织等实体建立,以将可通过因特网和/或其它网络访问的一个或多个服务(例如各种类型的基于云的存储)提供到客户端250。提供商网络200可以在单个位置实施,或者可以包含托管各种资源池的众多数据中心,例如物理和/或虚拟化计算机服务器、存储装置、网络设备等的集合(例如,下文参考图8描述的计算系统1000),需要这些数据中心以实施和分布由提供商网络200提供的基础设施和存储服务。在一些实施例中,提供商网络200可以实施各种计算资源或服务,例如数据存储服务210(例如,对象存储服务、基于块的存储服务或数据仓库存储服务)、ETL服务220,以及其它服务230,所述其它服务可以包含虚拟计算服务、数据处理服务(例如,地图缩减、数据流和/或其它大规模数据处理技术),和/或任何其它类型的基于网络的服务(其可以包含未示出的各种其它类型的存储、处理、分析、通信、事件处理、可视化和安全服务)。
在各种实施例中,图2中示出的组件可以直接在计算机硬件内实施,作为可由计算机硬件(例如,微处理器或计算机系统)直接或间接执行的指令,或者使用这些技术的组合。例如,图2的组件可以由包含多个计算节点(或简称为节点)的系统实施,每个计算节点可以类似于图8中示出并在下文描述的计算机系统实施例。在各种实施例中,给定系统或服务组件(例如,数据存储服务230的组件)的功能可以由特定节点实施,或者可以分布在若干节点上。在一些实施例中,给定节点可以实施一个以上服务系统组件(例如,一个以上数据存储组件)的功能。
数据存储服务210可以实施用于代表客户端250存储、访问和管理数据的不同类型的数据存储库,作为基于网络的服务,其使得客户端250能够在云或网络计算环境中操作数据存储系统。例如,数据存储服务210可以包含各种类型的数据库存储服务(关系和非关系)或用于存储、查询和更新数据的数据仓库。这些服务可以是可缩放和可扩展的企业级数据库系统。查询可以针对分布在多个物理资源上的数据存储服务210中的数据库或数据仓库,并且数据库系统可以根据需要按比例放大或缩小。在不同的实施例中,数据库系统可以有效地与各种类型和/或组织的数据库模式一起工作。在一些实施例中,客户端/订户可以以多种方式提交查询,例如,通过SQL界面以交互方式向数据库系统提交。在其它实施例中,外部应用和程序可以使用开放式数据库连接(ODBC)和/或Java数据库连接(JDBC)驱动程序界面向数据库系统提交查询。
数据存储服务210还可以包含用于放置、更新和获取数据对象或文件(其可以包含未知文件类型的数据文件)的各种对象或文件数据存储库。可以经由编程界面(例如,API)或图形用户界面来访问这样的数据存储服务210。数据存储服务210可以提供基于虚拟块的存储,用于将数据维护为数据卷的一部分,所述数据卷可以类似于基于本地块的存储装置(例如,硬盘驱动器、固态驱动器等)被安装或访问,并且可以利用基于块的数据存储协议或界面(例如因特网小型计算机界面(iSCSI))来访问。
在一些实施例中,ETL服务220可以跨各种数据存储服务210创建并动态地更新代表提供商网络200中的客户端存储的数据目录,如下文关于图3详细讨论的。例如,可以识别以非关系数据库格式存储的数据库以及在基于对象的数据存储库中存储对象的逻辑容器,因为两者都代表提供商网络200的同一客户存储。ETL服务220还可以执行从各种数据存储服务210中的一个或多个提取、变换和加载到另一位置的ETL作业。例如,ETL服务可以向客户端提供资源以创建、维护和编排数据加载作业,所述数据加载作业采用一个或多个数据集,执行各种变换操作,并存储变换后的数据以供进一步处理(例如,通过一个或多个数据处理服务)。ETL服务可以访问由ETL服务220生成的数据目录,以便执行ETL操作(例如,将数据对象从一种文件类型转换为一种或多种不同文件类型的其它数据对象的作业)。如下文关于图3-6详细讨论的,ETL服务220可以代表客户端自动生成变换工作流。
其它服务230可以包含各种类型的数据处理服务以执行不同的功能(例如,异常检测、机器学习、查询或任何其它类型的数据处理操作)。例如,在至少一些实施例中,数据处理服务可以包含地图缩减服务,其创建对存储在数据存储服务210之一中的数据实施地图缩减功能的处理节点的集群。各种其它分布式处理架构和技术可以通过数据处理服务(例如,网格计算、分片、分布式散列等)来实施。注意,在一些实施例中,数据处理操作可以实施为数据存储服务210的一部分(例如,查询引擎处理对指定数据的请求)。数据处理服务可以是ETL服务220的客户端,以便调用ETL作业的执行(例如,变换工作流)以使数据可用于在不同位置、数据模式或数据格式中进行处理,从而执行各种关于存储在数据存储服务210中的数据集的处理操作。
一般来说,客户端250可以涵盖可配置为经由网络260向提供商网络200提交基于网络的请求的任何类型的客户端,所述基于网络的请求包含对存储服务的请求(例如,创建、读取、写入、获取或修改数据存储服务210中的数据的请求)、在ETL服务220处生成ETL作业的请求等。例如,给定客户端250可以包含合适版本的web浏览器,或者可以包含插件模块或其它类型的代码模块,其被配置为作为web浏览器提供的执行环境的扩展或在所述执行环境内执行。或者,客户端250可以涵盖应用,例如数据库应用(或其用户界面)、媒体应用、办公室应用或可以利用数据存储服务210中的存储资源来存储和/或访问数据以实施各种应用的任何其它应用。在一些实施例中,这样的应用可以包含足够的协议支持(例如,用于适当版本的超文本传输协议(HTTP)),用于生成和处理基于网络的服务请求,而不必实施对所有类型的基于网络的数据的完全浏览器支持。也就是说,客户端250可以是被配置为直接与提供商网络200交互的应用。在一些实施例中,客户端250可以被配置为根据代表性状态转移(REST)风格的基于网络的服务架构、基于文档或消息的基于网络的服务架构或另一合适的基于网络的服务架构来生成基于网络的服务请求。
在一些实施例中,客户端250可以被配置为以对其它应用透明的方式向那些应用提供对提供商网络200的访问。例如,客户端250可以被配置为与操作系统或文件系统集成,以在数据存储服务210之一(例如,基于块的存储服务)上提供存储。但是,操作系统或文件系统可以向应用提供不同的存储界面,例如文件、目录和/或文件夹的传统文件系统层次结构。在这样的实施例中,可以不需要修改应用来利用存储系统服务模型。相反,介接到数据存储服务210的细节可以由客户端250和操作系统或文件系统代表在操作系统环境内执行的应用来协调。
客户端250可以经由网络260向提供商网络200传达基于网络的服务请求(例如,针对数据存储服务210中的数据的访问请求、操作、任务或作业,作为其它服务230的一部分执行,或者与ETL服务220交互)且接收来自提供商网络200的响应。在各种实施例中,网络260可以涵盖在客户端250和提供商网络200之间建立基于网络的通信所必需的联网硬件和协议的任何合适的组合。例如,网络260通常可以包含共同实施因特网的各种电信网络和服务提供商。网络260还可以包含专用网络,例如局域网(LAN)或广域网(WAN)以及公共或专用无线网络。例如,给定客户端250和提供商网络200两者可以分别在具有其自身的内部网络的企业内提供。在这样的实施例中,网络260可以包含在给定客户端250和因特网之间以及因特网和提供商网络200之间建立联网链接所必需的硬件(例如,调制解调器、路由器、交换机、负载平衡器、代理服务器等)和软件(例如,协议堆栈、会计软件、防火墙/安全软件等)。注意,在一些实施例中,客户端250可以使用专用网络而不是公共因特网与提供商网络200通信。
图3是示出根据一些实施例的生成数据变换工作流的ETL服务的框图。ETL服务220可以经由界面310提供对数据目录360和ETL作业(用于创建、管理和执行)的访问,在各种实施例中,界面310可以是编程界面(例如,应用编程界面(API))、命令行界面和/或图形用户界面。
ETL服务220可以实施ETL作业创建320以通过手动作业创建(例如,创建、编辑或上载ETL代码或者创建或编辑ETL作业的图形)或通过自动作业创建来处理ETL作业的创建,如下文关于图4所讨论的。ETL服务220可以实施ETL作业管理330以向客户端提供管理、编辑、删除或以其它方式改变ETL作业的能力,如下文关于图5和6所讨论的。ETL服务220可以实施ETL作业执行340以提供执行平台ETL作业。在一些实施例中,ETL作业执行340可以提供无服务器架构(从客户端的角度),以便供应适当数量的资源(例如,来自执行ETL作业代码的虚拟计算服务的虚拟计算实例)以便满足客户端或ETL服务220提供的性能要求、目的或目标。在一些实施例中,ETL作业执行340可以自动执行作业,而无需任何用户编辑来自ETL作业创建320的自动生成的ETL代码的改变。在一些实施例中,ETL作业执行340可以执行针对被修改的ETL作业的自动生成的ETL代码(如下文关于图5A-6所讨论的)。ETL作业执行340可以响应于检测到的ETL作业的触发事件(其可以由ETL作业管理或用于触发事件条件的另一系统或服务监视来检测)来执行作业。
ETL服务220可以维护描述数据集(存储在提供商网络200中或外部存储位置中)的数据目录360。ETL服务220可以识别未知数据对象,识别未知数据对象的数据格式和数据模式,并将数据格式和模式存储在未知数据对象的数据目录中。ETL服务220允许目录用户、所有者或其他利益相关者修改或以其它方式管理数据目录。例如,ETL服务220可以处理和执行针对数据目录360的访问请求(例如,组合、删除或拆分目录中的元数据表或编辑为数据目录确定的元数据的请求),或使用描述数据目录中的表的元数据搜索或查询数据对象的请求。ETL服务220可以实施数据目录的访问或控制策略(例如,针对经授权用户限制对数据目录的访问)。ETL服务220可以实施数据保留或生命周期策略以确定维护数据目录(或较旧版本的数据目录)的时间。ETL服务220可以处理用于创建新数据目录的数据中的存储资源的供应。ETL服务220还可以执行负载平衡、热管理、故障恢复和其它资源管理技术(例如,实施持久性要求)以确保客户端的数据目录的可用性。
用于数据目录360的存储可以由一个或多个存储节点、服务或计算装置(例如,下文关于图8讨论的系统1000)来实施,以为由数据目录服务200生成的数据目录提供持久存储。这样的存储节点(或存储360的其它存储组件)可以实施各种查询处理引擎或其它请求处理组件,以根据经由界面310接收的请求提供对数据目录的访问。例如,在一个实施例中,数据目录存储可以实施为非关系数据库,其存储表中的数据对象的文件类型和其它元数据。在一些实施例中,代表单个用户帐户跨不同存储服务210存储的各种数据对象的元数据集合可以一起存储在可以使客户端可访问的用户数据对象的单个元数据目录中。
图4是示出根据一些实施例的ETL作业创建的逻辑框图。ETL作业创建n320可以处理自动ETL作业创建和手动ETL作业创建的请求。例如,ETL作业创建320可以接收作业生成请求450,其可以指定ETL作业的数据对象和目标数据格式。可以包含其它作业信息,例如访问凭证、触发事件或执行ETL作业的任何其它信息,作为请求450的一部分。ETL作业创建320可以实施数据格式识别410以确定数据对象的源数据格式和/或数据模式以及数据对象的目标数据格式和/或数据模式。例如,在一个实施例中,数据格式识别可以从数据目录360获得452源和目标数据格式和模式。在另一实施例中,数据格式识别410可以执行数据格式或模式辨识技术,或访问其它数据存储库(例如,比如存储在关系数据库中的数据目录)以检索数据格式或模式信息。
数据格式识别410可以将源和目标数据格式和/或数据模式454提供给自动变换选择420,以进行比较和变换选择。在一个实施例中,自动变换选择420可以实施启发式或基于规则的比较和变换选择技术。例如,自动变换选择420可以首先基于源和目标数据格式(例如,用于将一个面向列的文件格式变换为另一个面向列的文件格式的规则集)或者一组用于基于源和目标数据模式选择变换的适用规则(例如,用于执行可以被识别为在源和目标数据模式之间执行的其它变换的过滤、聚合、转换的识别规则)来识别用于选择变换的一组适用规则。在一些实施例中,自动变换选择420可以将整个变换工作流与源和目标数据格式进行比较,以选择最佳匹配工作流。例如,可以识别用于将Javascript对象表示法(JSON)文件转换为关系表格式的变换工作流,并将其与作业的源格式和目标格式进行比较。如下文关于图7所讨论的各种其它选择技术或示例可以通过自动变换选择420来实施
自动变换选择420可以将所选择的变换456提供给代码生成430。代码生成430可以从变换代码库440获得用于特定变换(或多个变换的工作流)的代码,并构造用于执行变换456的源代码。例如,可以根据由代码库440限定或指定的求和函数或运算来生成将来自多个数据字段的值添加到单个值中的求和变换。在一些实施例中,作业生成请求450可以指示指定类型的输出源代码(例如,Python、Java、C#等)。代码生成430可以包含生成的代码中的注释、批注或其它指示以识别变换,所述变换可以随后被解析和识别以生成变换的图形,如下文关于图5A和5B所讨论的。
手动创建ETL作业还可以利用代码生成430。例如,可以(例如,经由图形用户界面)接收变换选择请求470,并且由手动变换选择处理器450将其提供给代码生成430。代码生成430可以采取手动选择的变换472并生成用以执行变换472的代码并将ETL作业460存储在ETL作业存储库350中。
图5A是示出根据一些实施例的修改ETL作业图的交互的逻辑框图。ETL作业管理330可以向ETL服务220的客户端提供修改ETL作业的执行的能力,无论作业是以自动方式还是以手动方式创建的。作为ETL作业的一部分的变换可以作为ETL作业图(例如,变换的定向非循环图)提供,或者作为用于执行ETL作业的变换的源ETL代码提供。如图5A所示,ETL作业管理330可以经由界面310接收对ETL作业图532的请求。ETL作业管理330可以向ETL作业存储库发送请求以检索ETL作业534。例如,可以提供作业识别符、用户帐户或其它识别信息来识别正确的作业。可以向注释解析器512提供用于ETL作业的代码536,注释解析器512可以扫描并提取在ETL代码的批注中指定的变换,并将指示的图形注释537提供给ETL作业图生成510。
例如,在图5B中,ETL作业560的代码(例如,表示为用于Spark的Python代码,Pyspark)可以包含各种批注部分(由“##”描绘)。这些注释可以包含变换或操作的类型、输入到变换或操作中的自变量、返回的结果以及输入数据值(如果适用)。例如,createDataSource操作可以从数据源表“tweets_json”检索数据。在代码560中进行操作声明的批注部分可以用于在ETL作业图562中生成相应的节点。也可以根据前面的批注部分指示关系化变换的批注、selectFromCollection变换和对目标“Warehouse”的写入操作之间的类似映射。这些批注可以由注释解析器512解析,注释解析器512可以基于所识别的变换生成ETL作业图的文档或其它表示(例如,在识别ETL作业图的节点和边缘的JSON文档中)。然后可以将图形注释537的表示提供给ETL作业图生成510,ETL作业图生成可以根据注释来生成作业图,所述作业图示出了要在ETL作业中执行的变换(例如图5B中的ETL作业图562)。生成的图形然后可以被提供538(例如,用于经由图形使用界面显示)或者作为可以由客户端解释以显示为图形的数据。
可以接收对ETL作业的更新作为ETL图的更新。如图5A所示,可以经由界面310接收修改ETL作业图542的请求。ETL作业图处理520可以确定对图形的修改(例如,变换输入改变、替换变换、删除变换、添加变换、改变变换的排序等)。ETL作业图修改处理520可以向ETL作业图生成510提供图形更新544,使得可以生成并提供536基于修改542的更新后版本。为了更新底层代码,ETL作业图修改处理520可以将作业修改546发送到代码生成430(作为ETL作业创建320的一部分实施)。代码生成430可以根据作业修改546生成更新后的代码部分,并将代码更新548发送到ETL作业存储库350。然后,代码生成430可以将ETL作业460存储在ETL作业存储库350中。
在一些实施例中,可以直接编辑ETL作业代码。图5C是示出根据一些实施例的用于修改ETL作业代码的交互的逻辑框图。例如,ETL作业管理330可以实施代码修改处理530以处理对ETL作业代码552的请求,从ETL作业存储库350检索请求ETL作业554并将ETL作业代码556提供给请求客户端。代码修改处理530可以处理对ETL作业代码的文本编辑,如562处所示,并且向ETL作业存储库350中的作业提供相应的代码更新564。
图6是根据一些实施例的用于修改ETL作业的示例图形用户界面。如上所述,界面310可以为用户实施、服务或以其它方式提供图形用户界面。可以显示由ETL服务220为变换作业生成的代码以与作业的图形一起进行编辑。例如,ETL作业修改界面600可以实施代码编辑器610以向用户提供用于所显示的作业代码612的基于图形的文本编辑工具。可以选择、覆盖、删除、添加文本或允许执行任何其它文本编辑。可以选择用户界面要素614以通过在代码编辑器610中进行的改变来调用更新存储在作业存储库350中的作业的请求。例如,在选择更新作业要素614时,可以将对作业代码612进行的参数值改变保存到作业存储库350。在一些实施例中,可以指示或锁定指示变换的批注部分以进行编辑(以便保留用于图形生成的变换的记录。编辑或重新生成变换时,可以更新批注。在其它实施例中,批注可以由用户直接编辑。例如,他们用户可以编辑批注以提供用于图形生成的额外信息。
在一些实施例中,图形编辑器620可以实施为ETL作业修改界面600的一部分,以提供用于以图形方式修改作业的交互式界面。可以生成并显示作业图622。例如,如图6所示,作业图622可以包含源数据对象632、变换634和636,以及ETL作业的目标640和642。用户可以选择各种所显示的要素来应用更改、添加或删除要素、更改输入值或参数,或进行任何其它ETL作业编辑。可以选择用户界面要素624以基于经由图形编辑器620执行的编辑来生成作业代码612的更新后版本。例如,如果从作业图622中移除了变换,则在选择重新生成代码624时可以在作业代码612中移除相应的代码。
注意,图形使用界面的先前示例不希望是限制性的。可以实施图形用户界面要素的各种其它组合或布置,例如弹出菜单、下拉框、悬停显示或任何其它用户界面特征,以提供上文关于图5A-6所讨论的各种界面特征。
尽管图2-6已经在ETL服务的上下文中描述和示出,但在图2-6中示出和描述了各种技术和组件在不同的实施例中可以容易地应用于其它数据访问或管理系统,这可以促进数据从一种数据格式到另一种数据格式的变换。因此,图2-6不希望相对于可以实施生成数据变换工作流的系统的其它实施例具有限制性。图7是示出根据一些实施例的用于实施生成数据变换工作流的方法和技术的高级流程图。各种不同的系统和装置可以单独地或一起协作地实施下文描述的各种方法和技术。例如,如上文关于图2-6所描述的ETL服务可以被配置为实施各种方法。或者,不同系统和装置的组合,例如管理对存储在直接附接的存储装置中的数据的访问的存储子系统。因此,上面的示例和/或被称为执行所示方法的任何其它系统或装置并不希望相对于其它不同的组件、模块、系统或系统和装置的配置具有限制性。
如710处所示,可以识别根据源数据模式存储的数据对象。例如,在一个实施例中,生成数据变换工作流的请求可以包含数据对象的识别符(例如,对象名称、编号或位置,例如文件路径)。所述请求可以包含源数据模式,以及源数据模式的源数据格式或识别符。在另一实施例中,另一数据存储库可以存储数据对象的源数据模式信息,例如比如上文关于图3和4所讨论的数据目录360等元数据存储库。可以向数据存储库作出请求以检索数据模式信息以及关于源数据对象的其它信息,例如数据格式。如720处所示,在一些实施例中,可以识别数据对象的至少目标数据格式。例如,生成数据变换工作流的相同请求或单独请求可以包含目标数据格式的信息(例如,文件类型)。在一些实施例中,可以识别目标数据模式。在一些实施例中,可以使用目标数据格式或模式的识别符来访问例如数据目录360等元数据存储库。
如730处所示,在一些实施例中,可以将源数据模式与目标数据格式(和/或目标数据模式)进行比较,以确定用以从数据对象生成以目标数据格式(和/或目标数据模式)存储的一个或多个变换后的数据对象的变换。例如,可以评估目标数据格式以确定要执行的各种变换以根据目标数据格式改变要写入的数据对象的编码(例如,从JSON到Parquet)。在另一示例中,可以解析或以其它方式评估目标数据模式以确定存储在目标数据模式中的数据的所得特性(例如,列数、列的数据类型、列中含有的数据等)。然后可以关于源数据模式评估这些特性,以确定从源数据模式需要什么数据来产生所述特性。例如,比较可以确定在目标数据格式与源数据格式中找到的数据列之间的映射。当可以通过选定的变换实现每个特性时,可以完成变换的选择。在一个实施例中,可以将一个或多个变换的不同集合与源数据格式和目标数据格式进行比较,以便选择最佳匹配工作流。
在一个实施例中,可以实施用于比较数据格式和选择变换的基于规则的决策。例如,如果源数据格式是半结构化数据格式,并且目标数据格式是结构化数据格式,则可以执行用于半结构化到结构化数据格式变换的决策制定规则的子集来比较和选择变换。以这种方式,可以针对所讨论的数据格式定制变换的比较和选择(而不是检查针对不同数据格式的所有可能的变换)。在至少一些实施例中,可以响应于从用户接收的反馈来更新基于规则的决策和用于选择变换的其它启发法。例如,如果在执行源数据格式和目标数据格式之间的比较时对同一变换应用相同的修改,则可以创建或修改规则以包含编辑作为变换的一部分(或由此生成的代码)。
可以基于比较识别许多不同类型的变换。例如,可以识别将一个或多个字段、值或项从数据对象中删除的变换。可以执行变换以将数据转换为关系数据格式(例如,将列表、项或属性转换为具有相应列值的行条目)。在一些实施例中,可以实施的另一变换可以对列、字段或属性进行重命名。变换可以从数据对象中选择特定字段或将字段分割成两个不同的帧、位置、字段或属性。变换可以将行、条目或项分成单独的行、条目或项。变换可以对数据值(比如字符串)进行拆箱(unbox)和装箱(box)。变换可以聚合或组合数据值。变换可通过转换、舍入、截断或修改数据值来降低数据值的保真度。可以通过变换来识别和创建或分离自定义数据值(例如,组合多个不同类型的值)。
在一些实施例中,可以通过评估变换之间的相依性来确定变换的排序。例如,依赖于基于2个其它列(例如,SUM(col A,col B))为新列生成数据值的变换可依赖于将来自源数据格式的数据对象的列映射到目标数据模式的col A和col B的变换。在一些实施例中,变换的排序可以被构造为类似于有向非循环图(DAG),以防止导致无限循环或其它不可避免的状态发生的代码生成错误。
如740处所示,可以生成用以执行所识别的变换的代码。可以维护代码库或其它知识库以将所识别的变换映射到源代码,所述源代码可以被编译和执行以执行变换。例如,每个变换可以被映射到代码库中的特定函数或类,并且映射的函数或类可以被复制到经生成以执行变换的源代码文件中。可以基于所确定的变换排序(例如,在来自先前变换的修改后的条目或行中通过)或者用于变换的基本理性(例如,将数据对象中的A列映射到变换后的数据对象中的D列)来确定变换的自变量、输入值、输出值或其它参数。
然后可以存储生成的代码,如750处所示。例如,代码或作业存储库,如上文图3中的ETL作业存储库450,可以存储代码。如上所述,可以随后执行或修改代码。
在允许将数据对象变换为目标数据模式而不指定目标数据格式的实施例中,可以执行目标数据格式的选择。例如,可以识别在目标数据模式中生成变换后的数据对象的变换(例如,合并、分割、丢弃等),然后评估所述变换以确定哪种数据格式最佳地存储将由于经识别的操作而生成的数据。例如,如果变换涉及基于源数据值生成新数据值(例如,平均值),则可以基于数据格式是否支持新数据值的数据类型来选择数据格式(例如,支持双重或浮动、科学记数法等)。
在各种实施例中,本文描述的方法可以通过硬件和软件的任何组合来实施。例如,在一个实施例中,所述方法可以由计算机系统(例如,如图8中的计算机系统)实施,所述计算机系统包含执行存储在联接到处理器的计算机可读存储介质上的程序指令的一个或多个处理器。程序指令可以被配置为实施本文描述的功能(例如,实施本文描述的基于网络的虚拟计算资源提供者的各种服务器和其它组件的功能)。如图中所示和本文描述的各种方法代表方法的示例性实施例。可以改变任何方法的顺序,并且可以添加、重新排序、组合、省略、修改(等)各种要素。
如本文所描述的生成数据变换工作流的实施例可以在一个或多个计算机系统上执行,所述计算机系统可以与各种其它装置交互。图8示出了一种这样的计算机系统。在不同的实施例中,计算机系统1000可以是各种类型的装置中的任何一种,包含但不限于:个人计算机系统、台式计算机、膝上型计算机、笔记本或上网本计算机、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动装置、消费者装置、视频游戏控制台、手持式视频游戏装置、应用服务器、存储装置、诸如交换机、调制解调器、路由器之类的外围装置,或者通常任何类型的计算节点、计算装置或电子装置。
在所示的实施例中,计算机系统1000包含经由输入/输出(I/O)界面1030联接到系统存储器1020的一个或多个处理器1010。计算机系统1000进一步包含联接到I/O界面1030的网络接口1040,以及一个或多个输入/输出装置1050,例如光标控制装置1060、键盘1070和显示器1080。显示器1080可以包含标准计算机监视器和/或其它显示系统、技术或装置。在至少一些实施方案中,输入/输出装置1050还可以包含触摸或多触摸使能装置,例如平板或平板电脑,用户通过所述触摸或多触摸使能装置经由触控笔型装置和/或一个或多个手指来键入输入。在一些实施例中,预期可以使用计算机系统1000的单个实例来实施实施例,而在其它实施例中,多个这样的系统或构成计算机系统1000的多个节点可以被配置为托管实施例的不同部分或实例。例如,在一个实施例中,一些要素可以通过计算机系统1000的一个或多个节点来实施,这些节点不同于实施其它要素的那些节点。
在各个实施例中,计算机系统1000可以是包含一个处理器1010的单处理器系统,或者包含若干处理器1010(例如,两个、四个、八个或另一合适的数量)的多处理器系统。处理器1010可以是能够执行指令的任何合适的处理器。例如,在各个实施例中,处理器1010可以是实施各种指令集架构(ISA)中的任何一种的通用或嵌入式处理器,所述指令集架构例如x86、PowerPC、SPARC或MIPS ISA,或者任何其它合适的ISA。在多处理器系统中,处理器1010中的每一个可以共同(但不是必须)实施相同的ISA。
在一些实施例中,至少一个处理器1010可以是图形处理单元。图形处理单元或GPU可以被认为是用于个人计算机、工作站、游戏控制台或其它计算或电子装置的专用图形呈现装置。现代GPU在操纵和显示计算机图形方面可能非常有效,并且它们的高度并行结构可以使它们比一系列复杂图形算法的典型CPU更有效。例如,图形处理器可以以比使用主机中央处理单元(CPU)直接绘制到屏幕更快的执行方式实施多个图形基元操作。在各种实施例中,图形呈现可以至少部分地由被配置用于在这样的GPU中的一个上执行或者在这样的GPU中的两个或两个以上之上并行执行的程序指令来实施。GPU可以实施允许程序员调用GPU的功能的一个或多个应用编程界面(API)。合适的GPU可以从例如NVIDIA公司、ATITechnologies(AMD)等供应商商购获得。
系统存储器1020可以被配置成存储可由处理器1010访问的程序指令和/或数据。在各个实施例中,系统存储器1020可以使用任何合适的存储器技术来实施,例如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/快闪型存储器,或任何其它类型的存储器。在所示的实施例中,实施例如上文描述的所期望功能的程序指令和数据被示为分别作为程序指令1025和数据存储1035而存储在系统存储器1020内。在其它实施例中,可以在不同类型的计算机可访问介质上或在与系统存储器1020或计算机系统1000分离的类似介质上接收、发送或存储程序指令和/或数据。一般来说,非暂时性计算机可读存储介质可以包含存储介质或存储器介质,例如磁性或光学介质,例如经由I/O界面1030联接到计算机系统1000的磁盘或CD/DVD-ROM。经由计算机可读介质存储的程序指令和数据可通过传输介质或例如电信号、电磁信号或数字信号等信号来传输,所述信号可经由例如可以经由网络接口1040实施的网络和/或无线链路等通信介质传送。
在一个实施例中,I/O界面1030可以被配置成协调处理器1010、系统存储器1020与装置中的任何外围装置之间的I/O业务量,所述外围装置包含网络接口1040或例如输入/输出装置1050等其它外围接口。在一些实施例中,I/O界面1030可以执行任何必要的协议、定时或其它数据变换,以将来自一个组件(例如,系统存储器1020)的数据信号转换成适合于由另一组件(例如,处理器1010)使用的格式。在一些实施例中,I/O界面1030可以包含对通过各种类型的外围总线附接的装置的支持,所述外围总线例如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体。在一些实施例中,I/O界面1030的功能可以分成两个或两个以上单独的组件,例如,如北桥和南桥。而且,在一些实施例中,I/O界面1030的一些或全部功能,例如到系统存储器1020的界面可以直接并入到处理器1010中。
网络接口1040可以被配置为允许在计算机系统1000和附接到网络的其它装置(例如其它计算机系统)之间或者计算机系统1000的节点之间交换数据。在各种实施例中,网络接口1040可支持经由以下的通信:经由有线或无线通用数据网络,例如任何合适的类型的以太网网络;经由电信/电话网络,例如模拟语音网络或数字光纤通信网络;经由存储局域网络,例如光纤通道SAN;或经由任何其它合适的类型的网络和/或协议。
在一些实施例中,输入/输出装置1050可以包含一个或多个显示终端、键盘、小键盘、触摸板、扫描装置、语音或光学辨识装置,或适合于由一个或多个计算机系统1000输入或检索数据的任何其它装置。多个输入/输出装置1050可以存在于计算机系统1000中,或者可以分布在计算机系统1000的各个节点上。在一些实施例中,类似的输入/输出装置可以与计算机系统1000分离,并且可以通过有线或无线连接(例如通过网络接口1040)与计算机系统1000的一个或多个节点交互。
如图8所示,存储器1020可以包含:程序指令1025,其配置为实施如本文所描述的各种方法和技术;以及数据存储1035,其包括由程序指令1025可访问的各种数据。在一个实施例中,程序指令1025可以包含如本文所描述并如图中所示的实施例的软件要素。数据存储1035可以包含可以在实施例中使用的数据。在其它实施例中,可以包含其它或不同的软件要素和数据。
所属领域的技术人员将理解,计算机系统1000仅是说明性的,并且不希望限制如本文所描述的技术的范围。具体地,计算机系统和装置可以包含可以执行所指示的功能的硬件或软件的任何组合,包含计算机、个人计算机系统、台式计算机、膝上型计算机、笔记本或上网本计算机、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动装置、网络装置、因特网设备、PDA、无线电话、寻呼机、消费者装置、视频游戏控制台、手持式视频游戏装置、应用服务器、存储装置、例如交换机、调制解调器、路由器之类的外围装置,或者通常任何类型的计算或电子装置。计算机系统1000还可以连接到未示出的其它装置,或者可以作为独立系统操作。另外,在一些实施例中,由所示组件提供的功能可以组合在更少的组件中或分布在额外组件中。类似地,在一些实施例中,可以不提供一些所示组件的功能和/或可以使用其它额外功能。
所属领域的技术人员还将理解,虽然各种项目被示为在使用时存储在存储器中或存储装置上,但是这些项目或它们的部分可以在存储器和其它存储装置之间传送,以用于存储器管理和数据完整性。或者,在其它实施例中,一些或所有软件组件可以在另一装置上的存储器中执行,并通过计算机间通信与所示计算机系统通信。系统组件或数据结构中的一些或全部也可以存储(例如,作为指令或结构化数据)在计算机可访问介质或便携式物品上,以由适当的驱动器读取,其各种示例在上文描述。在一些实施例中,存储在与计算机系统1000分开的非暂时性计算机可访问介质上的指令可以经由传输介质或例如电信号、电磁信号或数字信号等信号传输到计算机系统1000,所述信号通过例如网络和/或无线链路等通信介质来传送。各个实施例可以进一步包含在计算机可访问介质上接收、发送或存储根据前述描述实施的指令和/或数据。因此,本发明可以用其它计算机系统配置来实践。
注意,本文描述的任何分布式系统实施例或其任何组件可以实施为一个或多个web服务。例如,ETL系统内的节点可以将ETL服务作为基于网络的服务呈现给客户端。在一些实施例中,基于网络的服务可以由被设计用于支持网络上的可互操作的机器到机器交互的软件和/或硬件系统来实施。基于网络的服务可以具有以例如Web服务描述语言(WSDL)等机器可处理格式描述的界面。其它系统可以以基于网络的服务的界面的描述所规定的方式与web服务交互。例如,基于网络的服务可以限定其它系统可以调用的各种操作,并且可以限定特定的应用编程界面(API),在请求各种操作时,可以期望其它系统遵循所述特定的应用编程界面。
在各种实施例中,可以通过使用包含与基于网络的服务请求相关联的参数和/或数据的消息来请求或调用基于网络的服务。可以根据例如可扩展标记语言(XML)等特定标记语言来格式化这样的消息,和/或可以使用例如简单对象访问协议(SOAP)等协议来封装这样的消息。为了执行web服务请求,基于网络的服务客户端可以汇编包含请求的消息,并使用基于因特网的应用层传送协议(例如,超文本传送协议(HTTP))将消息传送到与web服务相对应的可寻址端点(例如,统一资源定位符(URL))。
在一些实施例中,可以使用表述性状态转移(“RESTful“)技术而不是基于消息的技术来实施web服务。例如,可以通过HTTP方法(例如PUT、GET或DELETE)中包含的而不是封装在SOAP消息内的参数来调用根据RESTful技术实施的web服务。
如图中所示和本文描述的各种方法代表方法的示例性实施例。所述方法可以用软件、硬件或其组合来实施。可以改变方法的顺序,并且可以添加、重新排序、组合、省略、修改(等)各种要素。
可以进行各种修改和改变,这对于受益于本公开的所属领域的技术人员来说是显而易见的。希望本发明囊括所有这些修改和变化,并且因此,以上描述被认为是说明性的而不是限制性的。
Claims (20)
1.一种系统,其包括:
至少一个处理器;以及
存储器,其用以存储程序指令,所述程序指令在被执行的情况下使所述至少一个处理器执行方法,所述方法包括:
根据源数据模式识别存储在第一数据存储库中的数据对象;
识别所述数据对象的变换目标;
将所述源数据模式与所述目标数据格式进行比较,以确定要应用于所述数据对象以生成根据所述目标数据格式存储的一个或多个变换后的数据对象的一个或多个变换;
生成用以执行所述一个或多个变换的代码;以及
将所述代码存储在第二数据存储库中。
2.根据权利要求1所述的系统,其中所述方法进一步包括:
生成所述一个或多个变换的图形;以及
提供所述图形以供通过图形用户界面显示。
3.根据权利要求1所述的系统,其中所述方法进一步包括:
通过界面提供至少一些所述代码;
通过所述界面接收修改所述至少一些代码的请求;以及
根据所述请求的修改更新所述第一数据存储库中的所述代码。
4.根据权利要求1所述的系统,其中所述第一数据存储库是由供应商网络提供的数据存储服务,其中所述至少一个处理器、所述存储器和所述第二数据存储库被实施作为由所述供应商网络提供的提取变换加载(ETL)服务的一部分,并且其中根据经由基于网络的界面接收的针对所述ETL服务的一个或多个请求来识别所述数据对象和所述目标数据格式。
5.一种方法,其包括:
根据源数据模式识别存储在第一数据存储库中的数据对象;
识别所述数据对象的至少目标数据格式;
将所述源数据模式与所述目标数据格式进行比较,以确定要应用于所述数据对象以生成根据所述目标数据格式存储的一个或多个变换后的数据对象的一个或多个变换;
生成用以执行所述一个或多个变换的代码;以及
将所述代码存储在第二数据存储库中。
6.根据权利要求5所述的方法,其进一步包括:
从所述第二数据存储库获取所述代码;
相对于所述数据对象执行所述代码以生成所述变换后的数据对象;以及
将所述变换后的数据对象存储在所述第一数据存储库或第三数据存储库中。
7.根据权利要求5所述的方法,其进一步包括:
生成所述一个或多个变换的图形;以及
提供所述图形以供通过图形用户界面显示。
8.根据权利要求7所述的方法,其进一步包括:
通过所述图形用户界面接收修改所述变换的所述图形的请求;以及
根据所述变换的所述图形的所述修改来修改所述代码的至少一部分。
9.根据权利要求7所述的方法,其中生成所述代码以执行所述一个或多个变换包括在所述代码中包含指示所述一个或多个变换的一个或多个批注;且
其中生成所述一个或多个变换的所述图形包括解析所述代码以确定由所述一个或多个批注指示的所述一个或多个变换。
10.根据权利要求5所述的方法,其中所述将所述源数据模式与所述目标数据格式进行比较进一步包括将所述源数据模式与目标数据模式进行比较以确定要应用于所述数据对象的所述一个或多个变换。
11.根据权利要求5所述的方法,其中所述方法进一步包括:
通过界面提供至少一些所述代码;
通过所述界面接收修改所述至少一些代码的请求;以及
根据所述请求的修改更新所述第二数据存储库中的所述代码。
12.根据权利要求11所述的方法,其进一步包括:
从所述第二数据存储库获取更新后的代码;
相对于所述数据对象执行所述更新后的代码以生成所述变换后的数据对象;以及
将所述变换后的数据对象存储在所述第一数据存储库或第三数据存储库中。
13.根据权利要求5所述的方法,其中所述第一数据存储库是由供应商网络提供的数据存储服务,其中所述至少一个处理器、所述存储器和所述第二数据存储库被实施作为由所述供应商网络提供的提取变换加载(ETL)服务的一部分,并且其中根据经由基于网络的界面接收的针对所述ETL服务的一个或多个请求来识别所述数据对象和所述目标数据格式。
14.一种非暂时性计算机可读存储介质,其存储程序指令,所述程序指令当由一个或多个计算装置执行时使所述一个或多个计算装置实施:
根据源数据模式识别存储在数据存储库中的数据对象;
识别所述数据对象的目标数据模式;
将所述源数据模式与所述目标数据模式进行比较,以确定要应用于所述数据对象以生成根据所述目标数据模式存储的一个或多个变换后的数据对象的一个或多个变换;
生成用以执行所述一个或多个变换的代码;以及
将所述代码存储在数据存储库中。
15.根据权利要求14所述的非暂时性计算机可读存储介质,其中所述将所述源数据模式与所述目标数据模式进行比较以确定要应用于所述数据对象的一个或多个变换包括从元数据存储库获得所述源数据模式和所述目标数据模式。
16.根据权利要求14所述的非暂时性计算机可读存储介质,其中所述程序指令使所述一个或多个计算装置进一步实施:
生成所述一个或多个变换的图形;以及
提供所述图形以供通过图形用户界面显示。
17.根据权利要求14所述的非暂时性计算机可读存储介质,其中所述程序指令使所述一个或多个计算装置进一步实施:
通过界面提供至少一些所述代码;
通过所述界面接收修改所述至少一些代码的请求;以及
根据所述请求的修改更新所述第二数据存储库中的所述代码。
18.根据权利要求17所述的非暂时性计算机可读存储介质,其中所述程序指令使所述一个或多个计算装置进一步实施:
从所述第二数据存储库获取更新后的代码;
相对于所述数据对象执行所述更新后的代码以生成所述变换后的数据对象;以及
将所述变换后的数据对象存储在所述第一数据存储库或第三数据存储库中。
19.根据权利要求14所述的非暂时性计算机可读存储介质,其中所述程序指令使所述一个或多个计算装置进一步实施识别所述变换后的数据对象的目标数据格式,其中所述一个或多个变换进一步生成将根据所述识别的目标数据格式存储的所述一个或多个变换后的数据对象。
20.根据权利要求14所述的非暂时性计算机可读存储介质,其中在将所述源数据格式与所述目标数据格式进行比较以确定要应用于所述数据对象的一个或多个变换时,所述程序指令使所述一个或多个计算装置实施:
识别根据所述源数据格式单独地存储在所述数据对象中的多个数据值;以及
选择将所述数据值一起存储在所述变换后的数据对象中的变换作为所述确定的变换之一。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662426571P | 2016-11-27 | 2016-11-27 | |
US62/426,571 | 2016-11-27 | ||
US15/385,764 | 2016-12-20 | ||
US15/385,764 US11138220B2 (en) | 2016-11-27 | 2016-12-20 | Generating data transformation workflows |
PCT/US2017/063259 WO2018098424A1 (en) | 2016-11-27 | 2017-11-27 | Generating data transformation workflows |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110023923A true CN110023923A (zh) | 2019-07-16 |
CN110023923B CN110023923B (zh) | 2024-05-28 |
Family
ID=62190259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780073061.2A Active CN110023923B (zh) | 2016-11-27 | 2017-11-27 | 生成数据变换工作流 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11138220B2 (zh) |
EP (1) | EP3545433A1 (zh) |
CN (1) | CN110023923B (zh) |
WO (1) | WO2018098424A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114207607A (zh) * | 2020-06-30 | 2022-03-18 | 斯诺弗雷克公司 | 支持非结构化、半结构化和结构化文件 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593342B2 (en) | 2016-02-01 | 2023-02-28 | Smartshift Technologies, Inc. | Systems and methods for database orientation transformation |
US10585655B2 (en) | 2016-05-25 | 2020-03-10 | Smartshift Technologies, Inc. | Systems and methods for automated retrofitting of customized code objects |
US10089103B2 (en) | 2016-08-03 | 2018-10-02 | Smartshift Technologies, Inc. | Systems and methods for transformation of reporting schema |
US10621195B2 (en) | 2016-09-20 | 2020-04-14 | Microsoft Technology Licensing, Llc | Facilitating data transformations |
US10706066B2 (en) | 2016-10-17 | 2020-07-07 | Microsoft Technology Licensing, Llc | Extensible data transformations |
US10776380B2 (en) * | 2016-10-21 | 2020-09-15 | Microsoft Technology Licensing, Llc | Efficient transformation program generation |
US10671631B2 (en) * | 2016-10-31 | 2020-06-02 | Informatica Llc | Method, apparatus, and computer-readable medium for non-structured data profiling |
US11170020B2 (en) | 2016-11-04 | 2021-11-09 | Microsoft Technology Licensing, Llc | Collecting and annotating transformation tools for use in generating transformation programs |
US11163788B2 (en) | 2016-11-04 | 2021-11-02 | Microsoft Technology Licensing, Llc | Generating and ranking transformation programs |
US11481408B2 (en) | 2016-11-27 | 2022-10-25 | Amazon Technologies, Inc. | Event driven extract, transform, load (ETL) processing |
US11138220B2 (en) | 2016-11-27 | 2021-10-05 | Amazon Technologies, Inc. | Generating data transformation workflows |
US11277494B1 (en) | 2016-11-27 | 2022-03-15 | Amazon Technologies, Inc. | Dynamically routing code for executing |
US10261763B2 (en) * | 2016-12-13 | 2019-04-16 | Palantir Technologies Inc. | Extensible data transformation authoring and validation system |
US10257033B2 (en) | 2017-04-12 | 2019-04-09 | Cisco Technology, Inc. | Virtualized network functions and service chaining in serverless computing infrastructure |
US10936563B2 (en) * | 2017-06-23 | 2021-03-02 | Yokogawa Electric Corporation | System and method for merging a source data from a source application into a target data of a target application |
US11221831B1 (en) * | 2017-08-10 | 2022-01-11 | Palantir Technologies Inc. | Pipeline management tool |
US10740075B2 (en) | 2018-02-06 | 2020-08-11 | Smartshift Technologies, Inc. | Systems and methods for code clustering analysis and transformation |
US10528343B2 (en) | 2018-02-06 | 2020-01-07 | Smartshift Technologies, Inc. | Systems and methods for code analysis heat map interfaces |
US10698674B2 (en) | 2018-02-06 | 2020-06-30 | Smartshift Technologies, Inc. | Systems and methods for entry point-based code analysis and transformation |
US11176104B2 (en) * | 2018-04-16 | 2021-11-16 | Bank Of America Corporation | Platform-independent intelligent data transformer |
GB201821248D0 (en) | 2018-12-27 | 2019-02-13 | Palantir Technologies Inc | Data pipeline management system and method |
US11950877B2 (en) | 2019-02-05 | 2024-04-09 | University Of Virginia Patent Foundation | System and method for fully automatic LV segmentation of myocardial first-pass perfusion images |
US11614976B2 (en) | 2019-04-18 | 2023-03-28 | Oracle International Corporation | System and method for determining an amount of virtual machines for use with extract, transform, load (ETL) processes |
US11341154B2 (en) * | 2019-08-20 | 2022-05-24 | Adobe Inc. | Normalizing encodings of requested data from a common data schema to a target data schema |
CN112434781A (zh) * | 2019-08-26 | 2021-03-02 | 上海寒武纪信息科技有限公司 | 用于处理数据的方法、装置以及相关产品 |
CN114846459A (zh) * | 2019-11-06 | 2022-08-02 | 谷歌有限责任公司 | 用于智能且可扩展的模式匹配框架的方法和装置 |
US11249964B2 (en) | 2019-11-11 | 2022-02-15 | Microsoft Technology Licensing, Llc | Generating estimated database schema and analytics model |
US20210224238A1 (en) * | 2020-01-21 | 2021-07-22 | LO3 Energy Inc. | Secure zero knowledge data transformation and validation |
US10848451B1 (en) * | 2020-01-31 | 2020-11-24 | Capital One Services, Llc | Systems and methods for context development |
US10902011B1 (en) | 2020-01-31 | 2021-01-26 | Capital One Services, Llc | Systems and methods for context development |
US11675614B2 (en) * | 2020-02-14 | 2023-06-13 | SparkCognition, Inc. | Standardized model packaging and deployment |
US20210342308A1 (en) * | 2020-04-30 | 2021-11-04 | Unity IPR ApS | System and method for performing context aware operating file system virtualization |
US11423081B1 (en) | 2020-06-30 | 2022-08-23 | Snowflake Inc. | Accessing files in a database stage using a user defined function |
US11361026B2 (en) | 2020-06-30 | 2022-06-14 | Snowflake Inc. | Accessing files in a database stage using a user defined function |
US11675868B2 (en) * | 2020-08-07 | 2023-06-13 | Kount Inc. | Dynamic service worker code for storing information in web browser |
US11630833B2 (en) | 2020-10-29 | 2023-04-18 | International Business Machines Corporation | Extract-transform-load script generation |
CN112835891B (zh) * | 2021-01-15 | 2024-05-03 | 卓望数码技术(深圳)有限公司 | 一种数据比对方法及系统、任务控制器、存储介质 |
US20220277018A1 (en) * | 2021-02-26 | 2022-09-01 | Microsoft Technology Licensing, Llc | Energy data platform |
US11880344B2 (en) * | 2021-05-14 | 2024-01-23 | Microsoft Technology Licensing, Llc | Synthesizing multi-operator data transformation pipelines |
US11645243B2 (en) * | 2021-06-07 | 2023-05-09 | Snowflake Inc. | Accessing files in a database stage using a user defined function |
US11886381B2 (en) * | 2021-06-28 | 2024-01-30 | Red Hat, Inc. | Meta-format and technique to produce tutorials for multiple publishing formats |
US20230140109A1 (en) * | 2021-10-29 | 2023-05-04 | T-Mobile Innovations Llc | Metadata Driven Automatic Data Integration |
US11886458B2 (en) * | 2021-11-05 | 2024-01-30 | Salesforce, Inc. | Configurable data transformation between different database systems |
US11842176B2 (en) * | 2021-11-12 | 2023-12-12 | Bank Of America Corporation | System and method for performing parallel and distributed analysis of program code to generate dependency graphs for executing extract transform load transformations |
US11755863B1 (en) | 2022-03-02 | 2023-09-12 | Ricoh Company, Ltd. | Ink estimation model updates for production printers |
US11775791B2 (en) | 2022-03-02 | 2023-10-03 | Ricoh Company, Ltd. | Cloud-based parallel ink estimation for production printers |
WO2024040382A1 (zh) * | 2022-08-22 | 2024-02-29 | 宁德时代未来能源(上海)研究院有限公司 | Icd文件生成方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101410830A (zh) * | 2003-10-24 | 2009-04-15 | 微软公司 | 在数据库存储中存储和检索被封装为对象的xml数据的系统和方法 |
CN101477543A (zh) * | 2008-01-03 | 2009-07-08 | 埃森哲环球服务有限公司 | 用于自动化etl应用的系统和方法 |
US20120271865A1 (en) * | 2007-01-09 | 2012-10-25 | International Business Machines Corporation | Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (etl) process |
CN103488537A (zh) * | 2012-06-14 | 2014-01-01 | 中国移动通信集团湖南有限公司 | 一种数据抽取、转换和加载etl的执行方法及装置 |
US20150100542A1 (en) * | 2013-10-03 | 2015-04-09 | International Business Machines Corporation | Automatic generation of an extract, transform, load (etl) job |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590644B2 (en) * | 1999-12-21 | 2009-09-15 | International Business Machine Corporation | Method and apparatus of streaming data transformation using code generator and translator |
US20020059566A1 (en) * | 2000-08-29 | 2002-05-16 | Delcambre Lois M. | Uni-level description of computer information and transformation of computer information between representation schemes |
JP3784635B2 (ja) * | 2000-11-10 | 2006-06-14 | 富士通株式会社 | データ運用方法 |
US8788931B1 (en) * | 2000-11-28 | 2014-07-22 | International Business Machines Corporation | Creating mapping rules from meta data for data transformation utilizing visual editing |
US6983455B2 (en) | 2002-04-10 | 2006-01-03 | Sun Microsystems, Inc. | Mechanism for profiling computer code |
JP4012028B2 (ja) | 2002-09-27 | 2007-11-21 | ジョンソン コントロールズ オートモーティブ システムズ株式会社 | 自動車用シート |
US20080052687A1 (en) * | 2003-11-03 | 2008-02-28 | Agustin Gonzales-Tuchmann | Development environment for data transformation applications |
US7941397B2 (en) * | 2004-02-25 | 2011-05-10 | International Business Machines Corporation | Dynamically capturing data warehouse population activities for analysis, archival, and mining |
US20050283622A1 (en) | 2004-06-17 | 2005-12-22 | International Business Machines Corporation | System for managing security index scores |
CN100489818C (zh) | 2004-11-26 | 2009-05-20 | 松下电器产业株式会社 | 处理器和安全处理系统 |
US8270941B2 (en) | 2006-02-24 | 2012-09-18 | Qualcomm Incorporated | System and method for downloading user interface components to wireless devices |
US8307012B2 (en) * | 2006-02-28 | 2012-11-06 | Sap Ag | Schema mapping and data transformation on the basis of a conceptual model |
US20110107383A1 (en) | 2006-05-04 | 2011-05-05 | Feedgazer, Llc | Method and system for celebrity display of web feed content |
US7721091B2 (en) | 2006-05-12 | 2010-05-18 | International Business Machines Corporation | Method for protecting against denial of service attacks using trust, quality of service, personalization, and hide port messages |
US7548905B2 (en) | 2006-10-30 | 2009-06-16 | Teradata Us, Inc. | Refreshing an execution plan for a query |
US8849746B2 (en) | 2006-12-19 | 2014-09-30 | Teradata Us, Inc. | High-throughput extract-transform-load (ETL) of program events for subsequent analysis |
US7774301B2 (en) * | 2006-12-21 | 2010-08-10 | International Business Machines Corporation | Use of federation services and transformation services to perform extract, transform, and load (ETL) of unstructured information and associated metadata |
US8296301B2 (en) | 2008-01-30 | 2012-10-23 | Commvault Systems, Inc. | Systems and methods for probabilistic data classification |
US8136158B1 (en) | 2008-07-21 | 2012-03-13 | Google Inc. | User-level segmentation mechanism that facilitates safely executing untrusted native code |
US8370796B2 (en) | 2008-08-26 | 2013-02-05 | International Business Machines Corporation | Development tooling enablement for audit event generation |
CN101551811B (zh) * | 2009-01-09 | 2011-04-27 | 南京联创科技集团股份有限公司 | 用于实时数据etl系统的记忆式调度方法 |
US20100274750A1 (en) | 2009-04-22 | 2010-10-28 | Microsoft Corporation | Data Classification Pipeline Including Automatic Classification Rules |
US8473901B1 (en) | 2009-06-12 | 2013-06-25 | The Mathworks, Inc. | Non-literal representation of programming language code |
US20110023028A1 (en) | 2009-07-27 | 2011-01-27 | Alcatel-Lucent Usa Inc. | Virtualization software with dynamic resource allocation for virtual machines |
US9684785B2 (en) | 2009-12-17 | 2017-06-20 | Red Hat, Inc. | Providing multiple isolated execution environments for securely accessing untrusted content |
EP2569698B1 (en) | 2010-05-10 | 2019-07-10 | Citrix Systems, Inc. | Redirection of information from secure virtual machines to unsecure virtual machines |
US8752047B2 (en) | 2010-05-28 | 2014-06-10 | Bromium, Inc. | Automated management of virtual machines to process untrusted data based on client policy information |
US20110313969A1 (en) * | 2010-06-17 | 2011-12-22 | Gowda Timma Ramu | Updating historic data and real-time data in reports |
US8572677B2 (en) | 2010-07-14 | 2013-10-29 | William G. Bartholomay | Devices, systems, and methods for enabling reconfiguration of services supported by a network of devices |
US8769269B2 (en) | 2010-08-12 | 2014-07-01 | International Business Machines Corporation | Cloud data management |
US20120054147A1 (en) * | 2010-08-25 | 2012-03-01 | Christophe Goetz | System and method for extract, transform, and load workflow generation |
US8528083B2 (en) | 2011-03-10 | 2013-09-03 | Adobe Systems Incorporated | Using a call gate to prevent secure sandbox leakage |
US9430114B1 (en) * | 2011-11-03 | 2016-08-30 | Pervasive Software | Data transformation system, graphical mapping tool, and method for creating a schema map |
CN102768676B (zh) | 2012-06-14 | 2014-03-12 | 腾讯科技(深圳)有限公司 | 一种格式未知文件的处理方法和装置 |
US9542461B2 (en) * | 2012-09-21 | 2017-01-10 | International Business Machines Corporation | Enhancing performance of extract, transform, and load (ETL) jobs |
US20150286701A1 (en) | 2014-04-04 | 2015-10-08 | Quantum Corporation | Data Classification Aware Object Storage |
US9600547B2 (en) * | 2014-05-30 | 2017-03-21 | International Business Machines Corporation | System and method of consuming and integrating with rest-based cloud and enterprise services |
US10007790B2 (en) | 2014-06-06 | 2018-06-26 | Empire Technology Development Llc | Secure application development and execution |
US10318740B2 (en) | 2014-07-30 | 2019-06-11 | Entit Software Llc | Security risk scoring of an application |
JP6205066B2 (ja) | 2014-09-04 | 2017-09-27 | 株式会社日立製作所 | ストリームデータ処理方法、ストリームデータ処理装置及び記憶媒体 |
US9898515B1 (en) * | 2014-10-29 | 2018-02-20 | Jpmorgan Chase Bank, N.A. | Data extraction and transformation method and system |
US10083295B2 (en) | 2014-12-23 | 2018-09-25 | Mcafee, Llc | System and method to combine multiple reputations |
US9471775B1 (en) | 2015-02-04 | 2016-10-18 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9727725B2 (en) | 2015-02-04 | 2017-08-08 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US10089313B2 (en) * | 2015-02-19 | 2018-10-02 | Bank Of America Corporation | Conversion of data integration system files |
US9785413B2 (en) | 2015-03-06 | 2017-10-10 | Intel Corporation | Methods and apparatus to eliminate partial-redundant vector loads |
US10051082B2 (en) | 2015-06-05 | 2018-08-14 | International Business Machines Corporation | Cost determination to provide software as a service |
EP3110161B1 (en) | 2015-06-23 | 2019-10-09 | Nokia Technologies Oy | Method, apparatus and computer program product for controlling access to concurrently captured images |
US20170091673A1 (en) * | 2015-09-29 | 2017-03-30 | Skytree, Inc. | Exporting a Transformation Chain Including Endpoint of Model for Prediction |
CA2946775C (en) | 2015-10-29 | 2024-05-07 | Subodh Kumar | Automated server workload management using machine learning |
US9471652B1 (en) * | 2015-11-18 | 2016-10-18 | International Business Machines Corporation | Extract transform load input suggestion |
WO2017095376A1 (en) | 2015-11-30 | 2017-06-08 | Hewlett-Packard Development Company, L.P. | Parameter adjustments based on strength change |
US20170154019A1 (en) * | 2015-11-30 | 2017-06-01 | Open Text Sa Ulc | Template-driven transformation systems and methods |
US11593342B2 (en) * | 2016-02-01 | 2023-02-28 | Smartshift Technologies, Inc. | Systems and methods for database orientation transformation |
US10089103B2 (en) * | 2016-08-03 | 2018-10-02 | Smartshift Technologies, Inc. | Systems and methods for transformation of reporting schema |
US10175978B2 (en) | 2016-11-04 | 2019-01-08 | International Business Machines Corporation | Monitoring code sensitivity to cause software build breaks during software project development |
US11138220B2 (en) | 2016-11-27 | 2021-10-05 | Amazon Technologies, Inc. | Generating data transformation workflows |
US10268825B2 (en) | 2016-12-01 | 2019-04-23 | International Business Machines Corporation | Amalgamating code vulnerabilities across projects |
US10496638B2 (en) | 2016-12-07 | 2019-12-03 | City University Of Hong Kong | Systems and methods for privacy-assured similarity joins over encrypted datasets |
-
2016
- 2016-12-20 US US15/385,764 patent/US11138220B2/en active Active
-
2017
- 2017-11-27 CN CN201780073061.2A patent/CN110023923B/zh active Active
- 2017-11-27 EP EP17812191.9A patent/EP3545433A1/en not_active Withdrawn
- 2017-11-27 WO PCT/US2017/063259 patent/WO2018098424A1/en active Application Filing
-
2021
- 2021-10-01 US US17/491,985 patent/US11797558B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101410830A (zh) * | 2003-10-24 | 2009-04-15 | 微软公司 | 在数据库存储中存储和检索被封装为对象的xml数据的系统和方法 |
US20120271865A1 (en) * | 2007-01-09 | 2012-10-25 | International Business Machines Corporation | Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (etl) process |
CN101477543A (zh) * | 2008-01-03 | 2009-07-08 | 埃森哲环球服务有限公司 | 用于自动化etl应用的系统和方法 |
CN103488537A (zh) * | 2012-06-14 | 2014-01-01 | 中国移动通信集团湖南有限公司 | 一种数据抽取、转换和加载etl的执行方法及装置 |
US20150100542A1 (en) * | 2013-10-03 | 2015-04-09 | International Business Machines Corporation | Automatic generation of an extract, transform, load (etl) job |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114207607A (zh) * | 2020-06-30 | 2022-03-18 | 斯诺弗雷克公司 | 支持非结构化、半结构化和结构化文件 |
US11494438B2 (en) | 2020-06-30 | 2022-11-08 | Snowflake Inc. | Population of file-catalog table for file stage |
US11797608B2 (en) | 2020-06-30 | 2023-10-24 | Snowflake Inc. | Synchronizing file-catalog table with file stage |
Also Published As
Publication number | Publication date |
---|---|
CN110023923B (zh) | 2024-05-28 |
US11138220B2 (en) | 2021-10-05 |
US11797558B2 (en) | 2023-10-24 |
US20180150528A1 (en) | 2018-05-31 |
EP3545433A1 (en) | 2019-10-02 |
US20220100774A1 (en) | 2022-03-31 |
WO2018098424A1 (en) | 2018-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110023923A (zh) | 生成数据变换工作流 | |
US20220171759A1 (en) | Detecting schema incompatibilities for generating views at target data stores | |
CN109997126A (zh) | 事件驱动提取、变换、加载(etl)处理 | |
CA2953969C (en) | Interactive interfaces for machine learning model evaluations | |
EP3321825A1 (en) | Validating data integrations using a secondary data store | |
US10963810B2 (en) | Efficient duplicate detection for machine learning data sets | |
CN110431545A (zh) | 针对结构化数据和非结构化数据执行查询 | |
CN109964216A (zh) | 识别未知数据对象 | |
CN106796595A (zh) | 用于推荐的数据变换和修复的声明性语言和可视化系统 | |
CN104252345B (zh) | 在云环境中管理复杂对象的方法及系统 | |
CN112930529B (zh) | 从概念数据模型生成软件工件 | |
CN110168522A (zh) | 维护数据沿袭以检测数据事件 | |
US10769175B1 (en) | Real-time hosted system analytics | |
US11947567B2 (en) | System and method for computing and managing datasets using hierarchical analytics | |
US20230334046A1 (en) | Obtaining inferences to perform access requests at a non-relational database system | |
Nadipalli | Effective business intelligence with QuickSight | |
Bulusu | Open source data warehousing and business intelligence | |
US11615061B1 (en) | Evaluating workload for database migration recommendations | |
US10025838B2 (en) | Extract transform load input suggestion | |
CN104598216B (zh) | 用于实现业务智能报告的虚拟数据写回的方法和系统 | |
Lee et al. | Hands-On Big Data Modeling: Effective database design techniques for data architects and business intelligence professionals | |
US20230128661A1 (en) | Information retrieval framework | |
US11947537B1 (en) | Automatic index management for a non-relational database | |
US20230385449A1 (en) | Purpose-based data management for computing systems | |
US11755620B1 (en) | Invoking supported non-relational database operations to provide results consistent with commands specified in a relational query language |
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 |