一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

具有统一的后处理的ETL的并行加载操作的制作方法

2022-02-20 13:07:58 来源:中国专利 TAG:
具有统一的后处理的etl的并行加载操作
技术领域
:1.本公开涉及数据库系统,尤其涉及在分析数据库系统中的提取、转换、加载(extract,transform,load,etl)进程。
背景技术
::2.除非本文另有说明,否则本节中描述的方法不是本技术中权利要求的现有技术,并且不通过包含在本节中而被承认为现有技术。3.数据库系统有多种类型,包括联机事务处理(onlinetransactionprocessing,oltp)系统、联机分析处理(onlineanalyticprocessing,olap)系统等。oltp系统可用于管理事务性数据,包括对事务性数据的插入操作、更新操作和删除操作。olap系统可用于事务性数据的分析;这样,olap系统可以对减少的事务性数据集合执行读取操作。例如,oltp系统可以处理采购订单的事务性数据,包括采购订单标识符、日期、产品标识符、采购商标识符、价格、折扣等;olap系统可以处理采购订单数据的聚合,诸如按日期(例如,在给定的月份内)、按产品类型、按采购商等进行聚合。4.olap系统通常使用提取、转换、加载(etl)进程来导入由oltp系统管理的事务性数据。提取通常是指选择事务性数据的子集。转换通常指对提取的数据应用一组规则或函数,以符合olap系统的预期输入。加载通常是指将转换后的数据从oltp系统提供给olap系统的进程。5.公开内容6.鉴于上述情况,一些问题被提出。现有系统的一个问题是,客户通常希望对来自多个异构oltp系统(或使用异构云存储系统存储事务性数据的oltp系统)的事务执行分析。每个oltp系统或每个云存储系统通常都涉及其自己的etl操作。在这种情况下,协调每个etl操作并验证每个etl操作的成功是很麻烦的。例如,当需要将数据加载到云数据库并在加载后执行后处理时,许多现有系统对每个表使用单独的进程(例如,加载数据并后处理每个表作为特定于表的事务)。当需要将不同类型的数据作为一个事务加载和后处理时,这会导致事务控制的缺乏。尝试使用相同进程和单事务在多个表中加载/后处理数据会由于串行执行导致系统性能差。7.在这种情况下,需要改进etl进程。8.如本文进一步描述的,实施例旨在从多个异构oltp系统执行etl。一般来说,实施例将整体etl进程创建为单事务,并在单事务内生成多个操作系统(operatingsystem,os)进程。每个os进程对应于具有单目标表的etl操作。整体etl进程可以并行执行os进程。一旦操作系统进程完成,整体etl进程将验证每个os进程的成功。9.在一个实施例中,一种执行数据处理的方法。该方法包括由etl系统生成具有单事务标识符的单目标系统事务,作为执行etl操作的一部分。该方法还包括由etl系统生成具有单事务标识符的单目标系统事务,作为执行etl操作的一部分。该方法还包括由etl系统生成多个操作系统(os)进程,其中,所述多个os进程对应于etl操作的多个加载操作,其中,所述多个加载操作的每个加载操作与多个目标表的一个目标表相关联。该方法还包括由etl系统并行执行所述多个os进程,其中,所述多个os进程的每个os进程与单事务标识符相关联,包括由etl系统向olap系统传送所述多个加载操作的每个加载操作的配置信息。该方法还包括由olap系统根据所述多个加载操作的每个加载操作的配置信息加载所述多个目标表的每个目标表,作为olap系统中单目标系统事务的一部分。该方法还包括由olap系统向etl系统传送加载所述多个目标表的多个结果。该方法还包括由etl系统使用来自olap系统的多个结果来执行单目标系统事务的验证。10.多个表可以由多个异构云数据存储系统存储。etl系统可以使用多个远程系统调用将配置信息传送到olap系统,其中,多个远程系统调用的每个远程系统调用对应于多个os进程的一个os进程、对应于多个加载操作的一个加载操作以及对应于多个目标表的一个目标表。etl系统可以将加载操作划分为多个批(anumberofbatches)。etl系统可以在事务级别或数据流级别上执行验证。事务可以被实现为多个数据流,其中至少一些数据流可以被并行执行,并且至少一些数据流可以被顺序执行。olap系统可以包括内存数据库系统。11.计算机可读介质可以存储用于控制计算机以实现上述方法的一个或多个步骤的计算机程序。12.系统可以使用一个或多个计算机系统(例如,服务器计算机、数据库系统、客户端计算机等)来执行上述方法步骤的一个或多个来实现上述方法的一个或多个步骤。13.以下详细描述和附图提供了对本公开的性质和优点的更好理解。附图说明14.图1是数据库环境100的框图。15.图2是示出数据库环境100的附加细节的框图。16.图3是数据处理的方法300的流程图。17.图4是示出根据实施例的六种不同后处理场景的表400。18.图5是用于实现上述各种实施例的示例计算机系统500的框图。19.图6是用于实现上述各种实施例的云计算系统600的框图。20.图7是示出执行三个数据流702、704和706的任务700的示例的框图。具体实施方式21.本文描述用于并行加载操作的技术。在以下描述中,为了解释的目的,阐述了许多示例和具体细节,以便提供对本文所描述的系统和方法的透彻理解。然而,对于本领域技术人员来说显而易见的是,通过权利要求所定义的本公开可以包括这些示例中的一些或全部特征,或者单独地或结合下面描述的其他特征,并且可以进一步包括本文描述的特征和概念的修改和等同物。22.本技术详细介绍了各种方法、进程和程序。尽管可以以特定顺序描述特定步骤,但是这样的顺序主要是为了方便和清楚。特定步骤可以被重复不止一次,可以在其他步骤之前或之后发生(即使那些步骤以另一顺序另外描述),并且可以与其他步骤并行发生。只有在第一步必须在第二步开始之前完成时,才需要在第一步之后进行第二步。当上下文不清楚时,会特别指出这样的情况。23.在本技术中,术语“和”、“或”和“和/或”被使用。这些术语应被理解为具有包容性的含义。例如,“a和b”可至少表示以下内容:“a和b两者”、“至少a和b两者”。作为另一示例,“a或b”至少可以表示如下:“至少a”、“至少b”、“a和b两者”、“至少a和b两者”。作为另一示例,“a和/或b”至少可以表示以下内容:“a和b”、“a或b”。如果打算使用异或,则应特别注明(例如,“a或b”,“a和b中最多一个”)。24.在本技术中,术语“服务器”被使用。一般来说,服务器是硬件设备,并且在讨论硬件服务器时可以省略描述符“硬件”。服务器可以实现或执行控制服务器功能的计算机程序。这样的计算机程序在功能上也可以被称为服务器,或者被描述为实现服务器功能;然而,应当理解,实现服务器功能或控制硬件服务器的计算机程序更准确地被称为“软件服务器”、“服务器组件”或“服务器计算机程序”。25.在本技术中,术语“数据库”被使用。一般来说,数据库是一种可以方便地组织、存储和检索大量数据的数据结构。数据库也可以被称为数据存储。术语数据库通常用于指关系数据库,其中数据以表的形式被存储,并且数据之间的关系也以表的形式被存储。数据库管理系统(databasemanagementsystem,dbms)通常是指实现数据库的硬件计算机系统(例如,诸如磁盘驱动器或闪存驱动器的持久存储器、诸如随机存取存储器的易失性存储器、处理器等)。26.在本技术中,术语“以存储”、“存储的”和“存储”被使用。一般来说,这些术语可用于指主动动词(例如,存储进程,或从未存储的状态到存储的状态的改变),或指存在状态(例如,被存储的状态),或两者。例如,“存储数据记录”可用于描述存储的进程(例如,数据记录从未存储的状态转换到存储的状态)。作为另一示例,“存储数据记录”可用于描述数据记录的当前状态(例如,由于先前存储的结果,数据记录当前以存储的状态存在)。当只有单一的解释意味着,这样的含义将从上下文中显而易见。27.图1是数据库环境100的框图。数据库环境100示出了实现本文所述实施例的计算机系统的典型布置。数据库环境100的示例是来自sapse的sap云平台。数据库环境100包括联机事务处理(oltp)系统102、联机分析处理(olap)系统104、多个云存储系统106(所示为两个,106a和106b)和网络108。28.oltp系统102通常处理事务性数据。oltp系统的示例包括订单输入系统、零售销售系统、金融交易系统等。oltp处理通常涉及收集输入信息、处理数据和更新现有数据以反映收集的和处理的信息。oltp系统102可以由数据库系统实现,例如关系数据库系统。数据库系统可以是面向行的数据库系统、面向列的数据库系统等。oltp系统102的示例是saps/4hanatm企业资源计划(erp)系统。29.olap系统104通常处理分析数据。olap系统的典型应用包括销售业务报告、市场营销、管理报告、业务流程管理(bpm)、预算和预测、财务报告等。olap包括三种基本的分析操作:合并(总计(roll-up))、下钻(drill-down)和切片和切块(slicinganddicing)。合并涉及可以在一个或多个维度中累积和计算的数据的聚合。下钻是一种允许用户浏览细节的技术。切片和切块是一种功能,其中用户可以从不同的角度取出(切片)olap立方(cube)的特定数据集并查看(切块)切片。这些角度有时被称为维度(诸如按销售人员、或按日期、或按客户、或按产品或按地区等查看相同销售额)。olap系统104的示例是sapbw/4hanatm数据仓库解决方案。30.云存储系统106通常存储由oltp系统102和olap系统104处理的数据。云存储系统106的示例包括saptm数据中心,微软云tm数据中心、亚马逊网络服务tm数据中心、阿里云tm数据中心、谷歌云平台tm数据中心等。31.网络108通常连接数据库环境100的组件。网络108的示例是因特网。32.根据实施例,客户经由软件即服务(softwareasaservice,saas)、平台即服务(platformasaservice,paas)或基础设施即服务(infrastructureasaservice,iaas)安排访问数据库环境100(包括oltp系统102、olap系统104和云存储系统106)。在这样的情况下,这些系统可以向许多客户提供服务。33.数据库环境100可以包括(为简洁起见)未示出的其他系统。例如,用户可经由经由网络108连接的终端用户设备(诸如个人计算机、移动设备等)与oltp系统102或olap系统104交互。作为另一示例,客户可以具有处理事务性数据并且经由网络108连接到olap系统104的本地数据库系统,并且可以将事务性数据本地存储在云存储系统106等上。34.数据库环境100的示例用例是客户是具有两个子公司的母公司;一个子公司访问云存储系统106a,并且另一个子公司访问云存储系统106b。在这样的情况下,将etl进程协调到olap系统104中是复杂的,并且本文更详细地描述的实施例提供了对现有方法的改进。35.图2是示出数据库环境100的附加细节的框图(参见图1)。数据库环境100包括事务处理系统202和etl处理系统204。这些组件被示为oltp系统102的组件。oltp系统102可以包括(为简洁起见)未详细描述的其他组件。或者,etl处理系统204可以位于与oltp系统102分离的系统中。36.事务处理系统202通常执行事务处理。事务处理一般包括对数据的插入、更新、删除、读取和查询操作。事务处理系统202可以实现面向行的dbms、面向列的dbms等。事务处理系统202可以与一个或多个存储设备交互以存储事务性数据。这些存储设备可以是经由因特网访问的云存储设备(例如,图1的云存储设备106)、经由局域网(lan)访问的本地存储设备等。37.etl处理系统204通常协调与由事务处理系统202处理的事务性数据相关的提取、转换和加载操作,以产生由olap系统104处理的分析数据。在提取操作中,事务性数据的子集被选择。例如,采购订单的事务性数据可以包括采购订单标识符、日期、产品标识符、采购商标识符、价格、折扣等,并且子集可以是给定日期范围(例如,1天)内的采购订单数据。38.在转换操作中,根据定义的操作提取的数据被转换。例如,采购订单数据可以包括各种货币(例如,欧元、加元等)的价格,并且转换操作可以对给定的货币价格应用汇率,以将其变换为每个提取的记录的单一货币价格(例如,美元)。39.在加载操作中,转换的数据被加载到olap系统104中。如图2所示,etl处理系统204使用远程系统调用(也被称为远程功能调用,remotefunctioncalls,rfc)206来与olap系统104协调加载。例如,etl处理系统204使用rfc206从olap系统104获取配置信息,诸如远程功能名称。40.更具体地说,在加载操作中传输数据的进程包括五个一般步骤。首先,etl处理系统204生成事务标识符。第二,etl处理系统204执行与olap系统104的握手(handshake)。第三,etl处理系统204将转换的数据写入包中的一个或多个暂存表(stagingtable)。(暂存表可由云存储系统106存储。)第四,etl处理系统204触发olap系统104的后处理。第五,etl处理系统204检查循环中每个加载(或加载的每批)的后处理状态。41.作为具体示例,为了执行握手,etl处理系统204调用olap系统104上的握手功能,具有操作名称“write(写入)”、请求的版本号、任务的标识符、任务的名称等。握手/版本控制(versioning)函数返回给定版本进程中步骤的功能模块列表。例如,给定的版本可具有三个步骤(三个函数名称):写入数据的函数、调度后处理的函数、和检查后处理状态的函数。然后在后续步骤中调用这些函数以执行其相应的操作。42.以这种方式,etl处理系统204从(例如,由云存储系统106存储的)事务性数据库表中提取事务性数据的子集,应用转换,并使用rfc发送要加载到olap系统104的数据(转换的事务性数据和配置信息)。如下面更详细地讨论的,etl处理系统204为etl进程生成单事务标识符。etl处理系统204还存储定义要在每个etl进程中执行的操作的配置信息。etl处理系统204可以手动(例如,根据用户交互)或自动(例如,根据调度器)触发每个事务。43.olap系统104(例如,经由rfc206)从etl处理系统204接收数据,并且使用(例如,在配置信息中)作为加载的一部分接收的唯一事务标识符来执行数据的加载和后处理。执行加载的rfc包含业务数据(例如,转换的事务性数据,诸如采购订单数据等)和控制数据(例如,事务标识符、目标表、包号等)两者。然后,olap系统104将加载的结果传回etl处理系统204,如下文进一步详述。配置信息在两个方向上被发送:olap系统104响应于rfc206向etl处理系统204发送用于加载操作的功能名称;以及etl处理系统204使用另一rfc206将业务数据和配置信息(例如,事务标识符、目标表等)发送到olap系统104,以执行加载和后处理。44.作为示例,事务处理系统202对采购订单数据执行事务处理;采购订单数据由云存储106a存储(参见图1)。最后,etl处理系统204执行项目(如下面更详细地讨论的)以对采购订单数据执行etl操作,包括上面讨论的提取、转换和加载操作。etl处理系统204使用rfc206来配置olap系统104以执行加载操作。rfc206包括用于加载操作的配置信息,诸如事务标识符、由云存储系统106之一存储的目标表等。olap系统104执行加载操作并将加载操作的结果报告给etl处理系统204。45.图3是数据处理的方法300的流程图。方法300通常描述例如由数据库环境100(参见图1)中的系统通过执行一个或多个计算机程序来实现的etl进程。46.在302处,具有单事务标识符的单事务被生成,作为执行提取、转换、加载(etl)操作的一部分。单事务是指目标系统要使用的单目标系统事务。例如,etl处理系统204(参见图2)可以为给定etl操作生成单事务标识符,以供olap系统104用作整体事务的一部分。47.在304处,多个操作系统(os)进程被生成。多个os进程对应于etl操作的多个加载操作,并且多个加载操作的每个加载操作与多个目标表的一个目标表相关联。例如,etl处理系统204可以将etl操作的事务(参见302)作为由os进程执行的数据流的集合来执行。下面将更详细地描述数据流。48.在306处,多个os进程被并行执行。(多个os进程还可以包括被顺序执行的进程,如下面更详细地讨论的。)多个os进程的每个os进程与单事务标识符相关联,并且包括将多个加载操作中的每个加载操作的配置信息传送到olap系统。例如,etl处理系统204可以并行地执行os处理以执行每个数据流。etl处理系统204使用远程系统调用将配置信息传送到olap系统104,如下文更详细地描述。49.在308处,根据多个加载操作的每个加载操作的配置信息,多个目标表中的每个目标表被加载,作为olap系统中的单目标系统事务的一部分。例如,olap系统104使用配置信息来执行对目标表的加载。因为每个加载操作对应于远程系统调用(参见306)并且每个目标表是分开的,所以olap系统104可以根据并行os进程的执行并行地执行加载操作(参见306)。50.在310处,加载多个目标表的多个结果被传送。例如,olap系统104可以向etl处理系统204传送对应于每个os进程和对应于每个远程系统调用(参见306)的每个加载操作的结果(参见308)。51.在312处,使用来自olap系统的多个结果,单事务的验证被执行。例如,etl处理系统204可以执行对来自olap系统104的结果的验证(参见310)。单事务标识符比按顺序或不使用单整体事务执行加载能够实现更好的验证控制。52.以下部分提供了本文所描述的etl进程的附加细节。53.事务、任务、数据流和进程54.etl处理系统204(参见图2)生成具有单事务标识符的事务以协调etl操作。另请参见图3中的302。如本文进一步描述的,与多个连续事务的验证相比,使用单事务标识符允许对并行加载操作进行更好的事务控制。该事务还可以被称为项目,并且该事务标识符可以被称为项目标识符。事务标识符可以是由etl处理系统204生成的32个字符的唯一标识符。55.项目可以包含一个或多个任务。通常,任务具有一个源数据存储(例如,云存储系统106中的一个或多个源表)和一个目标数据存储(例如,相同或另一云存储系统106的目标表)。56.任务可以包含一个或多个数据流。每个数据流具有目标表。通常,数据流定义了数据从一个或多个源到单目标的移动和转换。在数据流中,转换可以被使用来定义目标所需的数据更改。数据流可以根据列表排列在任务中,并且数据流可以基于在任务级别的列表中定义的顺序依次执行。单个数据流可具有来自相同数据存储的多个表源,但可只具有单个目标表。不依赖于其他数据流(例如,不按顺序排列的数据流)的数据流可以被并行执行。57.运行时的数据流转换为单操作系统(os)进程。如果数据流是串联的,则它们是按顺序执行的。如果两个或多个数据流没有被连接,则它们可以并行执行(例如,并发执行)。数据流也可以分组,例如并行地执行两个数据流,然后依次执行第三数据流。当执行并行数据流时,etl处理系统204可以协调并行数据流,然后在开始下一顺序步骤之前等待每个前置(predecessor)数据流完成。数据流的数量可能与由操作系统支持的操作系统进程的数量一样多。58.远程系统调用59.etl处理系统204(参见图2)使用远程系统调用206来配置olap系统104的etl操作。也参见图3中的306。通常,当一个计算机系统上的计算机程序导致在不同的地址空间(通常,在另一个计算机系统上)中执行进程时,会发生远程系统调用,它的编码就好像它是一个本地进程调用,而程序员没有为远程交互显式地编码细节。也就是说,远程系统调用调用要由远程系统执行的函数。在数据库环境100(参见图2)中,oltp系统102使用远程系统调用206来调用将由olap系统104执行的功能。60.远程系统调用可以经由超文本传输协议(http)连接器进行通信。因此,远程系统通常可以位于任何地方。这样的操作与使用其他技术(诸如javatm数据库连接,(jdbc))进行加载操作的数据库环境形成了对比。jdbc要求oltp系统和olap系统处于相同环境中,并且尽可能接近彼此以获得最佳性能。61.一般来说,etl处理系统204对每个数据流使用远程系统调用来执行etl操作。(然后,任务中的所有数据流与单事务标识符相关联。)远程系统调用包括该数据流的etl操作的包括参数的配置信息。参数可以包括唯一标识符、批大小、远程系统调用标识符和后处理标志。唯一标识符为数据流提供标识符,例如,用于验证或其他后处理活动。批大小详细说明了如何细分etl操作的数据加载;下面将更详细地讨论批大小和批处理。远程系统调用标识符标识要远程执行的函数,包括该函数的任何参数。例如,参数可以包括源存储器、源表(或表)、目标存储器、目标表等。后处理标志指示执行什么后处理或其他验证进程;下文将更详细地讨论后处理和验证。62.图7是示出执行三个数据流702、704和706的任务700的示例的框图。数据流702加载表1,数据流704加载表2,数据流706加载表3。表2的加载取决于表1的加载,因此数据流702和704按顺序被链接。表3的加载独立于表1和表2的加载,因此数据流706被并行执行。使用函数setenv(设置环境)710和setenv712函数将系统环境变量设置为所需值来初始化每个流。63.如上所述,所有三个数据流702、704和706在olap系统104中共享相同的事务标识符。每个数据流作为单独的os进程运行,并且每个数据流使用上述每个步骤的rfc函数名称(例如,写入数据、调度后处理和检查后处理状态)来执行上述步骤。64.批处理65.通常,批大小指示etl系统204根据批大小将etl加载操作(例如,对于给定的数据流)划分为多个子操作。批大小可以基于给定目标表的行长度动态地计算。批大小可以以兆字节(例如,50mb)设置,并且可以通过将批大小(以mb为单位)除以行的最大大小被转换为记录中的批大小(行的最大大小是表中所有列的最大大小之和。)66.例如,假设数据存储中的加载批大小被设置为400mb,数据流加载具有四列的表,大小分别为36、10、5000和27,使行大小为5073。然后记录中的加载批大小是以mb为单位的加载批大小(400000000)除以行大小(5073),得到78848.8,可以四舍五入到最接近的100条记录,即78800条记录。因此,如果数据流将200000条记录加载到表中,则将有三个批:两个批具有78800条记录,其余42400条记录在第三批中。67.验证和后处理68.etl处理系统204可以在各种级别执行事务的验证和后处理。例如,etl处理系统204可以验证整个事务、事务中的每个任务、给定事务中的每个数据流、给定数据流中的每个批等的成功,可以为给定事务设置要执行的验证级别,并且可以经由每个远程系统调用中的配置信息将验证级别传送给olap系统104。对整个事务执行验证(包括执行任何需要的回滚(rollback)和重试)比在没有单事务标识符的情况下协调多个单独的事务更容易验证数据提交。69.根据实施例,etl处理系统204在一个或多个级别上执行后处理。例如,可以在数据流级别、事务级别等执行后处理。可以使用每个远程系统调用的配置信息(例如,通过使用一个或多个标志)来设置后处理级别。验证可以包括olap系统中单目标系统事务的总体状态(例如,总体事务可以是提交的或者是回滚)。70.图4是示出根据实施例的六种不同后处理场景的表400。实现表400的后处理场景的etl处理系统204可以在数据流级别和事务级别执行后处理。根据远程系统调用206的指示,响应于接收由olap系统104执行的etl操作的结果,后处理发送。结果(d、rd、re或e)取决于由olap系统104报告的状态和“将错误视为成功”标志。71.在场景1中,olap系统104报告“已处理”的状态,并且将错误视为成功的标志为“真”。结果,etl处理系统204将结果视为成功(“d”)。etl处理系统204继续处理随后的数据流,而不管后处理是在数据流级别还是在事务级别执行。72.在场景2中,olap系统104报告“已处理”的状态,并且将错误视为成功的标志为“假”。该操作与场景1中的操作相同。73.在场景3中,olap系统104报告“处理有错误”的状态,并且将错误视为成功的标志为“真”。结果,etl处理系统204将结果视为带错误的成功(“rd”),也被称为警告。该操作与场景1-2中的操作相同。74.在场景4中,olap系统104报告“处理有错误”的状态,并且将错误视为成功的标志为“假”。结果,etl处理系统204根据后处理级别将结果视为带警告的故障(“re”)或错误(“e”)。75.如果在数据流级别执行后处理,则结果为“e”,并且数据流序列停止。这是因为数据流有错误,并且将错误视为成功的标志为“假”,因此后续的数据流将不会执行。76.如果在事务级别执行后处理,则结果是“re”,并且在同时触发所有后处理之前,将首先完成从所有数据流到暂存的数据加载。如果后处理结果中的一个返回为“处理有错误”,则整个事务被标记为“re”,并且随后的数据流将继续,因为所有的后处理都是按顺序在最后一起执行的。77.在场景5中,olap系统104报告“错误”的状态,并且将错误视为成功的标志为“真”。结果,etl处理系统204将结果视为错误并在数据流级别和事务级别两者处停止后续处理。olap系统104还执行回滚。78.在场景6中,olap系统104报告“错误”的状态,并且将错误视为成功的标志为“假”。该操作与场景5中的操作相同。79.如上所述,当数据流没有被编排成按顺序操作时,它们可以被并行执行。此外,数据流可以分组以在序列内并行执行。在这种情况下,当其中一个停止时(例如,在上面的场景4中),所有并行运行的数据流都将继续运行,但随后的数据流将不会运行。例如,考虑以下事务:80.df1-》组(df2-》df2a,df3-》df3a)-》df481.在上面,数据流df2和df3可以作为组的成员被并行执行。如果由于后处理错误而停止了df2,则df3和df3a将继续,但df4将停止并且将不会运行。82.作为本文所描述的实施例的结果,通过不同的进程来执行加载和后处理,允许将数据加载到单独的cpu或甚至单独的计算机上的不同表,但仍然可以被链接在一起,并作为基于相同的id的单事务进行后处理。客户获得了更快处理和更容易监控的好处。83.图5是用于实现上述各种实施例的示例计算机系统500的框图。例如,计算机系统500可以用于实现oltp系统102、olap系统104、云存储系统106、访问数据库环境100的其他设备(参见图1)等。计算机系统500可以是台式计算机、膝上型计算机、服务器计算机,或任何其他类型的计算机系统或其组合。事务处理系统202、etl处理系统204(参见图2)或其组合的一些或全部元件可以被包括或被实现在计算机系统500中。此外,计算机系统500可以实现上述许多操作、方法和/或进程(例如,图3的方法300等)。如图5所示,计算机系统500包括处理子系统502,其经由总线子系统526与输入/输出(i/o)子系统508、存储子系统510和通信子系统524通信。84.总线子系统526被配置成便于计算机系统500的各种组件和子系统之间的通信。虽然在图5中总线子系统526被示为单总线,但是本领域的普通技术人员将理解,总线子系统526可以被实现为多个总线。总线子系统526可以是使用各种总线架构中的任何一种的多种类型的总线结构的任何一种(例如,存储器总线或存储器控制器、外围总线、本地总线等)。总线架构的示例可以包括工业标准架构(industrystandardarchitecture,isa)总线、微通道架构(microchannelarchitecture,mca)总线、增强型isa(enhancedisa,eisa)总线、视频电子标准协会(videoelectronicsstandardsassociation,vesa)本地总线、外围组件互连(peripheralcomponentinterconnect,pci)总线、通用串行总线(universalserialbus,usb)等。85.可实现为一个或多个集成电路(例如,传统微处理器或微控制器)的处理子系统502控制计算机系统500的操作。处理子系统502可包括一个或多个处理器504。每个处理器504可包括一个处理单元506(例如,单核处理器诸如处理器504a)或多个处理单元506(例如,多核处理器诸如处理器504b)。在一些实施例中,处理子系统502的处理器504可以实现为独立的处理器,而在其他实施例中,处理子系统502的处理器504可以实现为集成到单芯片或多个芯片中的多个处理器。然而,在一些实施例中,处理子系统502的处理器504可以实现为集成到单芯片或多个芯片中的独立处理器和多个处理器的组合。86.在一些实施例中,处理子系统502可以响应于程序代码执行各种程序或进程,并且可以保持多个同时执行的程序或进程。在任何给定时间,要执行的程序代码的一部分或全部可以驻留在处理子系统502或存储子系统510中。通过适当的编程,处理子系统502可以提供各种功能,诸如上面通过参考方法300(参见图3)描述的功能等。87.i/o子系统508可以包括任意数量的用户接口输入设备和/或用户接口输出设备。用户界面输入设备可包括键盘、指向设备(例如,鼠标、轨迹球等)、触摸板、并入显示器的触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、具有语音识别系统的音频输入设备、麦克风、图像/视频捕获设备(例如,网络摄像头、图像扫描仪、条形码阅读器等)、运动传感设备、手势识别设备、眼姿(例如,眨眼)识别设备、生物特征输入设备或其他类型的输入设备。88.用户界面输出设备可包括视觉输出设备(例如,显示子系统、指示灯等)、音频输出设备(例如,扬声器、耳机等)等。显示子系统的示例可包括阴极射线管(cathoderaytube,crt)、平板设备(例如,液晶显示器(lcd)、等离子显示器等)、投影装置、触摸屏或其它类型的装置和机构,用于将信息从计算机系统500输出到用户或其它装置(例如,打印机)。89.如图5所示,存储子系统510包括系统存储器512、计算机可读存储介质520和计算机可读存储介质读取器522。存储子系统510可以实现由云存储系统106执行的存储(参见图1)。系统存储器512可以被配置为存储以处理子系统502可加载和可执行的程序指令的形式的软件以及在程序指令执行期间生成的数据。在一些实施例中,系统存储器512可包括易失性存储器(例如,随机存取存储器(randomaccessmemory,ram))和/或非易失性存储器(例如,只读存储器(read-onlymemory,rom)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、闪存等)。系统存储器512可以包括不同类型的存储器,诸如静态随机存取存储器(staticrandomaccessmemory,sram)和/或动态随机存取存储器(dynamicrandomaccessmemory,dram)。在一些实施例中,系统存储器512可以包括基本输入/输出系统(basicinput/outputsystem,bios),该基本输入/输出系统被配置为存储基本例程,以便于在计算机系统500内的元件之间传输信息(例如,在启动期间)。这样的bios可被存储在rom(例如,rom芯片)、闪存或可被配置为存储bios的另一类型存储器中。90.如图5所示,系统存储器512包括应用程序514(例如,实现图2的etl处理系统204的应用程序)、程序数据516和操作系统(os)518。os518可以是以下各种版本之一:微软windowstm、苹果macostm,苹果osxtm,苹果macostm、和/或linuxtm操作系统、各种商用unixtm或类似unix的操作系统(包括但不限于各种gnu/linux操作系统,谷歌浏览器tmos等)和/或诸如苹果iostm、windows移动tm、安卓tm、黑莓ostm、palmostm的移动操作系统、和webostm操作系统。91.计算机可读存储介质520可以是被配置为存储软件(例如,程序、代码模块、数据构造、指令等)的非暂时性计算机可读介质。上面描述的许多组件(例如,图2的etl处理系统204等)或进程(例如,图3的方法300等)可以实现为当由处理器或处理单元(例如,处理子系统502的处理器或处理单元)执行这样的组件和/或进程的操作执行时的软件。存储子系统510还可以存储用于软件执行或在软件执行期间生成的数据。92.存储子系统510还可以包括计算机可读存储介质读取器522,该读取器522被配置为与计算机可读存储介质520通信。计算机可读存储介质520可以一起并且可选地与系统存储器512组合,全面地表示远程、本地、固定的、和/或可移动存储设备加上用于临时和/或更永久地包含、存储、传送和检索计算机可读信息的存储介质。93.计算机可读存储介质520可以是本领域已知或使用的任何适当介质,包括存储介质,诸如在用于存储和/或信息的传输的任何方法或技术中实现的易失性、非易失性、可移动、不可移动介质。这样的存储介质的示例包括ram、rom、eeprom、闪存或其他存储技术、光盘只读存储器(compactdiscread-onlymemory,cd-rom)、数字多功能盘(digitalversatiledisk,dvd)、蓝光盘(blu-raydisc,bd)、盒式磁带、磁带、磁盘存储器(例如,硬盘驱动器)、压缩磁碟、固态驱动器(solid-statedrives,ssd)、闪存卡(例如,安全数字(securedigital,sd)卡、压缩闪存卡等)、usb闪存驱动器或其他类型的计算机可读存储介质或设备。94.通信子系统524用作从其他设备、计算机系统和网络接收数据并向其他设备、计算机系统和网络发送数据的接口。例如,通信子系统524可允许计算机系统500经由网络(例如,个人局域网(personalareanetwork,pan)、局域网(localareanetwork,lan)、存储区域网(storageareanetwork,san)、校园网(campusareanetwork,can)、城域网(metropolitanareanetwork,man)、广域网(wideareanetwork,wan)、全球区域网(globalareanetwork,gan)、内联网、因特网、各种不同类型的网络等)连接到一个或多个设备。通信子系统524可以包括任意数量的不同通信组件。这样的组件的示例可包括用于接入无线语音和/或数据网络的无线电频率(rf)收发器组件(例如,使用诸如2g、3g、4g、5g等蜂窝技术,诸如wi-fi、蓝牙tm、紫蜂tm等无线数据技术)、全球定位系统(gps)接收器组件或其他组件。在一些实施例中,通信子系统524可以提供被配置用于有线通信的组件(例如,以太网),以及被配置用于无线通信的组件或替代被配置用于无线通信的组件。95.本领域的普通技术人员将意识到,图5中所示的架构只是计算机系统500的示例架构,并且计算机系统500可以具有比所示更多或更少的组件,或者组件的不同配置。图5所示的各种组件可以硬件、软件、固件或其任何组合来实现,包括一个或多个信号处理和/或应用特定集成电路。96.图6是用于实现上述各种实施例的云计算系统600的框图。例如,客户端设备602-608之一可用于实现用于访问数据库环境100的客户端设备(参见图1),并且系统600的云计算系统612可用于实现oltp系统102、olap系统104、云存储系统106、etl系统204等。如图所示,系统600包括客户端设备602-608、一个或多个网络610和云计算系统612。云计算系统612被配置为经由网络610向客户端设备602-608提供资源和数据。在一些实施例中,云计算系统600向任意数量的不同用户(例如,客户、租户、组织等)提供资源。云计算系统612可由一个或多个计算机系统(例如,服务器)、在计算机系统上操作的虚拟机或其组合来实现。97.如图所示,云计算系统612包括一个或多个应用614、一个或多个服务616和一个或多个数据库618。云计算系统600可以以自助、基于订阅、弹性可伸缩、可靠、高度可用和安全的方式的方式向任意数量的不同客户提供应用614、服务616和数据库618。98.在一些实施例中,云计算系统600可适于自动提供、管理和跟踪客户对由云计算系统600提供的服务的订阅。云计算系统600可经由不同的部署模型提供云服务。例如,可以在公共云模型下提供云服务,其中云计算系统600由销售云服务的组织拥有,并且云服务可供一般公众或不同行业企业使用。作为另一示例,可以在私有云模型下提供云服务,其中云计算系统600仅为单组织操作,并且可以为组织内的一个或多个实体提供云服务。云服务还可以在社区云模型下提供,其中云计算系统600和云计算系统600提供的云服务由相关社区中的多个组织共享。云服务还可以在混合云模型下提供,混合云模型是上述不同模型中的两个或多个的组合。99.在一些实例中,从云计算系统600经由网络610提供给客户端设备602-608的应用614、服务616和数据库618中的任何一个被称为“云服务”。通常,构成云计算系统600的服务器和系统不同于客户的本地服务器和系统。例如,云计算系统600可以承载应用,并且客户端设备602-608之一的用户可以经由网络610订购和使用该应用。100.应用614可以包括被配置为在云计算系统612(例如,在计算机系统上操作的计算机系统或虚拟机)上执行并且经由客户端设备602-608被访问、控制、管理等的软件应用。在一些实施例中,应用614可以包括服务器应用和/或中间层应用(例如,http(超文本传输协议)服务器应用、ftp(申请传输协议)服务器应用、cgi(公共网关接口)服务器应用、javatm服务器应用等)。服务616是被配置为在云计算系统612上执行并经由网络610向客户端设备602-608提供功能的软件组件、模块、应用等。服务616可以是基于网络的服务或按需云服务。101.数据库618被配置为存储和/或管理由应用614、服务616或客户端设备602-608访问的数据。例如,由oltp系统102处理的事务性数据、由olap系统104处理的分析数据、由云存储系统106存储的数据(参见图1)等可以存储在数据库618中。数据库618可以驻留在云计算系统612本地(和/或驻留在)的非临时存储介质、存储区域网络(san)中,或者驻留在远离云计算系统612的本地非临时存储介质上。在一些实施例中,数据库618可以是由关系数据库管理系统(relationaldatabasemanagementsystem,rdbms)等管理的关系数据库。数据库618可以是面向列的数据库、面向行的数据库或其组合。在一些实施例中,数据库618中的一些或全部是内存数据库。也就是说,在一些这样的实施例中,用于数据库618的数据在存储器(例如,随机存取存储器(ram))中存储和管理。102.客户端设备602-608被配置为执行和操作客户端应用(例如,网络浏览器、专有客户端应用等),该客户端应用经由网络610与应用程序614、服务1716或数据库618通信。这种方式,当应用614、服务616和数据库618在云计算系统600上操作(例如,托管(hosted))时,客户端设备602-608可以访问由应用614、服务616和数据库618提供的各种功能。客户端设备602-608可以是计算机系统500(参见图5)。尽管示出了具有四个客户端设备的系统600,但是可以支持任意数量的客户端设备。103.网络610可以是任何类型的网络,其被配置为使用各种网络协议中的任何一种协议来促进客户端设备602-608和云计算系统612之间的数据通信。网络610可以是个人局域网(pan)、局域网(lan)、存储区域网(san)、校园网(can)、城域网(man)、广域网(wan)、全球区域网(gan)、内联网、因特网、任意数量的不同类型的网络等。104.以上描述说明了本公开的各种实施例以及如何实现本公开的各个方面的示例。上述示例和实施例不应被认为是唯一的实施例,并且呈现这些示例和实施例是为了说明由以下权利要求所定义的本公开的灵活性和优点。基于上述公开和以下权利要求,其他布置、实施例、实现和等效物对于本领域技术人员将是显而易见的,并且可以在不脱离权利要求所定义的本公开的精神和范围的情况下使用。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献