TW201905739A - 資料管理裝置、方法及其電腦程式產品 - Google Patents
資料管理裝置、方法及其電腦程式產品Info
- Publication number
- TW201905739A TW201905739A TW107121324A TW107121324A TW201905739A TW 201905739 A TW201905739 A TW 201905739A TW 107121324 A TW107121324 A TW 107121324A TW 107121324 A TW107121324 A TW 107121324A TW 201905739 A TW201905739 A TW 201905739A
- Authority
- TW
- Taiwan
- Prior art keywords
- sliding table
- records
- memory
- memory space
- indicator
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/86—Mapping to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明提供一種資料管理裝置、方法及其電腦程式產品。一記憶體內資料庫之一記憶體空間被分配予一滑動表,其中該滑動表包含複數筆記錄,該等記錄係根據各該記錄之一時間戳記而依序被儲存。一頭指標指向該等記錄中之一最舊記錄之一開始位址,而一尾指標指向該等記錄中之一最新記錄之一下一位址。當將包含一時間戳記之至少一個新記錄插入該滑動表時,將更新該尾指標。當根據以下條件識別出該滑動表之至少一已過期記錄時,將更新該頭指標:一預設時限及各該已過期記錄之時間戳記。
Description
本發明係關於一種資料管理裝置、方法及其電腦程式產品。更具體而言,本發明係關於一種在一滑動表(sliding table)中管理資料之資料管理裝置、方法及其電腦程式產品。
任何電子計算裝置(例如:伺服器、個人電腦)之記憶體及儲存器之大小皆有限,因此,任何電子計算裝置中所安裝之資料庫系統之儲存空間皆有限。傳統上,資料庫系統之管理員必須不時地刪除儲存於其中之資料,以防止資料庫系統缺少儲存空間。最關鍵的問題之一為判斷何時將哪些部分之資料刪除或將之移動至輔助儲存空間(secondary storage space)。在近期的巨量資料趨勢中,資料分析學領域已識別出且專注於一種特殊類型的資料,這類型的資料被稱為串流資料(streaming data))。由物聯網(Internet of Things;IoT)、行動應用程式(mobile app)或大規模網路服務(large-scale Web service)產生之資料常常歸屬於這類型的資料。串流資料具有以下特性:
1.資料串流為無休止的,且係即時且有序地自真實世界產生;
2.資料串流為不可變的,且被收集為時間序列資料(time-series data)。
3.愈新的資料愈具商業價值。
對於儲存及管理串流資料之資料庫,一旦舊資料被收集且保留在資料庫長過某一時間長度,該舊資料便被視為已廢棄(obsolete)或已過期(expired)的。基於串流資料之第三特性,便自然地會在不過於影響分析結果之商業價值之情況下刪除已過期的資料。當儲存空間快滿的時候,大多數資料庫管理系統需要明確地刪除已過期的資料或舊資料並壓縮儲存器所儲存之資料。然而,這種移除已過期/舊資料之方式係非常繁瑣、冗長,且通常效能極差,甚至會引起操作中斷。在需要對串流資料進行連續且即時的分析時,這些問題會被放大且變為嚴重的資料管理問題。
最近的邊緣計算(Edge Computing)趨勢開創了一項新的應用領域,其需要對在邊緣處收集到的串流資料進行有效資料庫管理。隨著物聯網及行動技術之大力開發,諸多電子計算裝置(例如:邊緣裝置、設備、路由器等)被設計成在環境苛刻、資源(例如記憶體)有限且各裝置難以管理之情況下收集、儲存及分析資料。因此,本領域亟需一種能使電子計算裝置有效且高效地管理資料庫中的串流資料的技術。
為解決前述問題,本發明提供一種在具有一固定記憶體大小之一記憶體內資料庫(in-memory database)中管理資料之資料管理裝置、方法及其電腦程式產品。
本發明所提供之資料管理裝置包含一記憶體內資料庫及一處理器,其中該處理器電性連接至該記憶體內資料庫。該記憶體內資料庫 之一記憶體空間被分配予一滑動表,其中該滑動表包含複數筆記錄,該等記錄係根據該等記錄之複數個時間戳記而依序被儲存。對於該滑動表,一筆記錄之時間戳記反映該記錄被插入該滑動表之時間。一最舊記錄及一最新記錄分別為具有最小時間戳記之記錄及具有最大時間戳記之記錄。一頭指標(head pointer)指向最舊記錄之一開始位址,而一尾指標(tail pointer)指向最新記錄之一下一位址(即,第一可用記憶體位址)。該處理器根據尾指標將至少一個新記錄插入該滑動表並根據該至少一個新記錄之一數目來移動尾指標。各該新記錄亦包含一時間戳記。該處理器更根據以下條件來識出該滑動表之至少一已過期記錄:一預設時限及各該已過期記錄之時間戳記。該處理器更根據該至少一已過期記錄之一數目來移動頭指標。
本發明所提供之資料管理方法適用於一電子裝置。一記憶體內資料庫之一記憶體空間被分配予一滑動表。該記憶體內資料庫可位於電子裝置中或電子裝置外部。該滑動表包含複數筆記錄,該等記錄係根據該等記錄之複數個時間戳記而依序被儲存。對於該滑動表,一筆記錄之時間戳記反映該記錄被插入該滑動表之時間。一最舊記錄及一最新記錄分別為具有最小時間戳記之記錄及具有最大時間戳記之記錄。一頭指標指向最舊記錄之一開始位址,而一尾指標指向最新記錄之一下一位址。該資料管理方法包含以下步驟:(a)根據尾指標將至少一新記錄插入滑動表,其中各該新記錄包含一時間戳記,(b)根據該至少一個新記錄之一數目來移動尾指標,(c)根據以下條件來識別出該滑動表中之至少一已過期記錄:一預設時限及各該已過期記錄之時間戳記,以及(d)根據該至少一已過期記錄之一數目來移動頭指標。
本發明所提供之電腦程式產品包含複數個程式碼(code),其中當該電腦程式產品被載入至一電子裝置中時,該等程式碼能夠執行一資料管理方法。一記憶體內資料庫之一記憶體空間被分配予一滑動表。該記憶體內資料庫可位於電子裝置中或電子裝置外部。該滑動表包含複數筆記錄,該等記錄係根據該等記錄之複數個時間戳記而依序被儲存。對於該滑動表,一筆記錄之時間戳記反映該記錄被插入該滑動表之時間。最舊記錄及最新記錄分別為具有最小時間戳記之記錄及具有最大時間戳記之記錄。一頭指標指向最舊記錄之一開始位址,而一尾指標指向最新記錄之一下一位址。該資料管理方法包含以下步驟:(a)根據尾指標將至少一新記錄插入滑動表,其中各該新記錄包含一時間戳記,(b)根據該至少一新記錄之一數目來移動尾指標,(c)根據以下條件來識別出該滑動表中之至少一已過期記錄:一預設時限及各該已過期記錄之時間戳記,以及(d)根據該至少一已過期記錄之一數目來移動頭指標。
根據以上說明,本發明所提供之資料管理技術會將一記憶體內資料庫中之一記憶體空間分配予一滑動表,並於滑動表中管理資料。簡要而言,儲存於一滑動表中之複數筆記錄具有一順序,其中該順序係根據記錄之時間戳記而確定。一頭指標指向最舊記錄之開始位址,而一尾指標指向最新記錄之下一位址。利用尾指標,本發明可輕易地在滑動表中為一新記錄定位一儲存空間。利用頭指標,本發明可根據時間戳記及一預設時限而輕易地識別出已過期記錄。因此,本發明之資料管理技術可適當地利用有限之儲存空間,且可應用於具有每一種類之計算能力之電子計算裝置,尤其是處理串流資料之電子計算裝置。
以下結合圖式闡述本發明之詳細技術及實施方式,俾使本發明所屬技術領域中具有通常知識者能理解所請求保護之發明之技術特徵。
1‧‧‧資料管理裝置
11‧‧‧記憶體內資料庫
13‧‧‧介面
14‧‧‧指令
15‧‧‧處理器
101‧‧‧記憶體空間
101a、...、101z‧‧‧記錄空間
H1‧‧‧頭指標
T1‧‧‧尾指標
12a、12b、...、12c‧‧‧記錄
102‧‧‧記憶體空間
102a、...、102z‧‧‧記錄空間
18a、...、18b、18c、...、18d‧‧‧記錄
103‧‧‧記憶體空間
61‧‧‧滑動表
63‧‧‧滑動表
PK1‧‧‧主鍵
FK1‧‧‧外鍵
H2‧‧‧頭指標
T2‧‧‧尾指標
104‧‧‧記憶體空間
64‧‧‧滑動表
H3‧‧‧頭指標
T3‧‧‧尾指標
PK2‧‧‧主鍵
FK2‧‧‧外鍵
5‧‧‧系統
51a、51b、...、51c‧‧‧霧節點
S601、S603、S611、S613、S621、S623、S625、S627‧‧‧步驟
第1A圖為滑動表之概念示意圖;第1B圖係描繪將一滑動表容置於一記憶體內資料庫之示意圖;第1C圖係為資料管理裝置1之示意圖;第2A圖係為將記憶體空間101初始化予一滑動表之示意圖;第2B圖係描繪在插入所接收之記錄12a、12b、...、12c後更新尾指標T1之示意圖;第2C圖係描繪在辨識出一已過期記錄後更新頭指標H1之示意圖;第3A圖係為分配予滑動表之記憶體空間101已滿的示意圖;第3B圖係為將另一記憶體空間102分配予滑動表之示意圖;第3C圖例示移動所接收記錄之一部分之一第一具體實例;第3D圖例示移動所接收記錄之一部分之一第二具體實例;第4A圖係描繪將二個滑動表聯結(join)之示意圖;第4B圖係描繪更新滑動表中之一記錄之示意圖;第4C圖係描繪將三個滑動表聯結之示意圖;第5圖係為本發明之第四實施例中由物聯網(IoT)所形成之系統5;第6A圖為第五實施例中插入新記錄及移動第一尾指標之流 程圖;第6B圖為第五實施例中識別出已過期記錄及移動第一頭指標之流程圖;以及第6C圖係描繪為第一滑動表擴展記憶體空間之流程圖。
以下將透過實施方式來解釋本發明所提供之資料管理裝置、方法及其電腦程式產品。然而,該等實施方式並非用以限制本發明需在如該等實施方式所述之任何環境、應用或方式方能實施。因此,關於實施方式之說明僅為闡釋本發明之目的,而非用以限制本發明之範圍。應理解,在以下實施方式及圖式中,與本發明非直接相關之元件已省略而未繪示,且各元件之尺寸以及元件間之尺寸比例僅為例示而已,而非用以限制本發明之範圍。
本發明係關於為一滑動表分配記憶體空間並於滑動表中管理資料之資料管理裝置、方法及其電腦程式產品。滑動表與任何傳統資料庫系統所使用之表不同。依據關聯式資料庫(relational database)之定義,一個表為由記錄所形成之集合,且各該記錄由以一預定次序排列且具固定數目之行之屬性組成。各該屬性為具有一資料類型(例如:整數)之資料元素(data element)。同一行之所有屬性具有相同資料類型。在某些情形中,某些屬性所形成之子集定義一記錄之主鍵(primary key),該主鍵必須為唯一的且用於辨識該記錄。
在本發明中,一滑動表為具有時近約束(constraint of recency)之表。請參照第1A圖,其係描繪滑動表之概念示意圖。滑動表中 之各記錄(例如:第1A圖所示之70個記錄)係根據其時間戳記(圖中未顯示)而依序儲存。請注意,一記錄之時間戳記為該記錄之一隱含屬性,其指示該記錄被插入滑動表之時間。當一新記錄到達時,該新記錄將被插入滑動表之末尾處。此外,若一記錄在滑動表中存在過久(即,長於一預設時限),該記錄將變為已過期記錄。
在本發明中,一滑動表容置於一記憶體內資料庫(例如:第1B圖所示者)中。具體而言,記憶體內資料庫之一或多個記憶體空間會分配予滑動表。在某些實施例中,可藉由自磁碟儲存器載入資料及將資料儲存至磁碟儲存器而在記憶體(例如:一隨機存取記憶體、一靜態隨機存取記憶體、一動態隨機存取記憶體等)中實現記憶體內資料庫。在某些實施例中,記憶體內資料庫可為一虛擬記憶體空間,其係藉由對一磁碟之一檔案或一部分進行記憶體映射而實現。藉由將一記憶體內資料庫之至少一個記憶體空間分配予一滑動表,該滑動表可不時地在記憶體空間內滑動。另外,關於前述時近約束(即,僅保留最新之資料記錄並移除已過期資料記錄),記憶體空間在大多數時間具有可用於儲存新記錄之空間。以下實施例將詳述管理具有前述特性之滑動表之細節。
第1C圖例示本發明之一資料管理裝置1之示意圖。資料管理裝置1包含一記憶體內資料庫11、一介面13及一處理器15,其中處理器15電性連接至記憶體內資料庫11及介面13。記憶體內資料庫11可於一主記憶體(例如:一虛擬記憶體空間、一隨機存取記憶體、一靜態隨機存取記憶體、一動態隨機存取記憶體或具有相同功能且為所屬技術領域中具有通常知識者所熟知之任何其他記憶體或一電路)中實現。介面13可為任何可根據一 使用者之控制(例如:一指令)接收一指令之介面。在某些實施例中,介面13不是必需的。處理器15可為各種處理器、中央處理單元(central processing unit;CPU)、微處理器或所屬技術領域中具有通常知識者所熟知之其他計算器件其中之任一者。
請參照第1C圖、第2A圖、第2B圖及第2C圖來瞭解本發明之一第一實施例。在此實施例中,記憶體內資料庫11之一記憶體空間101(其可為一連續記憶體空間)被分配予一滑動表。記憶體內資料庫11的記憶體空間101可以預先分配給滑動表,亦可由處理器15因應介面13所接收到的指令而分配予滑動表。記憶體空間101包含如第2A圖所示之複數個記錄空間101a、...、101z,其中各該記錄空間101a、...、101z具有相同記錄大小。最初,滑動表是空的,代表記憶體空間101不含有記錄。在第2A圖中,以白色顯示之矩形代表不含有記錄之記錄空間。
處理器15可在記錄空間101a、...、101z中定義一循環次序。採用「循環次序」此一用語,代表記錄空間101a、...、101z具有一線性次序,且該線性次序中之第一個記錄空間被視為該線性次序中之最後一個記錄空間的下一個記錄空間。舉例而言,記錄空間101a為第一個,……,記錄空間101z為最後一個,且記錄空間101a為記錄空間101z的下一個。在某些實施例中,處理器15藉由定義記憶體空間101的多個記憶體位址的另一個循環順序來定義記錄空間101a,...,101z之中的循環順序。
處理器15為滑動表指派一尾指標T1及一頭指標H1。頭指標H1指向滑動表之最舊記錄之開始位址,而尾指標T1指向滑動表之最新記錄之下一位址(即,尾指標T1指向下一可用記錄空間)。最初,滑動表中不存 在記錄,因此處理器15將頭指標H1及尾指標T1指派成皆指向記憶體空間101之一開始位址,如第2A圖中所示。應注意,當頭指標H1與尾指標T1指向同一記憶體位址時,滑動表為空的。
在滑動表之環境被設置(即,滑動表之記憶體空間101已被分配且頭指標H1及尾指標T1已指向記憶體空間101之開始位址)後,處理器15便能夠將記錄插入記憶體空間101,且能藉由頭指標H1及尾指標T1來識別出哪一(些)記錄屬於滑動表。以下詳述此等操作之細節。
在此實施例中,介面13接收複數筆記錄12a、12b、...、12c。請注意,在其他實施例中,記錄12a、12b、...、12c可由其他介面接收。處理器15自尾指標T1所指向之記錄空間開始且遵循循環次序將記錄12a、12b、...、12c插入記錄空間101a、...、101z之一部分。記錄12a、12b、...、12c中的每一筆具有相同大小且具有一時間戳記。在此實施例中,一記錄之時間戳記為該記錄被插入滑動表之時間。如第2B圖中所示,記錄12a、12b、...、12c係依序(即,根據各該記錄之時間戳記之次序)儲存。接下來,處理器15根據記錄12a、12b、...、12c之數目及循環次序來移動尾指標T1,俾尾指標T1指向最新記錄(即,記錄12c)之下一位址。在第2B圖中,以灰色顯示之矩形表示滑動表中含有記錄之記錄空間。
在此實施例中,處理器15更根據以下條件來識別出滑動表中之至少一已過期記錄:一預設時限及該至少一個已過期記錄之時間戳記。處理器15並根據該至少一個已過期記錄之一數目來移動頭指標H1。具體而言,由於滑動表之記錄12a、12b、...、12c係依序(即,以記錄12a、12b、...、12c之時間戳記之一次序)儲存於記憶體空間101中,因此處理器15可自頭 指標H1所指向之記錄開始來辨識一記錄是否已過期。在第2C圖中,假定處理器15根據預設時限及記錄12a之時間戳記而識別出記錄12a為一已過期記錄。由於記錄12a已過期,因此其不再為滑動表之一成員。因此,處理器15根據已過期記錄之數目來移動頭指標H1,俾頭指標H1指向滑動表之最舊記錄之開始位址。在此種情形中,處理器15將頭指標H1移動成指向記錄12b之開始位址。
在某些實施例中,前述對至少一已過期記錄之識別及對頭指標H1之移動可與一資料庫系統之一選擇運算子(select operator)及/或一查詢運算子(query operator)結合。對於該些實施例,當介面13接收到包含一選擇運算子或一查詢運算子之一指令14時,處理器15將識別出滑動表中之至少一已過期記錄(若有),並在執行選擇運算子或查詢運算子之前移動頭指標H1。在某些其他實施例中,前述對至少一已過期記錄之識別及對頭指標H1之移動可由處理器15定期地執行。請注意,預設時限可由一使用者根據傳入記錄之速度來加以調整,俾記憶體空間101對於傳入記錄始終具有可用之記錄空間。另請注意,滑動表的不同應用情境會需要不同的預設時限。
根據以上說明,資料管理裝置1藉由以下運作來管理一滑動表:分配記憶體空間101予該滑動表、為記憶體空間101中所包含之記錄空間101a、...、101z定義一循環次序、指派尾指標T1來指向滑動表之最新記錄之下一位址以及指派頭指標H1來指向滑動表之最舊記錄之開始位址。當需要插入任何記錄時,資料管理裝置1依據尾指標T1所指向之位址將記錄儲存於滑動表中並接著移動尾指標T1。在某些場合下(例如:接收到包含一選擇運算子或一查詢運算子之一指令),資料管理裝置1自頭指標H1所指向 之記錄開始識別已過期記錄並接著移動頭指標H1。利用頭指標H1及尾指標T1,滑動表在記憶體空間101中「滑動」。藉由辨識已過期記錄、移動頭指標H1及甚至調整預設時限,記憶體空間101將有空間能儲存接收到的記錄。因此,第一實施例之資料管理裝置1之技術可應用於具有每一種類之計算能力之電子計算裝置。
請參照第1C圖、第3A圖、第3B圖、第3C圖及第3D圖來瞭解本發明之一第二實施例。在第二實施例中,處理器15可藉由分配記憶體內資料庫11之另一記憶體空間102予滑動表來擴展滑動表之記憶體空間101。通常發生在滑動表之記憶體空間101已滿的時候。
請參照第3A圖,其係描繪滑動表之記憶體空間101已滿之概念示意圖。在此實施例中,當記憶體空間101中只剩一個記錄空間未被滑動表佔用時,滑動表之記憶體空間101將被認定為是滿的。如第3A圖中所示,記憶體空間101之記錄空間已儲存了記錄18a、...、18b、18c、...、18d且僅剩一個記錄空間未被滑動表佔用,因此,滑動表之記憶體空間101被視為是滿的。具體而言,處理器15可藉由確定尾指標T1所指向之記錄空間之下一記錄空間為頭指標H1所指向之記錄空間,而確定滑動表之記憶體空間101為滿的。
如第3B圖中所示,處理器15可藉由將記憶體內資料庫11之另一記憶體空間102分配予滑動表來擴展滑動表之記憶體空間101。應注意,記憶體空間102之大小可與記憶體空間101之大小相同或不同。記憶體空間102包含複數個記錄空間102a、...、102z,其中記錄空間102a、...、102z中的之每一個具有同樣的記錄空間大小。接著,處理器15為記錄空間 101a、...、101z及記錄空間102a、...、102z更新循環次序,俾記錄空間101a、...、101z、102a、...、102z係由循環次序而定義。接下來,處理器15移動記錄之一部分且接著移動頭指標H1及/或尾指標T1。
請參照第3A圖、第3B圖及第3C圖來瞭解一第一具體實例。在此實例中,循環次序被更新為具有以下特性:(a)記錄空間101a、...、101z具有一線性次序,(b)記錄空間102a、...、102z具有一線性次序,(c)記錄空間102a為記錄空間101z之下一記錄空間,以及(d)記錄空間101a為記錄空間102z之下一記錄空間。在第3C圖所示之具體實例中,處理器15根據頭指標H1移動記錄之一部分(即,移動所有記錄中之較舊者/最早被插入者(least recently inserted)),且接著移動頭指標H1,如第3C圖中所示。請參照第3D圖來瞭解一第二具體實例,其中處理器15根據尾指標T1移動記錄之一部分(即,所有所接收記錄中之較新者/最新被插入者(most recently inserted)),且接著移動尾指標T1,如第3D圖中所示。在第3A圖、第3B圖、第3C圖及第3D圖中,呈白色之矩形表示不含有記錄之記錄空間,而呈灰色之矩形表示被滑動表佔用之記錄空間。
根據以上說明,在需要時(例如:當滑動表之記憶體空間101為滿時),資料管理裝置1藉由分配另一記憶體空間102予滑動表來擴展滑動表之記憶體空間101。因此,除第一實施例中所述之優點以外,此實施例亦可處理爆量(burst)之傳入記錄。
請參照第1C圖、第4A圖、第4B圖及第4C圖來瞭解本發明之一第三實施例。
在第三實施例中,資料管理裝置1將記憶體內資料庫11之複 數個記憶體空間分別地分配予複數個滑動表。其中一個滑動表用於來自一資料串流之事實表(fact table),而其他滑動表用於來自同一或不同資料串流之維度表(dimension table)。事實表可含一或多個外鍵(foreign key),其係指向維度表中之記錄。各該維度表具有用於辨識唯一記錄之主鍵。
茲提供一具體實例。請參第4A圖及第4C圖,記憶體空間101、103、104分別地被分配予滑動表61、63、64。在第4A圖及第4C圖中,呈白色之矩形表示不含有記錄之記錄空間,而呈灰色之矩形表示滑動表61/63/64中含有記錄之記錄空間。頭指標H1指向滑動表61之最舊記錄之開始位址,而尾指標T1指向滑動表61之最新記錄之下一位址。頭指標H2指向滑動表63之最舊記錄之開始位址,而尾指標T2指向滑動表63之最新記錄之下一位址。頭指標H3指向滑動表64之最舊記錄之開始位址,而尾指標T3指向滑動表64之最新記錄之下一位址。類似於前述實施例,滑動表61、63、64中之各該記錄具有一時間戳記(圖中未顯示)。
資料管理裝置1可採用前述實施例中所述之方式來管理滑動表61、63、64,但使用略微不同之方式來將新記錄插入具有主鍵之滑動表(即,分別具有主鍵PK1、PK2之維度表63及64)。處理器15需要確保在藉由鍵進行引用時(即,在選擇或聯結時)使用的始終是具有相同鍵之最新記錄。當新記錄被插入時,具有相同鍵之任何先前記錄將變為廢棄的。
在一實例中,滑動表61為包含銷售交易記錄之事實表。滑動表61定義複數個第一屬性,且該等第一屬性其中之一為一外鍵FK1(例如:客戶之社會安全號碼)。滑動表63為包含客戶資訊之一維度表。滑動表63定義複數個第二屬性,且該等第二屬性其中之一為主鍵PK1(例如:客戶之社 會安全號碼)。滑動表61之外鍵FK1與滑動表63之主鍵PK1對應於相同類型之資訊(例如:客戶之社會安全號碼),因此滑動表61與滑動表63具有一共同鍵。處理器15可根據共同鍵對滑動表61及滑動表63實施一聯結運算。
當將具有一主鍵之一新記錄插入一滑動表(即,維度滑動表)時,處理器15在將新記錄添加至滑動表之末尾中並移動尾指標之前會先定位出具有相同主鍵之舊記錄,且若存在具有相同主鍵之舊記錄,會將該舊記錄標記為無效的。在辨識出已過期記錄之時刻,處理器15需要自頭指標開始搜尋有效記錄及無效記錄。接著,藉由移動頭指標來移除已過期記錄。在第4B圖中,以斜線顯示之矩形表示被標記為無效之一記錄,因其含有與新插入之記錄之主鍵相同之鍵K29。
請參照第4C圖來瞭解另一具體實例。滑動表61定義複數個第一屬性,其中該等第一屬性其中之二為外鍵FK1(例如:客戶之社會安全號碼)及一外鍵FK2(例如:商品名稱)。滑動表63定義複數個第二屬性,其中該等第二屬性其中之一為一主鍵PK1(例如:客戶之社會安全號碼)。滑動表64可為包含每一商品之剩餘庫存之資訊的一維度表。滑動表64定義複數個第三屬性,且該等第三屬性其中之一為一主鍵PK2(例如:商品名稱)。若滑動表61之外鍵FK2與滑動表64之主鍵PK2對應於相同類型之資訊(例如:商品名稱),則認為滑動表61與滑動表64具有一共同鍵。在此實例中,滑動表61與滑動表63具有一第一共同鍵且與滑動表64具有一第二共同鍵。因此,處理器15可根據不同之共同鍵來將滑動表61與滑動表63及滑動表64聯結。
請參照第5圖來瞭解本發明之一第四實施例,其係為由物聯 網(IoT)所形成之一系統5。系統5包含複數個霧節點(fog node)51a、51b、...、51c。霧節點51a、51b、...、51c中之每一個為具有有限記憶體空間及計算能力之一電子計算裝置,例如一閘道器器件。霧節點51a、51b、...、51c中之每一個電性連接至複數個感測器及/或物聯網器件,且自該等感測器及/或物聯網器件接收資料。霧節點51a、51b、...、51c中之每一個能夠執行資料管理裝置1於前述實施例中所能執行之操作。霧節點51a、51b、...、51c中之每一個將資料/記錄儲存於其滑動表中而非立即將其發送回至雲端或一遠端資料中心。因此,此實施例之系統5達成邊緣計算技術。
本發明之一第五實施例為一種資料管理方法,其流程圖係描繪於第6A圖及第6B圖。該資料管理方法適用於一電子裝置(例如:資料管理裝置1)。在此實施例中,一記憶體內資料庫之一第一記憶體空間被分配予一第一滑動表。該記憶體內資料庫可位於電子裝置中或電子裝置外部。第一滑動表包含複數個記錄,該等記錄係根據各該記錄之時間戳記(即,記錄被插入第一滑動表之時間)而依序被儲存於第一記憶體空間中。一第一頭指標指向該等記錄中之最舊記錄之一開始位址,而一第一尾指標指向該等記錄中之最新記錄之下一位址。
請參照第6A圖,其係描繪插入新記錄及移動第一尾指標之流程圖。首先,由電子裝置執行步驟S601,根據第一尾指標將至少一個新記錄插入第一滑動表,其中各該至少一新記錄包含一時間戳記。接下來,由電子裝置執行步驟S603,根據該至少一個新記錄之一數目來移動第一尾指標,俾第一尾指標在插入之後仍指向記錄中之最新記錄之下一位址。在某些實施例中,第一記憶體空間之複數個記憶體位址係以一第一循環次序 而定義,故步驟S603藉由遵循第一循環次序來移動第一尾指標。
請參照第6B圖,其係描繪識別出已過期記錄及移動第一頭指標之流程圖。在步驟S611中,電子裝置根據以下條件來辨識第一滑動表中之至少一已過期記錄:一預設時限及各該已過期記錄之時間戳記。接下來,由電子裝置執行步驟S613,根據該至少一個已過期記錄之一數目來移動第一頭指標,俾第一頭指標仍指向第一滑動表中所剩餘之記錄中之最舊記錄之開始位址。
在某些實施例中,第6B圖中所描繪之流程圖可與一資料庫系統之一選擇運算子及/或一查詢運算子結合。對於該等實施例,資料管理方法會執行一步驟以接收包含一選擇運算子及一查詢運算子其中之一的一指令。在接收到指令之後,資料管理方法才執行步驟S611及步驟S613。
在某一時間,第一滑動表可能為空的。當第一頭指標與第一尾指標指向同一記憶體位址時,第一滑動表是空的。
在某一時間,分配予滑動表之第一記憶體空間可能是滿的。在此實施例中,當滑動表已滿時,資料管理方法將執行一步驟以調整該預設時限(圖中未顯示)。在某些其他實施例中,資料管理方法將藉由第6C圖中所示之流程來擴展第一滑動表之記憶體空間。在步驟S621中,電子裝置將一第二記憶體空間分配予為第一滑動表。接下來,由電子裝置執行步驟S623,更新第一循環次序,俾第一記憶體空間之記憶體位址及第二記憶體空間之複數個記憶體位址係由第一循環次序而定義。此後,由電子裝置執行步驟S625,移動第一滑動表之記錄之一部分。接著,由電子裝置執行步驟S627,移動第一尾指標及第一頭指標其中之一。
在某些實施例中,步驟S625根據第一頭指標來移動記錄之一部分(即,移動所有記錄中之較舊者/最舊被插入者),且步驟S627移動第一頭指標。在某些其他實施例中,步驟S625根據第一尾指標來移動記錄之一部分(即,所有所接收記錄中之較新者/最新被插入者),且步驟S627移動第一尾指標。
在某些實施例中,資料管理方法可管理若干滑動表。舉例而言,資料管理方法可將記憶體內資料庫之一第二記憶體空間分配予一第二滑動表,且使第二記憶體空間之複數個記憶體位址以一第二循環次序被定義。對於該等實施例,若第一滑動表與第二滑動表具有一共同鍵,則資料管理方法可執行另一步驟,根據共同鍵來對第一滑動表及第二滑動表實施一聯結運算。
除前述步驟以外,第五實施例亦能夠執行在前述實施例中所述之資料管理裝置1之所有操作及步驟、具有與前述實施例相同之功能且提供與前述實施例相同之技術效果。本發明所屬技術領域中具有通常知識者基於對前述實施例之闡釋,將能瞭解第五實施例如何執行此等操作及步驟、如何具有與前述實施例相同之功能及如何提供與前述實施例相同之技術效果,故不贅言。
在第五實施例中所述之資料管理方法可由具有複數個程式碼之一電腦程式產品來實施。當該等程式碼被載入至一電子裝置(例如:資料管理裝置1)中時,該電腦程式產品執行在第五實施例中所述之資料管理方法。
應瞭解,在本發明之說明書中,第一記憶體空間及第二記憶 體空間中所使用之用語「第一」及「第二」僅表示該等記憶體空間為不同的記憶體空間。另外,第一循環次序及第二循環次序中所使用之用語「第一」及「第二」僅用來表示該等循環次序為不同的。
根據以上說明,由本發明提供之資料管理技術將一記憶體內資料庫中之一記憶體空間分配予一滑動表,且於該滑動表中管理資料。簡要而言,儲存於滑動表中之複數個記錄具有一次序,其中該次序係根據記錄之時間戳記而確定。一頭指標指向記錄中之最舊記錄之開始位址,而一尾指標指向記錄中之最新記錄之下一位址。利用尾指標,本發明可輕易地在滑動表中為一新記錄定位一儲存空間。利用頭指標,本發明可根據時間戳記及一預設時限而輕易地識別出已過期記錄。當滑動表之記憶體空間為滿時,本發明所提供之資料管理技術可分配另一記憶體空間予滑動表。因此,本發明之滑動表總是有空間可儲存即將到來之記錄。本發明所提供之資料管理技術能夠管理多個滑動表。在此種情形中,可對此等滑動表實施資料庫運算(例如:聯結)。因此,本發明之資料管理技術可適當地利用有限之儲存空間,且可應用於具有每一種類之計算能力之電子計算裝置,尤其處理串流資料之電子計算裝置。
Claims (20)
- 一種資料管理裝置,包含:一記憶體內資料庫(in-memory database),其中該記憶體內資料庫之一第一記憶體空間被分配予一第一滑動表(first sliding table),該第一滑動表包含複數筆記錄,該等記錄係根據各該記錄之一時間戳記依序被儲存,一第一頭指標(first head pointer)指向該等記錄中之一最舊記錄之一開始位址,且一第一尾指標(first tail pointer)指向該等記錄中之一最新記錄之一下一位址;以及一處理器,電性連接至該記憶體內資料庫,且根據該第一尾指標將至少一新記錄插入該第一滑動表,各該至少一新記錄包含一時間戳記,該處理器更根據該至少一新記錄之一數目來移動該第一尾指標;其中,該處理器更根據以下條件識別出該第一滑動表中之至少一已過期記錄:一預設時限及各該已過期記錄之該時間戳記,其中,該處理器更根據該至少一個已過期記錄之一數目來移動該第一頭指標。
- 如請求項1所述之資料管理裝置,其中該第一記憶體空間之複數個記憶體位址係以一第一循環次序(first circular order)而定義,且該處理器係依據該第一循環次序移動該第一尾指標。
- 如請求項2所述之資料管理裝置,其中當該第一頭指標與該第一尾指標指向同一記憶體位址時,該第一滑動表為空的。
- 如請求項2所述之資料管理裝置,其中該處理器更執行以下操作:分配一第二記憶體空間予該第一滑動表; 更新該第一循環次序,俾該第一記憶體空間之該等記憶體位址及該第二記憶體空間之複數個記憶體位址由該第一循環次序而定義;根據該第一頭指標移動該第一滑動表之該等記錄之一部分;以及移動該第一頭指標。
- 如請求項2所述之資料管理裝置,其中該處理器更執行以下操作:分配一第二記憶體空間予該第一滑動表;更新該第一循環次序,俾該第一記憶體空間之該等記憶體位址及該第二記憶體空間之複數個記憶體位址由該第一循環次序而定義;根據該第一尾指標移動該第一滑動表之該等記錄之一部分;以及移動該第一尾指標。
- 如請求項2所述之資料管理裝置,其中該記憶體內資料庫之一第二記憶體空間被分配予一第二滑動表,該第二記憶體空間之複數個記憶體位址係以一第二循環次序而定義,該第一滑動表與該第二滑動表具有一共同鍵(common key),且該處理器更根據該共同鍵對該第一滑動表及該第二滑動表實施一聯結運算(join operation)。
- 如請求項2所述之資料管理裝置,更包含:一介面,電性連接至該處理器且接收一指令,其中該指令包含一選擇運算子(select operator)及一查詢運算子(query operator)其中之一;其中,該第一滑動表中之該至少一已過期記錄係由該處理器在該介面接收到該指令之後辨識,且該第一頭指標係由該處理器在該介面接收到該指令之後移動。
- 一種適用於一電子裝置之資料管理方法,一記憶體內資料庫之一第一記 憶體空間被分配予一第一滑動表,該第一滑動表包含複數筆記錄,該等記錄係根據各該記錄之一時間戳記依序被儲存,一第一頭指標指向該等記錄中之一最舊記錄之一開始位址,一第一尾指標指向該等記錄中之一最新記錄之一下一位址,且該資料管理方法包含以下步驟:(a)根據該第一尾指標將至少一個新記錄插入該第一滑動表,其中各該至少一新記錄包含一時間戳記;(b)根據該至少一個新記錄之一數目來移動該第一尾指標;(c)根據以下條件識別出該第一滑動表中之至少一已過期記錄:一預設時限及各該已過期記錄之該時間戳記;以及(d)根據該至少一個已過期記錄之一數目來移動該第一頭指標。
- 如請求項8所述之資料管理方法,其中該第一記憶體空間之複數個記憶體位址係以一第一循環次序而定義,且該步驟(b)係依據該第一循環次序來移動該第一尾指標。
- 如請求項9所述之資料管理方法,其中當該第一頭指標與該第一尾指標指向同一記憶體位址時,該第一滑動表為空的。
- 如請求項9所述之資料管理方法,更包含以下步驟:分配一第二記憶體空間予該第一滑動表;更新該第一循環次序,俾該第一記憶體空間之該等記憶體位址及該第二記憶體空間之複數個記憶體位址係由該第一循環次序而定義;根據該第一頭指標來移動該第一滑動表之該等記錄之一部分;以及移動該第一頭指標。
- 如請求項9所述之資料管理方法,更包含以下步驟: 分配一第二記憶體空間予該第一滑動表;更新該第一循環次序,俾該第一記憶體空間之該等記憶體位址及該第二記憶體空間之複數個記憶體位址係由該第一循環次序而定義;根據該第一尾指標來移動該第一滑動表之該等記錄之一部分;以及移動該第一尾指標。
- 如請求項9所述之資料管理方法,其中該記憶體內資料庫之一第二記憶體空間被分配予一第二滑動表,該第二記憶體空間之複數個記憶體位址係以一第二循環次序而定義,該第一滑動表與該第二滑動表具有一共同鍵,且該資料管理方法更包含以下步驟:根據該共同鍵對該第一滑動表及該第二滑動表實施一聯結運算(join operation)。
- 如請求項9所述之資料管理方法,更包含在該步驟(c)及該步驟(d)之前所執行之以下步驟:接收一指令,其中該指令包含一選擇運算子(select operator)及一查詢運算子(query operator)其中之一。
- 一種電腦程式產品,該電腦程式產品包含複數個程式碼(code),當該電腦程式產品被載入一電子裝置時,該等程式碼碼能夠執行一資料管理方法,一記憶體內資料庫之一第一記憶體空間被分配予一第一滑動表,該第一滑動表包含複數筆記錄,該等記錄係根據各該記錄之一時間戳記而依序被儲存,一第一頭指標指向該等記錄中之一最舊記錄之一開始位址,一第一尾指標指向該等記錄中之一最新記錄之一下一位址,且該資料管理方法包含以下步驟: (a)根據該第一尾指標將至少一新記錄插入該第一滑動表,各該至少一新記錄包含一時間戳記;(b)根據該至少一新記錄之一數目來移動該第一尾指標;(c)根據以下條件識別出該第一滑動表中之至少一已過期記錄:一預設時限及各該已過期記錄之該時間戳記;以及(d)根據該至少一已過期記錄之一數目來移動該第一頭指標。
- 如請求項15所述之電腦程式產品,其中該第一記憶體空間之複數個記憶體位址係以一第一循環次序而定義,且該步驟(b)係依據該第一循環次序來移動該第一尾指標。
- 如請求項16所述之電腦程式產品,其中該資料管理方法更包含以下步驟:分配一第二記憶體空間予該第一滑動表;更新該第一循環次序,俾該第一記憶體空間之該等記憶體位址及該第二記憶體空間之複數個記憶體位址係由該第一循環次序而定義;根據該第一頭指標移動該第一滑動表之該等記錄之一部分;以及移動該第一頭指標。
- 如請求項16所述之電腦程式產品,其中該資料管理方法更包含以下步驟分配一第二記憶體空間予該第一滑動表;更新該第一循環次序,俾該第一記憶體空間之該等記憶體位址及該第二記憶體空間之複數個記憶體位址係由該第一循環次序而定義;根據該第一尾指標來移動該第一滑動表之該等記錄之一部分;以及 移動該第一尾指標。
- 如請求項16所述之電腦程式產品,其中該記憶體內資料庫之一第二記憶體空間被分配予一第二滑動表,該第二記憶體空間之複數個記憶體位址係以一第二循環次序而定義,該第一滑動表與該第二滑動表具有一共同鍵,且該資料管理方法更包含以下步驟:根據該共同鍵對該第一滑動表及該第二滑動表實施一聯結運算。
- 如請求項16所述之電腦程式產品,其中該資料管理方法更包含在該步驟(c)及該步驟(d)之前所執行之以下步驟:接收一指令,其中該指令包含一選擇運算子(select operator)及一查詢運算子(query operator)其中之一。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/629,021 US20180373807A1 (en) | 2017-06-21 | 2017-06-21 | Data management apparatuses, methods, and non-transitory tangible machine-readable media thereof |
US15/629,021 | 2017-06-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201905739A true TW201905739A (zh) | 2019-02-01 |
Family
ID=62386014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107121324A TW201905739A (zh) | 2017-06-21 | 2018-06-21 | 資料管理裝置、方法及其電腦程式產品 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180373807A1 (zh) |
EP (1) | EP3418914A1 (zh) |
CN (1) | CN109101441A (zh) |
TW (1) | TW201905739A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10635346B2 (en) * | 2018-06-11 | 2020-04-28 | Western Digital Technologies, Inc. | Self-trimming of data stored in non-volatile memory using data storage controller |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6792432B1 (en) * | 1998-03-31 | 2004-09-14 | Sybase, Inc. | Database system with methods providing high-concurrency access in B-Tree structures |
AU2003900780A0 (en) * | 2003-02-21 | 2003-03-13 | Vision Biosystems Limited | Analysis system and procedure |
US8615635B2 (en) * | 2007-01-05 | 2013-12-24 | Sony Corporation | Database management methodology |
CN100583050C (zh) * | 2008-06-11 | 2010-01-20 | 华中科技大学 | 基于时间戳日志存储的连续数据保护和恢复方法 |
CN101909065A (zh) * | 2010-08-13 | 2010-12-08 | 北京中创信测科技股份有限公司 | 网络设备中的地址解析协议表的老化更新方法和网络设备 |
-
2017
- 2017-06-21 US US15/629,021 patent/US20180373807A1/en not_active Abandoned
-
2018
- 2018-05-24 EP EP18174019.2A patent/EP3418914A1/en not_active Withdrawn
- 2018-06-21 TW TW107121324A patent/TW201905739A/zh unknown
- 2018-06-21 CN CN201810645634.0A patent/CN109101441A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3418914A1 (en) | 2018-12-26 |
US20180373807A1 (en) | 2018-12-27 |
CN109101441A (zh) | 2018-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228817B (zh) | 数据处理方法、装置和系统 | |
US11100420B2 (en) | Input processing for machine learning | |
US9372880B2 (en) | Reclamation of empty pages in database tables | |
US11157445B2 (en) | Indexing implementing method and system in file storage | |
CN106970958B (zh) | 一种流文件的查询与存储方法和装置 | |
CN107590207B (zh) | 数据同步方法及装置、电子设备 | |
WO2012114531A1 (ja) | 計算機システム及びデータ管理方法 | |
KR20200003164A (ko) | 데이터베이스 동기화 | |
CN107103011B (zh) | 终端数据搜索的实现方法和装置 | |
CN104598550B (zh) | 一种网络视频索引的更新方法和装置 | |
US10909086B2 (en) | File lookup in a distributed file system | |
CN111339171B (zh) | 数据查询的方法、装置及设备 | |
JP2012089094A5 (zh) | ||
CN111684437B (zh) | 按时间顺序排序的错位更新键-值存储系统 | |
WO2016150259A1 (en) | Efficient performance of insert and point query operations in a column store | |
CN104423982A (zh) | 请求的处理方法和处理设备 | |
CN111061758A (zh) | 数据存储方法、装置及存储介质 | |
KR20140048396A (ko) | 클라우드 스토리지 서비스의 파일 검색 시스템 및 방법, 및 파일 제어 방법 | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
CN108234477B (zh) | 一种pkcs#11协议在商用密码算法应用中的密码对象管理方法 | |
TW201905739A (zh) | 資料管理裝置、方法及其電腦程式產品 | |
CN109983452A (zh) | 用于连续可用的网络文件系统(nfs)状态数据的系统和方法 | |
CN114297196B (zh) | 元数据存储方法、装置、电子设备及存储介质 | |
CN113127436B (zh) | 一种数据同步方法、装置、服务器及存储介质 | |
US20240235942A1 (en) | Efficient transfer of collected discovery data |