儲存資料

資料庫設計

Lis Sulmont

Curriculum Manager

資料結構化

1. 結構化資料  

  • 依循結構綱要(schema)
  • 已定義資料型別與關聯

例如:SQL、關聯式資料庫中的資料表

2. 非結構化資料  

  • 無綱要(schemaless)
  • 佔全球資料的大多數

例如:相片、聊天記錄、MP3

3. 半結構化資料

  • 不遵循大型綱要
  • 自我描述的結構

例如:NoSQL、XML、JSON

# Example of a JSON file
"user": {
     "profile_use_background_image": true, 
     "statuses_count": 31, 
     "profile_background_color": "C0DEED", 
     "followers_count": 3066, 
     ...
資料庫設計

資料結構化

顯示結構化與非結構化資料之間光譜的示意圖

1 Flower by Sam Oth and Database Diagram by Nick Jenkins via Wikimedia Commons https://commons.wikimedia.org/wiki/File:Languages_xml.png
資料庫設計

超越傳統資料庫的儲存方式

  • 傳統資料庫
    • 儲存即時關聯式結構化資料 ⟶ OLTP
  • 資料倉儲
    • 分析封存的結構化資料 ⟶ OLAP
  • 資料湖
    • 可儲存各種結構的資料=高彈性與可擴充性
    • 用於分析 巨量資料
資料庫設計

資料倉儲

  • 為分析最佳化——OLAP
    • 以讀取與彙總為導向
    • 通常唯讀
  • 包含多來源資料
  • 大規模平行處理(MPP)
  • 常用非正規化綱要與維度建模

資料集市(Data mart)

  • 資料倉儲的子集合
  • 專注於特定主題

Amazon Redshift、Google BigQuery 與 Azure SQL Data Warehouse

資料集市是資料倉儲的子集合

資料庫設計

資料湖

  • 以更低成本儲存「所有」型態的資料:
    • 例如:原始、作業型資料庫、IoT 裝置日誌、即時、關聯式與非關聯式
  • 保留所有資料,規模可達 PB 等級
  • 採用讀取時定綱(schema-on-read),不同於寫入時定綱
  • 需要編目,否則會變成「資料沼澤」
  • Apache SparkHadoop 等服務進行 巨量資料分析
    • 適合深度學習與資料探索,因為需要海量資料

Amazon、Google、Microsoft 皆提供資料湖方案

資料庫設計

ETL

ELT

資料庫設計

一起來練習吧!

資料庫設計

Preparing Video For Download...