管理時間序列數(shù)據(jù)庫的方法和裝置制造方法
【專利摘要】本發(fā)明提供了管理時間序列數(shù)據(jù)庫的方法和裝置。具體地,提供了針對時間序列數(shù)據(jù)庫中的時間序列建立索引的方法,包括:將時間序列數(shù)據(jù)庫中的時間序列劃分為多個子序列;針對多個子序列建立空間索引,空間索引定義多個子序列中的子序列在時間序列中的空間位置;以及針對多個子序列建立內(nèi)容索引,內(nèi)容索引定義多個子序列中的子序列的內(nèi)容范圍。還提供了在時間序列數(shù)據(jù)庫中進(jìn)行查詢的方法,包括:基于空間索引,在時間序列數(shù)據(jù)庫中的時間序列中搜索與一查詢序列相對應(yīng)的空間位置;基于內(nèi)容索引,獲取在所搜索的空間位置處的子序列的內(nèi)容范圍;以及響應(yīng)于所獲取的內(nèi)容范圍與查詢序列的內(nèi)容范圍相一致,輸出所搜索的空間位置處的子序列。
【專利說明】管理時間序列數(shù)據(jù)庫的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的各實(shí)施方式涉及數(shù)據(jù)庫管理,更具體地,涉及用于管理時間序列數(shù)據(jù)庫(Time Series Database)的方法和裝置。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)、數(shù)據(jù)通信以及實(shí)時監(jiān)控等技術(shù)的發(fā)展,時間序列數(shù)據(jù)庫已經(jīng)被廣泛應(yīng)用于例如設(shè)備監(jiān)控、生產(chǎn)線管理、金融分析等諸多方面。時間序列(Time Sequence)是指按照時間順序排列的測量值的集合,在此可以將存儲測量值的節(jié)點(diǎn)稱為數(shù)據(jù)點(diǎn)(DataPoint)或者數(shù)據(jù)事件(Data Event)。時間序列數(shù)據(jù)庫是指用于存儲這些測量值的數(shù)據(jù)庫。測量值可以包括各種數(shù)據(jù),例如在監(jiān)控橋梁安全性的應(yīng)用環(huán)境中,被采集數(shù)據(jù)可以包括由特定傳感器采集的壓力數(shù)據(jù)和/或壓強(qiáng)數(shù)據(jù);在天氣預(yù)報應(yīng)用環(huán)境中,被采集數(shù)據(jù)可以包括溫度、濕度、壓力、風(fēng)力(例如,包括大小和方向),等等。
[0003]相似性搜索(Similarity Search)是指在時間序列數(shù)據(jù)庫中發(fā)現(xiàn)與給定的序列模式(Sequence Pattern)相類似的序列。時間序列數(shù)據(jù)庫通常包括海量數(shù)據(jù),并且不斷地由新近的測量值來實(shí)時地更新該數(shù)據(jù)庫。例如,在監(jiān)控橋梁安全性的應(yīng)用環(huán)境中,在橋梁上可能部署有數(shù)萬個傳感器分別用于實(shí)時地測量溫度、濕度、壓力、風(fēng)力。當(dāng)以例如I秒甚至更高的頻率來更新數(shù)據(jù)庫時,將產(chǎn)生巨大的數(shù)據(jù)量。因而,如何針對其中數(shù)據(jù)量急速膨脹的時間序列數(shù)據(jù)庫進(jìn)行相似性搜索,成為目前數(shù)據(jù)庫領(lǐng)域的一個研究熱點(diǎn)。
[0004]目前已經(jīng)開發(fā)出用于加速相似性搜索的技術(shù)方案,這些技術(shù)方案提出了通過首先返回候選集,繼而通過在時間序列數(shù)據(jù)庫中驗(yàn)證候選集中的候選項(xiàng)來縮短查詢時間。然而候選集通常包括過多的候選項(xiàng),逐一驗(yàn)證候選項(xiàng)這一步驟將會產(chǎn)生大量的數(shù)據(jù)I/o開銷并占用大量時間。
[0005]隨著時間序列數(shù)據(jù)庫在各行各業(yè)中的廣泛應(yīng)用,數(shù)據(jù)庫的提供者、管理者和終端用戶都越來越關(guān)注于數(shù)據(jù)查詢的效率。因而,如何進(jìn)一步降低相似性搜索中對于各種資源的開銷成為一項(xiàng)亟待解決的問題。
【發(fā)明內(nèi)容】
[0006]因而,期望開發(fā)一種能夠在時間序列數(shù)據(jù)庫中進(jìn)行快速查詢的技術(shù)方案,期望該技術(shù)方案能夠降低對時間序列數(shù)據(jù)庫進(jìn)行查詢時涉及的各種資源的占用,進(jìn)而提高相似性搜索的效率。進(jìn)一步,還期望可以在盡量不改變現(xiàn)有時間序列數(shù)據(jù)庫的情況下實(shí)現(xiàn)該技術(shù)方案。
[0007]在本發(fā)明的一個方面中,提供了 一種針對時間序列數(shù)據(jù)庫中的時間序列建立索弓I的方法,包括:基于滑動窗口將時間序列數(shù)據(jù)庫中的時間序列劃分為多個子序列;針對多個子序列建立空間索引,空間索引用于定義多個子序列中的子序列在時間序列中的空間位置;以及針對多個子序列建立內(nèi)容索引,內(nèi)容索引用于定義多個子序列中的子序列的內(nèi)容范圍。[0008]在本發(fā)明的一個方面中,針對多個子序列建立內(nèi)容索引包括:將多個子序列中的子序列映射至與子序列的內(nèi)容范圍相對應(yīng)的符號值。
[0009]在本發(fā)明的一個方面中,還包括:將與多個子序列中的子序列相對應(yīng)的符號值存儲為與空間索引相關(guān)聯(lián)的元數(shù)據(jù)。
[0010]在本發(fā)明的一個方面中,提供了一種在時間序列數(shù)據(jù)庫中進(jìn)行查詢的方法,包括:基于針對時間序列數(shù)據(jù)庫中的時間序列的空間索引,在時間序列數(shù)據(jù)庫中的時間序列中搜索與一查詢序列相對應(yīng)的空間位置;基于針對時間序列數(shù)據(jù)庫中的時間序列的內(nèi)容索引,獲取在所搜索的空間位置處的子序列的內(nèi)容范圍;以及響應(yīng)于所獲取的內(nèi)容范圍與查詢序列的內(nèi)容范圍相一致,輸出所搜索的空間位置處的子序列,其中空間索引用于定義時間序列的子序列在時間序列中的空間位置,內(nèi)容索引用于定義時間序列的子序列的內(nèi)容范圍。
[0011]在本發(fā)明的一個方面中,內(nèi)容索引包括:與時間序列的子序列的內(nèi)容范圍相對應(yīng)的符號值。
[0012]在本發(fā)明的一個方面中,與多個子序列中的子序列相對應(yīng)的符號值被存儲為與空間索引相關(guān)聯(lián)的元數(shù)據(jù)。
[0013]在本發(fā)明的一個方面中,還提供了用于針對時間序列數(shù)據(jù)庫中的時間序列建立索引的裝置、在時間序列數(shù)據(jù)庫中進(jìn)行查詢的裝置、以及管理時間序列數(shù)據(jù)庫的方法和裝置。
[0014]采用本發(fā)明所述的方法和裝置,可以在盡可能地少改變現(xiàn)有時間序列數(shù)據(jù)庫配置的情況下,針對時間序列數(shù)據(jù)庫中的時間序列建立索引,并且還可以基于該索引來降低相似性搜索的時間開銷,進(jìn)而提高數(shù)據(jù)查詢的效率。
【專利附圖】
【附圖說明】
[0015]通過結(jié)合附圖對本公開示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其他目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實(shí)施方式中,相同的參考標(biāo)號通常代表相同部件。
[0016]圖1示意性示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖;
[0017]圖2示意性示出了在時間序列數(shù)據(jù)庫中進(jìn)行相似性搜索的過程的圖示;
[0018]圖3示意性示出了根據(jù)本發(fā)明一個實(shí)施方式的、用于管理時間序列數(shù)據(jù)庫的技術(shù)方案的架構(gòu)圖;
[0019]圖4A示意性示出了根據(jù)本發(fā)明一個實(shí)施方式的針對時間序列數(shù)據(jù)庫中的時間序列建立索引的方法的流程圖;圖48示意性示出了根據(jù)本發(fā)明一個實(shí)施方式的在時間序列數(shù)據(jù)庫中進(jìn)行查詢的方法的流程圖;
[0020]圖5A和5B分別示意性示出了根據(jù)本發(fā)明一個實(shí)施方式的時間序列數(shù)據(jù)庫中的數(shù)據(jù)點(diǎn)/數(shù)據(jù)事件的圖示;
[0021]圖6示意性示出了根據(jù)本發(fā)明一個實(shí)施方式的建立空間索引和內(nèi)容索引的技術(shù)方案的架構(gòu)圖;
[0022]圖7示意性示出了根據(jù)本發(fā)明一個實(shí)施方式的獲得查詢結(jié)果的方法的流程圖;以及
[0023]圖8A示意性示出了根據(jù)本發(fā)明一個實(shí)施方式的針對時間序列數(shù)據(jù)庫中的時間序列建立索引的裝置的架構(gòu)圖;圖88示意性示出了根據(jù)本發(fā)明一個實(shí)施方式的在時間序列數(shù)據(jù)庫中進(jìn)行查詢的裝置的架構(gòu)圖。
【具體實(shí)施方式】
[0024]下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實(shí)施方式。雖然附圖中顯示了本公開的優(yōu)選實(shí)施方式,然而應(yīng)該理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0025]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開可以具體實(shí)現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明還可以實(shí)現(xiàn)為在一個或多個計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0026]可以采用一個或多個計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號介質(zhì)或者計(jì)算機(jī)可讀存儲介質(zhì)。計(jì)算機(jī)可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0027]計(jì)算機(jī)可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計(jì)算機(jī)可讀的信號介質(zhì)還可以是計(jì)算機(jī)可讀存儲介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0028]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0029]可以以一種或多種程序設(shè)計(jì)語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言-諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設(shè)計(jì)語言-諸如“C”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0030]下面將參照本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計(jì)算機(jī)程序指令通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0031]也可以把這些計(jì)算機(jī)程序指令存儲在能使得計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
[0032]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置、或其他設(shè)備上,使得在計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而使得在計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令能夠提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0033]圖1示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計(jì)算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實(shí)施例的功能和使用范圍帶來任何限制。
[0034]如圖1所示,計(jì)算機(jī)系統(tǒng)/服務(wù)器12以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0035]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0036]計(jì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。
[0037]系統(tǒng)存儲器28可以包括易失性存儲器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲器(RAM) 30和/或高速緩存存儲器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其他可移動/不可移動的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其他光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個程序產(chǎn)品,該程序嚴(yán)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。
[0038]具有一組(至少一個)程序模塊42的程序/實(shí)用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個或者多個應(yīng)用程序、其他程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。
[0039]計(jì)算機(jī)系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14(例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器12能與一個或多個其他計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與計(jì)算機(jī)系統(tǒng)/服務(wù)器12的其他模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計(jì)算機(jī)系統(tǒng)/服務(wù)器12使用其他硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
[0040]應(yīng)當(dāng)注意,一個或者多個虛擬機(jī)可以運(yùn)行在上文所述的一個或者多個計(jì)算機(jī)系統(tǒng)/服務(wù)器上,單一的虛擬機(jī)在物理上可以分布于一個或者多個計(jì)算機(jī)系統(tǒng)/服務(wù)器上。參見圖1示出的計(jì)算機(jī)系統(tǒng)/服務(wù)器僅僅是可以用于實(shí)現(xiàn)本發(fā)明所述的方法和裝置的示例,隨著硬件技術(shù)和虛擬機(jī)技術(shù)的發(fā)展,本發(fā)明的方法和裝置還可以在具有數(shù)據(jù)處理能力的其他設(shè)備上實(shí)現(xiàn)。
[0041]圖2示意性示出了在時間序列數(shù)據(jù)庫中進(jìn)行相似性搜索的過程的圖示200。圖2示出了時間序列數(shù)據(jù)庫中的一個時間序列220,并且在相似性搜索中所涉及的查詢序列由附圖標(biāo)記210所示。在此上下文中,相似性搜索是指從時間序列220中搜索與查詢序列210相似的子序列。例如,返回的備選子序列的集合可以包括三個子序列,分別示出為子序列A、子序列B和子序列C。由于圖2中示出的時間序列的長度較小,查詢結(jié)果僅返回3個子序列。當(dāng)針對較大或者超大的時間序列進(jìn)行搜索時(例如,在包括近5年的氣象數(shù)據(jù)的時間序列數(shù)據(jù)庫中搜索特定的查詢序列),很可能會返回?cái)?shù)萬的候選子序列。
[0042]目前已經(jīng)開發(fā)出了可以輸出更為準(zhǔn)確的候選子序列的技術(shù)方案,這些技術(shù)方案可以將時間序列數(shù)據(jù)庫中的數(shù)據(jù)從時間域映射到頻率域,并基于頻率域中的特征頻率建立空間索引的方法,可以通過考慮主要頻率而忽略不太重要的頻率的方法,來簡化在時間序列數(shù)據(jù)庫中進(jìn)行相似性搜索的復(fù)雜性,進(jìn)而降低相似性搜索的各種開銷。然而,由于這些解決方案僅考慮了時間序列數(shù)據(jù)庫中的空間關(guān)系,所輸出的候選集仍然是遠(yuǎn)遠(yuǎn)大于真正滿足相似性條件的子序列集合的超集(Super Set),效果并不理想。因而,期望提出一種能夠改進(jìn)僅使用空間索引管理時間序列數(shù)據(jù)庫的技術(shù)方案,并期望該技術(shù)方案可以考慮到數(shù)據(jù)庫其他方面的特征進(jìn)而加快查詢速度。
[0043]在本發(fā)明的一個實(shí)施方式中,提出了一種針對時間序列數(shù)據(jù)庫建立雙層索引(空間索引和內(nèi)容索引),并且基于該雙層索引提高相似性搜索效率的方法和裝置。圖3示意性示出了根據(jù)本發(fā)明一個實(shí)施方式的、用于管理時間序列數(shù)據(jù)庫的技術(shù)方案的架構(gòu)圖300。
[0044]應(yīng)當(dāng)注意,可以針對已經(jīng)存儲在時間序列數(shù)據(jù)庫中的時間序列建立索弓丨,還可以與實(shí)時采集測量數(shù)據(jù)并將該測量數(shù)據(jù)存儲至?xí)r間序列數(shù)據(jù)庫幾乎同時建立索引。如圖3所示,設(shè)置索引建立模塊320,以便在實(shí)時采集的數(shù)據(jù)進(jìn)入時間序列數(shù)據(jù)庫310后,讀取數(shù)據(jù)庫310的數(shù)據(jù)(如箭頭A所示),并針對時間序列數(shù)據(jù)庫310中的數(shù)據(jù)建立空間索引和內(nèi)容索引(如箭頭B所示),并將所建立的雙層索引存儲至索引庫330中。
[0045]應(yīng)當(dāng)注意,在此索引庫330可以采取各種形式,并且并不限制索引庫330的存儲位置,例如,可以存儲到該時間序列數(shù)據(jù)庫310中,或者還可以獨(dú)立于時間序列數(shù)據(jù)庫310存儲。例如可以存儲至諸如硬盤的數(shù)據(jù)存儲裝置上;為了盡量提高對于索引的訪問速度,索引庫330還可以位于諸如內(nèi)存(Memory)中。應(yīng)當(dāng)注意,建立雙層索引的過程可以并行于時間序列數(shù)據(jù)庫更新的過程,并且雙層索引隨著數(shù)據(jù)庫中內(nèi)容的增加而逐漸增長。
[0046]當(dāng)執(zhí)行相似性搜索時,響應(yīng)于接收到查詢序列(如箭頭C)所示,查詢裝置360查詢索引庫330中的雙層索引(即,首先通過空間索引獲得與查詢序列相關(guān)聯(lián)的子序列的空間位置,繼而通過內(nèi)容索引來比較在該空間位置處的子序列與查詢序列的內(nèi)容范圍是否相一致,并且在一致的情況下認(rèn)為該子序列是與查詢序列相似的(如箭頭D所示)。繼而,可以將該子序列加入候選集中,以此方式產(chǎn)生的候選集中子序列的數(shù)量將大大降低,并且由于已經(jīng)基于內(nèi)容索引預(yù)先比較了查詢序列與各個子序列是否大致相似,因而可以過濾掉僅基于空間索引獲取候選集時可能產(chǎn)生大量無用數(shù)據(jù),進(jìn)而降低在原始時間序列數(shù)據(jù)庫310中逐一驗(yàn)證候選集中的每個候選子序列(如箭頭E所示)時的數(shù)據(jù)I/O開銷、計(jì)算資源開銷和時間開銷。最終,查詢裝置360將輸出搜索結(jié)果(如箭頭F所示)。
[0047]基于圖3所示的架構(gòu),在本發(fā)明的一個實(shí)施方式中,提供了一種針對時間序列數(shù)據(jù)庫中的時間序列建立索引的方法,包括:基于滑動窗口將時間序列數(shù)據(jù)庫中的時間序列劃分為多個子序列;針對多個子序列建立空間索引,空間索引用于定義多個子序列中的子序列在時間序列中的空間位置;以及針對多個子序列建立內(nèi)容索引,內(nèi)容索引用于定義多個子序列中的子序列的內(nèi)容范圍。
[0048]圖4A示意性示出了根據(jù)本發(fā)明一個實(shí)施方式的針對時間序列數(shù)據(jù)庫中的時間序列建立索引的方法的流程圖400A。首先,在步驟S402A中,基于滑動窗口將時間序列數(shù)據(jù)庫中的時間序列劃分為多個子序列。本領(lǐng)域技術(shù)人員可以自定義滑動窗口的長度,當(dāng)劃分子序列時,可以基于滑動窗口的原理進(jìn)行劃分。例如,當(dāng)滑動窗口長度為N、并且步長為I時,第一個子序列可以是第1-N號數(shù)據(jù)點(diǎn),第二個子序列可以是第2-(Ν+1)號數(shù)據(jù)點(diǎn),以此類推。備選地,滑動窗口的步長還可以被設(shè)置為大于I的整數(shù),以便減少劃分時的工作量。
[0049]在步驟S404A中,針對多個子序列建立空間索引,空間索引用于定義多個子序列中的子序列在時間序列中的空間位置??臻g索引可以采用樹狀結(jié)構(gòu)的形式,或者本領(lǐng)域技術(shù)人員還可以基于現(xiàn)有技術(shù)中的方案來采用其他形式。
[0050]在步驟S406A中,針對多個子序列建立內(nèi)容索引,內(nèi)容索引用于定義多個子序列中的子序列的內(nèi)容范圍。在此實(shí)施方式中,子序列的內(nèi)容范圍可以指子序列中所包括的數(shù)據(jù)點(diǎn)的數(shù)值的范圍。例如,當(dāng)時間序列涉及在預(yù)定時間間隔采集的溫度、并且每個子序列包括N個數(shù)據(jù)點(diǎn)時,則內(nèi)容范圍可以是指N個溫度值中最低值和最高值之間的范圍[Tmin,T I
[0051]在本發(fā)明的一個實(shí)施方式中,例如特定子序列在空間序列中對應(yīng)于節(jié)點(diǎn)1,可以向該節(jié)點(diǎn)I增加附加數(shù)據(jù)項(xiàng)來描述與該特定子序列相關(guān)的內(nèi)容范圍。換言之,內(nèi)容索引可以被整合到空間索引中。
[0052]應(yīng)當(dāng)注意,如果已經(jīng)對時間序列數(shù)據(jù)庫建立了空間索引,則可以僅針對該數(shù)據(jù)庫執(zhí)行步驟S406A ;如果尚未針對數(shù)據(jù)庫建立任何索引,則可以同步地執(zhí)行S404A和S406A所示的步驟,或者還可以先執(zhí)行步驟S406A繼而執(zhí)行步驟S404A。
[0053]在本發(fā)明的一個實(shí)施方式中,針對多個子序列建立內(nèi)容索引包括:將多個子序列中的子序列映射至與子序列的內(nèi)容范圍相對應(yīng)的符號值。
[0054]例如,可以建立內(nèi)容范圍與符號值的映射表,假設(shè)時間序列數(shù)據(jù)庫中存儲了測量值為0-20°C的溫度序列,可以采用如下表1所示的映射關(guān)系:
[0055]表1
[0056]
【權(quán)利要求】
1.一種針對時間序列數(shù)據(jù)庫中的時間序列建立索引的方法,包括: 基于滑動窗口將所述時間序列數(shù)據(jù)庫中的時間序列劃分為多個子序列; 針對所述多個子序列建立空間索引,所述空間索引用于定義所述多個子序列中的子序列在所述時間序列中的空間位置;以及 針對所述多個子序列建立內(nèi)容索引,所述內(nèi)容索引用于定義所述多個子序列中的子序列的內(nèi)容范圍。
2.根據(jù)權(quán)利要求1所述的方法,其中針對所述多個子序列建立內(nèi)容索引包括: 將所述多個子序列中的子序列映射至與所述子序列的內(nèi)容范圍相對應(yīng)的符號值。
3.根據(jù)權(quán)利要求2所述的方法,還包括: 將與所述多個子序列中的子序列相對應(yīng)的符號值存儲為與所述空間索引相關(guān)聯(lián)的元數(shù)據(jù)。
4.根據(jù)權(quán)利要求1-3中任一項(xiàng)所述的方法,其中針對所述多個子序列建立空間索引包括: 基于線性離散變換將所述多個子序列轉(zhuǎn)換至頻率域;以及 根據(jù)所述頻率域中的特征頻率,針對所述多個子序列建立空間索引。
5.根據(jù)權(quán)利要求4所述的方法,其中基于線性離散變換將所述多個子序列轉(zhuǎn)換至頻率域包括:· 基于分段維度縮減將所述多個子序列劃分為分段;以及 基于所述分段將所述多個子序列轉(zhuǎn)換至頻率域。
6.根據(jù)權(quán)利要求1-3中任一項(xiàng)所述的方法,還包括預(yù)處理步驟: 響應(yīng)于所述時間序列是多維時間序列,則將所述時間序列分解為多個一維時間序列。
7.—種在時間序列數(shù)據(jù)庫中進(jìn)行查詢的方法,包括: 基于針對所述時間序列數(shù)據(jù)庫中的時間序列的空間索引,在所述時間序列數(shù)據(jù)庫中的時間序列中搜索與一查詢序列相對應(yīng)的空間位置; 基于針對所述時間序列數(shù)據(jù)庫中的時間序列的內(nèi)容索引,獲取在所搜索的空間位置處的子序列的內(nèi)容范圍;以及 響應(yīng)于所獲取的內(nèi)容范圍與所述查詢序列的內(nèi)容范圍相一致,輸出所搜索的空間位置處的子序列, 其中所述空間索引用于定義所述時間序列的子序列在所述時間序列中的空間位置,所述內(nèi)容索引用于定義所述時間序列的子序列的內(nèi)容范圍。
8.根據(jù)權(quán)利要求7所述的方法,其中所述內(nèi)容索引包括:與所述時間序列的子序列的內(nèi)容范圍相對應(yīng)的符號值。
9.根據(jù)權(quán)利要求8所述的方法,其中: 與所述多個子序列中的子序列相對應(yīng)的符號值被存儲為與所述空間索引相關(guān)聯(lián)的元數(shù)據(jù)。
10.根據(jù)權(quán)利要求7-9中的任一項(xiàng)所述的方法,其中基于針對所述時間序列數(shù)據(jù)庫中的時間序列的空間索引,在所述時間序列數(shù)據(jù)庫中的時間序列中搜索與上述查詢序列相對應(yīng)的空間位置包括: 基于線性離散變換將所述查詢序列轉(zhuǎn)換至頻率域;以及根據(jù)所述頻率域中的特征頻率,經(jīng)由所述空間索引在所述時間序列數(shù)據(jù)庫中的時間序列中搜索與所述查詢序列相對應(yīng)的空間位置。
11.根據(jù)權(quán)利要求10所述的方法,其中基于線性離散變換將所述查詢序列轉(zhuǎn)換至頻率域包括: 基于分段維度縮減將所述查詢序列劃分為分段;以及 基于所述分段將所述查詢序列轉(zhuǎn)換至頻率域。
12.根據(jù)權(quán)利要求7-9中的任一項(xiàng)所述的方法,進(jìn)一步包括: 所述查詢序列劃分為多個查詢子序列;以及 整合針對所述多個查詢子序列輸出的所搜索的空間位置。
13.根據(jù)權(quán)利要求7-9中任一項(xiàng)所述的方法,還包括預(yù)處理步驟: 響應(yīng)于所述查詢序列是多維時間序列,則將所述查詢序列分解為多個一維查詢序列。
14.一種針對時間序列數(shù)據(jù)庫中的時間序列建立索引的裝置,包括: 劃分模塊,配置用于基于滑動窗口將所述時間序列數(shù)據(jù)庫中的時間序列劃分為多個子序列; 空間索引建立模塊,配置用于針對所述多個子序列建立空間索引,所述空間索引用于定義所述多個子序列中的子序列在所述時間序列中的空間位置;以及 內(nèi)容索引建立模塊,配置用于針對所述多個子序列建立內(nèi)容索引,所述內(nèi)容索引用于定義所述多個子序列中的子序列的內(nèi)容范圍。
15.根據(jù)權(quán)利要求14所述的裝置,其中所述空間索引建立模塊包括: 映射模塊,配置用于將所述多個子序列中的子序列映射至與所述子序列的內(nèi)容范圍相對應(yīng)的符號值。
16.根據(jù)權(quán)利要求15所述的裝置,還包括: 存儲據(jù)模塊,配置用于將與所述多個子序列中的子序列相對應(yīng)的符號值存儲為與所述空間索引相關(guān)聯(lián)的元數(shù)據(jù)。
17.根據(jù)權(quán)利要求14-16中任一項(xiàng)所述的裝置,其中所述空間索引建立模塊包括: 轉(zhuǎn)換模塊,配置用于基于線性離散變換將所述多個子序列轉(zhuǎn)換至頻率域;以及 建立模塊,配置用于根據(jù)所述頻率域中的特征頻率,針對所述多個子序列建立空間索引。
18.根據(jù)權(quán)利要求17所述的裝置,其中所述變換模塊包括: 分段模塊,配置用于基于分段維度縮減將所述多個子序列劃分為分段;以及 分段轉(zhuǎn)換模塊,配置用于基于所述分段將所述多個子序列轉(zhuǎn)換至頻率域。
19.一種在時間序列數(shù)據(jù)庫中進(jìn)行查詢的裝置,包括: 搜索模塊,配置用于基于針對所述時間序列數(shù)據(jù)庫中的時間序列的空間索引,在所述時間序列數(shù)據(jù)庫中的時間序列中搜索與一查詢序列相對應(yīng)的空間位置; 獲取模塊,配置用于基于針對所述時間序列數(shù)據(jù)庫中的時間序列的內(nèi)容索引,獲取在所搜索的空間位置處的子序列的內(nèi)容范圍;以及 輸出模塊,配置用于響應(yīng)于所獲取的內(nèi)容范圍與所述查詢序列的內(nèi)容范圍相一致,輸出所搜索的空間位置處的子序列, 其中所述空間索引用于定義所述時間序列的子序列在所述時間序列中的空間位置,所述內(nèi)容索引用于定義所述時間序列的子序列的內(nèi)容范圍。
20.根據(jù)權(quán)利要求19所述的裝置,其中所述內(nèi)容索引包括:與所述時間序列的子序列的內(nèi)容范圍相對應(yīng)的符號值。
21.根據(jù)權(quán)利要求20所述的裝置,其中: 與所述多個子序列中的子序列相對應(yīng)的符號值被存儲為與所述空間索引相關(guān)聯(lián)的元數(shù)據(jù)。
22.根據(jù)權(quán)利要求19-21中的任一項(xiàng)所述的裝置,其中所述搜索模塊包括: 轉(zhuǎn)換模塊,配置用于基于線性離散變換將所述查詢序列轉(zhuǎn)換至頻率域;以及 頻率搜索模塊,配置用于根據(jù)所述頻率域中的特征頻率,經(jīng)由所述空間索引在所述時間序列數(shù)據(jù)庫中的時間序列中搜索與所述查詢序列相對應(yīng)的空間位置。
23.根據(jù)權(quán)利要求22所述的裝置,其中所述轉(zhuǎn)換模塊包括: 分段模塊,配置用于基于分段維度縮減將所述查詢序列劃分為分段;以及 分段轉(zhuǎn)換模塊,配置用于基于所述分段將所述查詢序列轉(zhuǎn)換至頻率域。
24.根據(jù)權(quán)利要求19-21中的任一項(xiàng)所述的裝置,進(jìn)一步包括: 劃分模塊,配置用于所述查詢序列劃分為多個查詢子序列;以及 整合模塊,配置用于整合針對所述多個查詢子序列輸出的所搜索的空間位置。
25.—種管理時間序列·數(shù)據(jù)庫的方法,包括: 根據(jù)權(quán)利要求1所述的針對時間序列數(shù)據(jù)庫中的時間序列建立索引的方法,以及根據(jù)權(quán)利要求7所述的在時間序列數(shù)據(jù)庫中進(jìn)行查詢的方法。
26.—種管理時間序列數(shù)據(jù)庫的裝置,包括: 根據(jù)權(quán)利要求14所述的針對時間序列數(shù)據(jù)庫中的時間序列建立索引的裝置,以及根據(jù)權(quán)利要求19所述的在時間序列數(shù)據(jù)庫中進(jìn)行查詢的裝置。
【文檔編號】G06F17/30GK103853752SQ201210507004
【公開日】2014年6月11日 申請日期:2012年11月30日 優(yōu)先權(quán)日:2012年11月30日
【發(fā)明者】陳垚亮, 黃勝, 陳曉艷, 劉凱, 王晨 申請人:國際商業(yè)機(jī)器公司