TWI522827B - Real-time storage and real-time reading of huge amounts of data for non-related databases - Google Patents
Real-time storage and real-time reading of huge amounts of data for non-related databases Download PDFInfo
- Publication number
- TWI522827B TWI522827B TW104100670A TW104100670A TWI522827B TW I522827 B TWI522827 B TW I522827B TW 104100670 A TW104100670 A TW 104100670A TW 104100670 A TW104100670 A TW 104100670A TW I522827 B TWI522827 B TW I522827B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- instant
- storage
- batch
- primary key
- Prior art date
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明屬於G06F 17/30資訊檢索及其資料庫結構技術領域,特別是一種用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法。本發明是一控制方法,作為大量資料儲存與讀取的方法,並可依據即時運算處理效能需求,提供分散式多工讀取資料機制。
傳統關聯式資料庫,在面對大量資料寫入以及大量資料儲存時,會遭遇寫入效能不足,以及擴充不易或擴充成本高昂的問題。若採用In-memory Database技術,雖然可以滿足寫入效能要求,但有資料無法大量儲存的限制,且一旦系統關(當)機後資料就會遺失,無法保存。
有別於傳統關聯式資料庫的非關聯式資料庫,或稱NoSQL資料庫,具有水平擴充能力的特性,只要增加新的伺服器節點,就可以不斷擴充資料庫系統的容量,滿足長期大量儲存的需求,且可以滿足大量資料寫入的效能要求,以及對大量歷史資料分析的需求。NoSQL技術採用的Key-Value資料模式,是將每一筆資料的結構簡化到只有一個Key值對應到一個Value值,每一筆資料之間沒有關連性,所以,可以任意切割或調整,也可以分散到不同的伺服器中建立副本。
但是,NoSQL技術適合以Key值作為寫入和查詢的操作標的,無法直接滿足多人同時大批寫入、讀取資料的應用方式,如大批sensor
資料寫入,與大批sensor資料讀取分析,且分析模組必須可以各自讀取不重覆的資料區塊,進行解析。本案發明人鑑於上述習用方式所衍生的各項缺點,乃亟思加以改良創新,並經多年苦心孤詣潛心研究後,終於成功研發完成本件用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法。
本發明之目的是提供一種用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法,透過軟體的方式充分利用NoSQL資料庫的優點,解決大批資料寫入、大批資料讀取分析的應用需求。藉由NoSQL特性,本發明能夠以低廉的成本動態擴充,滿足長期儲存歷史資料,提供後續分析應用的需求。同時,實現一控制方法,讓資料可以讓多個用戶端程式同時讀取,各自讀取不重覆的資料片段,進行分析。
達成上述發明目的之用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法,係運用非關聯式資料庫本身的屬性,每一行的結構同樣具有一個主要鍵值Key和任意數量的列欄位,基於此屬性,本發明提出一種用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法,將每批次大量資料儲存作業僅以一筆資料儲存紀錄即時儲存於一資料表中,資料儲存紀錄包含該批次第一筆資料之主鍵值、最後一筆資料之主鍵值及該批次完成儲存資料總筆數,此儲存紀錄資料表由另一觀點可視為一批次資料索引紀錄資料表,此資料表提供即時巨量資料讀取所使用,當讀取資料時僅需依時間順序讀取並解析資料儲存紀錄然後再組合成一批次資料查詢條件後,進行批次大量資料讀取作業,可提升巨量資料查詢及讀取效率。
110‧‧‧即時儲存程式模組
120‧‧‧資料接收介面
130‧‧‧非關聯式資料庫
140‧‧‧即時讀取程式模組
150‧‧‧資料讀取介面
160‧‧‧資料儲存紀錄控制模組
210~240‧‧‧步驟流程
310~340‧‧‧步驟流程
圖一為本發明用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法之電腦系統架構示意圖;圖二為該用於非關聯式資料庫之巨量資料即時儲存方法之流程圖;以及圖三為該用於非關聯式資料庫之巨量資料即時讀取方法之流程圖。
請參考圖一之本發明的系統架構示意圖,主要包含即時儲存程式模組110、資料儲存紀錄控制模組160與即時讀取程式模組140三個模組,分別提供資料接收介面120及資料讀取介面150,讓資料提供者可以透過資料接收介面120將即時資料儲存至非關聯式資料庫130中,讓資料接收者可以透過資料讀取介面150將即時資料由非關聯式資料庫130中讀取。
即時儲存程式模組110主要為提供一資料接收介面120負責處理接收接批次大量的結構化資料物件(JAVA物件),當完成接收資料後,開始逐筆進行資料的型別轉換,將結構化資料物件轉換為非結構化資料,並依據資料發生的時間來做為該筆資料的主鍵值(ROW KEY),最後寫入非關聯式資料庫130中相對應之資料表,以完成非關聯式資料庫130之巨量資料即時儲存。
資料儲存紀錄控制模組160負責將每批次大量資料儲存作業相關紀錄,僅以一筆資料儲存紀錄即時儲存於一資料儲存紀錄資料表中,其中一資料儲存紀錄包含該批次之第一筆資料之主鍵值、最後一筆資料之主鍵值及該批次資料總數,此資料表可提供資料讀取時所使用,當讀取資料時,僅需依據時間順序來讀取並解析資料儲存紀錄,然後再組合成一批次資料查詢條件進行批次大量資料讀取作業。
即時讀取程式模組140為提供一資料讀取介面150,負責處理讀取儲存在非關聯式資料庫130之批次大量的非結構性資料,依據資料儲存紀錄控制模組160所得之查詢條件來進行相對應資料表查詢資料作業,取得資料後逐筆進行資料型別轉換,將非結構化資料轉換為結構化資料物件(JAVA物件),以完成非關聯式資料庫130之巨量資料即時讀取。
由另一觀點來看,資料儲存紀錄資料表可視為一批次資料索引紀錄資料表,因此資料儲存紀錄控制模組可視為本發明之核心,透過對批次資料主鍵值的管控及資料表本身具有的索引功能,只須執行一次的查詢作業就可將該批次資料全部且精準的由非關聯式資料庫130讀取出來,可達到巨量資料即時存取功效並提供資料備份及保證資料不遺失功能。
圖二是依照本發明之一實施例所繪示之非關聯式資料庫之巨量資料即時儲存方法的流程圖,以下將說明如何將一批次大量資料寫入非關聯式資料庫的詳細步驟。在本實施例中,非關聯式資料庫具有一特定資料表格用以儲存該批次資料儲存相關紀錄。
請參閱圖二,首先步驟210係將結構化資料物件轉換成為非結構化資料,在此之前,資料提供者必須使用即時儲存程式模組110提供之資料接收介面120依據結構化資料欄位所設計的一結構化資料物件程式,完成資料封裝作業,並將資料傳遞至步驟210,然後透過物件將欄位資料逐筆取出後,利用非關聯式資料庫所提供之資料儲存函式,將結構化資料轉換為以行為單位的非結構化資料。
接著在步驟220中,產生該筆非結構化資料所需之主鍵值,步驟220係透過即時儲存程式模組110將主鍵元素以一設定檔案儲存,主鍵元
素包含資料產生時間及原先在結構化資料的主鍵欄位。再加上由步驟210所完成轉換之非結構化資料可組成一筆具有主鍵值的非結構化資料,並等待被資料儲存紀錄控制模組160以行的格式儲存至非關聯式資料庫130中。
在步驟230中,由資料儲存紀錄控制模組160對每批次大量資料的每一筆資料進行判斷,首先將進行判斷是否為第一筆資料,若為第一筆資料將其主鍵值記錄下來,為第一筆資料之主鍵值,然後再進行判斷是否已將該批次所有資料完成結構化資料物件轉換成為非結構化資料,若還有資料則重複步驟220;若無資料則表示該筆資料為最後一筆資料,並將其主鍵值記錄下來後,為最後一筆資料之主鍵值,進行步驟240。
最後在步驟240中,資料儲存紀錄控制模組160將每批次大量由即時儲存程式模組110所產生之資料儲存作業,僅以一筆資料儲存紀錄儲存於非關聯資料庫之資料儲存紀錄資料表中,資料儲存紀錄表本身也屬於非關聯式資料表,每筆資料儲存紀錄包含該批次第一筆主鍵、最後一筆主鍵、該批次寫入資料總數及狀態值,主鍵元素為該筆資料儲存紀錄資料產生時間。
舉例來說,當有一批次1000筆資料要進行儲存作業時,且主鍵值元素設定為日期(年月日)加上流水編號,則透過本發明的方法會產生第一筆主鍵值為201311010001而最後一筆主鍵值為201311011000,狀態值預設為”0”,在步驟240中會新增一筆資料儲存紀錄其內容為(資料產生時間,20131101000,201311011000,1000,0)。
當即時資料大量被寫入非關聯式資料庫之後同樣需要被即時讀取出來進行後續相關的應用,例如提供即時運算處理。圖三是依照本
發明之一實施例所繪示之利用非關聯式資料庫之巨量資料即時讀取方法的流程圖,首先步驟如310所示,資料儲存紀錄控制模組160依當下時間順序即時讀取一資料儲存紀錄資料表,讀取規則為至多兩筆三分鐘之內,且尚未被讀取之時間記錄為最早的資料儲存紀錄,至多兩筆,其詳細方法為,首先查詢資料儲存紀錄資料表中最新一筆資料的時間,再逐一比對每一筆紀錄的時間後過濾出三分鐘之內的有效紀錄,同時將有效紀錄的狀態欄位值透過NoSql資料庫內建的函式(例如HBase中的incrementColumnValue())進行鎖定(LOCK)欄位後再自動遞增的動作,接著再判斷該狀態欄位值是否為”1“(表示尚未被讀取),若為”1“,則將所查詢得到的資料儲存紀錄傳遞給步驟320,反之則忽略該筆資料。此過濾有效紀錄之法可以達到一控制方法,可以讓多個用戶端程式同時讀取,各自讀取不重覆的資料片段,達成資料分散處理目的。
在步驟320中進行批次大量資料查詢條件解析作業並產生一查詢條件物件係由資料儲存紀錄控制模組160將資料儲存紀錄進行批次大量資料查詢條件解析作業並產生一查詢條件物件,再傳遞給步驟330即時讀取程式使用。
在步驟330中取得一查詢條件物件之後,利用一非關聯式資料庫所提供之資料查詢函式與查詢條件物件結合後進行批次大量資料查詢作業。
以上述舉例來說,若在步驟310中所查詢的資料儲存紀錄其內容為(資料產生時間,20131101000,201311011000,1000,1),經過步驟320解析之後會取得該批次的第一筆主鍵值為20131101000以及最後一筆主鍵值為
201311011000,再透過步驟330組合一個非關聯式資料庫的查詢條件為(STARTROW=20131101000,STOPROW=201311011000),然後進行批次大量資料查詢作業。
最後由步驟340完成將批次大量的非結構化資料轉換結構化資料物件依據上述之一結構化資料物件(JAVA物件)程式提供資料提供者進行資料封裝作業,透過非關聯式資料庫所提供之資讀取函式逐筆取出後將以行為單位的非結構化資料欄位資料轉換為一結構化資料物件。
本發明所提供之用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法,與其他習用技術相互比較時,更具備下列優點:
1. 簡易使用介面,透過結構化資料物件轉換非結構化資料功能,讓使用者無須具備非關聯式資料庫相關技能,即可使用結構化資料物件進行非關聯式資料庫之巨量資料即時儲存與讀取作業。
2. 提供分散式多工存取資料機制,依據即時運算處理效能需求可提供分散式多工存取資料機制,即時讀取程式模組可視當下的資料接收介面使用數量,讓多個用戶端程式同時讀取,各自讀取不重覆的資料片段,以增加資料讀取的即時性。
3. 所有資料能完整保存,能兼顧歷史資料分析的應用場景,同時也確保資料接收端能取得最新的、未處理過的資料,解決以記憶體資料庫(In-memory Database)實作的巨量資料即時存取機制,於系統關(當)機後資料就遺失的缺點。
上列詳細說明乃針對本發明之一可行實施例進行具體說明,惟該實施例並非用以限制本發明之專利範圍,凡未脫離本發明技藝精
神所為之等效實施或變更,均應包含於本案之專利範圍中。
綜上所述,本案不僅於技術思想上確屬創新,並具備習用之傳統方法所不及之上述多項功效,已充分符合新穎性及進步性之法定發明專利要件,爰依法提出申請,懇請貴局核准本件發明專利申請案,以勵發明,至感德便。
110‧‧‧即時儲存程式模組
120‧‧‧資料接收介面
130‧‧‧非關聯式資料庫
140‧‧‧即時讀取程式模組
150‧‧‧資料讀取介面
160‧‧‧資料儲存紀錄控制模組
Claims (9)
- 一種用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法,其步驟為:a. 結構化資料物件轉換非結構化資料(210);b. 產生資料主鍵值(220);c. 產生批次資料儲存紀錄與相關索引(230);d. 將每批次大量資料儲存作業,僅以一筆資料儲存紀錄即時儲存於一資料儲存紀錄資料表中,同時將批次資料儲存於非關聯式資料庫中(240);e. 即時讀取一資料儲存紀錄資料表(310);f. 解析批次大量資料查詢條件並產生一查詢條件(320);g. 利用一非關聯式資料庫所提供之資料查詢函式與查詢條件物件結合後進行批次大量資料查詢(330);h. 批次大量非結構化資料轉換結構化資料物件(340)。
- 如申請專利範圍第1項所述之一種用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法,其中結構化資料物件轉換非結構化資料(210)係由即時儲存程式模組(110)所執行,該即時儲存程式模組(110)提供資料接收介面(120),負責接收資料提供者所提供之結構化原始資料物件,並將原始資料物件轉換為非結構化資料。
- 如申請專利範圍第1項所述之一種用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法,其中產生資料主鍵值(220)係由即時儲存程式模組(110)所執行,係先將主鍵元素以設定檔案儲存,當結構化資料物件被 接收後,透過主鍵產生方法取得主鍵元素產生該結構化資料物件使用之主鍵,轉換為非結構化資料後再經由資料儲存紀錄控制模組(160)將該筆資料以行的格式儲存於非關聯資料庫(130)。
- 如申請專利範圍第3項所述之一種用於非關聯式資料庫之巨量資料即時儲存與讀取方法,其中主鍵元素包含資料產生時間及原先在結構化資料的主鍵欄位。
- 如申請專利範圍第1項所述之一種用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法,其中產生批次資料儲存紀錄與相關索引(230)係由資料儲存紀錄控制模組(160)所執行,係將每批次大量資料進行資料判斷,首先將進行判斷是否為第一筆資料,若為第一筆資料將其主鍵值記錄下來,為第一筆資料之主鍵值,然後再進行判斷是否已將該批次所有資料完成結構化資料物件轉換成為非結構化資料,若還有資料則重複結構化資料物件轉換非結構化資料(210));若無資料則表示該筆資料為最後一筆資料,並將其主鍵值記錄下來後,為最後一筆資料之主鍵值。
- 如申請專利範圍第1項所述之一種用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法,其中將每批次大量資料儲存作業僅以一筆資料儲存紀錄即時儲存於一資料儲存紀錄資料表中(240),係由資料儲存紀錄控制模組(160)所執行,係將每批次大量由即時儲存程式模組(110)所產生之資料儲存作業僅以一筆資料儲存紀錄即時儲存於一非關聯資料庫資料儲存紀錄資料表中,資料儲存紀錄包含第一筆主鍵、最後一筆主鍵、該批次寫入資料總數及狀態值,其中主鍵元素以該筆資料儲存紀錄資料產生時間。
- 如申請專利範圍第1項所述之一種用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法,其中即時讀取一資料儲存紀錄資料表(310)係由即時讀取程式模組(140)與資料儲存紀錄控制模組(160)所執行,係透過資料儲存紀錄控制模組(160)先依當下時間順序即時讀取一資料儲存紀錄資料表,讀取規則為一段可設定時間之內尚未被讀取之時間記錄最早的資料儲存紀錄,至多兩筆。
- 如申請專利範圍第1項所述之一種用於非關聯式資料庫之巨量資料即時儲存與即時讀取方法,其中解析批次大量資料查詢條件並產生一查詢條件(320)係由資料儲存紀錄控制模組(160)所執行,依據資料儲存紀錄進行批次大量資料查詢條件解析作業並產生一查詢條件物件提供即時讀取程式模組(140)進行批次大量資料查詢作業使用。
- 如申請專利範圍第1項所述之一種用於非關聯式資料庫之巨量資料即時即時讀取方法,其中批次大量的非結構化資料轉換結構化資料物件(340)係由即時讀取程式模組(140)所執行,即時讀取程式模組包含一資料讀取介面(150),負責提供資料要求者進行資料封裝作業,透過非關聯式資料庫所提供之資讀取函式逐筆取出後,以行為單位的非結構化資料欄位資料轉換為一結構化資料物件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104100670A TWI522827B (zh) | 2015-01-09 | 2015-01-09 | Real-time storage and real-time reading of huge amounts of data for non-related databases |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104100670A TWI522827B (zh) | 2015-01-09 | 2015-01-09 | Real-time storage and real-time reading of huge amounts of data for non-related databases |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI522827B true TWI522827B (zh) | 2016-02-21 |
TW201626254A TW201626254A (zh) | 2016-07-16 |
Family
ID=55810441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104100670A TWI522827B (zh) | 2015-01-09 | 2015-01-09 | Real-time storage and real-time reading of huge amounts of data for non-related databases |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI522827B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI746511B (zh) * | 2016-03-02 | 2021-11-21 | 香港商阿里巴巴集團服務有限公司 | 資料表連接方法及裝置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776678B (zh) * | 2018-05-29 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 基于移动端NoSQL数据库的索引创建方法及装置 |
-
2015
- 2015-01-09 TW TW104100670A patent/TWI522827B/zh not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI746511B (zh) * | 2016-03-02 | 2021-11-21 | 香港商阿里巴巴集團服務有限公司 | 資料表連接方法及裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW201626254A (zh) | 2016-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180137134A1 (en) | Data snapshot acquisition method and system | |
CN102426609B (zh) | 一种基于MapReduce编程架构的索引生成方法和装置 | |
CN107544984B (zh) | 一种数据处理的方法和装置 | |
WO2021032002A1 (zh) | 基于异构分布式知识图谱的大数据处理方法、设备及介质 | |
US10002142B2 (en) | Method and apparatus for generating schema of non-relational database | |
CN106844682B (zh) | 数据交换方法、装置及*** | |
CN106293891B (zh) | 多维投资指标监督方法 | |
CN110688399A (zh) | 一种流式计算实时报表***及方法 | |
CN104572856A (zh) | 一种服务起源数据的融合存储方法 | |
Mehmood et al. | Performance analysis of not only SQL semi-stream join using MongoDB for real-time data warehousing | |
CN111046036A (zh) | 数据同步方法、装置、***及存储介质 | |
CN105630934A (zh) | 一种数据统计方法及*** | |
CN105095247A (zh) | 符号数据分析方法和*** | |
CN112231407A (zh) | PostgreSQL数据库的DDL同步方法、装置、设备和介质 | |
TWI522827B (zh) | Real-time storage and real-time reading of huge amounts of data for non-related databases | |
Suriarachchi et al. | Big provenance stream processing for data intensive computations | |
TWI436222B (zh) | Real - time multi - dimensional analysis system and method on cloud | |
CN110737432A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
Dietrich et al. | Ros meets cassandra: Data management in smart environments with nosql | |
WO2016119508A1 (zh) | 基于Spark***的大规模对象识别方法 | |
CN116414854A (zh) | 数据资产查询方法、装置、计算机设备和存储介质 | |
CN109063201B (zh) | 一种基于混合存储方案的impala在线交互式查询方法 | |
CN111399838A (zh) | 一种基于SparkSQL和物化视图的数据建模方法及装置 | |
Singh | NoSQL: A new horizon in big data | |
CN111143328A (zh) | 一种敏捷商业智能数据构建方法、***、设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |