一種不確定數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,具體涉及一種不確定數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)方法。
【背景技術(shù)】
[0002] 近些年,隨著互聯(lián)網(wǎng)的迅猛發(fā)展與數(shù)據(jù)采集技術(shù)的不斷提高,人們可獲得的數(shù)據(jù) 量越來(lái)越大,這為大數(shù)據(jù)環(huán)境下特定信息的查詢與管理帶來(lái)了新的挑戰(zhàn)。與此同時(shí),由于數(shù) 據(jù)感知設(shè)備的誤差或?qū)γ舾行畔⒌碾[私保護(hù),軍事、物流、金融等領(lǐng)域所獲得的數(shù)據(jù)往往不 能準(zhǔn)確描述數(shù)據(jù)的特征,即所獲得數(shù)據(jù)具有不確定性。不確定數(shù)據(jù)是指真實(shí)獲得的、不精確 的、沒(méi)有確定取值的數(shù)據(jù),如GPS定位數(shù)據(jù)、全國(guó)人口總數(shù)數(shù)據(jù)等。相比于確定性數(shù)據(jù),不確 定數(shù)據(jù)最大的特點(diǎn)在于同一個(gè)數(shù)據(jù)對(duì)應(yīng)多個(gè)可能的取值,對(duì)于同類型的數(shù)據(jù),不確定數(shù)據(jù) 規(guī)模遠(yuǎn)大于確定性數(shù)據(jù)規(guī)模。以移動(dòng)通信運(yùn)營(yíng)商記錄用戶3G上網(wǎng)情況為例,用戶每次連接 3G網(wǎng)絡(luò)直至斷開為一次上網(wǎng)記錄,每條記錄中都需要記錄用戶的姓名、手機(jī)號(hào)碼、連接時(shí) 間、結(jié)束時(shí)間、所用流量、連接網(wǎng)絡(luò)時(shí)用戶坐標(biāo)、斷開網(wǎng)絡(luò)時(shí)用戶坐標(biāo)、連接網(wǎng)絡(luò)期間用戶移 動(dòng)路徑等信息,而由于硬件設(shè)備的局限以及對(duì)個(gè)人隱私信息的保護(hù),獲得的用戶地理位置 信息存在著不確定性,每條記錄中每個(gè)用戶位置信息都可能對(duì)應(yīng)一個(gè)甚至多個(gè)可能的坐標(biāo) 值,這為對(duì)用戶行為的分析帶來(lái)了巨大挑戰(zhàn)。
[0003] 為解決迅速增長(zhǎng)的海量不確定數(shù)據(jù)的存儲(chǔ)問(wèn)題,相關(guān)學(xué)者提出了不確定數(shù)據(jù)模型 的概念,在已經(jīng)成熟的關(guān)系型數(shù)據(jù)模型基礎(chǔ)上提供對(duì)不確定數(shù)據(jù)存儲(chǔ)的支持?,F(xiàn)有不確定 數(shù)據(jù)存儲(chǔ)多采取類關(guān)系型的鍵值對(duì)數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)不確定數(shù)據(jù)。這種存儲(chǔ)方式雖在模型實(shí) 現(xiàn)、操作層面上具有簡(jiǎn)單、便捷的特點(diǎn),但其僅適用于單一類型的不確定數(shù)據(jù),對(duì)于不同級(jí) 別不確定數(shù)據(jù)并存的情況,如屬性級(jí)不確定數(shù)據(jù)與記錄級(jí)不確定數(shù)據(jù)并存,現(xiàn)有模型未能 提供有效的應(yīng)對(duì)策略,導(dǎo)致存儲(chǔ)模型結(jié)構(gòu)單一、僵化,可擴(kuò)展性不足。同時(shí),由于現(xiàn)有數(shù)據(jù)存 儲(chǔ)結(jié)構(gòu)低效,沒(méi)有高效合理的索引結(jié)構(gòu)輔助數(shù)據(jù)查詢過(guò)程,現(xiàn)有模型不能以較低的空間與 時(shí)間開銷實(shí)現(xiàn)從已有確定數(shù)據(jù)向不確定數(shù)據(jù)的轉(zhuǎn)換,難以滿足大數(shù)據(jù)環(huán)境下不確定數(shù)據(jù)查 詢與分析情景的應(yīng)用需求。
【發(fā)明內(nèi)容】
[0004] 針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提出一種不確定數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)方法。
[0005] 本發(fā)明技術(shù)方案如下:
[0006] 一種不確定數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)方法,包括以下步驟:
[0007] 步驟1 :根據(jù)待存儲(chǔ)的每條不確定數(shù)據(jù)記錄的不確定情況創(chuàng)建該記錄的記錄級(jí)不 確定性元組;
[0008] 步驟2 :將每條不確定數(shù)據(jù)記錄中包含的所有不確定數(shù)據(jù)項(xiàng)按屬性名稱劃分,根 據(jù)屬性名稱分別創(chuàng)建該屬性名稱的屬性單元,組成每條不確定數(shù)據(jù)記錄的屬性單元集合, 其中,各屬性單元包含與該屬性名稱相關(guān)的所有不確定數(shù)據(jù)項(xiàng);
[0009] 步驟3 :根據(jù)屬性單元集合中各個(gè)屬性單元的屬性名稱創(chuàng)建屬性包含單元,屬性 包含單元記錄當(dāng)前記錄中包含的所有屬性名稱;
[0010] 步驟4 :為每條不確定數(shù)據(jù)記錄創(chuàng)建行鍵;
[0011] 步驟5 :將每條不確定數(shù)據(jù)記錄的記錄級(jí)不確定性元組、屬性單元集合、屬性包含 單元與行鍵整合為一條完整的不確定數(shù)據(jù)記錄的邏輯表示;
[0012] 步驟6 :重復(fù)步驟1至步驟5,將所有不確定數(shù)據(jù)記錄的邏輯表示整合為不確定數(shù) 據(jù)邏輯模型;
[0013] 步驟7 :將不確定數(shù)據(jù)邏輯模型及對(duì)應(yīng)的數(shù)據(jù)進(jìn)行存儲(chǔ),并對(duì)不確定數(shù)據(jù)邏輯模 型以屬性名稱為索引項(xiàng)建立屬性索引樹:屬性索引樹的節(jié)點(diǎn)對(duì)應(yīng)屬性名稱的集合,一個(gè)葉 子節(jié)點(diǎn)對(duì)應(yīng)一個(gè)屬性名稱,葉子節(jié)點(diǎn)為行鍵的集合,行鍵的集合記錄著不確定數(shù)據(jù)邏輯模 型中所有含有該葉子節(jié)點(diǎn)對(duì)應(yīng)屬性名稱的不確定數(shù)據(jù)記錄;
[0014] 步驟8 :遍歷不確定數(shù)據(jù)邏輯模型中的所有不確定數(shù)據(jù)記錄,根據(jù)不確定數(shù)據(jù)記 錄間的生成規(guī)則創(chuàng)建生成規(guī)則矩陣Matrixral6S;
[0015] 步驟8. 1 :遍歷不確定數(shù)據(jù)邏輯模型中的所有不確定數(shù)據(jù)記錄,查找不確定數(shù)據(jù) 記錄間的生成規(guī)則,若兩條記錄中存在多種生成規(guī)則的整合為一種新的生成規(guī)則,放入生 成規(guī)則集合Srales*;
[0016] 步驟8. 2 :根據(jù)不確定數(shù)據(jù)記錄間的生成規(guī)則創(chuàng)建生成規(guī)則矩陣MatriXrales:將生 成規(guī)則集合Srales中的行健作為行值和列值,生成規(guī)則作為其對(duì)應(yīng)的內(nèi)容,創(chuàng)建生成規(guī)則矩 陣Matrixrules;
[0017] 步驟9 :當(dāng)查詢不確定數(shù)據(jù)時(shí),根據(jù)查詢語(yǔ)句的條件屬性,利用不確定數(shù)據(jù)邏輯模 型進(jìn)行查詢操作;
[0018] 步驟9. 1 :在不確定數(shù)據(jù)邏輯模型的屬性索引樹中查找包含該條件屬性的葉子節(jié) 點(diǎn)對(duì)應(yīng)的所有不確定數(shù)據(jù)記錄作為候選記錄集合Setrandidate;;
[0019] 步驟9. 2 :根據(jù)查詢語(yǔ)句的限制條件查找候選記錄集合Set_didat#的記錄,獲得 中間結(jié)果集Set^i,根據(jù)生成規(guī)則矩陣Matrixrales,對(duì)中間結(jié)果集的各條記錄進(jìn) 行篩選,完成查詢操作。
[0020] 本發(fā)明的有益效果:
[0021] 本發(fā)明提出了一種不確定數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)方法,在大規(guī)模屬性數(shù)量情況下,本發(fā) 明提出的存儲(chǔ)方法一方面對(duì)不確定數(shù)據(jù)記錄內(nèi)的不確定數(shù)據(jù)進(jìn)行了整合,根據(jù)屬性劃分不 確定數(shù)據(jù)并進(jìn)行存儲(chǔ),提高了讀取不確定數(shù)據(jù)的效率,另一方面,對(duì)所有屬性構(gòu)建了屬性索 引樹,大大減低了模型檢索各屬性數(shù)據(jù)的時(shí)間。同時(shí),該方法通過(guò)添加記錄級(jí)不確定性元 組,提供了對(duì)不同級(jí)別不確定性數(shù)據(jù)的支持,使得模型應(yīng)用場(chǎng)景更加廣泛,具有高可用性與 高擴(kuò)展性,很好地達(dá)到了優(yōu)化不確定數(shù)據(jù)存儲(chǔ)的效果。
【附圖說(shuō)明】
[0022] 圖1為本發(fā)明【具體實(shí)施方式】中的不確定數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)方法的流程圖;
[0023] 圖2為本發(fā)明【具體實(shí)施方式】中的不確定數(shù)據(jù)的屬性單元的示意圖;
[0024] 圖3為本發(fā)明【具體實(shí)施方式】中的不確定數(shù)據(jù)的不確定數(shù)據(jù)邏輯模型的示意圖;
[0025] 圖4為本發(fā)明【具體實(shí)施方式】中的不確定數(shù)據(jù)的屬性索引樹結(jié)構(gòu)圖;
[0026] 圖5為本發(fā)明【具體實(shí)施方式】中的不確定數(shù)據(jù)的生成規(guī)則矩陣與不確定數(shù)據(jù)邏輯 豐旲型的關(guān)系不意圖。
【具體實(shí)施方式】
[0027] 下面結(jié)合附圖對(duì)本發(fā)明【具體實(shí)施方式】加以詳細(xì)的說(shuō)明。
[0028] 以移動(dòng)通信運(yùn)營(yíng)商記錄用戶3G上網(wǎng)情況為例,用戶每次連接3G網(wǎng)絡(luò)直至斷開為 一次上網(wǎng)記錄,若每條記錄除用戶姓名、手機(jī)號(hào)碼、連接時(shí)間、結(jié)束時(shí)間、所用流量等基本信 息外,每隔一定時(shí)間還記錄用戶的地理位置,如一分鐘或三十秒,考慮到用戶連接網(wǎng)絡(luò)的時(shí) 間一般較長(zhǎng),記錄中用戶不同時(shí)刻的地理位置數(shù)據(jù)數(shù)量隨時(shí)間線性增長(zhǎng),又由于硬件設(shè)備 的局限以及對(duì)個(gè)人隱私信息的保護(hù),獲得的用戶地理位置信息存在著不確定性,每條記錄 中每個(gè)用戶位置信息都可能對(duì)應(yīng)一個(gè)甚至多個(gè)可能的坐標(biāo)值。當(dāng)基于這些記錄進(jìn)行數(shù)據(jù)分 析或執(zhí)行特定查詢時(shí),整個(gè)操作的時(shí)間開銷極大,通過(guò)本發(fā)明提出的基于不確定數(shù)據(jù)的數(shù) 據(jù)存儲(chǔ)方法對(duì)用戶上網(wǎng)記錄數(shù)據(jù)的存儲(chǔ)進(jìn)行優(yōu)化。
[0029] 一種不確定數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)方法,如圖1所示,包括以下步驟:
[0030] 步驟1 :根據(jù)待存儲(chǔ)的每條不確定數(shù)據(jù)記錄的不確定情況創(chuàng)建該記錄的記錄級(jí)不 確定性元組。
[0031] 記錄級(jí)不確定性元組的數(shù)據(jù)以<記錄不確定概率?_,最新修改時(shí)間IrtW>結(jié)構(gòu)存 儲(chǔ),其中,記錄不確定概率PMW表示當(dāng)前整條不確定數(shù)據(jù)記錄的不確定性,以浮點(diǎn)數(shù)類型表 示,其概率值PMWG[0,1]。當(dāng)PMW=0時(shí),表示當(dāng)前記錄完全不可信,當(dāng)PMW=1時(shí),表示 當(dāng)前記錄完全可信,PMW值越大表示當(dāng)前記錄確定性越大。最新修改時(shí)間TMW表示當(dāng)前記錄 中記錄級(jí)不確定性元組創(chuàng)建時(shí)間或最近修改時(shí)間的時(shí)間戳,即創(chuàng)建時(shí)間或最近修改時(shí)間距 離格林威治標(biāo)準(zhǔn)時(shí)間(1970年1月1日00:00:000)的毫秒偏移量。
[0032]本實(shí)施方式中,由于延遲,系統(tǒng)可能對(duì)同一用戶的上網(wǎng)情況創(chuàng)建多條上網(wǎng)記錄, 每條記錄都有一個(gè)不確定性概率,表示該記錄為真正的用戶上網(wǎng)記錄的可能性,如< 0. 4, 1416290242 >,其中0. 4表示當(dāng)前整條記錄的不確定性,則這條用戶上網(wǎng)記錄是真實(shí)數(shù)據(jù) 的可能性為〇. 4,1416290242表示當(dāng)前記錄中記錄級(jí)不確定性元組創(chuàng)建時(shí)間或最近修改時(shí) 間距離格林威治標(biāo)準(zhǔn)時(shí)間(1970年1月1日00:00:000)的毫秒偏移量。
[0033] 步驟2 :將每條不確定數(shù)據(jù)記錄中包含的所有不確定數(shù)據(jù)項(xiàng)按屬性名稱劃分,根 據(jù)屬性名稱分別創(chuàng)建該屬性名稱的屬性單元,組成每條不確定數(shù)據(jù)記錄的屬性單元集合, 其中,各屬性單元包含與該屬性名稱相關(guān)的所有不確定數(shù)據(jù)項(xiàng)。
[0034] 如圖2所示,各個(gè)不確定數(shù)據(jù)項(xiàng)均以<屬性取值V,屬性取值概率P,最新修改時(shí) 間T>的結(jié)構(gòu)存儲(chǔ),其中,屬性取值V表示所描述的屬性K的一個(gè)可能取值,屬性取值概率 P表示當(dāng)前記錄中屬性K取值為V時(shí)的概率,以浮點(diǎn)數(shù)類型表示,屬性取值概率的概率值 PG[0, 1]。當(dāng)P= 〇時(shí),表示當(dāng)前記錄中屬性K不可能取值為V,當(dāng)P= 1時(shí),當(dāng)前記錄 中屬性K一定取值為V,P值越大表示當(dāng)前屬性單元屬性取值為V的可能性越大,最新修改 時(shí)間T表示該數(shù)據(jù)項(xiàng)創(chuàng)建或修改時(shí)間的時(shí)間戳,即創(chuàng)建或修改時(shí)間距離格林威治標(biāo)準(zhǔn)時(shí)間 (1970年1月1日00:00:000)的毫秒偏移量。每條記錄中的所有屬性單元構(gòu)成本條記錄的 屬性單元集合。
[0035]本實(shí)施方式中,由于每條用戶上網(wǎng)記錄都包含很多屬性,每個(gè)屬性又可能包含 多個(gè)不確定的取值,為加快數(shù)據(jù)的檢索速度,為每條記錄中的每個(gè)屬性創(chuàng)建一個(gè)不確定 數(shù)據(jù)集合,即屬性單元,將這個(gè)屬性對(duì)應(yīng)的所有可能的取值情況都放入這個(gè)屬性單元中, 以連接時(shí)間start為例,記錄中包含兩個(gè)start屬性可能的取值,此時(shí),為連接時(shí)間屬 性start創(chuàng)建一個(gè)屬性單元,在這個(gè)屬性單元中放入與start相關(guān)的兩個(gè)不確定數(shù)據(jù): < 2014110100:00:000,0.65,1416290242 > 和 < 2014110100:01:234,0. 35,1416290242 >,這兩個(gè)<屬性取值,屬性取值概率,最新修改時(shí)間> 結(jié)構(gòu)數(shù)據(jù)表示此條用戶上網(wǎng)記錄可 能開始于2014110100:00:000,也可能開始于2014110100:01:234,前者發(fā)生的概率為0. 65 而后者發(fā)生的概率為0. 35,這兩個(gè)關(guān)于屬性start的不確定數(shù)據(jù)項(xiàng)記錄時(shí)間距離格林威治 標(biāo)準(zhǔn)時(shí)間(1970年1月1日00:00:000)的毫秒偏移量都為1416290242。
[0036] 步驟3 :根據(jù)屬性