Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DB 醬,嗨!哪泥嘎斯基?
Search
LINE Developers Taiwan
PRO
June 18, 2025
Technology
0
30
DB 醬,嗨!哪泥嘎斯基?
Speaker: Joe Lin and Mia Chu
Event: LINE TECH FRESH 畢業分享會 2025
LINE Developers Taiwan
PRO
June 18, 2025
Tweet
Share
More Decks by LINE Developers Taiwan
See All by LINE Developers Taiwan
菸酒生在 LINE Taiwan 的後端雙刀流
line_developers_tw
PRO
0
13
讓測試不再 BB! 從 BDD 到 CI/CD, 不靠人力也能 MVP
line_developers_tw
PRO
0
31
比起獨自升級 我更喜歡 DevOps 文化 <3
line_developers_tw
PRO
0
29
工具人的一生: 開發很多 AI 工具讓我 慵懶過一生
line_developers_tw
PRO
0
22
從四件事帶你見識見識 事件驅動架構設計 (EDA)
line_developers_tw
PRO
0
9
TODAY 看世界(?) 是我們在看扣啦!
line_developers_tw
PRO
0
35
你想成為什麼樣的開發者?
line_developers_tw
PRO
0
20
研究生的 LINER生活
line_developers_tw
PRO
0
21
#Rookie’s Adventure: A 0 to 1 Dev Journey
line_developers_tw
PRO
0
26
Other Decks in Technology
See All in Technology
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.6k
AWS と定理証明 〜ポリシー言語 Cedar 開発の舞台裏〜 #fp_matsuri / FP Matsuri 2025
ytaka23
9
2.3k
(新URLに移行しました)FASTと向き合うことで見えた、大規模アジャイルの難しさと楽しさ
wooootack
0
640
開発効率と信頼性を両立する Ubieのプラットフォームエンジニアリング
teru0x1
0
130
Kubernetesで作るAIプラットフォーム
oracle4engineer
PRO
2
250
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
280
「伝える」を加速させるCursor術
naomix
0
590
上長や社内ステークホルダーに対する解像度を上げて、より良い補完関係を築く方法 / How-to-increase-resolution-and-build-better-complementary-relationships-with-your-bosses-and-internal-stakeholders
madoxten
13
7.3k
Amazon Q Developer for GitHubとAmplify Hosting でサクッとデジタル名刺を作ってみた
kmiya84377
0
1.1k
AI とペアプロしてわかった 3 つのヒューマンエラー
takahiroikegawa
1
650
Text-to-SQLの評価データセットを作って最新LLMモデルの性能評価をしてみた
gotalab555
3
770
In Praise of "Normal" Engineers (LDX3)
charity
0
340
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Cost Of JavaScript in 2023
addyosmani
50
8.3k
KATA
mclloyd
29
14k
Making Projects Easy
brettharned
116
6.2k
Six Lessons from altMBA
skipperchong
28
3.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
650
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
How to train your dragon (web standard)
notwaldorf
92
6.1k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Transcript
DB 醬,嗨!哪泥嘎斯基? Sophia Chen & Jerry Chen
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
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
01 02 03 04 什麼是 OA? (\OAO/) 該選哪種 DB 醬呢?
資料水管工 What DB do you like? ETL 資料庫變更管家 Liquibase What is OA Shop? 05 在 LINE 開發是什麼樣的體驗? Life at LINE CONTENT
什麼是OA? (\OAO/) 01 What is OA Shop?
None
賣家使用官方帳號進行精準行銷 根據訊息使用量,購買不同方案 根據不同受眾客製化廣告、優惠
從開發者的角度而言 • 紀錄賣家訊息用量 • 管理賣家方案狀態 • 提供賣家查詢受眾 • 儲存一段時間內的受眾(消費者)資訊 訊息流量管理
受眾精準行銷服務 可以拆分成兩大部分,我們會使用不同資料庫 (DB)!
該選哪種 DB 醬呢? 02 What DB do you like?
為什麼要兩種 DB 呢? Controller Service Model 當一個 API 請求發生時 …
Frontend request response call call data response 處理商業邏輯 決定怎麼做 接收請求、 用戶驗證 管理資料 使用訊息
為什麼要兩種 DB 呢? Controller Service Model 當一個 API 請求發生時 …
OLAP 支援大量讀取 OLTP 高即時性 Frontend request response call call data response 處理商業邏輯 決定怎麼做 接收請求、 用戶驗證 管理資料 我們使用不同的 DB !
OLAP vs OLTP Data transfer Transaction 交易、購物、 註冊等服務 分析、大量資料 歷史紀錄
Online Transaction Processing Online Analytical Processing 處理很多筆小資料 快速寫入、查詢 即時性要求高 做分析,常批量查詢資料 寫入相對較少
在我們的服務中 OLTP (KR) OLAP (KR) OLAP (TW) OLTP (TW) Seller
Customer Register Buy Add to cart
在我們的服務中 OLTP OLAP OLAP OLTP (Redis) Seller Customer Register Buy
Add to cart 我們是怎麼讓資料轉移的? ? ? ?
在我們的服務中 OLTP OLAP OLAP OLTP (Redis) Seller Customer Register Buy
Add to cart ETL! ETL ETL ETL
大家可能會覺得 為什麼我們不能直接搬移資料? Why ETL?
資料量級 千萬級別的資 料需要分散式 框架處理 多種來源 自動化 測試更好寫、 搬移資料不求人 遷移方便 註解文字註解
文字註解 Why ETL? 資料來源複雜, 需要良好的系統 管理 好的框架設計能避免混亂
資料水管工 03 ETL
Extract, Transform, Load What’s ETL? Extract Load Transform
找出所有將商品加入過購物車的人 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?
Extract Load Transform 術業有專攻 Tools and Frameworks 負責監控 ETL 流程
讓資料庫可以 分散式儲存 利用分散式的並 行運算,處理大 量資料
資料庫變更管家 04 Liquibase
When you were new to coding...
When you were new to coding...
Version Control for Code: GitHub
How about DB ?
Have you ever encountered … when using a database? 1.
手動執行腳本、資料庫版本失控 2. 有多環境的管理需求 3. 跨團隊協作混亂、缺少共同規範 4. 升級失敗後的回退 (rollback) 困難
Have you ever encountered … when using a database? 1.
手動執行腳本、資料庫版本失控 2. 有多環境的管理需求 3. 跨團隊協作混亂、缺少共同規範 4. 升級失敗後的回退 (rollback) 困難
Have you ever encountered … when using a database? 1.
手動執行腳本、資料庫版本失控 2. 有多環境的管理需求 3. 跨團隊協作混亂、缺少共同規範 4. 升級失敗後的回退 (rollback) 困難
Have you ever encountered … when using a database? 1.
手動執行腳本、資料庫版本失控 2. 有多環境的管理需求 3. 跨團隊協作混亂、缺少共同規範 4. 升級失敗後的回退 (rollback) 困難
Liquibase !
What is Liquibase ? Source from : https://docs.liquibase.com/concepts/changelogs/home.html
ChangeSet 欄位 意義 id 每個 ChangeSet 的唯一識別碼 author 追蹤誰提交了這筆 ChangeSet
context 指定這筆變更只在特定環境下執行,例如 dev, test, prod preConditions 執行前的檢查條件,確保表、欄位或資料狀態符合才繼續 changes 主要 SQL 操作,實際改表或寫入資料都在這裡 rollback 回滾指令,讓 Liquibase 能自動撤銷這筆變更
ChangeSet 當我們想要新增兩個 user 資料進去資料庫:
高可追溯性 & 自動化 版本控制與變更追蹤 Liquibase 特性
Liquibase 特性 多環境管理 多環境差異化管理
Liquibase 特性 回退機制 完善升級與回退機制
Liquibase 特性 集中協作 統一流程與規範化協作 Source from : https://docs.liquibase.com/concepts/bestpractices.html
高可追溯性 版本控制與變更追蹤 集中協作 統一流程與規範化協作 回退機制 完善升級與回退機制 Liquibase 特性 多環境管理 多環境差異化管理
在 LINE 開發是什麼樣的體驗? 05 Life at LINE
Tech Fresh Work Development CI/CD & Observability New Technology Research
and Sharing
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
溝通能力 解決問題 學習能力 技術經驗 我們的收穫 不僅僅只是經驗而已 問題有時候不明確 比起單純接收指令, 更重要的是表達想法 公司的技術、規模
很廣,持續學習
把自己當作一個專案在運行 定期審視自己做了什麼 Study Group/ Partners 第二大腦、知識儲備 提供靈感 追蹤進度、管理任務 時間管理 超級加速劑
Notion Heptabase Calendar AI Tools 發揮敏捷精神
2100 特點項目文字 特點項目 Work Life Balance 1234 999 特點項目文字 特點項目
2100 特點項目文字 特點項目 Work Life Balance 1234 特點項目文字 特點項目 999
特點項目文字 特點項目
2100 特點項目文字 特點項目 Work Life Balance 1234 特點項目文字 特點項目 999
特點項目文字 特點項目
None