計算機系統訪問數據記錄的集合。該集合中的每個記錄包括多個數據值以及從該多個數據值標識出相對應數據值的語義的多個數據元素。一個或多個數據記錄中的每個包括相同數據元素的多個實例,并且包括對應于該相同數據元素的多個實例的數據值。該計算機系統生成列狀條帶的集合。該列狀條帶集合包括來自數據記錄集合中的每個數據記錄的數據值。該列狀條帶集合中的每個列狀條帶包括對應于來自記錄集合中的每個記錄的具體數據元素的所有數據值。
【技術實現步驟摘要】
【國外來華專利技術】記錄的列狀存儲表示相關申請的交叉引用本申請要求于2010年4月5日提交的第61/321106號美國臨時申請和于2010年4月7日提交的第61/321688號美國臨時申請的權益。
本文檔總體上描述了用于生成并處理記錄的列狀存儲表示的技術、方法、系統和機制。
技術介紹
本公開總體上涉及大規模分析數據處理。這樣的數據處理在網絡公司中且跨產業已經變得非常普遍,尤其是由于使得能夠采集大量商業關鍵數據的低成本存儲。將該數據放在分析師和引擎的指尖已經顯得越來越重要;交互響應時間經常在數據探測、監視、在線消費者支持、快速成形、數據管線調試和其它任務中形成質量差異。按規模執行交互式數據分析要求高度并行、例如,使用當今的商品磁盤在一秒鐘內讀取一兆兆字節的壓縮數據將需要數萬個磁盤。類似地,CPU密集查詢可能需要在數千個核上運行以在數秒之內完成。
技術實現思路
這里公開了一種用于數據分析的可擴展、交互式ad-hoc查詢系統。通過將多級執行樹與列狀逐句布局相結合,所描述的系統和方法能夠運行諸如整合查詢之類的快速且高效的查詢。描述了用于嵌套記錄的列狀存儲表示,所述嵌套記錄是可以在許多網絡規模和科學數據集中使用的流行數據模型。依據一個實施例,記錄被分解為列條帶,每個列被編碼為塊的集合,每個塊包含字段值以及重復和定義級別信息。級別信息使用字段寫入器(writer)的樹生成,其結構與記錄模式中的字段層級相匹配??梢杂行У厥褂糜邢逘顟B機從列狀數據組成記錄,該有限狀態機讀取字段數據以及每個字段的級別信息并且將值順序附加至輸出記錄。如果僅字段的子集需要被獲取,則能夠構造其執行更為廉價更為簡單的有限狀態機。此外通過利用列狀存儲表示存儲諸如約束信息之類的附加元數據,能夠支持附加類型的查詢。多級服務樹被用來執行查詢。在一個實施例中,根服務器接收傳入的查詢,從表讀取元數據,并且將該查詢路由至服務樹中的下一級別。葉服務器與存儲層進行通信并且訪問本地存儲上的數據,其中所存儲的數據能夠被復制,并且讀取列狀表示中嵌套數據的條帶。每個服務器可以具有對應于物理查詢執行計劃的內部執行樹,其包括對輸入列進行掃描并且發出利用級別信息進行注釋的聚集和標量函數的結果的迭代器集合。在另一個實施例中,提供查詢分派器,其基于查詢的屬性對它們進行調度并且平衡負載。查詢分派器在一個服務器變得明顯比其它服務器更慢或者當副本(replica)變為無法訪問時提供容錯。查詢分派器能夠計算葉服務器上的執行線程的處理時間的直方圖并且當處理時間占用不成比例的時間量時重新調度至另一個服務器。可以就地對列狀數據進行查詢。將列狀數據在普通存儲層上維護并且提供機制以對來自列狀數據的記錄進行整合支持對記錄結構的數據進行分析的數據管理工具的可操作性。該系統可以為數個處理器的規模并且能夠快速讀取大量數據。在某些實例中,特定實施例能夠被實施為實現以下的一種或多種優勢。嵌套數據可以在原地進行操作,以使得數據可以被訪問而并不利用數據庫管理系統加載該數據。可以以比其它分析程序所需的時間有所減少的執行時間來執行嵌套數據的查詢。在普通存儲層上實現的列狀存儲數據結構使得多個不同分析程序能夠訪問該列狀存儲數據結構。作為所附權利要求以及以上描述中所描述實施例的備選,本專利技術也可以通過以下實施例之一進行描述:實施例1針對一種計算機實施的方法。該方法包括由計算系統訪問存儲在計算機存儲器中的數據記錄的集合,該數據記錄集合中的每個記錄包括多個數據值以及標識出來自該多個數據值的對應數據值的語義的多個數據元素,該數據記錄集合中的一個或多個數據記錄中的每個包括相同數據元素的多個實例,并且包括對應于該相同數據元素的多個實例的數據值。該方法進一步包括由計算機系統生成列狀條帶的集合,該列狀條帶集合包括來自數據記錄集合中的每個數據記錄的數據值,該列狀條帶集合中的每個列狀條帶包括對應于來自記錄集合中的每個記錄的具體數據元素的所有數據值。實施例2針對實施例1的方法。該方法進一步包括由計算系統且對于列狀條帶集合中的每個列狀條帶中的每個數據值生成識別來自該數據記錄集合的相應數據記錄中的相應數據值的位置的數據。實施例3針對實施例2的方法,其中該數據由重復值和定義值所構成。實施例4針對實施例2至3中任一項的方法。該方法進一步包括從(i)列狀條帶集合中的列狀條帶,和(ii)數據來重構僅包含來自該數據記錄集合中的記錄的數據元素子集的記錄集合。實施例5針對實施例1至4中任一項的方法,進一步包括生成該列狀條帶集合中的每個特定數據值的重復值,以與該列狀條帶集合中的數據值一起存儲,其中每個特定數據元素的路徑包括對該特定數據元素的任意一個或多個父數據元素;其中每個特定數據值的重復值標識出對應于特定數據值的特定數據元素的路徑中最近重復的數據元素;其中特定數據元素的路徑中的該最近重復過的數據元素是在包括該特定數據值的特定數據記錄的分析期間在特定數據元素的路徑中第二次遇到的數據元素,該分析從特定數據值在特定數據記錄中的位置向上朝著特定數據記錄的開始進行。實施例6針對實施例1至5中任一項的方法,其中該數據元素集合中所包括的數據元素中的每個特定數據元素與包括對該特定數據元素的任意一個或多個父數據元素的相應路徑相關聯。該方法進一步包括生成該數據記錄集合中的每個特定路徑或特定路徑部分的定義值,以與該列狀條帶中的數據值一起存儲。特定路徑或特定路徑的部分的定義級別標識出該特定路徑或路徑的部分中所包括的數據元素的數量。實施例7針對實施例1至6中任一項的方法。該方法進一步包括由計算系統從數據源集合接收信息,每個數據源包括未根據模式而結構化的信息。該方法進一步包括由計算系統通過根據該模式對每個數據源中的信息進行結構化而生成該數據記錄集合中的每個數據記錄。實施例8針對實施例1至7中任一項的方法。該方法進一步包括由計算系統執行對該列狀條帶集合的查詢。該方法進一步包括由計算系統且響應于查詢的執行而輸出新的列狀條帶,該新的列狀條帶包括來自由該查詢所標識出的列狀條帶集合的列狀條帶的值的子集。實施例9針對實施例8的方法。其中執行該列狀條帶集合的查詢而并不將該列狀條帶集合中所包括的數據值加載到數據庫中。實施例10針對實施例1至9中任一項的方法,其中該列狀條帶集合的至少第一列狀條帶包括多個數據塊,該多個數據塊中的至少一些數據塊中的每個包括定義了在每個塊的值中所找到的值類型的聲明值,從而使得在執行第一列狀條帶的查詢時,該計算系統避免不包括由該查詢所指定的數據值的一個或多個數據塊。實施例11針對實施例1至10中任一項的方法,其中該列狀條帶集合的第一列狀條帶包括來自該數據記錄集合中的對應于該數據記錄集合中的第一數據元素的實例的數據記錄中的所有數據值,作為第一數據值。該第一列狀條帶在存儲器中連續存儲多個第一數據值,其中多個第一數據值在多個第一數據值存儲在該數據記錄集合中的數據記錄中時,并不在存儲器中連續存儲。實施例12針對實施例1至11中任一項的方法,其中該數據記錄集合中的至少一個數據記錄包括根據嵌套數據模型所存儲的數據元素和對應的數據值。實施例13針對實施例1至12中任一項的方法,其中第一數據記錄包括第一數據元素和第二數據元素,第一數據元素是第二數據元素的父數據元素,并且第二數據元素是第一數據元素的子數據元素本文檔來自技高網...

【技術保護點】
【技術特征摘要】
【國外來華專利技術】2010.04.05 US 61/321,106;2010.04.07 US 61/321,6881.一種計算機實現的方法,包括:由計算系統訪問存儲在計算機存儲器中的數據記錄集合,所述數據記錄集合中的每個記錄包括多個數據值以及標識出來自所述多個數據值的對應數據值的語義的多個數據元素,所述數據記錄集合中的一個或多個數據記錄中的每個包括相同數據元素的多個實例,并且包括對應于所述相同數據元素的所述多個實例的數據值;由所述計算系統生成列狀條帶集合,所述列狀條帶集合包括來自所述數據記錄集合中的每個數據記錄的所述數據值,所述列狀條帶集合中的每個列狀條帶包括對應于來自所述記錄集合中的每個所述記錄的具體數據元素的所有數據值;由所述計算系統針對所述列狀條帶集合中每個列狀條帶中的每個數據值生成以下數據:(i)其標識出來自所述數據記錄集合的相應數據記錄中的相應數據值的位置;以及(ii)其能夠與所述列狀條帶一起使用以重構所述數據記錄集合。2.根據權利要求1所述的方法,其中所述數據由重復值和定義值所構成。3.根據權利要求1至2中任一項所述的方法,進一步包括根據(i)所述列狀條帶集合中的所述列狀條帶,和(ii)所述數據來重構僅包含來自所述數據記錄集合中的所述記錄的數據元素的子集的記錄集合。4.根據權利要求1至2中任一項所述的方法,進一步包括生成所述列狀條帶集合中每個特定數據值的重復值,以與所述列狀條帶集合中的所述數據值一起存儲,其中每個特定數據元素的路徑包括對所述特定數據元素的任意一個或多個父數據元素;其中每個特定數據值的所述重復值標識出對應于所述特定數據值的所述特定數據元素的所述路徑中最近重復過的數據元素;其中所述特定數據元素的所述路徑中的所述最近重復過的數據元素是在包括所述特定數據值的特定數據記錄的分析期間在所述特定數據元素的所述路徑中第二次遇到的數據元素,所述分析從所述特定數據值在所述特定數據記錄中的位置向上朝著所述特定數據記錄的開始進行。5.根據權利要求1至2中任一項所述的方法,其中所述數據元素集合中所包括的所述數據元素中的每個特定數據元素與包括對所述特定數據元素的任意一個或多個父數據元素的相應路徑相關聯;進一步包括生成所述數據記錄集合中的每個特定路徑或所述特定路徑的部分的定義值,以與所述列狀條帶中的所述數據值一起存儲;其中所述特定路徑或所述特定路徑的部分的定義級別標識出所述特定路徑或路徑的部分中所包括的數據元素的數量。6.根據權利要求1至2中任一項所述的方法,進一步包括:由所述計算系統從數據源集合接收信息,每個數據源包括未根據模式而結構化的信息;以及由所述計算系統通過根據所述模式對每個數據源中的所述信息進行結構化而生成所述數據記錄集合中的每個數據記錄。7.根...
【專利技術屬性】
技術研發人員:A·古巴雷夫,S·梅爾尼克,J·J·隆,G·M·羅梅爾,N·施瓦屈瑪爾,M·B·托爾頓,T·瓦西拉基斯,
申請(專利權)人:谷歌公司,
類型:
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。