2020年9月15日 星期二

結構化、半結構化與無結構化資料優缺點,讓你做好準備,迎接資料時代的來臨!

 不論你同不同意現在是AI時代,但你不能反對現在是大資料時代。因為現代人的一舉一動都會產生資料,例如:進行消費時,無論使用實體貨幣、塑膠貨幣或線上支付系統進行支付,都會記錄在資料庫裡。搭乘大眾交通工具,使用刷悠遊卡支付費用,此時悠遊卡也將產生相關紀錄。上街閒晃時,手機會自動向基地台註冊你的位置。無聊時,使用社群軟體交流,運動時運動手環、運動AP紀錄路徑軌跡,在家裡休閒時觀看影音平台節目或上網瀏覽等,這些動作不斷地產生資料。




根據IDC最新發佈的《Data Age 2025》報告,預估在2025年時,當年全球所產生的新增資料量將達到175ZB。其中亞太區(APJxC,不包含中國)預估將由2018年的5.9ZB增加到33.8ZB的新增資料量,位居第三位(第一位為中國:48.6ZB,第二名為EMEA區域:48.3ZB)。請注意這僅是新增資料,並未包含歷史資料。可是進行資料分析、探勘時,需要大量的歷史資料。所以資料儲存將變得越來越重要,而這些資料依照不同的結構化程度,分為結構化、半結構化與無結構化資料,這些資料將分別儲存在不同模型的資料庫。

下圖為 www.db-engines.com (2020/06)的資料庫排行榜(前20名)



從這份排行榜來看,出現的資料庫模型有:Relational、Document、Search Engine、Key-value、Wide Column等。其中前十名裡有6種資料庫為Relational,甚至前4名全都是Relational資料庫。這跟一般人(IT領域)的感覺不太一致,因為Relational應該是已經落伍的架構,現在最新架構應該是NoSQL架構才對。其實資料庫模型沒有優劣之分,只是適用何種資料結構之分,根據所要儲存資料結構,選擇資料庫模型才是正確之道。

以下針對資料結構,介紹資料庫模型的優勢:

  • 關聯式模型(Relational)

    應用範例結構化資料:ERP、CRM、SCM等資料庫應用
    資料模型使用關聯式模型儲存結構化資料
    (Table – Row – Column)
    優點資料結構嚴謹,查詢效能佳,有統一性查詢語言SQL
    缺點資料結構嚴謹,不可動態變更


  • 文件模式(Document)

    應用範例Web-Based相關應用
    資料模型使用Key當作存取對應鍵值的Value
    但Value為結構化資料(Document)
    優點資料結構不嚴謹,可動態變更
    缺點查詢效能較差,缺乏統一性查詢語言


  • 鍵、值儲存(Key Value Store)

    應用範例內容快取,處理大量的資料讀取
    資料模型使用Key當作存取對應鍵值的Value
    優點查詢速度快
    缺點資料無任何結構


  • 寬欄位(Wide Column)

    應用範例分散式檔案系統
    資料模型使用column-based架構將不同row的相同column資料儲存在一起
    優點查詢速度快,可擴充性強
    缺點功能相對受限


  • 搜索引擎(Search Engine)

    應用範例資料搜索
    資料模型Index (Document)
    優點全文檢索、地理資訊搜索、複雜搜索條件,搜索速度快,可擴充性強
    缺點功能相對受限


  • 圖(Graph)

    應用範例社群網路、推薦系統
    資料模型Graph
    優點使用Graph相關演算法:最短路徑或N度關係。
    缺點需要對整個Graph進行計算,才能得出所需結果,不太適合分散式結構


以上介紹Relational、Document、KV Store、Search Engine、Wide Column、Graph等資料模型的適用情境、優缺點等,希望讀者可以依照所要處理、儲存的資料結構,正確地選擇資料模型,方能達到事半功倍之效。

您可在下列課程中了解更多技巧喔!

Relational : Oracle系列MySQL系列SQL Server系列

Document : MongoDB管理與開發

Search Engine : Elasticsearch入門

0 意見:

張貼留言