用于數據庫搜索的系統(tǒng)和方法
【專利說明】
[0001] 本發(fā)明要求2014年2月19日遞交的發(fā)明名稱為"用于數據庫搜索的系統(tǒng)和方法 (SystemandMethodforDatabaseSearching)" 的第 14/184582 號美國非臨時專利申請 案以及2013年2月19日遞交的發(fā)明名稱為"用于多維數據庫索引的快速鍵模式搜索的系 統(tǒng)和方法(SystemandMethodforaFastKeyPatternSearchforaMultidimensional DatabaseIndex) "的第61/766299號美國臨時專利申請案的在先申請優(yōu)先權,這兩個在先 申請的內容以引入的方式并入本文本中。
技術領域
[0002] 本發(fā)明涉及用于數據庫的系統(tǒng)和方法,尤其涉及用于數據庫搜索的系統(tǒng)和方法。
【背景技術】
[0003] 現代數據倉庫通常包含萬億條記錄,每條記錄都包含多個屬性。業(yè)務智能任務,例 如分析查詢、在線分析處理(0LAP)、數據挖掘等應相對較快地獲取針對數據的臨時分析查 詢的答案。由于數據量,所以額外標引是有問題的,并且這些查詢通過使用數據的全掃描來 回答。甚至當數據分布在簇中時,全掃描可能花費較長時間。傳統(tǒng)關系數據倉庫技術通常 與非關系分布式處理系統(tǒng)組合或被非關系分布式處理系統(tǒng)替代。擴展性和性能要求對于業(yè) 務智能應用是至關重要的。
【發(fā)明內容】
[0004] 一種用于搜索數據庫的實施例方法包括處理器接收來自用戶的指示查詢的消息, 其中所述查詢包括模式;以及所述處理器根據所述數據庫的數據集確定第一閾值。所述方 法還包括所述處理器比較所述模式和所述數據集的第一鍵以產生比較,以及所述處理器根 據所述比較和所述第一閾值確定是跳到所述數據集的第二鍵還是掃描至所述數據集的第 三鍵,包括當所述比較的絕對值大于所述第一閾值時,跳到所述數據集的所述第二鍵,和當 所述比較的所述絕對值小于或等于所述第一閾值時,掃描至所述數據集的所述第三鍵,其 中所述第一鍵和所述第三鍵是連續(xù)的。
[0005] 一種用于搜索數據庫的另一實施例方法包括處理器接收來自用戶的指示查詢的 消息,其中所述查詢包括模式;以及所述處理器比較所述模式和所述數據庫的數據集的第 一鍵以產生比較。所述方法還包括所述處理器根據所述比較記錄結果以產生記錄的結果以 及所述處理器根據所述比較確定是跳躍還是按序掃描。此外,所述方法包括所述處理器將 所述記錄的結果發(fā)送給所述用戶。
[0006] 一種實施例計算機包括處理器和數據庫,所述數據庫包括多維數據庫索引。所述 計算機還包括一種存儲由所述處理器執(zhí)行的程序的計算機可讀存儲介質。所述程序包括 進行以下操作的指令:接收來自用戶的消息,其中所述消息指示查詢,并且所述查詢包括模 式;以及根據所述數據庫的數據集確定第一閾值。所述程序還包括進行以下操作的指令: 比較所述模式和所述數據集的第一鍵以產生比較。此外,所述程序包括進行以下操作的指 令:根據所述比較和所述第一閾值確定是跳到所述數據集的第二鍵還是掃描至所述數據集 中的第三鍵,包括當所述比較的絕對值大于所述第一閾值時,跳到所述數據集的所述第二 鍵,和當所述比較的所述絕對值小于或等于所述第一閾值時,掃描至所述數據集的所述第 三鍵,其中所述第一鍵和所述第三鍵是連續(xù)的。
[0007] 上文相當寬泛地概述了本發(fā)明的實施例的特征,目的是讓人能更好地理解下文對 本發(fā)明的詳細描述。下文中將描述本發(fā)明的實施例的額外特征和優(yōu)點,其形成本發(fā)明的權 利要求書的標的物。所屬領域的技術人員應了解,所公開的概念和具體實施例可容易地用 作修改或設計用于實現本發(fā)明的相同目的的其它結構或過程的基礎。所屬領域的技術人員 還應意識到,此類等效構造不脫離所附權利要求書中所提出的本發(fā)明的精神和范圍。
【附圖說明】
[0008] 為了更完整地理解本發(fā)明及其優(yōu)點,現在參考下文結合附圖進行的描述,其中:
[0009] 圖1示出了gz曲線的示例;
[0010] 圖2示出了投射到坐標向量的掩碼;
[0011] 圖3示出了點模式搜索問題(PSP)的解決方案軌跡的實施例結構;
[0012] 圖4示出了范圍PSP的解決方案軌跡的實施例結構;
[0013] 圖5示出了數據庫搜索的實施例方法的流程圖;
[0014] 圖6示出了若干過濾器組合的爬蟲和草蜢策略的查詢時間的圖;
[0015] 圖7示出了不同數據存儲的爬蟲和草蜢策略的查詢時間的圖;
[0016] 圖8示出了呼叫詳細記錄(CDR)數據集的爬蟲和草蜢策略的查詢時間的圖;
[0017] 圖9示出了事務處理性能委員會決策支持(TPC-DS)數據集的爬蟲和草蜢策略的 查詢時間的圖;
[0018] 圖10示出了TPC-DS數據集的爬蟲和草蜢策略的查詢時間的另一圖;以及
[0019] 圖11示出了通用計算機系統(tǒng)的實施例的方框圖。
[0020] 除非另有指示,否則不同圖中的對應標號和符號通常指代對應部分。繪制各圖是 為了清楚地說明實施例的相關方面,因此未必是按比例繪制的。
【具體實施方式】
[0021] 最初應理解,盡管下文提供一個或多個實施例的說明性實施方案,但可使用任意 數目的當前已知或現有的技術來實施所公開的系統(tǒng)和/或方法。本發(fā)明決不應限于下文所 說明的所述說明性實施方案、圖式和技術,包含本文所說明并描述的示范性設計和實施方 案,而是可以在所附權利要求書的范圍以及其均等物的完整范圍內修改。
[0022] 數據倉庫中使用的多維數據庫通過使用字典和特定鍵復合將客戶數據轉換為鍵 值對。可按鍵順序存儲鍵值對。所有可能鍵的多維空間配有空間填充曲線,這樣每個可能 鍵都對應曲線上的一個點。使用非常大的整數參數化這些點。針對客戶數據的基于任意屬 性的點、范圍或集合過濾器的查詢,以及基于這些屬性的以上查詢的組合都可以轉化為基 于復合鍵的模式搜索問題。
[0023] 實施例在表征復合鍵的有序整數集合內執(zhí)行快速子集過濾。一實施例可用于在無 需額外標引的情況下加速針對數據倉庫的臨時分析查詢。多個實施例可用于任意組合的多 個屬性上的點、范圍和集合約束。點過濾器為同等約束,范圍過濾器為區(qū)間約束,以及集合 過濾器為子集約束。使用了跳過大部分無關鍵的順序爬行的組合??筛鶕讓訑祿鎯Φ?特征自適應地確定是否進行跳躍。
[0024] 臨時聯(lián)機分析處理(OLAP)查詢是一種可在一些參與變量上放置多個過濾器并且 可聚合量度值的查詢。OLAP實施方式可使用字典來使用連續(xù)整數對維屬性值進行編碼。對 于具有代理鍵的有序屬性,代理鍵可以是整數。對于無序屬性,整數可能是連續(xù)的。對于無 序屬性,可保留順序。
[0025] 維屬性域的笛卡爾乘積形成復合鍵空間。向量依賴F隨后將復合鍵與含量度的向 量形成映射。多維數據庫技術基于給復合鍵空間賦予空間填充曲線,這樣空間的每個元素 都對應曲線上的單個點,反之亦然。存在多種方式來選擇該曲線。在一項示例中,使用了廣 義Z曲線(gz曲線)。在gz曲線中,使用整數對曲線上的每個點進行編碼,其中整數來自復 合鍵的分量的值。針對多維數據庫的任意具有點、范圍或集合過濾器的查詢轉化為gz曲線 上的模式搜索問題。
[0026] 在OLAP字段中存在向量函數依賴:
[0027] F: (D"? ?DN) -(M"? ?Mm)。
[0028] 自變量Di是維度(維屬性),而因變量^是量度。使用涉及維屬性的其它函數依 賴來增強該依賴。獨立屬性是高級維屬性。它們導致它們依賴的屬性域內的分組,從而導 致對量度進行聚合操作。依賴可形成無回路有向圖(DAG)。
[0029] 可使用整數對維屬性進行編碼。如果屬性為整數值,那么可在不進行額外編碼的 情況下使用該屬性。如果屬性不是整數值,那么創(chuàng)建編碼字典。對于自然序屬性,編碼保留 該順序。可以使用由連續(xù)整數進行的密集編碼?;蛘?,不使用密集編碼。在一項示例中,每 個維屬性的基數是2的冪。
[0030] 隨后用編碼術語表示維屬性,例如表示為整數或字節(jié)數組。字典和依賴可提供常 數查詢時間。
[0031] 感興趣的維屬性可參與復合鍵的形成。在鍵中包括高級屬性可向模型增加稀疏 性,但無需查詢時間處的連接。
[0032] 使用復合鍵的編碼將函數依賴F的數據轉換為鍵值格式。存儲部件負責保存鍵值 格式的數據并在查詢時間獲取相關鍵值對。
[0033] 針對多維數據庫的簡單查詢將某些屬性約束為它們的值的子集并且請求滿足約 束的數據。在一項示例中,在維屬性上存在一類約束,例如屬性域上的點、范圍和集合約束。
[0034] 當查詢到達時,系統(tǒng)查找對字典的約束中涉及的屬性值并將它們轉化為整數。這 些整數隨后用于形成對復合鍵的約束。這些整數被傳遞到存儲部件用于獲取相關鍵值對, 這些相關鍵值被聚合和存儲。最終,再次使用字典將最終結果轉化回原始屬性域。
[0035] 無論復合鍵是如何產生的,它都在鍵搜索空間中提供潛在點的整數編碼,鍵搜索 空間為編碼屬性域的笛卡爾乘積。因此,復合鍵在搜索空間中為空間填充曲線提供整數參 數化。在一示例中,二進制表示形式的整數復合鍵由參與分量的鍵的比特位建成,這樣預留 了每個分量的比特位順序。該過程產生了固定長度的鍵。
[0036] gz曲線的形狀取決于分量的比特位組成復合鍵的方式法。圖1示出了兩個變量的 一些形狀,其中水平和垂直維度的比特位分別標記為x和y。曲線150所示為比特位順序為 yxyxyx的傳統(tǒng)各向同性z曲線。曲線152所示為計程儀曲線,比特位順序為yyyxxx,對應 于將鍵按y排序然后按X排序。相比其它維度,計程儀曲線極力支持一個維度。計程儀的 位置靠高位的維度上的對具有過濾器的查詢的回答位于曲線的單個相鄰分段內,然而對于 位置靠低位的維度上的過濾器,回答分散在曲線上。曲線154示出了比特位順序yyxyxx,曲 線156示出了比特位順序xxyyyx。在圖1中,陰影區(qū)域為順序4的基本區(qū)域的示例。
[0037] 示例方法應用于任意維度的子集而不一定是完整集合上的點、范圍和集合過濾器 的任意組合。這些方法可提高任意基本鍵值存儲系統(tǒng)的臨時OLAP查詢的性能,底層鍵值存 儲系統(tǒng)使按復合鍵的順序保存數據并支持某簡單操作。當存儲系統(tǒng)有效支持所需操作時, 可能會發(fā)生顯著的性能增益。一種方法基本上僅具有存儲的某些特征,例如順序訪問和隨 機訪問成本之比。假設一查詢,計算出特定閾值,如果在爬行時查詢遇到合適的障礙,那么 超過該閾值后,查詢將跳躍??捎么鷶捣椒ù_定閾值并用幾何方法解釋該閾值。
[0038] 一示例具有很少關于存儲系統(tǒng)的知識,但具有跳躍能力。它可跳過存儲的相同單 元內的鍵,或它可跳躍著陸在存儲的不同單元上??墒褂脭祿鎯μ峁┑钠渌畔ⅲ鏶z 曲線上由鍵區(qū)間劃分的分區(qū)的邊界。這些分區(qū)可對應于例如UB樹或Hbase區(qū)域的頁面。 分區(qū)可以是分層的并且特定于存儲。該方法隨后可確定是否檢查該區(qū)域的內容或跳過該區(qū) 域的內容??刹⑿刑幚砝鏗Base區(qū)域和每個分區(qū)。此外,在該分區(qū)內,可減少該問題的維 度。接著,該方法可直接在減少的可進行因式分解的鍵上進行操作,而不恢復原始鍵。
[0039] 一個或多個屬性上的點約束涉及固定鍵中的比特位模式,因此查詢問題轉換為關 于鍵集合的固定模式搜索問題(PSP)。范圍和集合約束導致更為復雜的模式。如果n是復 合鍵中的總比特位數,那么所有鍵的空間S為Zg,2^是殘差組上的n維線性空間;
[0040]
[0041] 比特位在S中形成有序基ei,…,en并且S的元素按系數以字母順序排列,這些系 數與整數順序一致。
[0042] 在一項示例中,使用了具有