相關(guān)申請(qǐng)的交叉引用本申請(qǐng)要求美國臨時(shí)專利申請(qǐng)序列號(hào)第62/307,971號(hào)、標(biāo)題為“預(yù)測(cè)建模優(yōu)化”和美國臨時(shí)專利申請(qǐng)序列號(hào)第62/307,671號(hào)、標(biāo)題為“用于分布式處理平臺(tái)的統(tǒng)一客戶端”的優(yōu)先權(quán),它們兩者均提交于2016年3月14日。在此通過引用將兩個(gè)臨時(shí)申請(qǐng)的全部?jī)?nèi)容并入本申請(qǐng)。本申請(qǐng)與提交于_的美國專利申請(qǐng)第_號(hào)、標(biāo)題為“用于分布式處理平臺(tái)的統(tǒng)一客戶端”有關(guān),在此通過引用將其全部?jī)?nèi)容并入本申請(qǐng)。本說明書涉及優(yōu)化預(yù)測(cè)建模。
背景技術(shù):
:預(yù)測(cè)建模是利用統(tǒng)計(jì)和數(shù)學(xué)方法分析數(shù)據(jù)、找到模式(pattern)并且產(chǎn)生可以幫助預(yù)測(cè)具體結(jié)果的模型的過程。出于商業(yè)目的,預(yù)測(cè)模型一般被建立在歷史數(shù)據(jù)的樣本上并且之后可被應(yīng)用到通常具有當(dāng)前數(shù)據(jù)或事件的不同數(shù)據(jù)集。技術(shù)實(shí)現(xiàn)要素:本說明書中所述主題的創(chuàng)新方面可在包括以下動(dòng)作的方法中被具體化:識(shí)別存儲(chǔ)在底層數(shù)據(jù)平臺(tái)內(nèi)的輸入訓(xùn)練數(shù)據(jù)集;并且向數(shù)據(jù)平臺(tái)發(fā)送指令,所述指令可由數(shù)據(jù)平臺(tái)運(yùn)行,以通過將一個(gè)或多個(gè)數(shù)據(jù)處理操作委托給數(shù)據(jù)平臺(tái)上的多個(gè)節(jié)點(diǎn),基于輸入訓(xùn)練數(shù)據(jù)集來訓(xùn)練預(yù)測(cè)模型。這些方面的其它實(shí)施例包括相應(yīng)系統(tǒng)、裝置和計(jì)算機(jī)程序,被配置為執(zhí)行編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上的方法的動(dòng)作。這些和其它實(shí)施例可以每個(gè)可選地包括以下特征中的一個(gè)或多個(gè)。例如,對(duì)業(yè)務(wù)數(shù)據(jù)集應(yīng)用預(yù)測(cè)模型來識(shí)別一個(gè)或多個(gè)結(jié)果,每個(gè)結(jié)果與出現(xiàn)概率關(guān)聯(lián)。數(shù)據(jù)平臺(tái)包括開源集群計(jì)算框架。開源集群計(jì)算框架包括apachespark。該方法獨(dú)立于來自數(shù)據(jù)平臺(tái)的輸入訓(xùn)練數(shù)據(jù)集的數(shù)據(jù)傳輸。一個(gè)或多個(gè)處理操作包括計(jì)算與輸入訓(xùn)練數(shù)據(jù)集關(guān)聯(lián)的一個(gè)或多個(gè)統(tǒng)計(jì)量以減少用于生成預(yù)測(cè)模型的變量的數(shù)目。一個(gè)或多個(gè)處理操作包括編碼輸入訓(xùn)練數(shù)據(jù)集的數(shù)據(jù),包括將字母數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)變?yōu)閿?shù)字?jǐn)?shù)據(jù)。一個(gè)或多個(gè)處理操作包括執(zhí)行關(guān)于輸入訓(xùn)練數(shù)據(jù)集的協(xié)方差矩陣計(jì)算和矩陣求逆計(jì)算。一個(gè)或多個(gè)處理操作包括將輸入訓(xùn)練數(shù)據(jù)集分片,并且關(guān)于分片對(duì)預(yù)測(cè)模型評(píng)分。一個(gè)或多個(gè)處理操作包括基于一個(gè)或多個(gè)結(jié)果重計(jì)算一個(gè)或多個(gè)統(tǒng)計(jì)量。一個(gè)或多個(gè)處理操作包括基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化來迭代地評(píng)估預(yù)測(cè)模型的性能。本說明書所述主題的具體實(shí)施方案可被實(shí)現(xiàn)以便實(shí)現(xiàn)以下優(yōu)點(diǎn)的一個(gè)或多個(gè)。例如,相比傳統(tǒng)學(xué)習(xí)技術(shù),預(yù)測(cè)建模的學(xué)習(xí)階段通??杀粶p少到1/10或更多。傳統(tǒng)學(xué)習(xí)技術(shù)中出現(xiàn)的性能和可擴(kuò)展性限制可被從預(yù)測(cè)服務(wù)器或桌面型計(jì)算機(jī)轉(zhuǎn)移到諸如分布式處理平臺(tái)(如,apachehadoop)的數(shù)據(jù)庫服務(wù)器或數(shù)據(jù)平臺(tái)。主題的實(shí)施方案可被引入到現(xiàn)有預(yù)測(cè)建模軟件而無需主要架構(gòu)變化。對(duì)比傳統(tǒng)學(xué)習(xí)技術(shù),數(shù)據(jù)傳輸要求可被減少或消除,并且因而,訓(xùn)練可在更大數(shù)據(jù)集上進(jìn)行并且解決方案可擴(kuò)展到大數(shù)據(jù)。優(yōu)化訓(xùn)練過程還使能到更廣數(shù)據(jù)集(如,產(chǎn)生于數(shù)據(jù)準(zhǔn)備階段)的擴(kuò)展性。例如,50,000列訓(xùn)練數(shù)據(jù)集可在實(shí)施方案中采用以訓(xùn)練預(yù)測(cè)模型。而且,傳統(tǒng)模型的訓(xùn)練通??杀辉诳蛻舳藗?cè)執(zhí)行,因而要求大數(shù)據(jù)集被從數(shù)據(jù)存儲(chǔ)裝置通信到客戶端,并且因而消耗大量網(wǎng)絡(luò)帶寬。一些實(shí)施方案中,處理中的至少一些被在分布式處理平臺(tái)(如,hadoop集群)上執(zhí)行,并且一些由客戶端應(yīng)用(如,建模器)執(zhí)行,因此減少向客戶端應(yīng)用傳輸大數(shù)據(jù)集和僅在客戶端側(cè)執(zhí)行建模作業(yè)所需的網(wǎng)絡(luò)帶寬量。一些實(shí)例中,更多數(shù)據(jù)密集和/或處理密集的處理步驟可在集群上執(zhí)行以利用集群的更大處理能力。并且,因?yàn)榧嚎梢愿拷W(wǎng)絡(luò)拓?fù)渲械臄?shù)據(jù)存儲(chǔ)裝置,所以集群的更多數(shù)據(jù)密集操作的執(zhí)行可以避免消耗、使用傳統(tǒng)訓(xùn)練技術(shù)時(shí)可能發(fā)生的通過在數(shù)據(jù)存儲(chǔ)裝置和建模器之間來回通信大量數(shù)據(jù)本將被消耗的網(wǎng)絡(luò)帶寬。鑒于數(shù)據(jù)庫內(nèi)(如,集群上)分析可以避免在可能不安全的通信信道上通信數(shù)據(jù),實(shí)施方案還可以提供安全的優(yōu)點(diǎn)。而且,諸如個(gè)人可識(shí)別信息(pii)的敏感和/或私人數(shù)據(jù)可在集群上比在其它系統(tǒng)上更安全地處理。關(guān)于可在預(yù)測(cè)建模中采用的機(jī)器學(xué)習(xí),實(shí)施方案還提供更多優(yōu)點(diǎn)。例如,機(jī)器學(xué)習(xí)中使用的更復(fù)雜和/或處理密集的內(nèi)部步驟中的至少一些,諸如編碼和/或其它數(shù)據(jù)準(zhǔn)備操作,無需任何用戶交互就可被執(zhí)行,如,這些步驟可能向終端用戶隱藏。實(shí)施方案還可以采用一個(gè)或多個(gè)優(yōu)化,其可被怠惰地實(shí)現(xiàn)。這樣的優(yōu)化可以包括減少正被分析的數(shù)據(jù)集的維度以提供建模器的高性能。鑒于模型可能不會(huì)非常適用于被用來訓(xùn)練模型的具體訓(xùn)練集,依照結(jié)構(gòu)風(fēng)險(xiǎn)最小化(srm)的原理,較簡(jiǎn)單的模型(如,具有減少的維度)在處理新數(shù)據(jù)時(shí)通常更有用且魯棒。本說明書所述主題的一個(gè)或多個(gè)實(shí)施例的細(xì)節(jié)在附圖和以下描述中闡釋。主題的其它潛在特性、方面和優(yōu)點(diǎn)將從描述、附圖和權(quán)利要求中變得顯見。附圖說明圖1和圖2描述用于數(shù)據(jù)庫內(nèi)建模(in-databasemodeling)的示例環(huán)境。圖3a-3d描述數(shù)據(jù)庫內(nèi)建模的示例過程流。圖4描述用于數(shù)據(jù)庫內(nèi)建模的示例過程。圖5描述可被用來實(shí)現(xiàn)本文所述技術(shù)的示例計(jì)算系統(tǒng)。圖6描述根據(jù)本公開的實(shí)施方案包括用于分布式處理平臺(tái)的統(tǒng)一客戶端的示例系統(tǒng)。圖7a描述根據(jù)本公開的實(shí)施方案包括采用統(tǒng)一客戶端的應(yīng)用的示例系統(tǒng)。圖7b描述根據(jù)本公開的實(shí)施方案的用于為數(shù)據(jù)處理而采用統(tǒng)一客戶端的過程的示例流圖。圖8描述根據(jù)本公開的實(shí)施方案的示例類圖。具體實(shí)施方式有許多不同方法來預(yù)測(cè)建模。例如,回歸建模預(yù)測(cè)值,而分類區(qū)分?jǐn)?shù)據(jù)中的隱組。此外,有大量在現(xiàn)成方法(例如,r中的k均值算法)到專有方法之間變化的機(jī)器學(xué)習(xí)算法、技術(shù)和實(shí)施方案。特別地,專有方法可以利用諸如vapnik-chervonenkis理論和結(jié)構(gòu)風(fēng)險(xiǎn)最小化(structuralriskminimization)的機(jī)器學(xué)習(xí)技術(shù)來建立更好的質(zhì)量和更普遍適用的模型。模型的質(zhì)量和魯棒性可被基于以下內(nèi)容分析:i)質(zhì)量,如,模型如何好地描述現(xiàn)有數(shù)據(jù)——這通過最小化經(jīng)驗(yàn)主義錯(cuò)誤來實(shí)現(xiàn);ii)可靠性或魯棒性:當(dāng)模型被應(yīng)用到新數(shù)據(jù)時(shí),模型將如何好地預(yù)測(cè)——這通過最小化不可靠性來實(shí)現(xiàn)。在預(yù)測(cè)建模方面,傳統(tǒng)預(yù)測(cè)建模解決方案依靠諸如開發(fā)數(shù)據(jù)庫連接(obdc)和java數(shù)據(jù)庫連接(jdbc)的數(shù)據(jù)庫連接來連接關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(rdbms)、將數(shù)據(jù)拉取回存儲(chǔ)器并且之后處理該數(shù)據(jù)。為此,預(yù)測(cè)建??梢允菙?shù)據(jù)密集型。具體地,數(shù)據(jù)準(zhǔn)備階段和學(xué)習(xí)(訓(xùn)練)階段可能需要對(duì)相同數(shù)據(jù)的許多掃描和對(duì)每個(gè)單獨(dú)輸入?yún)?shù)的許多計(jì)算。例如,算法中的交叉統(tǒng)計(jì)步驟可能需要對(duì)每個(gè)輸入變量和每個(gè)目標(biāo)變量計(jì)算統(tǒng)計(jì)量。如下表所示,對(duì)于具有n個(gè)輸入變量、t個(gè)目標(biāo)變量和r行的輸入數(shù)據(jù)集,交叉統(tǒng)計(jì)計(jì)算被進(jìn)行nxtxr次。行號(hào)輸入變量1輸入變量2輸入變量3輸入變量n目標(biāo)變量1目標(biāo)變量21a1276.2完成99.67產(chǎn)品d2r8798.2準(zhǔn)備142.32產(chǎn)品x…rb462.5完成150.1產(chǎn)品a傳統(tǒng)架構(gòu)設(shè)計(jì)利用了分層方法,其中數(shù)據(jù)源在一層并且數(shù)據(jù)處理在另一架構(gòu)層。該分離還可被表示為以下景觀,其中數(shù)據(jù)駐留在數(shù)據(jù)庫(數(shù)據(jù)庫服務(wù)器計(jì)算機(jī)或服務(wù)器集群)中并且數(shù)據(jù)處理在單獨(dú)機(jī)器(如,服務(wù)器或桌面型計(jì)算機(jī))上。一些示例中,層之間的通信經(jīng)由sql進(jìn)行并且連接性使用諸如jdbc和odbc的技術(shù)來使能。然而,當(dāng)該架構(gòu)被應(yīng)用到預(yù)測(cè)建模軟件時(shí),由于需要將全部訓(xùn)練數(shù)據(jù)集從數(shù)據(jù)庫跨網(wǎng)絡(luò)傳輸?shù)讲煌瑱C(jī)器以進(jìn)行處理,所以其引入了性能和可擴(kuò)展性限制。為此,依賴于所采用的算法或方法,完全訓(xùn)練數(shù)據(jù)集的數(shù)據(jù)傳輸?shù)男阅軕土P可能在學(xué)習(xí)(訓(xùn)練)階段多次發(fā)生。更進(jìn)一步,一些示例中,當(dāng)數(shù)據(jù)處理正發(fā)生在與數(shù)據(jù)庫服務(wù)器/集群或apachehadoop集群的更強(qiáng)處理能力相比通常能力較差的硬件(諸如用戶的桌面型計(jì)算機(jī)或單一服務(wù)器計(jì)算機(jī))上時(shí),依靠數(shù)據(jù)傳輸?shù)募軜?gòu)可能限制性能和可擴(kuò)展性。此外,該數(shù)據(jù)傳輸方法可能不隨增長(zhǎng)的吞吐量要求(例如,要在一天中建立的模型數(shù)目和該系統(tǒng)構(gòu)建模型時(shí)用戶的數(shù)目)很好地?cái)U(kuò)展。實(shí)施方案提供克服或至少減輕傳統(tǒng)架構(gòu)設(shè)計(jì)的缺點(diǎn)的自動(dòng)的數(shù)據(jù)庫內(nèi)的預(yù)測(cè)建模。該建模可在大數(shù)據(jù)環(huán)境中執(zhí)行以克服傳統(tǒng)架構(gòu)內(nèi)建模的性能和可擴(kuò)展性限制,諸如上述限制。傳統(tǒng)建??稍诳蛻舳藗?cè)執(zhí)行,因而需要大數(shù)據(jù)集被從數(shù)據(jù)存儲(chǔ)裝置通信到客戶端,并且因而消耗大量網(wǎng)絡(luò)帶寬。一些實(shí)施方案中,處理中的至少一些在該集群上執(zhí)行,并且一些由客戶端應(yīng)用(如,建模器)執(zhí)行,因此減少向客戶端應(yīng)用傳輸大數(shù)據(jù)集和僅在客戶端側(cè)執(zhí)行建模作業(yè)所需的網(wǎng)絡(luò)帶寬量。一些實(shí)例中,更加數(shù)據(jù)密集和/或處理密集的處理步驟可在該集群上執(zhí)行以利用該集群的更大處理能力。而且,因?yàn)榫W(wǎng)絡(luò)拓?fù)渲性摷嚎梢愿咏跀?shù)據(jù)存儲(chǔ)裝置,所以該集群執(zhí)行更加數(shù)據(jù)密集的操作可以避免本將通過在數(shù)據(jù)存儲(chǔ)裝置和建模器之間來回通信大量數(shù)據(jù)而被消耗的網(wǎng)絡(luò)帶寬。如本文所述,數(shù)據(jù)庫內(nèi)建模可以是至少部分地在還存儲(chǔ)正被分析的數(shù)據(jù)的集群(如,分布式處理平臺(tái))中執(zhí)行的建模。因而,考慮到數(shù)據(jù)庫內(nèi)分析可以避免在可能不安全的通信信道上通信數(shù)據(jù),數(shù)據(jù)庫內(nèi)建??梢蕴峁┌踩膬?yōu)點(diǎn)。而且,諸如個(gè)人可識(shí)別信息(personalityidentifiableinformation,pii)的敏感和/或私人數(shù)據(jù)可以在該集群上比在其它系統(tǒng)上更安全地處理。數(shù)據(jù)庫內(nèi)建模圖1示出了用于數(shù)據(jù)庫內(nèi)建模的示例環(huán)境100。具體地,環(huán)境100包括服務(wù)器計(jì)算系統(tǒng)102和數(shù)據(jù)平臺(tái)104。服務(wù)器計(jì)算系統(tǒng)102可以包括一個(gè)或多個(gè)計(jì)算系統(tǒng),其包括計(jì)算系統(tǒng)的集群。數(shù)據(jù)平臺(tái)104可以包括一個(gè)或多個(gè)計(jì)算系統(tǒng)(如,節(jié)點(diǎn)),其包括多個(gè)基于用戶的計(jì)算系統(tǒng)。服務(wù)器計(jì)算系統(tǒng)102可以包括自動(dòng)化建模器106,自動(dòng)化建模器106包括建模服務(wù)108。數(shù)據(jù)平臺(tái)104可以包括rdbms110、一個(gè)或多個(gè)標(biāo)準(zhǔn)查詢語言(sql)引擎112和數(shù)據(jù)倉庫114。引擎112可被描述為大數(shù)據(jù)sql引擎。一些示例中,引擎112可以包括apachespark或apachehive。盡管參考作為示例分布式處理平臺(tái)(如,由apache軟件基金會(huì)開發(fā)的hadoop框架)的數(shù)據(jù)平臺(tái)104,在本文討論了本公開的實(shí)施方案,但是已設(shè)想到,本公開的實(shí)施方案可被使用任意適當(dāng)分布式處理平臺(tái)實(shí)現(xiàn)。盡管服務(wù)器計(jì)算系統(tǒng)102被描述為服務(wù)器,但系統(tǒng)102和/或建模服務(wù)108可以在其與數(shù)據(jù)平臺(tái)104交互時(shí)充當(dāng)客戶端。圖2示出了類似于環(huán)境100的用于數(shù)據(jù)庫內(nèi)建模的示例環(huán)境200。環(huán)境200包括自動(dòng)化分析模塊202和集群204。集群204可以包含用于數(shù)據(jù)處理的分布式處理平臺(tái)。一些實(shí)施方案中,集群204是apachehadoop集群。自動(dòng)化分析模塊202包括建模器206。一些實(shí)施方案中,建模器206是c++建模器。建模器202可以包括連接模塊208和驅(qū)動(dòng)器210。一些實(shí)施方案中,連接模塊208是odbc連接模塊。一些實(shí)施方案中,驅(qū)動(dòng)器210是sparkdriver(jni)模塊。一些實(shí)例中,集群204包括數(shù)據(jù)倉庫212、集群管理器214、與原生(native)建模步驟關(guān)聯(lián)的模塊216,和分布式文件系統(tǒng)218。一些實(shí)施方案中,數(shù)據(jù)倉庫212是apachehive數(shù)據(jù)倉庫。連接模塊208可以建立到數(shù)據(jù)倉庫212的連接(如,odbc連接)。一些實(shí)施方案中,集群管理器214是yarn集群管理器。驅(qū)動(dòng)器210可以創(chuàng)建到集群管理器214的(如,yarn)連接。一些實(shí)施方案中,模塊216是apachespark模塊,并且相關(guān)聯(lián)的建模步驟是原生spark建模步驟。一些實(shí)施方案中,文件系統(tǒng)是apachehadoop分布式文件系統(tǒng)(hdfs)。一些實(shí)施方案中,自動(dòng)化分析模塊202與集群204通信。具體來說,連接模塊208與(如,apachehive)數(shù)據(jù)倉庫212通信并且(如,spark)驅(qū)動(dòng)器210與(如,yarn)集群管理器214通信。輸入訓(xùn)練數(shù)據(jù)集(如,業(yè)務(wù)數(shù)據(jù)集)可經(jīng)由連接模塊208和/或驅(qū)動(dòng)器210、在這些模塊建立的連接中的一個(gè)或二者上傳輸。更進(jìn)一步,數(shù)據(jù)倉庫212和模塊216可以與分布式文件系統(tǒng)218通信,如,用于數(shù)據(jù)庫內(nèi)建模。一些實(shí)施方案中,集群204和自動(dòng)化分析模塊202之間的通信可以采用統(tǒng)一客戶端,如下所述。分析模塊202可以使用odbc連接來與(如,hive)數(shù)據(jù)倉庫212交互以取回在集群204上通過(多個(gè))原生建模步驟(如,(多個(gè))spark作業(yè))執(zhí)行的處理的結(jié)果集。yarn連接可被用來請(qǐng)求作業(yè)在集群204上,如,經(jīng)原生建模步驟被運(yùn)行。原生建模步驟(如,(多個(gè))spark作業(yè))的結(jié)果可被寫入文件系統(tǒng)218(如,hdfs)。一些實(shí)例中,結(jié)果可被從文件系統(tǒng)218拷貝到數(shù)據(jù)倉庫212以可經(jīng)統(tǒng)一客戶端被自動(dòng)化分析模塊202訪問。一些示例中,環(huán)境100執(zhí)行的數(shù)據(jù)庫內(nèi)建??梢耘c靠近數(shù)據(jù)源執(zhí)行數(shù)據(jù)處理的方法關(guān)聯(lián)。一些示例中,環(huán)境100的數(shù)據(jù)庫內(nèi)建模與用于預(yù)測(cè)建模的數(shù)據(jù)庫內(nèi)處理的使用關(guān)聯(lián)。預(yù)測(cè)建??梢园ㄉ蓴?shù)據(jù)庫專用代碼(如,sql或存儲(chǔ)的程序)以將建模過程(如,環(huán)境100內(nèi)的建模過程)委托(delegate)在針對(duì)數(shù)據(jù)平臺(tái)104優(yōu)化的語言中。一些示例中,與環(huán)境100關(guān)聯(lián)的數(shù)據(jù)庫內(nèi)建??梢园〝?shù)據(jù)準(zhǔn)備階段、學(xué)習(xí)(訓(xùn)練)階段、評(píng)分階段和/或再訓(xùn)練階段。數(shù)據(jù)準(zhǔn)備階段與數(shù)據(jù)的清洗和與數(shù)據(jù)有關(guān)的異常值(outliers)的處理關(guān)聯(lián)。數(shù)據(jù)準(zhǔn)備階段還可以涉及使用數(shù)據(jù)操縱(如,通過使用sql窗口函數(shù))增加輸入變量的數(shù)目來幫助發(fā)現(xiàn)數(shù)據(jù)中的模式(pattern)。例如,發(fā)現(xiàn)一個(gè)月內(nèi)的購買行為的模式,而不是分鐘級(jí)別的模式。學(xué)習(xí)(訓(xùn)練)階段與算法和技術(shù)對(duì)輸入訓(xùn)練數(shù)據(jù)集的應(yīng)用關(guān)聯(lián)。一些示例中,建立模型的過程可以是迭代的以識(shí)別合適的模型。這可以使用商業(yè)領(lǐng)域知識(shí)通過軟件或通過手動(dòng)改變模型輸入來執(zhí)行。此外,學(xué)習(xí)(訓(xùn)練)階段可以與如過擬合和魯棒性這樣的概念關(guān)聯(lián)。更進(jìn)一步,模型建立的結(jié)果可以包括可被在評(píng)分階段使用的輸出。評(píng)分階段與訓(xùn)練模型的應(yīng)用關(guān)聯(lián)。模型可被嵌入到商業(yè)應(yīng)用或被用作微服務(wù)以針對(duì)給定輸入預(yù)測(cè)結(jié)果。再訓(xùn)練階段與確保現(xiàn)有模型是準(zhǔn)確的并且為新數(shù)據(jù)提供準(zhǔn)確預(yù)測(cè)關(guān)聯(lián),包括模型比較和考慮到更多新近數(shù)據(jù)的學(xué)習(xí)過程的再觸發(fā)。數(shù)據(jù)庫內(nèi)建模的性能特點(diǎn)一些實(shí)施方案中,數(shù)據(jù)庫內(nèi)建模的數(shù)據(jù)準(zhǔn)備階段可以增加輸入變量的數(shù)目以產(chǎn)生具有更好提升的統(tǒng)計(jì)上更魯棒的模型。例如,將數(shù)據(jù)源的輸入變量(如,列)的數(shù)目從200到2000個(gè)變量增加到10倍,可被用來在分鐘或天的時(shí)間窗口內(nèi)發(fā)現(xiàn)模式。一些示例中,數(shù)據(jù)操縱功能可以使用建模軟件中的sql處理來產(chǎn)生額外的輸入變量。因此,這相應(yīng)地增加了數(shù)據(jù)的大小和學(xué)習(xí)過程的性能要求。一些實(shí)施方案中,在模型學(xué)習(xí)/訓(xùn)練階段期間需要來自用戶的最少輸入和最少機(jī)器學(xué)習(xí)知識(shí)的自動(dòng)化機(jī)器學(xué)習(xí)方法,諸如結(jié)構(gòu)風(fēng)險(xiǎn)最小化,使能用于更高吞吐量的可擴(kuò)展性和整體上更簡(jiǎn)單的過程,以在企業(yè)中提供更多角色來使用預(yù)測(cè)建模。自動(dòng)化模型建立過程的結(jié)果可以使用定量測(cè)量以指示模型質(zhì)量(誤差)和魯棒性(對(duì)于新數(shù)據(jù)集)來幫助用戶發(fā)現(xiàn)最佳模型。一些實(shí)施方案中,數(shù)據(jù)庫內(nèi)建模方法提供將預(yù)測(cè)建模過程的數(shù)據(jù)密集型步驟委托給底層數(shù)據(jù)平臺(tái),諸如apachehadoop集群和/或數(shù)據(jù)庫。數(shù)據(jù)密集型步驟主要是要求完全訓(xùn)練數(shù)據(jù)集的數(shù)據(jù)傳輸?shù)牟襟E。一些實(shí)施方案中,數(shù)據(jù)庫內(nèi)建模方法最小化處理步驟的數(shù)目,包括在數(shù)據(jù)源(如,底層數(shù)據(jù)平臺(tái))中對(duì)來自學(xué)習(xí)(訓(xùn)練)階段的結(jié)果的再利用。因此,這減少了后續(xù)步驟中重計(jì)算的處理成本。例如,處理步驟的結(jié)果可被緩存(存儲(chǔ)在臨時(shí)表中)用于之后再利用。一些實(shí)施方案中,與數(shù)據(jù)源(如,客戶端計(jì)算系統(tǒng)104和/或數(shù)據(jù)倉庫114)關(guān)聯(lián)的參數(shù)可被用于幫助數(shù)據(jù)庫內(nèi)建模。一些示例中,與客戶端計(jì)算系統(tǒng)104關(guān)聯(lián)的數(shù)據(jù)庫平臺(tái)可以包括原生低級(jí)語言庫(如,用c++)并且其功能可被用來支持?jǐn)?shù)據(jù)庫內(nèi)建模。例如,如以下進(jìn)一步描述,協(xié)方差矩陣計(jì)算步驟,當(dāng)在(如,大數(shù)據(jù))數(shù)據(jù)源上運(yùn)行時(shí),可被委托給apachesparkmllib(機(jī)器學(xué)習(xí)庫)。更進(jìn)一步,一些示例中,諸如teradata的rdbms100包括優(yōu)化矩陣計(jì)算的功能。一些實(shí)施方案中,數(shù)據(jù)庫內(nèi)建模的步驟可被記錄以使能數(shù)據(jù)庫內(nèi)建模的性能調(diào)整,其中這些步驟包括運(yùn)行時(shí)間、cpu和存儲(chǔ)器足跡(memoryfootprint)。一些實(shí)施方案中,數(shù)據(jù)庫內(nèi)建??梢詫?duì)利用現(xiàn)有軟件的終端用戶透明,因而提供相同(或相似)用戶接口和數(shù)據(jù)庫連接的使用。一些實(shí)施方案中,該配置可被用來進(jìn)一步調(diào)諧數(shù)據(jù)源中的各個(gè)建模步驟的運(yùn)行以進(jìn)一步幫助性能。例如,當(dāng)建模步驟被委托給apachespark時(shí),被分配的spark執(zhí)行器的數(shù)目、核的數(shù)目和存儲(chǔ)器可被精細(xì)調(diào)整。數(shù)據(jù)庫內(nèi)建模的過程流線性或多項(xiàng)式回歸分析可被用來估計(jì)變量之間的關(guān)系并且形成回歸和分類模型建立的基礎(chǔ)。線性回歸模型用以下形式表示:y-b0+b1x1+b2x2+b3x3+…其中x1,x2,x3,…是預(yù)測(cè)變量(特征)并且y是目標(biāo)變量。當(dāng)與每個(gè)變量對(duì)應(yīng)的系數(shù)(b1,b2,b3,...)和截距(b0)已知時(shí),定義線性回歸模型。圖3a示出了如,由環(huán)境100和/或環(huán)境200執(zhí)行的數(shù)據(jù)庫內(nèi)建模的示例過程流300。步驟302中,數(shù)據(jù)準(zhǔn)備和數(shù)據(jù)的交叉統(tǒng)計(jì)計(jì)算被執(zhí)行。例如,數(shù)據(jù)操縱被應(yīng)用以增加輸入變量的數(shù)目,通常使用sql。更進(jìn)一步,數(shù)據(jù)操縱可以包括組合輸入變量。例如,將變量“年齡”和“婚姻狀況”組合在一起,因?yàn)樗鼈兛赡軐?duì)目標(biāo)變量“薪水”更具預(yù)測(cè)性的影響。數(shù)據(jù)準(zhǔn)備可以進(jìn)一步包括將數(shù)據(jù)分片,從而從一片得到的模型可被與作為學(xué)習(xí)(訓(xùn)練)階段的部分的另一片比較以檢查魯棒性。數(shù)據(jù)準(zhǔn)備可以進(jìn)一步包括處理諸如數(shù)據(jù)庫中的“null”值的數(shù)據(jù)異常值。一些示例中,這樣的值可被保持并分類。數(shù)據(jù)準(zhǔn)備可以進(jìn)一步包括變量裝箱(variablebinning)以減少與數(shù)據(jù)關(guān)聯(lián)的離散值的數(shù)目并且將具有相近或相關(guān)值的值放進(jìn)組(如,箱子)。數(shù)據(jù)的交叉統(tǒng)計(jì)計(jì)算可以包括計(jì)算統(tǒng)計(jì)量,諸如特定輸入變量值對(duì)每個(gè)目標(biāo)變量的計(jì)數(shù)和分布。這可被用來幫助變量減少過程以減少輸入變量的數(shù)目。步驟304中,數(shù)據(jù)編碼被執(zhí)行。具體地,數(shù)據(jù)編碼將字母數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)變成數(shù)字。例如,編碼“年齡”變量的樣本sql公式是(age–avg(age))/sqrt(var(age))。步驟306中,協(xié)方差矩陣計(jì)算被執(zhí)行。協(xié)方差矩陣是其i,j位置的元素是第i’個(gè)和第j’個(gè)變量之間的協(xié)方差的矩陣。例如,變量x1和變量x2之間的協(xié)方差被定義為:此外,矩陣求逆計(jì)算被執(zhí)行。具體地,可使用下式計(jì)算系數(shù):其中c是所有預(yù)測(cè)(predictors)的協(xié)方差矩陣,β^是系數(shù)(b1,b2,…)的向量并且z'表示矩陣z的轉(zhuǎn)置。常數(shù)項(xiàng)b0是y的均值和從估計(jì)xβ^預(yù)測(cè)的均值之差。步驟308中,針對(duì)先前為檢查預(yù)測(cè)模型的魯棒性而生成的數(shù)據(jù)切片對(duì)預(yù)測(cè)模型的評(píng)分被執(zhí)行。步驟310中,利用預(yù)測(cè)值對(duì)交叉統(tǒng)計(jì)的重計(jì)算被執(zhí)行。步驟312,性能比較被執(zhí)行。具體地,預(yù)測(cè)模型的性能被基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化而迭代地評(píng)估。一些實(shí)施方案中,處理步驟的結(jié)果可被緩存(存儲(chǔ)在臨時(shí)表中)用以之后再利用和/或被其它步驟使用。如圖3a的示例所示,(如,定制的)緩存可以使能結(jié)果在各種處理步驟之間共享。盡管圖3a的示例分別針對(duì)數(shù)據(jù)連接、連接格式、查詢語言和文件系統(tǒng)描述了odbc、json、sql和hdfs的使用,但實(shí)施方案支持其它技術(shù)、協(xié)議和/或格式的使用。視情況,數(shù)據(jù)處理步驟可在集群上并行地執(zhí)行,諸如圖3a所示步驟310和312的示例。例如,多個(gè)spark作業(yè)可由運(yùn)行在集群內(nèi)的多個(gè)spark實(shí)例并行地運(yùn)行。圖3b到圖3d示出了用于數(shù)據(jù)庫內(nèi)建模的示例過程流。這些示例中,數(shù)據(jù)處理的至少一部分被在客戶端側(cè)(如,在與集群分離的應(yīng)用或其它客戶端進(jìn)程上)執(zhí)行。例如,該處理的至少一部分可由自動(dòng)化分析建模器202執(zhí)行。圖3b-3d的示例中,自動(dòng)化分析建模器202是c++建模器。一些實(shí)施方案中,建模器202可以利用統(tǒng)一客戶端來與集群(如,與諸如hadoop集群的分布式處理平臺(tái))交互。關(guān)于該集群的統(tǒng)一客戶端的操作在下文進(jìn)一步描述。建模器202可以使用統(tǒng)一客戶端請(qǐng)求各種作業(yè)串行或并行地運(yùn)行在集群上。圖3b到圖3d的示例中,作業(yè)是spark作業(yè)。這些作業(yè)可由建模器202通過包括作為子客戶端的spark客戶端的統(tǒng)一客戶端請(qǐng)求,如下所述。其它類型的作業(yè)也可被運(yùn)行以執(zhí)行各種數(shù)據(jù)處理步驟。一些實(shí)施方案中,各種步驟的結(jié)果可被存儲(chǔ)在數(shù)據(jù)倉庫212中,并且建模器202可以從數(shù)據(jù)倉庫212取回結(jié)果。圖3b到圖3d的示例中,數(shù)據(jù)倉庫212是hive數(shù)據(jù)倉庫。實(shí)施方案還支持其它類型數(shù)據(jù)倉庫的使用。如圖3b所示,建模器202可以經(jīng)(如,yarn)驅(qū)動(dòng)器210請(qǐng)求(如,觸發(fā))spark作業(yè),并且spark作業(yè)314(如,交叉統(tǒng)計(jì))可在集群上被運(yùn)行。作業(yè)結(jié)果可被寫入(如,hive)數(shù)據(jù)倉庫212,并且建模器202可以從數(shù)據(jù)倉庫212讀取結(jié)果。進(jìn)一步處理可以之后執(zhí)行。如圖3c所示,進(jìn)一步處理可以包括運(yùn)行在集群上的任意適當(dāng)數(shù)目的作業(yè)類型。如示例所示,作業(yè)可以包括用于編碼數(shù)據(jù)的作業(yè)316、用于矩陣處理(如,使用mllib)的作業(yè)318,用于對(duì)公式評(píng)分的作業(yè)320、用于交叉統(tǒng)計(jì)的另一作業(yè)322、和用于性能的作業(yè)324。其它類型的作業(yè)也被實(shí)施方案支持。每個(gè)作業(yè)后,數(shù)據(jù)處理步驟的結(jié)果可被寫入數(shù)據(jù)倉庫212。建模器202可從數(shù)據(jù)倉庫212取回結(jié)果、執(zhí)行一些本地處理,并且基于本地處理的結(jié)果確定要在集群上執(zhí)行的另一作業(yè)。以這種方式,建模器202可以視情況在使用集群執(zhí)行某些數(shù)據(jù)處理步驟的同時(shí),執(zhí)行本地?cái)?shù)據(jù)處理。一些實(shí)施方案中,(如,定制的)緩存可被用來在集群上運(yùn)行的作業(yè)之間共享結(jié)果,如參考圖3a所述。一些實(shí)施方案中,緩存是被如下所述的統(tǒng)一客戶端使用的工作空間。一些實(shí)施方案中,靈活配置可被用來指定要在集群上運(yùn)行的作業(yè)。圖3d示出了可被用來配置示例spark作業(yè)的json格式的元數(shù)據(jù)的示例。其它文件格式還可被用來配置作業(yè)。一些實(shí)施方案中,元數(shù)據(jù)的格式和/或大綱(schema)是靈活的和/或跨多個(gè)作業(yè),或針對(duì)所有作業(yè)是通用的。因而,新作業(yè)可以再利用相同大綱和/或相同類型的大綱。用于數(shù)據(jù)庫內(nèi)建模的過程圖4示出了用于數(shù)據(jù)庫內(nèi)建模的示例過程400。過程400可以,例如,由環(huán)境100和/或環(huán)境200或其它數(shù)據(jù)處理裝置執(zhí)行。過程400還可被實(shí)現(xiàn)為存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)介質(zhì)上的指令,并且由一個(gè)或多個(gè)數(shù)據(jù)處理裝置對(duì)該指令的運(yùn)行導(dǎo)致該一個(gè)或多個(gè)數(shù)據(jù)處理裝置執(zhí)行過程400的操作的一些或全部。存儲(chǔ)在底層數(shù)據(jù)平臺(tái)內(nèi)的輸入訓(xùn)練數(shù)據(jù)集被識(shí)別(402)。指令被發(fā)送到數(shù)據(jù)平臺(tái),該指令可由數(shù)據(jù)平臺(tái)運(yùn)行以通過將一個(gè)或多個(gè)數(shù)據(jù)處理操作委托給數(shù)據(jù)平臺(tái)上的多個(gè)節(jié)點(diǎn)、基于輸入訓(xùn)練數(shù)據(jù)集來訓(xùn)練預(yù)測(cè)模型(404)。一些實(shí)施方案中,該指令可以指定要在集群204上執(zhí)行的數(shù)據(jù)處理作業(yè)以訓(xùn)練或以其它方式確定預(yù)測(cè)模型,如圖3a-3d的示例中那樣。(多個(gè))作業(yè)的(多個(gè))結(jié)果集可從數(shù)據(jù)倉庫212取回(406)。一些實(shí)例中,本地處理(如,在客戶端側(cè)建模器上)可被至少部分地基于取回的(多個(gè))結(jié)果集來執(zhí)行(408)。對(duì)于額外的處理作業(yè)是否要被執(zhí)行以確定預(yù)測(cè)模型可做出確定(410)。如果是,該過程可回到404并且另一指令集可被發(fā)送以請(qǐng)求在集群204上運(yùn)行作業(yè),和/或額外的本地處理可被執(zhí)行。如果沒有額外的處理要被執(zhí)行以確定預(yù)測(cè)模型,則預(yù)測(cè)模型可被提供(412)。預(yù)測(cè)模型可被應(yīng)用(414)到數(shù)據(jù)集(如,商業(yè)數(shù)據(jù)集)以關(guān)于數(shù)據(jù)做出預(yù)測(cè),如,以識(shí)別與數(shù)據(jù)集中后續(xù)出現(xiàn)特定數(shù)據(jù)值的概率關(guān)聯(lián)的(多個(gè))結(jié)果。盡管圖4描述了按特定順序(如,作業(yè)首先在集群上運(yùn)行,之后進(jìn)行本地處理)并且順序地執(zhí)行處理的示例,但實(shí)施方案不限于此。實(shí)施方案支持包括在集群204上執(zhí)行或在自動(dòng)化分析模塊202本地執(zhí)行、并且可被順序地或并行地執(zhí)行的任意數(shù)目的數(shù)據(jù)處理步驟(作業(yè))的建模。統(tǒng)一的客戶端諸如本文所述被用來執(zhí)行建模的分布式處理平臺(tái),可以以成批模式存儲(chǔ)并處理大數(shù)據(jù)集。在hadoop的示例中,hadoop生態(tài)系統(tǒng)最初已包括mapreduce和hadoop分布式文件系統(tǒng)(hdfs),并且隨時(shí)間已逐步發(fā)展為支持其它處理引擎(如,hive,impala,spark,tez等)、其它語言(如,pig,hql,hiveql,sql等)和其它存儲(chǔ)大綱(如,parquet等)。具體來說,對(duì)比支持mapreduce架構(gòu)但不支持spark的先前版本,spark引擎的添加已顯著提升了hadoop的分布式處理效率。spark引擎可以處理具有許多底層迭代(諸如在機(jī)器學(xué)習(xí)中使用的迭代)的復(fù)雜處理。通過支持具有許多不同處理引擎、語言和存儲(chǔ)大綱的技術(shù)園(technological“zoo”),在組織試圖將平臺(tái)集成到特定組織情境和/或工作流時(shí),分布式處理平臺(tái)提出了一個(gè)工程挑戰(zhàn)。例如,業(yè)務(wù)中的信息技術(shù)組可能想要產(chǎn)生適合業(yè)務(wù)特定需要的最優(yōu)的數(shù)據(jù)處理解決方案,并且為達(dá)成此目的,他們可以利用和/或組合平臺(tái)支持的不同技術(shù)。平臺(tái)支持的完全不同的技術(shù)可以彼此互補(bǔ)和/或可以彼此同時(shí)操作。傳統(tǒng)上,為了應(yīng)用組合和/或協(xié)調(diào)平臺(tái)支持的多個(gè)技術(shù)的操作,大量臨時(shí)(adhoc)和/或?qū)S么a將需要被寫入。當(dāng)應(yīng)用的設(shè)計(jì)和/或邏輯變化時(shí),這些代碼將難以在應(yīng)用的版本間維護(hù)。實(shí)施方案提供統(tǒng)一客戶端,其充當(dāng)單個(gè)接口來與分布式處理平臺(tái)支持的所有子系統(tǒng)交互,并且便利分布式處理平臺(tái)提供的各種各樣服務(wù)的消費(fèi)。通過將不同子系統(tǒng)組合在單個(gè)會(huì)話中,統(tǒng)一客戶端還操作以克服可能是分布式處理平臺(tái)的每個(gè)子系統(tǒng)和/或技術(shù)中固有的各個(gè)限制(如,性能限制、處理容量等)。spark技術(shù)已被設(shè)計(jì)成支持成批模式下的長(zhǎng)期運(yùn)轉(zhuǎn)的作業(yè)運(yùn)行。spark技術(shù)通過shell腳本(如,spark-submit)支持作業(yè)運(yùn)行。shell腳本的配置本身帶來了挑戰(zhàn)。例如,shell腳本強(qiáng)加了許多腳本參量(argument)和先決條件(prerequisite),諸如客戶端側(cè)的hadoopxlm配置和特定hadoop環(huán)境變量的存在。從客戶端應(yīng)用的角度,出于各種理由,利用spark可能是困難的。例如,spark難以嵌入應(yīng)用運(yùn)行時(shí)景觀。提交spark作業(yè)的傳統(tǒng)方式包括創(chuàng)建定制命令行并且在單獨(dú)的進(jìn)程中運(yùn)行定制命令行。而且,spark作業(yè)傳統(tǒng)上是獨(dú)立的并且被一次性運(yùn)行,而不可能返回客戶端工作流(如,進(jìn)行中間步驟)以從它被中斷的點(diǎn)繼續(xù)spark作業(yè)運(yùn)行。因而,傳統(tǒng)平臺(tái)中,spark不能容易地以交互和/或有狀態(tài)的方式使用。而且,傳統(tǒng)上spark連接描述不能作為單獨(dú)概念存在。替換地,spark接口可以處理其配置包括連接相關(guān)信息和其它參數(shù)的spark作業(yè)提交。此外,傳統(tǒng)上spark可能不提供與出現(xiàn)在rdbms情境中的連接儲(chǔ)存庫相當(dāng)?shù)倪B接儲(chǔ)存庫的類型。出于至少這些理由,傳統(tǒng)解決方案中,spark接口難以嵌入、難以配置,并且可能只以成批模式處理作業(yè)運(yùn)行,從而避免與客戶端應(yīng)用的中間交互。為了減輕,并且在一些實(shí)例中,消除以上所列的關(guān)于分布式處理平臺(tái)中現(xiàn)有完全不同接口的限制,實(shí)施方案提供了在分布式處理平臺(tái)中的增強(qiáng)型服務(wù)消費(fèi)。具體來說,實(shí)施方案提供了可嵌入的操作spark客戶端(如,驅(qū)動(dòng)器),從而spark驅(qū)動(dòng)器即使在非jvm進(jìn)程中也可被加載到應(yīng)用進(jìn)程中。一些實(shí)施方案中,spark運(yùn)行時(shí)基于字節(jié)代碼并且spark客戶端在運(yùn)行時(shí)可以是可配置的。spark驅(qū)動(dòng)器可以消費(fèi)被持久化到特定儲(chǔ)存庫中的預(yù)定義spark連接描述符來簡(jiǎn)化連接配置。spark作業(yè)運(yùn)行時(shí)可以特定于每個(gè)應(yīng)用域。spark作業(yè)運(yùn)行時(shí)可被存儲(chǔ)在專用儲(chǔ)存庫中并且可以在運(yùn)行時(shí)可部署到(如,hadoop)集群。一些實(shí)施方案中,spark客戶端提供交互的和/或有狀態(tài)的連接。spark連接可被建立以使能具有被保持在虛擬工作空間中的中間狀態(tài)的連續(xù)作業(yè)的提交。在內(nèi)部,spark連接可以與sparkcontext實(shí)例對(duì)應(yīng)。一些實(shí)施方案中,hadoop特定客戶端接口的至少一些(或全部)可被合并成作為統(tǒng)一客戶端的單點(diǎn)客戶端組件。統(tǒng)一客戶端使能各種服務(wù)(如,hive,sparksql,spark,mapreduce等)的無縫關(guān)聯(lián)以實(shí)現(xiàn)復(fù)雜和/或異構(gòu)的數(shù)據(jù)處理鏈。經(jīng)統(tǒng)一客戶端,spark驅(qū)動(dòng)器可以與其它驅(qū)動(dòng)器(如,hive客戶端,hdfs客戶端等)在同一技術(shù)特性級(jí)別上對(duì)齊。圖6描述了根據(jù)本公開的實(shí)施方案包括用于分布式處理平臺(tái)的統(tǒng)一客戶端的示例系統(tǒng)。如圖6的示例所示,系統(tǒng)可以包括分布式處理平臺(tái)中的一個(gè)或多個(gè)分布式系統(tǒng)602。一些實(shí)例中,(多個(gè))分布式系統(tǒng)602包括(多個(gè))hadoop系統(tǒng)。實(shí)施方案還支持其它類型的(多個(gè))分布式系統(tǒng)602。(多個(gè))分布式系統(tǒng)602可以包括子系統(tǒng)和/或引擎,諸如mapreduce606、hive引擎608、spark引擎610、sparksql612和存儲(chǔ)裝置614(如,hdfs)。該系統(tǒng)可以包括統(tǒng)一客戶端604。統(tǒng)一客戶端604可以包括子客戶端,諸如mapreduce客戶端616、hive客戶端618、spark客戶端620、sparksql客戶端622和/或存儲(chǔ)裝置客戶端624。統(tǒng)一客戶端604還可以包括任何其它適當(dāng)類型的子客戶端,例如簡(jiǎn)單并發(fā)面向?qū)ο缶幊?scoop)客戶端。子客戶端還可以包括hdfs客戶端。一些實(shí)施方案中,子客戶端可以包括一個(gè)或多個(gè)其它(如,通用)sql客戶端以支持除sparksql外的(多個(gè))sql實(shí)施方案,諸如clouderaimpalatm。統(tǒng)一客戶端604的各種子客戶端的每個(gè)可被配置為與(多個(gè))分布式系統(tǒng)602的相應(yīng)子系統(tǒng)接口。例如,mapreduce客戶端616可被配置為與mapreduce606接口,hive客戶端618可被配置為與hive引擎608接口,spark客戶端620可被配置為與spark引擎610接口,sparksql客戶端622可被配置為與sparksql接口,并且存儲(chǔ)裝置客戶端624可被配置為與存儲(chǔ)裝置614接口。一些實(shí)施方案中,spark客戶端620可以訪問spark作業(yè)儲(chǔ)存庫626。統(tǒng)一客戶端604可以訪問和采用數(shù)據(jù)工作空間628和/或統(tǒng)一元數(shù)據(jù)630(如,表、rdd和/或文件大綱)。一些實(shí)施方案中,統(tǒng)一客戶端604可以訪問統(tǒng)一連接儲(chǔ)存庫632。統(tǒng)一連接儲(chǔ)存庫632可以包括hive連接634(如,采用odbc和/或jdbc)、sparksql連接636(如,采用odbc和/或jdbc)、原生spark連接638和/或原生hdfs連接640中的一個(gè)或多個(gè)。一些實(shí)例中,可以有sparksql連接636和原生spark連接638之間的配對(duì)。一些實(shí)例中,可以有原生spark連接638和原生hdfs連接640之間的配對(duì)。統(tǒng)一連接儲(chǔ)存庫632還可被描述為連接元數(shù)據(jù)儲(chǔ)存庫。統(tǒng)一連接儲(chǔ)存庫632可以存儲(chǔ)指示不同連接(如,不同類型的配對(duì)的連接)之間的配對(duì)的元數(shù)據(jù)。該配對(duì)可以使能不同子客戶端(諸如,mapreduce客戶端616、hive客戶端618、spark客戶端620、sparksql客戶端622、或存儲(chǔ)裝置客戶端624等)之間的接口。具體統(tǒng)一會(huì)話期間,應(yīng)用可以調(diào)用多個(gè)不同子客戶端,并且可以經(jīng)各種子客戶端接收和/或發(fā)送數(shù)據(jù)。統(tǒng)一連接儲(chǔ)存庫632中定義在元數(shù)據(jù)級(jí)別的連接配對(duì)使能用于具體統(tǒng)一會(huì)話中的子客戶端的組合。定義在元數(shù)據(jù)級(jí)別的連接配對(duì)還使能會(huì)話期間使用的子客戶端之間的切換。例如,會(huì)話可被使用一個(gè)子客戶端(如,sparksql客戶端)發(fā)起,并且使用相同統(tǒng)一會(huì)話,初始的子客戶端可以與還可使用的一個(gè)或多個(gè)其它子客戶端關(guān)聯(lián)(如,鏈接)。子客戶端之間的切換可被怠惰地執(zhí)行,因?yàn)槊總€(gè)子客戶端共享最小公共接口并且因此變得可互操作。例如,spark子客戶端可以與hivesql子客戶端或hdfs客戶端互操作。子客戶端的實(shí)際選擇可通過具體會(huì)話配置在運(yùn)行時(shí)確定。子客戶端之間的關(guān)聯(lián)(如,鏈接)可以以無縫的方式執(zhí)行,而無需客戶端證書的額外授權(quán)或認(rèn)證。認(rèn)證可由“單點(diǎn)登錄(singlesignon)”方法(如,使用kerberos)處理,“單點(diǎn)登錄”方法可以認(rèn)證統(tǒng)一客戶端會(huì)話一次以使其在所有子客戶端上被使用。一些實(shí)施方案中,從鏈中的給定步驟流出的元數(shù)據(jù)和/或數(shù)據(jù)可不被持久保存,并且可以替換地被發(fā)送到處理鏈中的下一子客戶端。實(shí)施方案使能不同子客戶端接口被以無縫方式組合,供在統(tǒng)一會(huì)話期間使用。每個(gè)子客戶端可以附著到公共接口并且可以因此在子客戶端之間提供互操作性。參考圖8進(jìn)一步描述。圖8描述了根據(jù)本公開的實(shí)施方案的示例類圖800。一些實(shí)施方案中,統(tǒng)一客戶端接口可以根據(jù)類圖800實(shí)現(xiàn)。示例中,類圖800包括類802、804、806、808、810、812和814的層級(jí)布置。如示例所示,每個(gè)類可以包括各種成員方法和成員字段。例如,unifiedconnection類804包括成員方法subconnectionlist()和createworkspace()。一些示例中,每個(gè)作業(yè)處理特定子客戶端,如sparksql或hdfs。每個(gè)作業(yè),諸如hdfsjob類808、sqlsjob類810、sparkjob類812和/或mapreducejob類814的實(shí)例,可以實(shí)現(xiàn)接口abstractclient(抽象客戶端)806。以下是經(jīng)這樣的實(shí)施方案的命令的示例流。1)unifiedconnection802可被實(shí)例化。2)workspace類804的有狀態(tài)的實(shí)例可被創(chuàng)建,其中中轉(zhuǎn)數(shù)據(jù)(stagingdata)可以駐留。3)作業(yè)可被添加到workspace(工作空間)。一些示例中,json可以包括可指代現(xiàn)有結(jié)果的輸入和輸出參數(shù)。4)作業(yè)編譯可被觸發(fā)(如,以基于拓?fù)湟蕾嚱⒆鳂I(yè)圖)。一些實(shí)例中,系統(tǒng)可以確認(rèn)作業(yè)圖被很好地形成。5)作業(yè)計(jì)劃可運(yùn)行在統(tǒng)一連接情境內(nèi)。中間和/或臨時(shí)數(shù)據(jù)可被存儲(chǔ)在工作空間內(nèi)。圖8的示例中,“subconnectionid,”“applicationruntimeid,”和/或“mapreduceruntimeid”可以指代其中預(yù)定義了連接和/或其中存儲(chǔ)了spark或mapreduce運(yùn)行時(shí)的統(tǒng)一客戶端儲(chǔ)存庫?;仡檲D6,子客戶端的鏈接可以包括在第一子客戶端接收數(shù)據(jù),第一子客戶端之后提供數(shù)據(jù)用于由第二子客戶端處理。盡管本文的示例可以描述在統(tǒng)一會(huì)話期間將兩個(gè)子客戶端鏈接在一起,但實(shí)施方案使能任意適當(dāng)數(shù)目的子客戶端的鏈接來順序地處理數(shù)據(jù)。子客戶端的鏈接可以是串行鏈接,其中數(shù)據(jù)被從一個(gè)子客戶端傳遞到另一子客戶端并且之后再到又一子客戶端等等。鏈接還可以使能并行處理,其中多個(gè)子客戶端至少部分同期地處理相同數(shù)據(jù)。鏈接可以涉及分支,其中處理被在多個(gè)子客戶端和/或多個(gè)子客戶端鏈中并行地執(zhí)行。鏈接還可包括分支鏈的合并和/或重新連結(jié)(rejoin)用以進(jìn)一步處理。連接的配對(duì)可以在運(yùn)行時(shí)發(fā)生并且可以基于指向第二(如,hadoop)子系統(tǒng)(諸如,與用于第一連接的子客戶端不同的子客戶端)的第一連接。實(shí)施方案提供用于組合不同類型的數(shù)據(jù)處理技術(shù)的統(tǒng)一客戶端,如,與不同子客戶端對(duì)應(yīng),來提供相比傳統(tǒng)解決方案特征更加豐富的數(shù)據(jù)處理解決方案。通過統(tǒng)一客戶端,實(shí)施方案還通過利用(如,hadoop)平臺(tái)的多個(gè)能力提供使能在數(shù)據(jù)處理時(shí)更大靈活性的解決方案。統(tǒng)一連接儲(chǔ)存庫632可以存儲(chǔ)用于一個(gè)或多個(gè)接口特定的連接的元數(shù)據(jù)。一些實(shí)例中,只有連接指向(多個(gè))分布式系統(tǒng)602的同一子系統(tǒng),這樣的連接才可被彼此配對(duì)。一些示例中,原生spark連接描述在yarn模式下至少包括xmlhadoop文件,xmlhadoop文件被在運(yùn)行時(shí)部署到spark運(yùn)行時(shí)的類路徑,以適當(dāng)?shù)嘏渲脃arn和/或hadoop組件。一些實(shí)例中,spark客戶端可被存儲(chǔ)在與spark作業(yè)運(yùn)行時(shí)封包(如,jar文件)分開的儲(chǔ)存庫。如果spark和/或hadoop版本是兼容的,則作業(yè)工件可利用任意spark連接來運(yùn)行。一些實(shí)施方案中,統(tǒng)一客戶端604暴露了它包括的各種單獨(dú)的接口。統(tǒng)一客戶端消費(fèi)者(如,應(yīng)用)可以發(fā)起到特定接口(如,hive客戶端)的給定連接。依賴于預(yù)定連接配對(duì),統(tǒng)一客戶端消費(fèi)者可以自動(dòng)地訪問(多個(gè))其它服務(wù)接口以建立異構(gòu)數(shù)據(jù)處理圖,如圖7a的示例所示。一些實(shí)例中,證書可被請(qǐng)求以使能對(duì)配對(duì)的連接的訪問。統(tǒng)一連接(如,配對(duì)的連接集)可被綁定到虛擬數(shù)據(jù)工作空間628,虛擬數(shù)據(jù)工作空間628可以包括用于統(tǒng)一客戶端604和(多個(gè))分布式系統(tǒng)602之間的統(tǒng)一會(huì)話的狀態(tài)信息。例如,數(shù)據(jù)工作空間628可以包括狀態(tài)信息,諸如以對(duì)hive表、內(nèi)存彈性分布式數(shù)據(jù)(rdd)、hdfs文件名和/或客戶端資源的引用和/或標(biāo)識(shí)符的形式維護(hù)的一個(gè)或多個(gè)中間狀態(tài)。這些信息可以使能有狀態(tài)的連接被保持。在狀態(tài)信息中維護(hù)對(duì)內(nèi)存rdd的引用可以使能不同作業(yè)(如,spark或其它)彼此鏈接。例如,第一spark作業(yè)可以將rdd引用作為結(jié)果返回,并且另一作業(yè)可以通過傳入作為rdd引用的參量來消費(fèi)該結(jié)果。考慮到rdd可能很大,作業(yè)可以傳入和/或返回對(duì)rdd的引用而不是rdd本身。數(shù)據(jù)工作空間628中狀態(tài)信息的存在還可以使能在會(huì)話結(jié)束時(shí)執(zhí)行自動(dòng)清除。例如,狀態(tài)信息的至少一些可在會(huì)話結(jié)束時(shí)被刪除,諸如為將結(jié)果取回到統(tǒng)一客戶端604和/或應(yīng)用而創(chuàng)建的引用(如,hive表)。實(shí)施方案使能數(shù)據(jù)被沿著圖7a所示的數(shù)據(jù)流圖從一個(gè)處理步驟傳遞到另一處理步驟。圖6提供了如統(tǒng)一連接儲(chǔ)存庫632所示的處理鏈的示例。例如,統(tǒng)一客戶端604和(多個(gè))分布式系統(tǒng)602之間的交互的具體會(huì)話可以以具體方式(如,使用sparksql)來采用spark引擎和hive引擎,并且可以利用hdfs。依賴于要在統(tǒng)一客戶端604的組件處理的單個(gè)會(huì)話中滿足的要求,步進(jìn)式處理可以包括在應(yīng)用側(cè)上傳經(jīng)中間處理產(chǎn)生的數(shù)據(jù)集并且將數(shù)據(jù)集推送到(多個(gè))分布式系統(tǒng)602。這后面可以跟著數(shù)據(jù)集的spark處理。統(tǒng)一客戶端604可以使能應(yīng)用以無縫方式鏈接這些各種處理步驟的執(zhí)行。步驟還可以包括使用hiveql語言的數(shù)據(jù)準(zhǔn)備步驟。統(tǒng)一客戶端604的使用消除了對(duì)于將這些數(shù)據(jù)準(zhǔn)備作業(yè)導(dǎo)入sparksql或其它語言的需要。例如,統(tǒng)一客戶端604使能應(yīng)用利用hive執(zhí)行數(shù)據(jù)準(zhǔn)備、利用spark引擎執(zhí)行各種建模步驟,并且使用hive和/或spark將各種結(jié)果取回到應(yīng)用。應(yīng)用然后可以執(zhí)行(多個(gè))結(jié)果的中間處理。步驟可在統(tǒng)一客戶端側(cè)和/或(多個(gè))分布式系統(tǒng)側(cè)上交替。對(duì)于(多個(gè))分布式系統(tǒng)側(cè)的處理,實(shí)施方案使能包括mapreduce、spark、hive、hdfs等中的操作的任意數(shù)目的操作以任意順序的組合。盡管本文的示例描述用于和單個(gè)分布式處理平臺(tái)(如,hadoop)一起使用的統(tǒng)一客戶端的使用,但實(shí)施方案不受這樣的限制。一些實(shí)施方案中,統(tǒng)一客戶端可被用來便利跨多個(gè)分布式處理平臺(tái)的數(shù)據(jù)處理。這樣的實(shí)例中,統(tǒng)一連接儲(chǔ)存庫632可以包括描述兩個(gè)hdfs連接之間的連接配對(duì)的元數(shù)據(jù),如,以便利數(shù)據(jù)從一個(gè)分布式處理平臺(tái)到另一分布式處理平臺(tái)的傳輸和/或拷貝。這樣的實(shí)例中,統(tǒng)一客戶端604可以包括作為子客戶端的hdfs客戶端來處理這樣的跨平臺(tái)的數(shù)據(jù)傳輸。一些實(shí)施方案中,連接的耦接或配對(duì)可以是用戶特定的,如,連接之間的一個(gè)或多個(gè)具體關(guān)聯(lián)可被針對(duì)特定用戶建立并且存儲(chǔ)。一示例中,連接配對(duì)和/或關(guān)聯(lián)可在以下連接之間做出:到hive、sparksql等的odbc連接;spark連接(如,包括配置文件和屬性);和hdfs連接。一個(gè)統(tǒng)一客戶端連接可以包括關(guān)聯(lián)在一起的這3個(gè)連接。一個(gè)統(tǒng)一客戶端連接配置可以對(duì)所有用戶是相同的,或可以存在用戶特定值來提供靈活性。例如,odbc連接可以對(duì)所有用戶是通用的,具有針對(duì)用戶1和用戶2的更多特定odbc連接。對(duì)于用戶1,特定odbc連接可以包括用于spark配置和hdfs配置的信息。對(duì)于用戶2,特定odbc連接可以包括用于spark配置和hdfs配置的信息。作為另一示例,通用(如,技術(shù)用戶)odbc連接可被使用,但要具有針對(duì)用戶2的定制spark配置。對(duì)于用戶1,連接可以是具有spark配置文件和hdfs配置的通用odbc連接。對(duì)于用戶2,連接可以是具有spark配置文件、針對(duì)用戶2的定制附加配置和hdfs配置的通用odbc連接。圖7a描述了根據(jù)本公開的實(shí)施方案的包括采用統(tǒng)一客戶端604的應(yīng)用702的示例系統(tǒng)。如圖7a所示的示例所示,系統(tǒng)可以包括應(yīng)用702。應(yīng)用702可以包括統(tǒng)一客戶端604和統(tǒng)一客戶端工作空間704(如,數(shù)據(jù)工作空間628)。一些實(shí)例中,統(tǒng)一客戶端604被嵌入(如,進(jìn)程中)到應(yīng)用702。例如,統(tǒng)一客戶端604可在運(yùn)行時(shí)被作為庫加載,以向應(yīng)用702提供到(多個(gè))分布式系統(tǒng)602的各種子系統(tǒng)的接口能力。一些實(shí)例中,統(tǒng)一客戶端工作空間704包括數(shù)據(jù)結(jié)構(gòu)元數(shù)據(jù)706和對(duì)表、hdfs和/或rdd的一個(gè)或多個(gè)引用708。統(tǒng)一客戶端604可被配置為訪問并采用統(tǒng)一客戶端工作空間704執(zhí)行它的各種操作。統(tǒng)一客戶端604可以運(yùn)行hql710(如,用于數(shù)據(jù)物化(materialization))中的一個(gè)或多個(gè)查詢。統(tǒng)一客戶端604可以提交諸如spark作業(yè)712(如,用于數(shù)據(jù)變換)的作業(yè),并且從spark作業(yè)712接收輸出的rdd引用。統(tǒng)一客戶端604可以運(yùn)行諸如sparksql714(如,用于數(shù)據(jù)取回)的sql,并且從sparksql714接收(多個(gè))結(jié)果。統(tǒng)一客戶端604可以經(jīng)hdfs命令716(如,用于數(shù)據(jù)上傳)運(yùn)行put命令。統(tǒng)一客戶端604可以向spark作業(yè)718(如,用于數(shù)據(jù)變換)提交作業(yè)以及(多個(gè))rdd和/或hdfs引用。一些實(shí)例中,工作空間704所托管的每個(gè)數(shù)據(jù)引用具有描述其結(jié)構(gòu)的元數(shù)據(jù)。統(tǒng)一客戶端604可被配置為管理到(多個(gè))分布式系統(tǒng)602(如,hadoop)的不同子系統(tǒng)的多個(gè)連接。如果統(tǒng)一客戶端消費(fèi)者需要跨子系統(tǒng)構(gòu)建數(shù)據(jù)處理圖,則統(tǒng)一客戶端604在作為數(shù)據(jù)工作空間的部分的中轉(zhuǎn)區(qū)(stagingarea)中提供過渡數(shù)據(jù)。在關(guān)閉了統(tǒng)一連接后,臨時(shí)工作空間的內(nèi)容被統(tǒng)一客戶端組件自動(dòng)清除。統(tǒng)一客戶端604可以向應(yīng)用或其它消費(fèi)者提供到(多個(gè))分布式系統(tǒng)602的單個(gè)訪問點(diǎn)。(多個(gè))分布式系統(tǒng)602的各種子系統(tǒng)可以提供不同益處,并且統(tǒng)一客戶端604可以使能應(yīng)用以無縫、高效的方式利用和/或組合每個(gè)子系統(tǒng)的不同益處,而無需執(zhí)行大量臨時(shí)特定的編碼。統(tǒng)一客戶端604使能統(tǒng)一會(huì)話的創(chuàng)建,用于應(yīng)用702與(多個(gè))分布式系統(tǒng)602接口。當(dāng)統(tǒng)一會(huì)話被從統(tǒng)一客戶端604創(chuàng)建時(shí),統(tǒng)一客戶端604可以創(chuàng)建統(tǒng)一連接,其配對(duì)和/或以其它方式組合不同的單獨(dú)的連接類型(如,到hive、spark、hdfs、mapreduce等)。為了實(shí)現(xiàn)該統(tǒng)一連接,實(shí)施方案可以將原生spark連接描述指定為大綱集(setofschema)。傳統(tǒng)地,通過使用不將連接的建立與作業(yè)提交分離的shell腳本來便利spark連接。一些實(shí)施方案中,建立spark連接的任務(wù)可以和作業(yè)提交的任務(wù)分開。傳統(tǒng)地,spark被配置為使能作業(yè)以成批模式運(yùn)行并且spark不使能交互會(huì)話。一些實(shí)施方案中,統(tǒng)一客戶端604使能應(yīng)用702和(多個(gè))分布式系統(tǒng)602之間的交互spark會(huì)話。例如,統(tǒng)一客戶端604可以使(多個(gè))分布式系統(tǒng)602發(fā)起spark作業(yè)、中斷該作業(yè)以執(zhí)行一些中間步驟,并且在執(zhí)行了(多個(gè))中間步驟后使spark作業(yè)繼續(xù)進(jìn)行。傳統(tǒng)上,描述spark連接的信息可能不方便地被放置在多個(gè)位置,諸如xml文件、hadoop變量等。一些實(shí)施方案中,單個(gè)spark連接描述符可以包括各種spark連接信息,為客戶端容易地訪問spark連接信息提供了更方便的方式。spark連接描述符可以在spark作業(yè)儲(chǔ)存庫626中。統(tǒng)一客戶端604可以訪問spark作業(yè)儲(chǔ)存庫626以訪問spark連接描述符并且基于其中的連接信息創(chuàng)建和/或恢復(fù)spark連接。通過這種方式,實(shí)施方案提供了與(多個(gè))分布式系統(tǒng)602支持的其它引擎類似地高效對(duì)待spark的統(tǒng)一客戶端604,因而便利應(yīng)用使用spark進(jìn)行處理。代替需要臨時(shí)和/或?qū)S么a被寫入來與每個(gè)不同的子系統(tǒng)交互,統(tǒng)一客戶端604提供使能應(yīng)用702可以以相似方式和各種子系統(tǒng)交互的單個(gè)接口。圖7a所示的子客戶端的具體鏈接,如,hql710到spark作業(yè)712到sparksql714等,被提供為示例,并且實(shí)施方案不被限于該示例。通常,任意適當(dāng)數(shù)目和類型的子客戶端可以任意順序串行和/或并行地鏈接,來執(zhí)行數(shù)據(jù)處理。圖7a的示例中,spark作業(yè)712處理數(shù)據(jù)并且向sparksql714和另一spark作業(yè)718二者提供處理的結(jié)果,作為用于上述并行處理的分支的示例。具體子客戶端可被用來在鏈接的實(shí)例期間執(zhí)行具體類型的操作。例如,某些子客戶端可被用來從存儲(chǔ)裝置取回?cái)?shù)據(jù),而其它子客戶端可被用來以某個(gè)方式變換數(shù)據(jù)。在處理步驟已被執(zhí)行后,一些元數(shù)據(jù)可被返回統(tǒng)一客戶端604以指示處理的結(jié)果或指示處理已被執(zhí)行。這樣的所返回的元數(shù)據(jù)可以包括對(duì)結(jié)果的引用,諸如從spark作業(yè)712返回時(shí)圖7a所示的輸出的rdd引用。各種子客戶端執(zhí)行的各種處理步驟的結(jié)果可通過引用的使用而彼此關(guān)聯(lián)。圖7b描述了根據(jù)本公開的實(shí)施方案的用于采用統(tǒng)一客戶端進(jìn)行數(shù)據(jù)處理的過程的示例流圖。過程的操作可由應(yīng)用702、統(tǒng)一客戶端604和/或運(yùn)行在客戶端計(jì)算設(shè)備、分布式處理平臺(tái)的設(shè)備或其它地方的其它軟件模塊執(zhí)行。請(qǐng)求被接收(720),其指示要使用統(tǒng)一客戶端604在分布式處理平臺(tái)中執(zhí)行數(shù)據(jù)處理。一些實(shí)例中,請(qǐng)求可從調(diào)用統(tǒng)一客戶端604的應(yīng)用702接收。統(tǒng)一客戶端604的子客戶端被確定(722)執(zhí)行數(shù)據(jù)處理步驟。一些實(shí)例中,數(shù)據(jù)處理流和鏈可以被預(yù)定以解決特定問題。一些實(shí)例中,數(shù)據(jù)處理流和鏈可以在運(yùn)行時(shí)通過靈活的輸入配置和/或基于數(shù)據(jù)處理的結(jié)果被確定。例如,如果數(shù)據(jù)集被確定為相對(duì)其它子客戶端在一個(gè)子客戶端中的處理是微不足道的(如,較低成本),則較低成本子客戶端的選擇可在運(yùn)行時(shí)被做出。使用確定的子客戶端執(zhí)行數(shù)據(jù)處理步驟(724),并且結(jié)果可被提供用于進(jìn)一步處理。一些實(shí)施方案中,指向結(jié)果的引用可被提供(726),以便其它子客戶端可以對(duì)結(jié)果數(shù)據(jù)執(zhí)行進(jìn)一步處理步驟。對(duì)額外的處理是否被需要做出確定(728)。如果不需要,則最后一個(gè)處理步驟的結(jié)果可被提供(730),如,提供給應(yīng)用702。如果需要進(jìn)一步處理,則該過程可以返回到722并且確定和先前步驟中使用的子客戶端相同或不同的另一子客戶端。處理步驟可以由(相同或不同)子客戶端的序列順序地執(zhí)行,和/或處理步驟可由相同或不同類型的多個(gè)子客戶端并行地執(zhí)行。一些實(shí)例中,至少一些數(shù)據(jù)處理可在客戶端側(cè)執(zhí)行,如,在分布式處理平臺(tái)的外部。例如,結(jié)果可以經(jīng)圖7a所示的getresults流從hadoop處理器回收。可以對(duì)接收的結(jié)果執(zhí)行本地處理,并且本地處理的結(jié)果可被發(fā)送用于由另一子客戶端進(jìn)一步處理。實(shí)施方案使能處理步驟的至少一些在分布式處理平臺(tái)(如,hadoop系統(tǒng))外部執(zhí)行。示例計(jì)算設(shè)備圖5示出了可以使用本文所述技術(shù)的計(jì)算機(jī)設(shè)備500和移動(dòng)計(jì)算機(jī)設(shè)備550的示例。計(jì)算設(shè)備500意圖表示各種形式的數(shù)字計(jì)算機(jī),諸如膝上型、桌面型、工作站、個(gè)人數(shù)字助手、服務(wù)器、刀片服務(wù)器、大型機(jī)和其它合適的計(jì)算機(jī)。計(jì)算設(shè)備550意圖表示各種形式的移動(dòng)設(shè)備,諸如個(gè)人數(shù)字助手、蜂窩電話、智能電話和其它類似計(jì)算設(shè)備。本文所述組件、它們的連接和關(guān)系、以及它們的功能意圖只是示范性的,并且不意圖限制本文檔所述和/或要求保護(hù)的實(shí)施方案。至少一個(gè)計(jì)算設(shè)備500和/或550、或其一個(gè)或多個(gè)組件,可被包括本文所述計(jì)算設(shè)備、系統(tǒng)和/或平臺(tái)的任意一者中。計(jì)算設(shè)備500包括處理器502、存儲(chǔ)器504、存儲(chǔ)設(shè)備506、連接到存儲(chǔ)器504和高速擴(kuò)展端口510的高速接口508、以及連接到低速總線514和存儲(chǔ)設(shè)備506的低速接口512。組件502、504、506、508、510和512的每個(gè)使用各種總線互連,并且可被安裝在公共母板或視情況以其它方式安裝。處理器502可以處理用于在計(jì)算設(shè)備500內(nèi)執(zhí)行的指令,包括存儲(chǔ)在存儲(chǔ)器504中或存儲(chǔ)在存儲(chǔ)設(shè)備506上的指令以將用于gui的圖形信息顯示在外部輸入/輸出設(shè)備上,諸如與高速接口508耦接的顯示器516。其它實(shí)施方案中,多個(gè)處理器和/或多個(gè)總線可視情況與多個(gè)存儲(chǔ)器和多個(gè)類型存儲(chǔ)器一起使用。并且,多個(gè)計(jì)算設(shè)備500可與提供必要操作的部分的每個(gè)設(shè)備(如,作為服務(wù)器組、刀片服務(wù)器組或多處理器系統(tǒng))連接。存儲(chǔ)器504存儲(chǔ)計(jì)算設(shè)備500內(nèi)信息。一實(shí)施方案中,存儲(chǔ)器504是一個(gè)或多個(gè)易失性存儲(chǔ)器單元。另一實(shí)施方案中,存儲(chǔ)器504是一個(gè)或多個(gè)非易失性存儲(chǔ)器單元。存儲(chǔ)器504還可以是另一形式的計(jì)算機(jī)可讀介質(zhì),諸如磁盤或光盤。存儲(chǔ)設(shè)備506能夠?yàn)橛?jì)算設(shè)備500提供海量存儲(chǔ)。一實(shí)施方案中,存儲(chǔ)設(shè)備506可以是或包含計(jì)算機(jī)可讀介質(zhì),諸如軟盤設(shè)備、硬盤設(shè)備、光盤設(shè)備或磁帶設(shè)備,快閃存儲(chǔ)器或其它類似固態(tài)存儲(chǔ)設(shè)備,或包括在存儲(chǔ)區(qū)網(wǎng)絡(luò)或其它配置中的設(shè)備的設(shè)備陣列。計(jì)算機(jī)程序產(chǎn)品可以在信息載體中被切實(shí)具體化。計(jì)算機(jī)程序產(chǎn)品還可以包含指令,當(dāng)指令被運(yùn)行時(shí),執(zhí)行諸如上述的一個(gè)或多個(gè)方法。信息載體是計(jì)算機(jī)或機(jī)器可讀介質(zhì),諸如存儲(chǔ)器504、存儲(chǔ)設(shè)備506或處理器502上的存儲(chǔ)器。高速控制器508為計(jì)算設(shè)備500管理帶寬密集操作,而低速控制器512管理較低的帶寬密集操作。這樣的功能分配只是示范性的。一實(shí)施方案中,高速控制器508與存儲(chǔ)器504、顯示器516(如,經(jīng)圖形處理器或加速器)耦接,并且與可以接受各種擴(kuò)展卡(未示出)的高速擴(kuò)展端口510耦接。實(shí)施方案中,低速控制器512與存儲(chǔ)設(shè)備506和低速擴(kuò)展端口514耦接??砂ǜ鞣N通信端口(如,usb、藍(lán)牙、以太網(wǎng)、無線以太網(wǎng))的低速擴(kuò)展端口可以與一個(gè)或多個(gè)輸入/輸出設(shè)備耦接,諸如,鍵盤、指針設(shè)備、掃描儀,或,如,經(jīng)網(wǎng)絡(luò)適配器與諸如交換機(jī)或路由器的網(wǎng)絡(luò)設(shè)備耦接。計(jì)算設(shè)備500可以以多個(gè)不同形式實(shí)現(xiàn),如圖所示。例如,它可被實(shí)現(xiàn)為標(biāo)準(zhǔn)服務(wù)器520,或被多次實(shí)現(xiàn)在這樣的服務(wù)器組。它還可被實(shí)現(xiàn)為機(jī)架式服務(wù)器系統(tǒng)524的部分。此外,它可以實(shí)現(xiàn)在諸如膝上型計(jì)算機(jī)522的個(gè)人計(jì)算機(jī)中。替換地,來自計(jì)算設(shè)備500的組件可與諸如設(shè)備550的移動(dòng)設(shè)備中的其它組件(未示出)組合。這樣的設(shè)備的每個(gè)可以包含計(jì)算設(shè)備500、550的一個(gè)或多個(gè),并且整個(gè)系統(tǒng)可由彼此通信的多個(gè)計(jì)算設(shè)備500、550組成。計(jì)算設(shè)備550包括處理器552、存儲(chǔ)器564、諸如顯示器554的輸入/輸出設(shè)備、通信接口566和收發(fā)器568以及其它組件。設(shè)備550還可以配備諸如微硬盤或其它設(shè)備的存儲(chǔ)設(shè)備以提供附加存儲(chǔ)。組件550、552、564、554、566和568的每個(gè)使用各種總線互連,并且組件的若干可被安裝在公共母板上或視情況以其它方式安裝。處理器552可以運(yùn)行計(jì)算設(shè)備540內(nèi)的指令,包括存儲(chǔ)在存儲(chǔ)器564中的指令。處理器可被實(shí)現(xiàn)為包括單獨(dú)的并且多個(gè)模擬和數(shù)字處理器的芯片的芯片集。處理器可以提供,例如,設(shè)備550的其它組件的協(xié)調(diào),諸如用戶接口的控制、設(shè)備550運(yùn)行的應(yīng)用和設(shè)備550進(jìn)行的無線通信。處理器552可以經(jīng)控制接口648和耦接到顯示器554的顯示接口556與用戶通信。顯示器554可以是,例如,tftlcd(薄膜晶體管液晶顯示器)或oled(有機(jī)發(fā)光二極管)顯示器,或其它適合的顯示技術(shù)。顯示接口556可以包含用于驅(qū)動(dòng)顯示器554向用戶呈現(xiàn)圖形和其它信息的合適的電路??刂平涌?58可以從用戶接收命令并且將它們轉(zhuǎn)換用以提交給處理器552。此外,外部接口562可在與處理器552通信時(shí)被提供,以便使能設(shè)備550與其它設(shè)備的近范圍通信。外部接口562可以提供,例如,一些實(shí)施方案中的有線通信,或其它實(shí)施方案中的無線通信,并且多個(gè)接口也可被使用。存儲(chǔ)器564存儲(chǔ)計(jì)算設(shè)備550內(nèi)的信息。存儲(chǔ)器564可被實(shí)現(xiàn)為以下內(nèi)容的一個(gè)或多個(gè):一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)、一個(gè)或多個(gè)易失性存儲(chǔ)單元、或一個(gè)或多個(gè)非易失性存儲(chǔ)單元。擴(kuò)展存儲(chǔ)器554也可被提供并且經(jīng)擴(kuò)展接口552連接到設(shè)備550,擴(kuò)展接口552可以包括,例如,simm(單列直插式存儲(chǔ)器模塊)卡接口。這樣的擴(kuò)展存儲(chǔ)器554可為設(shè)備550提供額外的存儲(chǔ)空間,或也可為設(shè)備550存儲(chǔ)應(yīng)用或其它信息。具體地,擴(kuò)展存儲(chǔ)器554可以包括執(zhí)行或補(bǔ)充上述過程的指令,并且還可以包括安全信息。從而,例如,擴(kuò)展存儲(chǔ)器554可被提供為設(shè)備550的安全模塊,并且可用許可設(shè)備550的安全使用的指令編程。此外,安全應(yīng)用連同額外信息,諸如以非破解方式在simm卡上放置識(shí)別信息,可經(jīng)由simm卡提供。存儲(chǔ)器可以包括,例如,快閃存儲(chǔ)器和/或nvram存儲(chǔ)器,如以下討論的。一實(shí)施方案中,計(jì)算機(jī)程序產(chǎn)品在信息載體中被切實(shí)具體化。計(jì)算機(jī)程序產(chǎn)品包含指令,當(dāng)運(yùn)行指令時(shí),執(zhí)行諸如上述的一個(gè)或多個(gè)方法。信息載體是計(jì)算機(jī)或機(jī)器可讀介質(zhì),諸如存儲(chǔ)器564、擴(kuò)展存儲(chǔ)器554、處理器552上的存儲(chǔ)器,或是可以,例如通過收發(fā)器568或外部接口562接收的傳播信號(hào)。設(shè)備550可以經(jīng)通信接口566無線通信,通信接口566可以在必要時(shí)包括數(shù)字信號(hào)處理電路。通信接口566可以提供各種模式或協(xié)議下的通信,諸如gsm語音通話、sms、ems或mms消息收發(fā)、cdma、tdma、pdc、wcdma、cdma2000或gprs及其它??梢?,例如,經(jīng)無線電頻率收發(fā)器568發(fā)生這樣的通信。此外,諸如使用藍(lán)牙、wifi或其它這樣的收發(fā)器(未示出)可以發(fā)生短距離通信。此外,gps(全球定位系統(tǒng))接收機(jī)模塊可以向設(shè)備550提供額外的導(dǎo)航和位置相關(guān)的無線數(shù)據(jù),其可視情況由運(yùn)行在設(shè)備550上的應(yīng)用使用。設(shè)備550還可使用音頻編解碼器560語音通信,音頻編解碼器560可以從用戶接收語音信息并且將它轉(zhuǎn)變?yōu)榭墒褂玫臄?shù)字信息。音頻編解碼器660可以同樣地為用戶生成諸如經(jīng)揚(yáng)聲器,如在設(shè)備550的聽筒里聽得見的聲音。這樣的聲音可以包括來自語音電話呼叫的聲音,可以包括錄音(如,語音消息、音樂文件等)并且還可包括由運(yùn)行在設(shè)備550上的應(yīng)用生成的聲音。計(jì)算設(shè)備550可以以多個(gè)不同形式實(shí)現(xiàn),如圖所示。例如,它可被實(shí)現(xiàn)為蜂窩電話580。它還可被實(shí)現(xiàn)為智能電話582、個(gè)人數(shù)字助手或其它類似移動(dòng)設(shè)備的部分。本文所述系統(tǒng)和技術(shù)的各種實(shí)施方案可以在數(shù)字電路、集成電路、專門設(shè)計(jì)的asic(專用集成電路)、計(jì)算機(jī)硬件、固件、軟件和/或其組合中實(shí)現(xiàn)。這些各種實(shí)施方案可以包括在一個(gè)或多個(gè)計(jì)算機(jī)程序中實(shí)現(xiàn)的實(shí)施方案,所述一個(gè)或多個(gè)計(jì)算機(jī)程序在包括至少一個(gè)可編程處理器的可編程系統(tǒng)上可運(yùn)行和/或可解釋,所述至少一個(gè)可編程處理器可以是專用或通用處理器,其與存儲(chǔ)系統(tǒng)、至少一個(gè)輸入設(shè)備和至少一個(gè)輸出設(shè)備耦接以從它們接收數(shù)據(jù)和指令并且向它們發(fā)送數(shù)據(jù)和指令。這些計(jì)算機(jī)程序(也被稱為程序、軟件、軟件應(yīng)用或代碼)包括用于可編程處理器的機(jī)器指令,并且可以實(shí)現(xiàn)在高級(jí)別程序和/或面向?qū)ο缶幊陶Z言中,和/或?qū)崿F(xiàn)在匯編/機(jī)器語言中。如本文使用的,術(shù)語“機(jī)器可讀介質(zhì)”“計(jì)算機(jī)可讀介質(zhì)”指代用來向可編程處理器提供機(jī)器指令和/數(shù)據(jù)的任意計(jì)算機(jī)程序產(chǎn)品、裝置和/或設(shè)備(如,磁盤、光盤、存儲(chǔ)器、可編程邏輯設(shè)備(pld)),包括接收機(jī)器指令作為機(jī)器可讀信號(hào)的機(jī)器可讀介質(zhì)。術(shù)語“機(jī)器可讀信號(hào)”指代用來向可編程處理器提供機(jī)器指令和/或數(shù)據(jù)的任何信號(hào)。為提供與用戶交互,本文所述系統(tǒng)和技術(shù)可被實(shí)現(xiàn)在具有用于向用戶顯示信息的顯示設(shè)備(如,crt(陰極射線管)或lcd(液晶顯示)顯示屏)以及用戶可以向計(jì)算機(jī)提供輸入的鍵盤和指針設(shè)備(如,鼠標(biāo)或跟蹤球)的計(jì)算機(jī)上。其它類型設(shè)備也可被用來提供與用戶交互;例如,提供給用戶的反饋可以是任何形式的感官反饋(如,視覺反饋、聽覺反饋或觸覺反饋);并且來自用戶的輸入可以任何形式接收,包括聲音、語音或觸摸輸入。本文所述的系統(tǒng)和技術(shù)可以實(shí)現(xiàn)在包括后端組件(如,作為數(shù)據(jù)服務(wù)器)或者包括中間件組件(如,應(yīng)用服務(wù)器)或包括前端組件(如,具有圖形用戶界面或網(wǎng)頁瀏覽器的客戶端計(jì)算機(jī),用戶可以經(jīng)圖形用戶界面或網(wǎng)頁瀏覽器與本文所述系統(tǒng)和技術(shù)的實(shí)施方案互動(dòng))或所述后端、中間件或前端組件的任意組合的計(jì)算系統(tǒng)。系統(tǒng)的組件可由任意形式或介質(zhì)的數(shù)字?jǐn)?shù)據(jù)通信(如,通信網(wǎng)絡(luò))互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(“l(fā)an”)、廣域網(wǎng)(“wan”)和互聯(lián)網(wǎng)。計(jì)算系統(tǒng)可以包括客戶端和服務(wù)器。客戶端和服務(wù)器通常彼此遠(yuǎn)離并且一般經(jīng)通信網(wǎng)絡(luò)交互。由于計(jì)算機(jī)程序運(yùn)行在各自計(jì)算機(jī)上并且彼此具有客戶端-服務(wù)器關(guān)系,所以產(chǎn)生了客戶端和服務(wù)器的關(guān)系。盡管本公開包括一些特性,但這些不應(yīng)被解釋為對(duì)本公開或可以要求保護(hù)的內(nèi)容的范圍的限制,而是作為對(duì)本公開的示例實(shí)施方案的特征的描述。在本公開的單獨(dú)的實(shí)施方案的上下文中描述的某些特征還可以組合在單個(gè)實(shí)施方案中提供。相反地,單個(gè)實(shí)施方案的上下文中描述的各種特征也可以在多個(gè)實(shí)施方案中單獨(dú)地提供或以任何適當(dāng)?shù)淖咏M合提供。而且,盡管特征可以在上面描述為在某些組合中起作用并且甚至最初要求保護(hù),但是來自所要求保護(hù)的組合的一個(gè)或多個(gè)特征在一些情況下可以從組合中刪除,并且所要求保護(hù)的組合可以針對(duì)子組合或子組合的變型。類似地,盡管在附圖中以特定順序描述了操作,但是這不應(yīng)被理解為要求這些操作以所示特定順序或按順序執(zhí)行,或者要求所有所示操作被執(zhí)行以實(shí)現(xiàn)期望的結(jié)果。在某些情況下,多任務(wù)和并行處理可能是有利的。而且,上述實(shí)施方案中的各種系統(tǒng)組件的分離不應(yīng)被理解為在所有實(shí)施方案中需要這種分離,并且應(yīng)當(dāng)理解,所述程序組件和系統(tǒng)通??梢砸黄鸺稍趩蝹€(gè)軟件產(chǎn)品中或封裝到多個(gè)軟件產(chǎn)品。因此,已經(jīng)描述了本公開的具體實(shí)施方案。其它實(shí)施方案在所附權(quán)利要求的范圍內(nèi)。例如,權(quán)利要求中記載的操作可以以不同順序執(zhí)行并且仍實(shí)現(xiàn)期望的結(jié)果。已經(jīng)描述了多種實(shí)施方案。然而,應(yīng)當(dāng)理解,在不脫離本公開的精神和范圍的情況下可以進(jìn)行各種修改。例如,可以使用以上所示各種形式的流,包括重新排序、添加或移除的步驟。因此,其它實(shí)施方案在所附權(quán)利要求的范圍內(nèi)。當(dāng)前第1頁12