欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

格式化數(shù)據(jù)庫中的半結(jié)構(gòu)化數(shù)據(jù)的制作方法_2

文檔序號:9252412閱讀:來源:國知局
結(jié)構(gòu)化列(200)的示例的圖。在此示例中,半結(jié)構(gòu)化列(200)具有專用于識別鍵(206)的第一子列(204)。半結(jié)構(gòu)化列(200)還具有專用于識別鍵(206)的對應(yīng)值(210)的第二子列(208)。
[0026]每個記錄以二進(jìn)制字典格式中被存儲為對,該對表示鍵及鍵的對應(yīng)值。值可以是二進(jìn)制數(shù)字值或可以被轉(zhuǎn)換為二進(jìn)制數(shù)字值的符號,或二進(jìn)制數(shù)字值和可以被轉(zhuǎn)換為二進(jìn)制數(shù)字值的符號的組合。在其它示例中,鍵/值半結(jié)構(gòu)化列在數(shù)據(jù)庫中被實(shí)現(xiàn)為簡單寬可變二進(jìn)制(varbinary)值和/或二進(jìn)制大對象(blob)值。在圖2的示例中,鍵(206)中的每個是在鍵列(204)中存儲的名字或年齡。類似地,值(210)中的每個被存儲在與該值的鍵(206)對應(yīng)的值列(208)中。在每個鍵具有相同類型的示例中,半結(jié)構(gòu)化列(200)可以被壓縮為與顯式列被壓縮的程度幾乎一樣的程度。但是,在此示例中,鍵(206)具有不同類型。此外,在半結(jié)構(gòu)化列(200)中可以包含比僅僅鍵值對更多的信息。但是,可以從半結(jié)構(gòu)化數(shù)據(jù)的余下部分中提取該鍵值對,并且將該鍵值對存儲在容易搜索的位置。
[0027]當(dāng)將數(shù)據(jù)加載至數(shù)據(jù)庫時,將評估鍵/值對,以確定將該數(shù)據(jù)加載至顯式列還是半結(jié)構(gòu)化列。例如,如果鍵與已有顯式列的名字相匹配,則將該鍵值對加載到該顯式列內(nèi)。另一方面,如果鍵與已有列不匹配,則將該鍵值對存儲在半結(jié)構(gòu)化列中。
[0028]記錄(212)缺少年齡鍵和值。缺少鍵和值可能產(chǎn)生自在將該數(shù)據(jù)加載至半結(jié)構(gòu)化列(200)之前的刪除。在其它示例中,純粹未輸入鍵和值。如果布萊爾?特納先生在將他的名字輸入到數(shù)據(jù)庫中時未輸入他的年齡,則發(fā)生這樣的示例。這樣的缺失值使此數(shù)據(jù)的記錄在記錄之間不一致。這樣的不一致將使該數(shù)據(jù)被分類為半結(jié)構(gòu)化數(shù)據(jù)。此外,當(dāng)執(zhí)行請求“年齡”的查詢時,該記錄將接收SQL空響應(yīng),該SQL空響應(yīng)指示該值是未知的。
[0029]如上所述的,如果所有記錄之間的鍵和值對全部一致,則半結(jié)構(gòu)化列將適當(dāng)?shù)貕嚎s。在這樣的示例中,半結(jié)構(gòu)化列可以被分類為顯式列。通過應(yīng)用這樣的索引機(jī)制,名字為顯式列的名字的搜索查詢很快執(zhí)行。例如,包括“名字以‘B’開頭的人的平均年齡”的查詢很快執(zhí)行,因?yàn)閮H需要針對以“B”開頭的名字列的記錄來讀取半結(jié)構(gòu)化鍵/值列,。
[0030]當(dāng)SQL查詢引用在列存儲數(shù)據(jù)庫中不存在的列時,將該列引用重寫到函數(shù)調(diào)用內(nèi),以從二進(jìn)制字典列中提取所命名的字段。如果許多記錄具有完全相同的一組鍵,則這些鍵的列容易壓縮。這種情況可能在具有固定模式的數(shù)據(jù)被加載到非結(jié)構(gòu)化表中時發(fā)生,這是存儲記錄模式的資源成本最小化時的場景。
[0031]雖然半結(jié)構(gòu)化列使數(shù)據(jù)可訪問,但半結(jié)構(gòu)化列不能以顯式列的格式提供所有最優(yōu)搜索特性。在顯式列中,列存儲數(shù)據(jù)庫分類并壓縮數(shù)據(jù),以最大化輸入/輸出利用、最小化磁盤占用以及提供索引功能。數(shù)據(jù)庫設(shè)計者工具使物理設(shè)計過程自動化,以確保不太有經(jīng)驗(yàn)的用戶可以獲得較好性能。爪哇(Java)程序可以用于確定要基于半結(jié)構(gòu)化列的數(shù)據(jù)重新格式化哪些半結(jié)構(gòu)化列以及如何查詢它們。爪哇程序用新的子列重建半結(jié)構(gòu)化列,并且調(diào)用列存儲數(shù)據(jù)庫的已有數(shù)據(jù)庫設(shè)計以選擇最優(yōu)物理布局來重新格式化半結(jié)構(gòu)化數(shù)據(jù)。
[0032]響應(yīng)于至少一個搜索查詢,半結(jié)構(gòu)化列的格式化可以改變?yōu)榘ǜ郊有畔ⅰ@?,如果搜索查詢尋找公司B的管理人員的名字且列存儲數(shù)據(jù)庫中的其它信息不包括對公司B的引用,則搜索器可以引起在半結(jié)構(gòu)化列中進(jìn)行搜索。搜索查詢分析器可以確定來自半結(jié)構(gòu)化數(shù)據(jù)的名字是公司B的管理人員的名字。響應(yīng)于這樣的確定,可以增加元數(shù)據(jù)來重新格式化該半結(jié)構(gòu)化列,以指示該名字是公司B的管理人員。因此,可以更快地執(zhí)行此后尋找與公司B的管理人員相關(guān)的信息的搜索查詢。
[0033]雖然已參照分析搜索查詢的特定機(jī)制描述此示例,但可以使用用于分析搜索查詢的任何合適機(jī)制。例如,可以分析任何合適數(shù)量的搜索查詢。此外,可以包括準(zhǔn)確度因子,以確保與向半結(jié)構(gòu)化列添加什么類型的元數(shù)據(jù)相關(guān)的論斷具有高的準(zhǔn)確可能性。搜索查詢本身也可能受到嚴(yán)格審查。例如,僅包括單個參數(shù)的搜索項(xiàng)可以被排除在根據(jù)分析策略進(jìn)行分析之外。另一方面,可以分析包括諸如“約翰.史密斯”、“管理人員”和“公司B”之類的至少三個或更多個參數(shù)的搜索查詢,因?yàn)檫@樣的搜索參數(shù)給出以下更強(qiáng)論斷:半結(jié)構(gòu)化列中的約翰.史密斯和其它名字是公司B的管理人員。
[0034]圖3是根據(jù)本文描述的原理的、用于格式化數(shù)據(jù)庫中的半結(jié)構(gòu)化數(shù)據(jù)的方法(300)的示例的圖。在此示例中,方法(300)包括:將半結(jié)構(gòu)化數(shù)據(jù)獲取到(302)列存儲數(shù)據(jù)庫中,將該半結(jié)構(gòu)化數(shù)據(jù)分配(304)給具有鍵和值格式的半結(jié)構(gòu)化列,以及利用最優(yōu)搜索格式來格式化(306)該半結(jié)構(gòu)化數(shù)據(jù)。
[0035]該方法還可以包括:響應(yīng)于搜索查詢,搜索半結(jié)構(gòu)化列。僅當(dāng)在列存儲數(shù)據(jù)庫中的其它地方未找到與搜索查詢相關(guān)的信息時,可以搜索半結(jié)構(gòu)化列。利用最優(yōu)搜索格式來格式化該半結(jié)構(gòu)化數(shù)據(jù)可以包括:針對半結(jié)構(gòu)化數(shù)據(jù)來分析搜索查詢,并且使該半結(jié)構(gòu)化數(shù)據(jù)的格式以搜索查詢?yōu)榛A(chǔ)。
[0036]該方法還可以包括:確定列存儲數(shù)據(jù)庫是否識別該半結(jié)構(gòu)化數(shù)據(jù)。如果列存儲數(shù)據(jù)庫識別半結(jié)構(gòu)化數(shù)據(jù)中的至少一些,則半結(jié)構(gòu)化數(shù)據(jù)被分配給列存儲數(shù)據(jù)庫的半結(jié)構(gòu)化數(shù)據(jù)列和顯式列。
[0037]圖4是根據(jù)本文描述的原理的格式化系統(tǒng)(400)的示例的圖。格式化系統(tǒng)(400)包括獲取引擎(402)、加載引擎(404)、搜索引擎(406)和格式化引擎(408)。此外,在此示例中,格式化系統(tǒng)(400)還包括確定引擎(410) ο引擎(402、404、406、408、410)指用于執(zhí)行指定功能的硬件和程序指令的組合。引擎(402、404、406、408、410)中的每個可以包括處理器和存儲器。程序指令被存儲在存儲器中,并且使處理器執(zhí)行引擎的指定功能。
[0038]獲取引擎(402)從半結(jié)構(gòu)化源獲取半結(jié)構(gòu)化數(shù)據(jù)。獲取引擎(402)可以被動地接收信息,如響應(yīng)于用戶手動地輸入數(shù)據(jù)或響應(yīng)于用戶下載信息。在其它示例中,獲取引擎(402)主動地請求信息,如在格式化引擎(400)試圖獲得與已存儲在列存儲數(shù)據(jù)庫中的信息相關(guān)的更新時。
[0039]加載引擎(404)將數(shù)據(jù)加載到列存儲數(shù)據(jù)庫中的合適列中。例如,如果數(shù)據(jù)被分類為半結(jié)構(gòu)化數(shù)據(jù),則加載引擎(404)可以將數(shù)據(jù)加載到半結(jié)構(gòu)化列中;如果數(shù)據(jù)已經(jīng)以允許最優(yōu)搜索的方式被格式化,則加載引擎(404)可以將數(shù)據(jù)加載到顯式列中;或者如上面所述那樣適當(dāng)?shù)厝鐚?shù)據(jù)加載到顯式列和半結(jié)構(gòu)化列中。
[0040]搜索引擎(406)可以響應(yīng)于接收到搜索查詢而搜索數(shù)據(jù)庫。搜索查詢可以由用戶輸入,該用戶可能知道也可能不知道數(shù)據(jù)被發(fā)送至半結(jié)構(gòu)化列還是顯式列。在其它示例中,由尋找不同程序和/或系統(tǒng)的信息的程序生成搜索查詢。
[0041]格式化引擎(408)以針對搜索而將半結(jié)構(gòu)化數(shù)據(jù)優(yōu)化的方式,格式化半結(jié)構(gòu)化數(shù)據(jù)。在一些示例中,從半結(jié)構(gòu)化列中提取半結(jié)構(gòu)化數(shù)據(jù)或半結(jié)構(gòu)化數(shù)據(jù)的至少多個部分,并且將半結(jié)構(gòu)化數(shù)據(jù)或半結(jié)構(gòu)化數(shù)據(jù)的至少多個部分置于具有附加格式的新生成的列內(nèi)。在其它示例中,除僅鍵值對之外,半結(jié)構(gòu)化列還被重新格式化為包括附加結(jié)構(gòu),以提高列的可搜索性。
[0042]確定引擎(410)確定數(shù)據(jù)是半結(jié)構(gòu)化數(shù)據(jù),是非結(jié)構(gòu)化數(shù)據(jù),還是最優(yōu)地格式化的數(shù)據(jù)。在數(shù)據(jù)已被最優(yōu)地格式化的示例中,將數(shù)據(jù)分配給已有列。如果數(shù)據(jù)是非結(jié)構(gòu)化的,則可以將該數(shù)據(jù)發(fā)送至用于處理這樣的數(shù)據(jù)的不同過程或非結(jié)構(gòu)化數(shù)據(jù)的項(xiàng)僅失效。如上所述那樣,加載半結(jié)構(gòu)化數(shù)據(jù)。
[0043]圖5是根據(jù)本文描述的原理的格式化系統(tǒng)(500)的示例的圖。在此示例中,格式化系統(tǒng)(500)包括與存儲器資源(504)通信的處理資源(502)。處理資源(502)包括用于處理編程指令的至少一個處理器和其它資源。存儲器資源(504)通常表示能夠存儲像由格式化系統(tǒng)(500)使用的編程指令或數(shù)據(jù)結(jié)構(gòu)這樣的數(shù)據(jù)的任何存儲器。示出的在存儲器資源(504)中存儲的編程指令包括數(shù)據(jù)獲取器(506)、數(shù)據(jù)識別確定器(508)、數(shù)據(jù)分配器(510)、數(shù)據(jù)加載器(514)、搜索查詢識別器(516)、半結(jié)構(gòu)化列搜索器(518)、搜索查詢分析器(520)以及搜索優(yōu)化格式化器(522)。
[0044]存儲器資源(504)包括包含計算機(jī)可讀程序代碼的計算機(jī)可讀存儲介質(zhì),計算機(jī)可讀程序代碼用于引起由處理資源(502)執(zhí)行任務(wù)。計算機(jī)可讀存儲介質(zhì)可以是有形的和/或非暫時性的存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)可以是不屬于傳輸存儲介質(zhì)的任意適合的存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)類型的非窮盡列表包括:非易失性存儲器、易失性存儲器、隨機(jī)存取存儲器、基于憶阻器的存儲器、只寫存儲器、閃存、電可擦除可編程只讀存儲器、磁存儲媒介或各類存儲器、或以上的組合。
[0045]數(shù)據(jù)獲取器(506)表示以下編程指令:該編程指令在被執(zhí)行時使處理資源(502)從半結(jié)構(gòu)化數(shù)據(jù)源獲取數(shù)據(jù)。數(shù)據(jù)識別確定器(508)表示以下編程指令:該編程指令在被執(zhí)行時使處理資源(502)確
當(dāng)前第2頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
古交市| 桃源县| 石台县| 营山县| 青冈县| 黄陵县| 洛扎县| 密山市| 宜宾县| 潼南县| 抚顺县| 利川市| 金寨县| 崇左市| 晋宁县| 彰化市| 玉门市| 亚东县| 任丘市| 延长县| 武功县| 慈溪市| 天柱县| 林甸县| 元江| 安泽县| 嘉兴市| 景泰县| 满洲里市| 新昌县| 阿克| 宕昌县| 桂阳县| 全南县| 出国| 枣庄市| 康定县| 潞城市| 石屏县| 博野县| 榆中县|