Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DB 醬,嗨!哪泥嘎斯基?

DB 醬,嗨!哪泥嘎斯基?

Speaker: Joe Lin and Mia Chu
Event: LINE TECH FRESH 畢業分享會 2025

Avatar for LINE Developers Taiwan

LINE Developers Taiwan

June 18, 2025
Tweet

More Decks by LINE Developers Taiwan

Other Decks in Technology

Transcript

  1. Sophia Chen TECH FRESH @ LINE CB Team | Backend

    Dev Education • M.S. in Computer Science @NTU • B.B.A in Information Management @NTU Experience • 2024 – 2025 | TECH FRESH @ LINE Taiwan • 2023 | Backend Trainee @ AppWorks School
  2. Jerry Chen TECH FRESH @ LINE CB Team | Backend

    Dev Education • MCDS @ CMU (Incoming) • B.B.A in Information Management @ NTU Experience • TECH FRESH @ LINE Taiwan • Software Engineer Intern @ Trend Micro • Data Scientist Intern @ Cathay Financial Holdings
  3. 01 02 03 04 什麼是 OA? (\OAO/) 該選哪種 DB 醬呢?

    資料水管工 What DB do you like? ETL 資料庫變更管家 Liquibase What is OA Shop? 05 在 LINE 開發是什麼樣的體驗? Life at LINE CONTENT
  4. 為什麼要兩種 DB 呢? Controller Service Model 當一個 API 請求發生時 …

    Frontend request response call call data response 處理商業邏輯 決定怎麼做 接收請求、 用戶驗證 管理資料 使用訊息
  5. 為什麼要兩種 DB 呢? Controller Service Model 當一個 API 請求發生時 …

    OLAP 支援大量讀取 OLTP 高即時性 Frontend request response call call data response 處理商業邏輯 決定怎麼做 接收請求、 用戶驗證 管理資料 我們使用不同的 DB !
  6. OLAP vs OLTP Data transfer Transaction 交易、購物、 註冊等服務 分析、大量資料 歷史紀錄

    Online Transaction Processing Online Analytical Processing 處理很多筆小資料 快速寫入、查詢 即時性要求高 做分析,常批量查詢資料 寫入相對較少
  7. 在我們的服務中 OLTP OLAP OLAP OLTP (Redis) Seller Customer Register Buy

    Add to cart 我們是怎麼讓資料轉移的? ? ? ?
  8. 資料量級 千萬級別的資 料需要分散式 框架處理 多種來源 自動化 測試更好寫、 搬移資料不求人 遷移方便 註解文字註解

    文字註解 Why ETL? 資料來源複雜, 需要良好的系統 管理 好的框架設計能避免混亂
  9. 找出所有將商品加入過購物車的人 A Case: Extract Load Transform Product Users Item Cart

    Join based on what? Filter condition? How to ensure data is correctly fetched? What sources are needed?
  10. Extract Load Transform 術業有專攻 Tools and Frameworks 負責監控 ETL 流程

    讓資料庫可以 分散式儲存 利用分散式的並 行運算,處理大 量資料
  11. Have you ever encountered … when using a database? 1.

    手動執行腳本、資料庫版本失控 2. 有多環境的管理需求 3. 跨團隊協作混亂、缺少共同規範 4. 升級失敗後的回退 (rollback) 困難
  12. Have you ever encountered … when using a database? 1.

    手動執行腳本、資料庫版本失控 2. 有多環境的管理需求 3. 跨團隊協作混亂、缺少共同規範 4. 升級失敗後的回退 (rollback) 困難
  13. Have you ever encountered … when using a database? 1.

    手動執行腳本、資料庫版本失控 2. 有多環境的管理需求 3. 跨團隊協作混亂、缺少共同規範 4. 升級失敗後的回退 (rollback) 困難
  14. Have you ever encountered … when using a database? 1.

    手動執行腳本、資料庫版本失控 2. 有多環境的管理需求 3. 跨團隊協作混亂、缺少共同規範 4. 升級失敗後的回退 (rollback) 困難
  15. ChangeSet 欄位 意義 id 每個 ChangeSet 的唯一識別碼 author 追蹤誰提交了這筆 ChangeSet

    context 指定這筆變更只在特定環境下執行,例如 dev, test, prod preConditions 執行前的檢查條件,確保表、欄位或資料狀態符合才繼續 changes 主要 SQL 操作,實際改表或寫入資料都在這裡 rollback 回滾指令,讓 Liquibase 能自動撤銷這筆變更
  16. My Daily/Weekly Flow 14:00 Lunch Break 09:30 11:00 13:00 Development

    Prepare for Daily Meeting 16:00 Discussion 18:30 Development Refinement Planning Retrospective