本申請(qǐng)的實(shí)施例涉及時(shí)間序列數(shù)據(jù),具體而言涉及用于存儲(chǔ)時(shí)間序列數(shù)據(jù)的多表示方案。
背景技術(shù):
除非本文另外指出,否則本部分中描述的方案并不是本申請(qǐng)中的權(quán)利要求的現(xiàn)有技術(shù),并且并不因?yàn)楸话ㄔ诒静糠种芯捅怀姓J(rèn)為是現(xiàn)有技術(shù)。
實(shí)施例涉及時(shí)間序列數(shù)據(jù),具體而言涉及用于存儲(chǔ)時(shí)間序列數(shù)據(jù)的多表示方案。時(shí)間序列(timeseries)是沿著時(shí)間維度排序的記錄數(shù)據(jù)點(diǎn)的序列,它們經(jīng)常出現(xiàn)在監(jiān)視工業(yè)過程、商業(yè)特性和關(guān)鍵績(jī)效指標(biāo)(keyperformanceindicator,kpi)發(fā)展、金融參數(shù)、科學(xué)實(shí)驗(yàn)、物理測(cè)量及其他事項(xiàng)之時(shí)。
時(shí)間序列分析是在許多應(yīng)用領(lǐng)域中用作商業(yè)規(guī)劃和決策支持的基礎(chǔ)的數(shù)據(jù)分析技術(shù)。從而在研究和工業(yè)中始終存在著對(duì)于查詢、挖掘和分析時(shí)間序列的興趣。時(shí)間序列分析的任務(wù)是識(shí)別時(shí)間序列數(shù)據(jù)內(nèi)和時(shí)間序列數(shù)據(jù)間的模式、序列、相關(guān)性和特性,并且基于這些觀察得出結(jié)論。
近來在計(jì)算機(jī)硬件和傳感器技術(shù)中的發(fā)展已使得用高達(dá)mhz或更高的采樣率記錄的連續(xù)測(cè)量的可用性越來越高。這帶來了細(xì)粒的時(shí)間序列,并且因此帶來了大幅增大的數(shù)據(jù)量和數(shù)據(jù)流傳輸頻率。
此外,可用傳感器的量在大幅增長(zhǎng),尤其是考慮到諸如互聯(lián)網(wǎng)(internetofthings,iot)之類的新應(yīng)用場(chǎng)景。作為示例,移動(dòng)電話上的基于位置的服務(wù)提供了可能數(shù)百萬個(gè)同時(shí)提供數(shù)據(jù)的傳感器。
技術(shù)實(shí)現(xiàn)要素:
用于存儲(chǔ)時(shí)間序列數(shù)據(jù)的靈活方案利用多個(gè)表示以便實(shí)現(xiàn)諸如存儲(chǔ)器消耗、精確度和持續(xù)性之類的各種維度之間的優(yōu)化。按照本文使用的,時(shí)間序列表示指的是時(shí)間序列數(shù)據(jù)的存儲(chǔ)方案,即時(shí)間序列欄(timeseriescolumn)的數(shù)據(jù)點(diǎn)如何被存儲(chǔ)在存儲(chǔ)器中。表示(representation)定義了以下四個(gè)參數(shù):覆蓋的時(shí)間段、基于模型的壓縮技術(shù)、精確度(例如,誤差界限規(guī)范)和存儲(chǔ)介質(zhì)。
多表示時(shí)間序列存儲(chǔ)的第一方面為沿著時(shí)間軸(水平)的時(shí)間序列的各種部分選擇性地提供不同的表示。在這個(gè)水平方面中,第一壓縮模型、精確度和/或存儲(chǔ)介質(zhì)可存儲(chǔ)在時(shí)間序列中的一個(gè)時(shí)段期間發(fā)生的數(shù)據(jù),而另一不同的壓縮模型、精確度和/或存儲(chǔ)介質(zhì)被應(yīng)用來存儲(chǔ)另一時(shí)段期間的數(shù)據(jù)。
根據(jù)一個(gè)不同的(垂直)方面,可利用不同的壓縮模型、誤差界限和/或存儲(chǔ)介質(zhì)來以多個(gè)表示保存同一時(shí)段期間的時(shí)間序列數(shù)據(jù)。雖然增大了對(duì)存儲(chǔ)器的需求,但這種垂直存儲(chǔ)可為特定用途(例如,分析)提供高效訪問。根據(jù)水平和/或垂直分布存儲(chǔ)時(shí)間序列數(shù)據(jù)對(duì)于諸如數(shù)據(jù)老化和操作者執(zhí)行模式的優(yōu)化之類的應(yīng)用可能是有用的,使得查詢響應(yīng)時(shí)間減少和/或系統(tǒng)提供的算法性能改善。
一種由計(jì)算機(jī)實(shí)現(xiàn)的方法的實(shí)施例包括引擎接收時(shí)間序列數(shù)據(jù)。引擎參考第一輸入來從時(shí)間序列數(shù)據(jù)創(chuàng)建包括覆蓋時(shí)間段、壓縮模型、誤差界限和存儲(chǔ)介質(zhì)的第一表示,其中配置指定第一表示為位于熱區(qū)內(nèi)。引擎將第一表示存儲(chǔ)在存儲(chǔ)介質(zhì)內(nèi)。引擎參考第二輸入來從時(shí)間序列數(shù)據(jù)創(chuàng)建在覆蓋時(shí)間段、壓縮模型、誤差界限和存儲(chǔ)介質(zhì)的至少一者中與第一表示不同的第二表示。引擎存儲(chǔ)第二表示。
一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包含用于執(zhí)行一種方法的計(jì)算機(jī)程序,該方法包括引擎接收時(shí)間序列數(shù)據(jù),并且引擎參考第一輸入來從時(shí)間序列數(shù)據(jù)創(chuàng)建包括覆蓋時(shí)間段、壓縮模型、誤差界限和非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的第一表示,其中配置指定第一表示為位于熱區(qū)內(nèi)。引擎將第一表示存儲(chǔ)在非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。引擎參考水平配置來從時(shí)間序列數(shù)據(jù)創(chuàng)建在壓縮模型、誤差界限和非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的至少一者中與第一表示不同的第二表示,第二表示的第二覆蓋時(shí)間段不與第一表示的覆蓋時(shí)間段重疊。引擎存儲(chǔ)第二表示。
一種計(jì)算機(jī)系統(tǒng)的實(shí)施例包括內(nèi)存數(shù)據(jù)庫引擎和在所述計(jì)算機(jī)系統(tǒng)上可執(zhí)行的軟件程序,該軟件程序被配置為使得內(nèi)存數(shù)據(jù)庫引擎接收時(shí)間序列數(shù)據(jù)。軟件程序還被配置為使得內(nèi)存數(shù)據(jù)庫引擎參考第一輸入來從時(shí)間序列數(shù)據(jù)創(chuàng)建包括覆蓋時(shí)間段、壓縮模型、誤差界限和存儲(chǔ)介質(zhì)的第一表示,其中配置指定第一表示為位于熱區(qū)內(nèi)。軟件程序還被配置為使得內(nèi)存數(shù)據(jù)庫引擎將第一表示存儲(chǔ)在存儲(chǔ)介質(zhì)中。軟件程序還被配置為使得內(nèi)存數(shù)據(jù)庫引擎參考第二輸入來從時(shí)間序列數(shù)據(jù)創(chuàng)建在覆蓋時(shí)間段、壓縮模型、誤差界限和存儲(chǔ)介質(zhì)的至少一者中與第一表示不同的第二表示。軟件程序還被配置為使得內(nèi)存數(shù)據(jù)庫引擎存儲(chǔ)第二表示。
在某些實(shí)施例中,第二輸入包括水平配置,并且第二表示的第二覆蓋時(shí)間段不與第一表示的覆蓋時(shí)間段重疊。
在一些實(shí)施例中,引擎參考垂直配置來從時(shí)間序列數(shù)據(jù)創(chuàng)建第三表示,其中第三表示的第三時(shí)間段與第一表示的覆蓋時(shí)間段或第二表示的第二覆蓋時(shí)間段重疊,并且其中第三表示在壓縮模型和誤差界限的至少一者中與第一表示不同。
在各種實(shí)施例中,第二輸入包括垂直配置;以及第二表示的第二時(shí)間段與第一表示的覆蓋時(shí)間段重疊。
根據(jù)特定實(shí)施例,第二輸入是基于數(shù)據(jù)老化過程的。
根據(jù)某些實(shí)施例,第二輸入是基于操作執(zhí)行模式優(yōu)化過程的。
在特定實(shí)施例中,存儲(chǔ)介質(zhì)包括內(nèi)存數(shù)據(jù)庫的隨機(jī)訪問存儲(chǔ)器(ram),并且引擎包括內(nèi)存數(shù)據(jù)庫引擎。
在一些實(shí)施例中,第一表示的或第二表示的數(shù)據(jù)被以由壓縮模型確定的粒度來存儲(chǔ),并且該方法還包括引擎接收根據(jù)不同粒度返回第一表示的或第二表示的數(shù)據(jù)的請(qǐng)求,并且一迭代器執(zhí)行算法來向引擎返回不同粒度的數(shù)據(jù)。
在某些實(shí)施例中,迭代器執(zhí)行算法來執(zhí)行聚集或解聚。
以下詳細(xì)描述和附圖提供了對(duì)實(shí)施例的性質(zhì)和優(yōu)點(diǎn)的更好理解。
附圖說明
圖1是根據(jù)實(shí)施例的系統(tǒng)的簡(jiǎn)化視圖。
圖1a是圖1的系統(tǒng)的詳細(xì)視圖。
圖2示出了根據(jù)實(shí)施例可被利用來執(zhí)行時(shí)間序列數(shù)據(jù)的多表示的示范性壓縮技術(shù)。
圖3示出了根據(jù)實(shí)施例的方法的簡(jiǎn)化流程圖。
圖4圖示了根據(jù)實(shí)施例的、利用時(shí)間序列數(shù)據(jù)的水平多表示存儲(chǔ)實(shí)現(xiàn)數(shù)據(jù)老化過程。
圖5圖示了根據(jù)實(shí)施例的、利用時(shí)間序列數(shù)據(jù)的水平多表示存儲(chǔ)實(shí)現(xiàn)執(zhí)行模式優(yōu)化過程。
圖6圖示了根據(jù)實(shí)施例的、利用時(shí)間序列數(shù)據(jù)的垂直多表示存儲(chǔ)實(shí)現(xiàn)執(zhí)行模式優(yōu)化過程。
圖7圖示了根據(jù)實(shí)施例的、組合利用水平和垂直多表示時(shí)間序列存儲(chǔ)的數(shù)據(jù)老化和執(zhí)行模式優(yōu)化的過程。
圖8呈現(xiàn)了顧問組件的簡(jiǎn)化視圖,包括輸入和輸出。
圖9圖示了透明度迭代器概念的簡(jiǎn)化視圖。
圖10圖示了根據(jù)實(shí)施例的、被配置為實(shí)現(xiàn)時(shí)間序列數(shù)據(jù)的多表示存儲(chǔ)的專用計(jì)算機(jī)器的硬件。
圖11圖示了示例計(jì)算機(jī)系統(tǒng)。
具體實(shí)施方式
本文描述了被配置為提供時(shí)間序列數(shù)據(jù)的多表示存儲(chǔ)的方法和裝置。在以下描述中,出于說明目的,記載了許多示例和具體細(xì)節(jié)以便提供對(duì)本發(fā)明的透徹理解。然而,本領(lǐng)域技術(shù)人員將會(huì)明白,如權(quán)利要求限定的本發(fā)明的實(shí)施例可以只包括這些示例中的特征的一些或全部,或者與以下描述的其他特征相結(jié)合,并且還可包括本文描述的特征和概念的修改和等同。
用于存儲(chǔ)時(shí)間序列數(shù)據(jù)的靈活方案利用多個(gè)表示以便實(shí)現(xiàn)諸如覆蓋的時(shí)間段、壓縮技術(shù)、精確度、持續(xù)性(存儲(chǔ)介質(zhì))和存儲(chǔ)器消耗之類的各種維度之間的優(yōu)化。第一方面沿著時(shí)間軸(水平)為時(shí)間序列的各種部分提供不同的表示。在這個(gè)水平方面中,第一壓縮模型、精確度和/或存儲(chǔ)介質(zhì)可存儲(chǔ)在時(shí)間序列中的一個(gè)時(shí)段期間發(fā)生的數(shù)據(jù),而另一不同的壓縮模型、精確度和/或存儲(chǔ)介質(zhì)存儲(chǔ)另一時(shí)段期間的數(shù)據(jù)。根據(jù)一個(gè)不同的(垂直)方面,可利用不同的壓縮模型來以多個(gè)表示保存同一時(shí)段期間的時(shí)間序列數(shù)據(jù)。雖然增大了對(duì)存儲(chǔ)器的需求,但這種垂直存儲(chǔ)可為特定用途提供高效訪問。
根據(jù)水平和/或垂直分布存儲(chǔ)時(shí)間序列數(shù)據(jù)對(duì)于諸如數(shù)據(jù)老化和操作者執(zhí)行模式的優(yōu)化之類的應(yīng)用可能是有用的。根據(jù)實(shí)施例的多表示從而可結(jié)合不同表示的益處以便實(shí)現(xiàn)迅速的執(zhí)行以及更低的存儲(chǔ)器消耗、在傳統(tǒng)方案中可能沖突的要求。
圖1呈現(xiàn)了根據(jù)實(shí)施例的系統(tǒng)100的簡(jiǎn)化視圖。具體地,從最近時(shí)間t0到時(shí)間t-4及更早取得時(shí)間序列數(shù)據(jù)102形式的輸入。
時(shí)間序列包括表示時(shí)間的一欄,和具有表示不同測(cè)量的數(shù)個(gè)(例如,n個(gè))值的對(duì)應(yīng)欄。時(shí)間序列也可遵從多個(gè)欄。每一欄可遵從不同的數(shù)據(jù)類型。
給定這種多欄(即,多變量)時(shí)間序列,所有欄遵循單個(gè)時(shí)間戳并且另外還確保它們?nèi)季哂邢嗤拈L(zhǎng)度。多表示存儲(chǔ)的實(shí)施例通常是按每欄應(yīng)用的,并且對(duì)于每一欄可以有不同的水平和垂直配置。
具體而言,存儲(chǔ)引擎110接收時(shí)間序列數(shù)據(jù)。存儲(chǔ)引擎還接收配置輸入114,該配置輸入114可規(guī)定熱區(qū)指定130、水平配置132和/或垂直配置134。這些輸入在下文聯(lián)系圖1a來論述。
基于這些輸入,存儲(chǔ)引擎從時(shí)間序列數(shù)據(jù)生成包括其多個(gè)表示的多表示存儲(chǔ)111。這多個(gè)表示可分布在水平(時(shí)間)軸和/或垂直(表示)軸上。
具體地,圖1a示出了圖1的系統(tǒng)的詳細(xì)視圖。圖1a示出了利用分布在水平(時(shí)間)軸和/或垂直(表示)軸上的多個(gè)表示(例如,104a、104b、104c)存儲(chǔ)的時(shí)間序列數(shù)據(jù)。時(shí)間序列表示是時(shí)間序列數(shù)據(jù)的存儲(chǔ)方案,即時(shí)間序列欄的數(shù)據(jù)點(diǎn)如何被存儲(chǔ)。時(shí)間序列欄的表示可對(duì)應(yīng)于以下方面中的一個(gè)或多個(gè):
1)覆蓋的時(shí)間段;
2)壓縮技術(shù)(例如,基于模型的壓縮);
3)可接受的誤差界限(即,在特定壓縮模型內(nèi)壓縮值和真實(shí)值之間的偏差——通常表示為百分比);
4)存儲(chǔ)介質(zhì)(主存儲(chǔ)器105、閃存、盤107、磁帶等等)。
從而,時(shí)間序列欄可以以第一表示(例如,利用基于模型的壓縮)以1%的誤差界限存儲(chǔ)在主存儲(chǔ)器中??商鎿Q地,時(shí)間序列欄可以以不同的表示在沒有任何壓縮的情況下存儲(chǔ)(例如,不那么昂貴的硬盤或磁帶介質(zhì)上的原始值109)。
取決于特定配置,每個(gè)表示對(duì)于諸如覆蓋的時(shí)間段、壓縮比率、存儲(chǔ)器消耗、誤差界限和執(zhí)行效率之類的因素提供不同的特性。由于此原因,實(shí)施例不是為整個(gè)時(shí)間序列只提供單個(gè)表示,而是允許了存儲(chǔ)同一時(shí)間段期間的多個(gè)表示(垂直多表示)和/或?qū)τ诓煌瑫r(shí)間段存儲(chǔ)多個(gè)表示(水平多表示)。
圖1a還示出了存儲(chǔ)引擎也接收配置輸入114。這可包括熱區(qū)指定、水平配置和/或垂直配置。
返回圖1,在某些實(shí)施例中,熱區(qū)指定、水平配置和/或垂直配置可由人類用戶140提供給引擎。在這種實(shí)施例中,用戶試圖手動(dòng)指導(dǎo)時(shí)間序列數(shù)據(jù)的多個(gè)表示的生成和存儲(chǔ)。
然而,可替換地,到存儲(chǔ)引擎的熱區(qū)指定、水平配置和/或垂直配置輸入可由單獨(dú)的多表示顧問組件115生成。聯(lián)系圖8來提供關(guān)于多表示顧問的細(xì)節(jié)。
具體地,顧問可參考成本模型112,該成本模型112包括量化多表示的各種維度(例如,壓縮技術(shù)、精確度、覆蓋的時(shí)間段、存儲(chǔ)器消耗、速度)的值。
圖1還指示出顧問還可接收用戶配置117,以及額外的輸入119。如圖8中所示,這些額外的輸入可包括先前(離線)存儲(chǔ)工作負(fù)載活動(dòng)150、當(dāng)前(在線)存儲(chǔ)工作負(fù)載活動(dòng)152和時(shí)間序列特性154。
這里,離線顧問模式在時(shí)間序列被添加時(shí)基于先前工作負(fù)載創(chuàng)建初始配置。在在線模式中,顧問也能夠針對(duì)查詢行為中的不斷發(fā)生的變化或者當(dāng)前工作負(fù)載中的時(shí)間序列特性來適應(yīng)性地改變配置。離線和在線工作負(fù)載稍后在下文詳細(xì)論述。
關(guān)于時(shí)間序列特性,這些表示時(shí)間序列數(shù)據(jù)的元數(shù)據(jù)。這些特性可包括但不限于長(zhǎng)度、間隔、最小值、最大值、不同值的數(shù)目、均值、標(biāo)準(zhǔn)偏差、方差、數(shù)據(jù)類型等等。時(shí)間序列特性也在下文進(jìn)一步論述。
現(xiàn)在參考圖1a,基于(從用戶和/或顧問)接收到的一個(gè)或多個(gè)輸入,引擎可進(jìn)一步工作來識(shí)別存在于時(shí)間序列數(shù)據(jù)內(nèi)的“熱區(qū)”120。熱區(qū)是時(shí)間序列中的經(jīng)常作為查詢和操作的目標(biāo)的范圍。在一些情況中,這涉及時(shí)間序列的最新近值,因?yàn)樗鼈兛赡苁欠治鏊惴ê途奂貏e感興趣的。然而,這不是必需的,并且熱區(qū)可存在于不是最近時(shí)間的地方(例如,來自指示過去的地震事件的振動(dòng)傳感器)。在存儲(chǔ)的多表示時(shí)間序列數(shù)據(jù)中配置(一個(gè)或多個(gè))熱區(qū)的細(xì)節(jié)稍后在下文提供。
如前文提到的,高數(shù)據(jù)速率和巨大數(shù)據(jù)量正在對(duì)負(fù)責(zé)時(shí)間序列數(shù)據(jù)的存儲(chǔ)和分析的現(xiàn)代內(nèi)存數(shù)據(jù)庫系統(tǒng)造成增大的存儲(chǔ)器壓力和分析執(zhí)行效率問題。有損和無損壓縮技術(shù)的應(yīng)用從存儲(chǔ)器消耗的角度來看可解決該問題。
然而,各種壓縮技術(shù)對(duì)于壓縮比率和算法的執(zhí)行速度具有不同的特性。一些方案提供非常高的壓縮比率,但對(duì)于查詢和挖掘而言是緩慢的。其他的可為某些分析請(qǐng)求提供非??焖俚慕Y(jié)果,但對(duì)于其他分析或者就壓縮比率而言卻在執(zhí)行時(shí)間上受到損害。
從而,對(duì)時(shí)間序列內(nèi)的某些時(shí)段選擇最有益的數(shù)據(jù)表示對(duì)于優(yōu)化執(zhí)行效率、存儲(chǔ)器消耗和精確度的維度是重要的。從而,根據(jù)實(shí)施例,此選擇可針對(duì)各個(gè)查詢工作負(fù)載并且尤其是考慮到包括但不限于以下各項(xiàng)的因素來執(zhí)行:
·最經(jīng)常使用的算法和聚集,
·最近請(qǐng)求和/或最經(jīng)常請(qǐng)求的時(shí)間序列,
·時(shí)間序列的目標(biāo)請(qǐng)求時(shí)間范圍;
·由用戶配置定義的用戶偏好,包括針對(duì)精確度的誤差閾值的定義。
現(xiàn)在描述各種壓縮技術(shù)。壓縮技術(shù)通常被區(qū)分為有損的和無損的。無損壓縮技術(shù),例如行程長(zhǎng)度編碼(runlengthencoding,rle)、差分編碼(deltaencoding)或比特壓縮,利用數(shù)據(jù)中的相似性、重現(xiàn)、模式或特殊對(duì)齊來減少要求的存儲(chǔ)器。它們特別適合于具有數(shù)目較少的不同值和重現(xiàn)的模式的數(shù)據(jù)集合。
雖然以下描述聚焦于有損壓縮技術(shù),但這不是必需的。在一些實(shí)施例中,時(shí)間序列數(shù)據(jù)的多表示可基于無損壓縮。
如下所述的實(shí)施例明確地聚焦于有損壓縮,并且使用基于模型的壓縮作為示例?;谀P偷膲嚎s力圖通過擬合最佳近似當(dāng)前的時(shí)間序列的模型來近似時(shí)間序列的值。
許多壓縮技術(shù)允許定義每值或每時(shí)間序列的誤差界限。這樣,它們限制了信息損耗(即,當(dāng)使用有損壓縮技術(shù)時(shí)發(fā)生的誤差)。
以下描述了可以采用的若干個(gè)示范性的基于模型的壓縮技術(shù)。然而,這些只表示示例,并且根據(jù)各種實(shí)施例可以一般方式添加其他壓縮技術(shù)。
一項(xiàng)有損壓縮技術(shù)是自適應(yīng)分段常數(shù)近似(adaptivepiecewiseconstantapproximation,apca)。此壓縮技術(shù)將時(shí)間序列劃分成片段,其中每個(gè)片段由一常數(shù)函數(shù)近似包含的變量。片段是通過確定片段值并且只要該值遵從近似常數(shù)左右的定義的誤差界限就向此片段添加觀察來創(chuàng)建的。誤差類型是按每個(gè)值的。
另一個(gè)有損壓縮技術(shù)是旋轉(zhuǎn)門趨勢(shì)(swingingdoortrending,sdt)。sdt與apca類似。其將時(shí)間序列劃分成片段,在這些片段內(nèi)值由線性函數(shù)近似。只要線性邊界(門)聯(lián)合描述朝著它們?cè)诘谝稽c(diǎn)處的正交連接的180°的角度,值就被添加到片段。誤差類型是按每個(gè)值的。
還有一種有損壓縮技術(shù)是樣條逼近(splineapproximation,sa)。sa將樣條擬合到時(shí)間序列。只要值確保定義的誤差界限,其就被添加到當(dāng)前樣條。否則,創(chuàng)建新的樣條片段。誤差類型是按每個(gè)值或按每個(gè)系列的。
另一種有損壓縮技術(shù)是完全模型描述(fullmodeldescription,fmd)。這里,時(shí)間序列模型(例如,holtwinters)被擬合到整個(gè)時(shí)間序列。該模型隨后被用于為時(shí)間上的每個(gè)點(diǎn)計(jì)算值。誤差類型是按每個(gè)值或按每個(gè)系列的。
對(duì)于定義每值誤差的壓縮技術(shù),整個(gè)時(shí)間序列上的整體誤差通??尚〉枚唷T蚴窃诨谀P偷膲嚎s中使用的模型通常描述了時(shí)間序列值的平均情況。從而,真實(shí)值正向和負(fù)向地偏離近似。
此外,每值誤差界限只涉及誤差的最大值,而不是實(shí)際誤差。結(jié)果,誤差效果隨著時(shí)間的流逝而拉平。
圖2提供了就存儲(chǔ)器消耗和潛在時(shí)間序列誤差而言對(duì)某些壓縮技術(shù)的評(píng)估。注意,此圖從時(shí)間序列數(shù)據(jù)表示的其他方面(即提供的誤差界限以及存儲(chǔ)介質(zhì))進(jìn)行了抽象。另外,此圖只呈現(xiàn)了可用于根據(jù)實(shí)施例的多表示中的少數(shù)幾個(gè)可能壓縮技術(shù),而多種其他壓縮技術(shù)可被使用。
圖2包括在本描述中具體參考的特定示例技術(shù)。這些選擇的技術(shù)可被替換為其他種類的有損壓縮技術(shù)。無論壓縮技術(shù)是什么,都可就以下相關(guān)維度中的一個(gè)或多個(gè)來對(duì)其進(jìn)行判斷:
·可達(dá)到的壓縮比率;
·與真實(shí)值的偏差(即,近似誤差);
·壓縮/解壓縮速度;
·聚集和分析算法的執(zhí)行速度。
除了使用的存儲(chǔ)器空間的減少以外,基于模型的壓縮技術(shù)還可提供某些其他益處。首先,它們提供了降低標(biāo)準(zhǔn)聚集操作的執(zhí)行速度的潛力。這些包括但不限于sum、avg、histogram、stddev。
從而,為了在給定apca壓縮的情況下計(jì)算標(biāo)準(zhǔn)聚集sum,在各片段上運(yùn)行比掃描整個(gè)時(shí)間序列欄比較不那么昂貴。然而,基于模型的壓縮技術(shù)改善計(jì)算速度的潛力取決于特定功能。如下文聯(lián)系圖5-圖7的示例所描述,優(yōu)化執(zhí)行模式的這個(gè)潛力對(duì)于本文描述的多表示方案可提供進(jìn)一步的動(dòng)機(jī)。
基于模型的壓縮技術(shù)的第二個(gè)潛在益處在于插值和粒度化(granularization)是免費(fèi)實(shí)現(xiàn)的。也就是說,基于模型的壓縮技術(shù)的連續(xù)性特征(即,使用連續(xù)函數(shù)而不是離散值)允許了從可用值抽象和時(shí)間戳的粒度。缺失的值是通過評(píng)估模型的連續(xù)函數(shù)來確定的。
類似地,時(shí)間戳分辨率可通過對(duì)來自下層壓縮模型的值采樣來增大和減小。
此外,函數(shù)的連續(xù)性特征還允許了非等距采樣。這導(dǎo)致從價(jià)值觀點(diǎn)來看提供存儲(chǔ)非等距時(shí)間序列的一種容易方式的壓縮。
基于模型的壓縮技術(shù)的第三個(gè)潛在益處是一些分析函數(shù)更容易計(jì)算。兩個(gè)突出示例是孤立點(diǎn)檢測(cè),以及預(yù)測(cè)。
具體而言,由于基于模型的壓縮技術(shù)通常創(chuàng)建模型來描述時(shí)間序列的一般情況,所以強(qiáng)孤立點(diǎn)可容易地被檢測(cè)為從一般模型發(fā)散。類似地,對(duì)于預(yù)報(bào),由于模型已經(jīng)存在,所以預(yù)測(cè)是通過將模型投影到未來的簡(jiǎn)單計(jì)算。然而,再一次,這些分析函數(shù)的特定屬性在各種可用的基于模型的壓縮技術(shù)之間是不同的。
如上文寬泛提及的,實(shí)施例采用了時(shí)間序列數(shù)據(jù)的多表示存儲(chǔ)。從而,實(shí)施例不是只允許每時(shí)間序列欄的單個(gè)數(shù)據(jù)表示,而是支持水平和/或垂直方式的多個(gè)表示。此方案力圖在存儲(chǔ)器消耗、精確度和執(zhí)行速度的各種性能維度中進(jìn)一步優(yōu)化效率。
圖3是示出根據(jù)實(shí)施例的方法300的簡(jiǎn)化流程圖。在第一步驟302中,接收時(shí)間序列數(shù)據(jù)。
在第二步驟304中,識(shí)別時(shí)間序列數(shù)據(jù)內(nèi)的熱區(qū)。在第三步驟306中,創(chuàng)建熱區(qū)中的數(shù)據(jù)的第一表示。
在第四步驟308中,評(píng)估第一表示。在第五步驟310中,存儲(chǔ)第一表示。
在第六步驟312中,創(chuàng)建時(shí)間序列數(shù)據(jù)的第二表示。在第七步驟314中,存儲(chǔ)第二表示。
如上所述,根據(jù)實(shí)施例的多表示時(shí)間序列存儲(chǔ)可采用水平分布和垂直分布兩個(gè)方面。以水平方式提供多個(gè)表示涉及時(shí)間序列欄的不同時(shí)段,使用不同的數(shù)據(jù)表示。此水平多表示的一個(gè)使用案例是數(shù)據(jù)老化。
示例–數(shù)據(jù)老化
數(shù)據(jù)老化(dataaging)指的是依據(jù)諸如訪問的頻率和成本之類的方面,將某些數(shù)據(jù)移動(dòng)到不同的存儲(chǔ)介質(zhì)的過程。數(shù)據(jù)老化可以盡可能精確地存儲(chǔ)時(shí)間序列的最新近部分,利用為時(shí)間序列分析提供良好執(zhí)行速度的表示。
與之相對(duì),對(duì)于較舊的值,可接受的誤差率可被逐漸增大并且也允許降低的執(zhí)行速度。此存儲(chǔ)方案背后的原理在于,與較舊的值相比,更新近的值更常被請(qǐng)求,并且更經(jīng)常是時(shí)間序列分析算法的目標(biāo)。
此外,可識(shí)別所謂的熱區(qū)(即,數(shù)據(jù)中的經(jīng)常是分析/聚集操作的目標(biāo)的區(qū)域)。熱區(qū)經(jīng)常(但并非一定)是最新近值的一部分。
從而,數(shù)據(jù)老化和熱區(qū)提供了一種隨著時(shí)間的流逝逐漸減小存儲(chǔ)器消耗的方式。當(dāng)對(duì)于整欄只使用單個(gè)數(shù)據(jù)表示時(shí),這將是不可能的。
圖4圖示了利用水平多表示的數(shù)據(jù)老化。此示例改變了基于模型的壓縮技術(shù)和誤差率,帶來了減少的存儲(chǔ)器消耗,其代價(jià)是可能降低近似的精確度。
在圖4的示例中,熱區(qū)與最新近值一致,并且包含前十一個(gè)值。這個(gè)特定示例使用了對(duì)于熱區(qū)具有每值1%的誤差的樣條壓縮,對(duì)于熱區(qū)外的數(shù)據(jù)選擇具有放松的誤差界限的不同壓縮技術(shù)。
示例–執(zhí)行模式優(yōu)化
除了數(shù)據(jù)老化以外,還可能分析聚集或分析查詢的訪問模式并且指派對(duì)于當(dāng)前的各功能有益的數(shù)據(jù)表示。這種應(yīng)用可聚焦于執(zhí)行速度,而不是優(yōu)化存儲(chǔ)器消耗。此方案被稱為執(zhí)行模式優(yōu)化(executionpatternoptimization)。
考慮圖5中的示例,示出了具有每日(dn)粒度的時(shí)間序列數(shù)據(jù)。在此示例中,apca1%在計(jì)算sum聚集時(shí)是最有益的,并且sum是工作負(fù)載中的最頻繁操作??紤]到對(duì)于聚集只考慮一星期的第一天,可相應(yīng)地識(shí)別數(shù)據(jù)中的熱區(qū)并且對(duì)于每星期的第一天(例如,d0、d-7、d-14等等)選擇apca%。
對(duì)于其他數(shù)據(jù)點(diǎn)(對(duì)應(yīng)于一星期的后幾天),可選擇具有更好的壓縮比率的另一種表示。
垂直多表示通過在熱區(qū)內(nèi)同時(shí)支持多個(gè)表示可改善利用水平多表示的存儲(chǔ)策略。從而,多個(gè)操作可在時(shí)間序列的同一時(shí)段內(nèi)具有聯(lián)合目標(biāo)區(qū)域。
此外,與數(shù)據(jù)表示的水平分布相結(jié)合,也可能垂直地應(yīng)用多個(gè)數(shù)據(jù)表示。在此方案的幫助下,可以進(jìn)一步改善時(shí)間序列聚集和分析操作的執(zhí)行速度。
為此,同時(shí)提供多個(gè)數(shù)據(jù)表示,假定每一者對(duì)于最頻繁使用的操作中的一個(gè)或幾個(gè)是有益的。雖然此方案帶來了存儲(chǔ)器的增加,但對(duì)于聚焦于分析/聚集執(zhí)行速度而不是單單聚焦于存儲(chǔ)器消耗的減少的系統(tǒng)而言,付出這個(gè)代價(jià)是可接受的。這是用戶需要預(yù)先定義的事項(xiàng),以允許系統(tǒng)由此采用這些決策。這個(gè)用戶配置可作為加權(quán)因子被反映在成本模型中。
壓縮的使用允許了同時(shí)訪問多個(gè)表示,而不將存儲(chǔ)器消耗增大到大于原始數(shù)據(jù)。為了限制額外存儲(chǔ)器的消耗,某些實(shí)施例可只對(duì)數(shù)據(jù)的所識(shí)別的熱區(qū)允許多個(gè)表示的垂直分布。
在圖6所示的示例中,假定sdt最適合于孤立點(diǎn)檢測(cè)和計(jì)算自相關(guān)。apca提供對(duì)于avg和sum聚集的最佳執(zhí)行速度。
對(duì)于所有操作確定潛在熱區(qū)。對(duì)于此熱區(qū),實(shí)施例并行使用兩個(gè)表示(sdt、apca)。每個(gè)操作以為其提供最高執(zhí)行速度的表示為目標(biāo)。
從而,sum/avg操作從使用apca的表示中讀取數(shù)據(jù)。自相關(guān)操作以及孤立點(diǎn)檢測(cè)操作在sdt表示上工作。
圖6從而示出了考慮整個(gè)熱區(qū)的孤立點(diǎn)檢測(cè),而聚集函數(shù)最經(jīng)常只在前十個(gè)值上計(jì)算。
此外,自相關(guān)(auto_corr)具有每五個(gè)值讀取五個(gè)值的重復(fù)模式。相應(yīng)地指派訪問模式,并且創(chuàng)建apca和sdt表示來共存于熱區(qū)中。
也可以組合數(shù)據(jù)老化和執(zhí)行模式優(yōu)化。這在圖7的示例中圖示,其采用水平多表示來實(shí)現(xiàn)歷史數(shù)據(jù)存盤的老化,而執(zhí)行模式優(yōu)化(sum,auto_corr)是利用熱區(qū)內(nèi)的垂直多表示來實(shí)現(xiàn)的。
關(guān)于在哪些時(shí)間范圍中使用哪些模型以及各個(gè)模型考慮哪些值的具體配置可由多表示顧問確定。圖8是圖示出顧問的工作過程的簡(jiǎn)化圖,包括對(duì)輸入和輸出的識(shí)別。
多表示顧問確定用于整個(gè)時(shí)間序列和時(shí)間序列欄的不同表示的最優(yōu)配置和分布。整體上,顧問做出關(guān)于以下各項(xiàng)中的一個(gè)或多個(gè)的決策:
·使用的壓縮技術(shù);
·應(yīng)用到表示的(一個(gè)或多個(gè))范圍;
·誤差界限(在用戶配置的邊界中);
·多個(gè)且重疊的表示;
·存儲(chǔ)介質(zhì)。
對(duì)于每個(gè)添加的時(shí)間序列,此確定過程可利用統(tǒng)計(jì)信息和記錄的工作負(fù)載來離線完成一次。然后,顧問可基于工作負(fù)載變化和在使用期間出現(xiàn)的時(shí)間序列特性的變化來計(jì)算適應(yīng)性改變(adaptation)。這尤其可涉及熱區(qū)的適應(yīng)性改變以及(一個(gè)或多個(gè))垂直和/或水平表示分布的適應(yīng)性改變。
時(shí)間序列可具有多欄,即,多個(gè)并行測(cè)量。顧問能夠?qū)φ麄€(gè)時(shí)間序列提供策略,但它是通過分開考慮每一欄來做到這一點(diǎn)的。因此,每一欄接收其自己的特定配置。
顧問通過考慮工作負(fù)載的不同度量和特性以及支持的表示來做出決策。具體地,圖8示出了當(dāng)添加時(shí)間序列時(shí)創(chuàng)建初始配置的離線顧問模式。然而,根據(jù)某些實(shí)施例,顧問也能夠針對(duì)查詢行為中的不斷發(fā)生的變化或者當(dāng)前工作負(fù)載中的時(shí)間序列特性來適應(yīng)性地改變配置。這是在在線模式下完成的。
在在線模式下,當(dāng)前查詢行為和進(jìn)入的新值被分析以識(shí)別推薦的適應(yīng)性改變。這種監(jiān)視可尤其涉及檢測(cè)以下各項(xiàng)中的一個(gè)或多個(gè):
·熱區(qū)移動(dòng);
·新的/過時(shí)的熱區(qū);
·熱區(qū)的大小的變化;
·操作頻率;
·時(shí)間序列特性的變化,影響某些壓縮技術(shù);
·選擇的老化策略的適用性和潛在的邊界移動(dòng);
·由于具有垂直表示而得到的操作的運(yùn)行時(shí)益處。
如果在監(jiān)視的區(qū)域中發(fā)生重大變化,則顧問可重計(jì)算成本模型,利用其來識(shí)別對(duì)當(dāng)前配置的潛在改變。一旦有空閑資源可用,顧問就負(fù)責(zé)自動(dòng)應(yīng)用這些改變。
顧問在做出自動(dòng)決策和提供統(tǒng)計(jì)信息之前可確認(rèn)特定配置。這種配置可由另一系統(tǒng)組件提供,例如由應(yīng)用、數(shù)據(jù)庫或分布引擎提供,或者由人類用戶提供。具體地,用戶可手動(dòng)定義時(shí)間序列的熱區(qū),以及定義每值最大誤差或整體誤差界限??啥x整個(gè)老化策略。
在某些實(shí)施例中,用戶可手動(dòng)配置以下各項(xiàng)中的一個(gè)或多個(gè)(但不限于此):
·被視為熱區(qū)的范圍
·熱區(qū)的最大數(shù)目
·熱區(qū)中的未壓縮值的量
·老化策略
·除了熱區(qū)以外激活/解除激活水平劃分
·在熱區(qū)內(nèi)激活/解除激活垂直劃分
·用于加速表示的額外存儲(chǔ)器的最大量
·每值最大誤差界限(要求由用戶定義)
·熱區(qū)的每值最大誤差界限
·給定范圍中的最大整體誤差
·最頻繁的查詢類型(例如,select、sum、auto_corr)
·在存儲(chǔ)器消耗和性能之間決定的權(quán)重
·在存儲(chǔ)器消耗和精確度之間決定的權(quán)重
顧問可自動(dòng)計(jì)算用戶未做出的決策。此外,顧問也可創(chuàng)建用戶可手動(dòng)適應(yīng)性改變的建議。某些實(shí)施例可要求用戶定義由壓縮值引起的允許誤差的上限。
時(shí)間序列的以下屬性中的一個(gè)或多個(gè)可被顧問考慮。
·時(shí)間序列特性(在線),例如:
o最小值,最大值,
o不同值的數(shù)目,
o頻率偏斜,
o均值、標(biāo)準(zhǔn)偏差、方差,
o形狀,
o等距;
·查詢工作負(fù)載(離線+在線),例如:
o查詢類型,
o頻繁涉及的欄,
o最常見的聚集/分析函數(shù),
o頻繁覆蓋的范圍(熱區(qū)),
o插入和更新的速率,
o分組,劃分,
o查詢的一般平均數(shù)目,
o并行查詢的平均數(shù)目;
·表示特性(離線+在線),例如:
o表示對(duì)于分析/聚集函數(shù)的適用性,
o每估計(jì)/聚集函數(shù)的估計(jì)速度改善,
o一般誤差特性,
o預(yù)期存儲(chǔ)器消耗,
o被以分層次方式查詢的能力,因此具有分層次誤差水平。
(這例如在小波表示中是有效的。)
顧問在確定表示配置時(shí)或在監(jiān)視其可行性時(shí)將這些屬性中的一個(gè)或多個(gè)考慮在內(nèi)。確定過程可被劃分成多個(gè)階段:
(1)熱區(qū)的識(shí)別,
(2)數(shù)據(jù)老化配置;以及
(3)基于涉及壓縮率、加速和分析操作的頻率的成本模型對(duì)于熱區(qū)評(píng)估不同的表示配置。
以下詳細(xì)描述了顧問的自動(dòng)決策過程的三個(gè)階段。首先論述的是熱區(qū)識(shí)別,然后論述特定數(shù)據(jù)老化策略,然后是熱區(qū)配置。
熱區(qū)是時(shí)間序列中的經(jīng)常作為查詢和操作的目標(biāo)的范圍。在某些情況中,這涉及時(shí)間序列的最新近值,因?yàn)樗鼈兛赡苁欠治鏊惴ê途奂貏e感興趣的。
熱區(qū)可從記錄的工作負(fù)載確定(即,離線),從其他時(shí)間序列的統(tǒng)計(jì)信息確定,或者從默認(rèn)配置確定(例如,將最新近10%的值視為熱區(qū))。
該順序可反映輸入的優(yōu)先級(jí)。當(dāng)使用記錄的工作負(fù)載時(shí),分析包含的查詢并且通過確定范圍出現(xiàn)的次數(shù)上的四分位數(shù)來識(shí)別最頻繁的范圍。
某些實(shí)施例可使用90%的相似性因子來允許相似范圍的模糊匹配。原因是對(duì)于演變中的系列,考慮的范圍可略微移動(dòng)。90%的相似性因子指的是范圍的90%重疊。對(duì)于模糊匹配,考慮最外面的開始點(diǎn)和結(jié)束點(diǎn)。
具有高于中值(第3四分位數(shù)、第4四分位數(shù)……)的出現(xiàn)次數(shù)的范圍可被認(rèn)為是最頻繁的范圍。如果在該過程中識(shí)別多個(gè)范圍,則顧問嘗試合并它們以避免創(chuàng)建分散的熱區(qū)。
從而,顧問可統(tǒng)一多個(gè)識(shí)別的范圍,只要它們不會(huì)導(dǎo)致大于整個(gè)時(shí)間序列的20%(或者用戶可配置的某個(gè)其他值)的熱區(qū)即可。統(tǒng)一可通過挑出涉及的范圍的最外面的開始點(diǎn)和結(jié)束點(diǎn)來執(zhí)行。
對(duì)于熱區(qū)的最終選擇,顧問可考慮熱區(qū)的最大數(shù)目的用戶配置并且從頂部起選擇相應(yīng)數(shù)目。熱區(qū)可在顧問的在線階段期間被適應(yīng)性改變或重識(shí)別,這在下文進(jìn)一步論述。
現(xiàn)在描述根據(jù)特定實(shí)施例采用的一個(gè)特定數(shù)據(jù)老化策略。在定義該策略時(shí),推薦用戶應(yīng)當(dāng)確定新的數(shù)據(jù)老化片段開始于哪個(gè)數(shù)目的值之后,并且誤差被允許增大多少。然而,用戶可向顧問請(qǐng)求建議或者完全自動(dòng)化的配置。在特定實(shí)施例,可采取以下措施來確定數(shù)據(jù)老化策略。
標(biāo)準(zhǔn)策略是顧問首先將數(shù)據(jù)劃分成兩半。較新近的一半被定為保持在主存儲(chǔ)器中,而第二半打算被寫入到盤,如果可用的主存儲(chǔ)器不充足的話??商鎿Q地,可使用提供非常高的壓縮的表示。
通過分析工作負(fù)載,顧問針對(duì)以緊鄰邊界周圍的值為目標(biāo)的潛在查詢校正此邊界。此外,也可識(shí)別第二半內(nèi)的熱區(qū)。在這個(gè)部分中找到的熱區(qū)被從盤上存儲(chǔ)排除并且僅僅保持在存儲(chǔ)器中。更新近的第一半被劃分成若干個(gè)部分,其中這些所謂的數(shù)據(jù)老化片段的每一個(gè)包含時(shí)間序列值的總數(shù)的10%那么多的值。每個(gè)數(shù)據(jù)老化片段的值的份額可由消費(fèi)者改變(如上所述)。類似地,根據(jù)得到的數(shù)據(jù)老化片段的數(shù)目來分割和指派從0.1%到用戶允許的最大誤差的可能誤差范圍。此外,頻繁請(qǐng)求的區(qū)域—熱區(qū)—被識(shí)別并被看作接收由上述的分割所確定的最小誤差的額外片段。
現(xiàn)在對(duì)于每個(gè)數(shù)據(jù)老化片段(與其是由用戶還是由系統(tǒng)定義無關(guān)),我們計(jì)算識(shí)別出對(duì)于各個(gè)范圍提供最高的每誤差壓縮比率的壓縮和誤差界限(即,表示)的壓縮得分。所得到的表示隨后被指派給各個(gè)相應(yīng)的時(shí)間序列范圍。表示r∈r的壓縮得分被如下計(jì)算:
其中r是可用表示的集合,并且
得分是通過使用范圍的采樣確定整體平均誤差來計(jì)算的,該整體平均誤差不是對(duì)每個(gè)值測(cè)量的,而是通過采樣測(cè)量的。不同的壓縮技術(shù)可提供不同的平均誤差,即使它們使用相同的每值誤差界限。另外,沒有每值誤差的壓縮技術(shù)被允許競(jìng)爭(zhēng)。
例如,考慮具有2%的平均整體誤差和從4.5gb到225mb的存儲(chǔ)器減少的apca壓縮。對(duì)于apca壓縮得到的得分將是14.29。與之不同,使用提供0.8%的平均整體誤差但只將存儲(chǔ)器減少到500mb的sdt壓縮,得到10.32的得分。結(jié)果,在此示例中,將選擇apca壓縮。
以上示例基本上假定了存儲(chǔ)器消耗和精確度之間的平衡。然而,用戶被允許通過設(shè)置權(quán)重ω,0<ω≤1來調(diào)整精確度與空間之間的偏好。在此情況下,模型變化為:
從而,權(quán)重越高,對(duì)于表示的精確度就越強(qiáng)調(diào)。因此,當(dāng)以0.8的權(quán)重對(duì)得到的誤差加權(quán)并且以0.2的權(quán)重對(duì)空間加權(quán)時(shí),得到的分?jǐn)?shù)對(duì)于apca變化成38.46并且對(duì)于sdt變化成41.36。從而,在此情況下,選擇sdt,不考慮其消耗更多存儲(chǔ)器這個(gè)事實(shí)。
當(dāng)以0.8對(duì)要求的空間加權(quán)并且以0.2對(duì)得到的誤差加權(quán)時(shí),則恰好相反—情景變化了。apca現(xiàn)在收到22.72的得分,而sdt收到13.75的得分。從而,在此情況下,apca將被選擇。
現(xiàn)在論述根據(jù)某些特定實(shí)施例對(duì)熱區(qū)配置的確定。熱區(qū)的配置是一個(gè)單獨(dú)的任務(wù)并且涉及創(chuàng)建同時(shí)共存的多個(gè)垂直表示。希望加速特定查詢類型或查詢類型的群組。然而,額外的表示也導(dǎo)致額外的存儲(chǔ)器消耗。從而,力圖實(shí)現(xiàn)性能增益與空間之間的平衡。
因此,對(duì)于熱區(qū)的配置計(jì)算得分的一個(gè)模型并入了由下式給出的兩個(gè)部分:
compscore(r)是基于在數(shù)據(jù)老化情況中為了確定最有益的表示而已經(jīng)計(jì)算的壓縮得分的。為了計(jì)算熱區(qū)中的壓縮得分,我們必須首先調(diào)整壓縮得分來同時(shí)確認(rèn)多個(gè)表示。計(jì)算壓縮得分的規(guī)則變化成:
其中r同樣是可用表示的集合。
從而,整體平均誤差等于所有表示達(dá)到的最小平均誤差,并且相應(yīng)地,空間是來自所有表示的存儲(chǔ)器要求的總和。我們現(xiàn)在考慮操作的潛在速度改善,聚焦于最頻繁發(fā)出的并且盡可能好地覆蓋當(dāng)前熱區(qū)的操作。這是通過計(jì)算操作得分opscore來完成的。它包括兩個(gè)部分,其中一個(gè)是確認(rèn)使用頻率和熱區(qū)覆蓋,另一部分是考慮相對(duì)于原始的潛在速度改善。
從而,我們得到:
其中o是對(duì)于熱區(qū)優(yōu)化相關(guān)的可能操作的集合。
該等式的使用部分被定義為:
操作的重要性是通過首先確定其出現(xiàn)頻率,其次通過評(píng)估操作目標(biāo)區(qū)與熱區(qū)的重疊來計(jì)算的。這里,我們對(duì)查詢所針對(duì)的熱區(qū)之前或之后的值的數(shù)目求和,并從而確定熱區(qū)對(duì)于操作而言的相關(guān)性。完全不與熱區(qū)相交的操作在此計(jì)算中不被考慮。用戶可以通過向得分等式應(yīng)用權(quán)重σ,0<σ≤1來調(diào)整執(zhí)行速度與存儲(chǔ)器消耗之間的平衡,這得到:
對(duì)于當(dāng)前的熱區(qū)接收最高得分的表示配置被選擇并且各個(gè)表示被創(chuàng)建。在最有益的表示上執(zhí)行以各個(gè)熱區(qū)為目標(biāo)的操作,其中純平均運(yùn)行時(shí)是相關(guān)決策標(biāo)準(zhǔn)。從而,水平和垂直分布的不同表示的使用對(duì)于用戶是透明的。
以上描述聚焦于時(shí)間序列數(shù)據(jù)的多個(gè)表示的生成和存儲(chǔ)?,F(xiàn)在論述出于各種目的(例如檢查、分析)訪問該存儲(chǔ)的多表示時(shí)間序列數(shù)據(jù)。
具體地,向系統(tǒng)請(qǐng)求時(shí)間序列值涉及從水平和垂直表示配置中抽象。實(shí)施例不是要求用戶或應(yīng)用分開請(qǐng)求每個(gè)區(qū)域,而是可采用一種透明的智能迭代器來遞送請(qǐng)求的范圍中的值。
因此,圖1示出了這種智能迭代器160?;谒惴▓?zhí)行162,智能迭代概念提供了從多個(gè)表示抽象的能力。這使得表示當(dāng)在各時(shí)間序列上迭代的同時(shí)是透明的。
系統(tǒng)從而在內(nèi)部負(fù)責(zé)在不同表示之間移動(dòng)內(nèi)部迭代結(jié)構(gòu),并且也應(yīng)對(duì)轉(zhuǎn)化或成本。透明性迭代器概念在圖9中進(jìn)一步圖示。
智能迭代器提供的額外潛在益處是對(duì)自動(dòng)粒度化的支持。具體而言,迭代器以請(qǐng)求的粒度返回值(例如,每天一個(gè)值),即使表示本身是不同粒度的(例如,每小時(shí)一個(gè)值)。這可在不影響下層數(shù)據(jù)結(jié)構(gòu)的情況下完成。
對(duì)于使用基于模型壓縮的表示的時(shí)間序列的時(shí)段,從而通過利用下層函數(shù)的連續(xù)性(即,在任意點(diǎn)以任意粒度評(píng)估函數(shù)的能力)免費(fèi)獲得了粒度化功能。結(jié)果,迭代器簡(jiǎn)單地返回由請(qǐng)求的分辨率給出的評(píng)估結(jié)果。
對(duì)于使用未壓縮表示的時(shí)間序列的時(shí)段,迭代器可自動(dòng)利用舍入(聚集)和分布(解聚)方法。用戶能夠定義要使用哪個(gè)舍入或分布算法。
如果沒有做出決策,則實(shí)施例對(duì)于舍入可利用平均并且對(duì)于解聚可利用均勻分布。這可對(duì)于下層數(shù)據(jù)結(jié)構(gòu)透明地實(shí)現(xiàn)。
除了帶來提供一種應(yīng)答請(qǐng)求不同粒度的查詢的容易方式的潛在優(yōu)點(diǎn)以外,透明迭代器也可被利用作為許多時(shí)間序列分析算法的輸入,允許了以任意分辨率執(zhí)行分析。
根據(jù)實(shí)施例的多表示時(shí)間序列數(shù)據(jù)存儲(chǔ)可提供一個(gè)或多個(gè)益處。具體地,時(shí)間序列表示的水平和垂直分布可起到改善存儲(chǔ)器消耗、查詢執(zhí)行速度和精確度的作用。
另外,對(duì)特定壓縮技術(shù)、誤差界限和存儲(chǔ)介質(zhì)的考慮可允許將存儲(chǔ)器消耗、執(zhí)行速度和精確度裁剪到期望的水平。
實(shí)施例還允許了基于查詢工作負(fù)載分析同時(shí)配置多個(gè)表示??苫诓樵兎秶治鰜碜R(shí)別熱區(qū)和數(shù)據(jù)老化策略。
表示顧問自動(dòng)確定多個(gè)數(shù)據(jù)表示的有利配置??苫诠ぷ髫?fù)載的變化自動(dòng)地適應(yīng)性改變表示配置。顧問可自動(dòng)分析離線和在線工作負(fù)載、數(shù)據(jù)特性和表示特性以便得出最終結(jié)論。
實(shí)施例可參考成本模型來為數(shù)據(jù)老化和其他應(yīng)用確定表示。增強(qiáng)的成本模型可用于為熱區(qū)確定表示配置。
在某些實(shí)施例中,引擎和/或表示顧問可由數(shù)據(jù)庫引擎實(shí)現(xiàn),例如內(nèi)存數(shù)據(jù)庫引擎。例如,圖10圖示了根據(jù)實(shí)施例的、被配置為提供多表示時(shí)間序列數(shù)據(jù)存儲(chǔ)的專用計(jì)算機(jī)器的硬件。具體地,計(jì)算機(jī)系統(tǒng)1001包括處理器1002,該處理器1002與非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1003進(jìn)行電子通信。這個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有與時(shí)間序列數(shù)據(jù)相對(duì)應(yīng)的代碼1005。代碼1004對(duì)應(yīng)于引擎。代碼可被配置為參考存儲(chǔ)在非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的數(shù)據(jù)庫中的數(shù)據(jù),例如可存在于本地或存在于遠(yuǎn)程數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)。軟件服務(wù)器一起可形成被用于彼此通信并且一起工作來處理請(qǐng)求的軟件程序編程的計(jì)算機(jī)系統(tǒng)的集群或邏輯網(wǎng)絡(luò)。
注意,在圖10的特定實(shí)施例中,引擎被示為是數(shù)據(jù)庫的一部分。這種實(shí)施例可對(duì)應(yīng)于利用作為內(nèi)存數(shù)據(jù)庫的一部分可用的強(qiáng)大引擎來執(zhí)行處理的分析應(yīng)用(例如,可從德國瓦爾多夫的sapse得到的hanavora分布式內(nèi)存數(shù)據(jù)庫)。然而,這不是必需的,并且在某些實(shí)施例中,引擎可按其他方式實(shí)現(xiàn),例如實(shí)現(xiàn)為覆蓋存儲(chǔ)介質(zhì)的應(yīng)用層的一部分。
示例計(jì)算機(jī)系統(tǒng)1100在圖11中圖示。計(jì)算機(jī)系統(tǒng)1110包括總線1105或用于傳達(dá)信息的其他通信機(jī)制,以及與總線1105耦合用于處理信息的處理器1101。計(jì)算機(jī)系統(tǒng)1110還包括耦合到總線1105的存儲(chǔ)器1102,用于存儲(chǔ)信息和要被處理器1101執(zhí)行的指令,例如包括用于執(zhí)行以上描述的技術(shù)的信息和指令。此存儲(chǔ)器也可以用于在處理器1101要執(zhí)行的指令的執(zhí)行期間存儲(chǔ)變量和其他中間信息。此存儲(chǔ)器的可能實(shí)現(xiàn)方式可以是——但不限于——隨機(jī)訪問存儲(chǔ)器(randomaccessmemory,ram)、只讀存儲(chǔ)器(readonlymemory,rom),或者這兩者。還提供了存儲(chǔ)設(shè)備1103用于存儲(chǔ)信息和指令。存儲(chǔ)設(shè)備的常見形式例如包括硬盤驅(qū)動(dòng)器、磁盤、光盤、cd-rom、dvd、閃存、usb存儲(chǔ)卡或者任何其他可供計(jì)算機(jī)讀取的介質(zhì)。
一種特定類型的非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)是非易失性隨機(jī)訪問存儲(chǔ)器(non-volatilerandomaccessmemory,nvram)。該存儲(chǔ)技術(shù)對(duì)于數(shù)據(jù)庫系統(tǒng)可發(fā)揮重要作用,因?yàn)閚vram可將內(nèi)存數(shù)據(jù)庫保持在內(nèi)存中,從而免費(fèi)獲得了持續(xù)性。
存儲(chǔ)設(shè)備1103例如可包括用于執(zhí)行以上技術(shù)的源代碼、二進(jìn)制代碼或者軟件文件。存儲(chǔ)設(shè)備和存儲(chǔ)器都是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)系統(tǒng)1110可經(jīng)由總線1105耦合到顯示器1112,例如陰極射線管(cathoderaytube,crt)或液晶顯示器(liquidcrystaldisplay,lcd),以向計(jì)算機(jī)用戶顯示信息。諸如鍵盤和/或鼠標(biāo)之類的輸入設(shè)備1111耦合到總線1105,用于從用戶向處理器1101傳達(dá)信息和命令選擇。這些組件的組合允許了用戶與系統(tǒng)通信。在一些系統(tǒng)中,總線1105可被劃分成多個(gè)專門總線。
計(jì)算機(jī)系統(tǒng)1110還包括與總線1105耦合的網(wǎng)絡(luò)接口1104。網(wǎng)絡(luò)接口1104可提供計(jì)算機(jī)系統(tǒng)1110與本地網(wǎng)絡(luò)1120之間的雙向數(shù)據(jù)通信。例如,網(wǎng)絡(luò)接口1104可以是數(shù)字訂戶線(digitalsubscriberline,dsl)或調(diào)制解調(diào)器來提供通過電話線的數(shù)據(jù)通信連接。網(wǎng)絡(luò)接口的另一示例是局域網(wǎng)(localareanetwork,lan)卡用于提供到兼容的lan的數(shù)據(jù)通信連接。無線鏈路是另一個(gè)示例。在任何這種實(shí)現(xiàn)方式中,網(wǎng)絡(luò)接口1104發(fā)送和接收攜帶表示各種類型的信息的數(shù)字?jǐn)?shù)據(jù)流的電信號(hào)、電磁信號(hào)或光信號(hào)。
計(jì)算機(jī)系統(tǒng)1110可通過網(wǎng)絡(luò)接口1104在本地網(wǎng)絡(luò)1120、內(nèi)聯(lián)網(wǎng)或互聯(lián)網(wǎng)1130上發(fā)送和接收信息,包括消息或其他接口動(dòng)作。對(duì)于本地網(wǎng)絡(luò),計(jì)算機(jī)系統(tǒng)1110可與多個(gè)其他計(jì)算機(jī)器通信,例如服務(wù)器1115。因此,計(jì)算機(jī)系統(tǒng)1110和由服務(wù)器1115表示的服務(wù)器計(jì)算機(jī)系統(tǒng)可形成云計(jì)算網(wǎng)絡(luò),其可被編程以本文描述的過程。在互聯(lián)網(wǎng)示例中,軟件組件或服務(wù)可存在于網(wǎng)絡(luò)上的多個(gè)不同的計(jì)算機(jī)系統(tǒng)1110或服務(wù)器1131-1135上。以上描述的過程例如可實(shí)現(xiàn)在一個(gè)或多個(gè)服務(wù)器上。服務(wù)器1131可將動(dòng)作或消息從一個(gè)組件通過互聯(lián)網(wǎng)1130、本地網(wǎng)絡(luò)1120和網(wǎng)絡(luò)接口604傳送到計(jì)算機(jī)系統(tǒng)1110上的組件。以上描述的軟件組件和過程可在任何計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)并且例如在網(wǎng)絡(luò)上發(fā)送和/或接收信息。
以上描述說明了本發(fā)明的各種實(shí)施例以及可如何實(shí)現(xiàn)本發(fā)明的各方面的示例。上述示例和實(shí)施例不應(yīng)被視為是僅有的實(shí)施例,而是被給出來說明如所附權(quán)利要求限定的本發(fā)明的靈活性和優(yōu)點(diǎn)?;谝陨瞎_和所附權(quán)利要求,在不脫離如權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,本領(lǐng)域技術(shù)人員將清楚其他布置、實(shí)施例、實(shí)現(xiàn)方式和等同,并且可以采用這些其他布置、實(shí)施例、實(shí)現(xiàn)方式和等同。