Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
No SQL
Search
Andy Cheng
August 08, 2013
Programming
83
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
No SQL
Andy Cheng
August 08, 2013
More Decks by Andy Cheng
See All by Andy Cheng
第一次自建雲端服務就上手
ccjeng
0
82
The Clean Coder
ccjeng
0
4.5k
Android Backup
ccjeng
0
58
Android Backup Demo
ccjeng
0
47
.NET Framework update
ccjeng
0
65
Book Sharing 2013
ccjeng
0
67
MS SQL 2012 BI Update
ccjeng
0
53
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
500
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
190
What We Talk About When We Talk About XP
m_seki
2
670
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
360
Workers Cache を知る
syumai
0
150
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
300
JRuby: Past, Present, and Future
headius
0
170
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
340
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
380
Intent as Code
shoppingjaws
6
1.1k
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
130
FreeBSDでZabbixを動かす
kenkino
0
320
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
Embracing the Ebb and Flow
colly
88
5.2k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
990
Site-Speed That Sticks
csswizardry
13
1.5k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
850
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
A designer walks into a library…
pauljervisheath
211
25k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
500
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Transcript
NOSQL Andy Cheng 2013.08.08
彈性!
HR Ad-Hoc Query
User Experience Developer Experience
1.資料量的成長 2.連線裝置的增加 3.半結構化資料分析的需求 Why NOSQL?
Trend 1: 資料量的成長
Trend 1: 資料量的成長 Twitter at 400M Tweets Per Day in
Jun’ 12 Facebook at 1B Users in Oct’ 12 1億用戶數4.5年(1665天)
Trend 2: 連線裝置的增加
Trend 3: “半結構化資料”分析的需求 • Semi-structured data o Data that does
not reside in fixed fields but use tags or other markers to capture elements of the data • 例如: Logs、GPS 座標、XML、JSON、網頁 內容(HTTP Tagged text)
Case Study:復仇者聯盟 • 2012年上映,票房超過10億美金 • 針對觀眾對預告片的評價,分析了11億條推 特推文、570萬篇部落格以及論壇貼文、350 萬條相關訊息,即時建議片商做出因應對策
SQL的限制 • Table Lock (Transaction) • Join, Join, Join (正規化)
• Schema Change (資料型態/長度) • Operational Maintenance(備份…) • Disaster Recovery(Cluster/Log shipping) • Scaleout
SPRAIN http://blogs.the451group.com/information_management/2012/11/02/updated-database-landscape-graphic/
http://db-engines.com/en/ranking DB Engine Ranking
Not Only SQL
• 不是Relational Database • 沒有Schema (Schema-free) • 沒有Join • 沒有正規化
• 是另一種的資料儲存方式 • 分散式架構 • Open Source • 最終一致性 Eventually Consistency No SQL
CAP定律 • Consistency: 一致性 所有節點在同一時間都具有相同的數據 • Availability: 可用性 保證每個請求不管成功或者失敗都有響應 •
Partition Tolerance: 分隔容忍 系統中任意訊息的失敗不會影響系統的繼續運作 理論上無法同時兼顧CAP三種特性, NoSQL資料庫通常會選擇其中兩種特 性來設計,通常是選擇CP或AP
http://blog.nahurst.com/visual-guide-to-nosql-systems
Key Value Document Column Family Graph
None
NOSQL Data Model
{ “_id” : 1001, “customer_id”: 98234 } { “_id” :
1002, “customer_id”: 98311, “discount”: “Y” } _id: 1001 _id: 1002 Key Value Table: Customer
{ “_id” : 1001, “customer_id”: 7231, “line_items” : [ {“product_id”:
4555, “quantity”: 8}, {“product_id”: 7655, “quantity”: 4}, {“product_id”: 8755, “quantity”: 3}] } { “_id” : 1002, “customer_id”: 98311, “line_items” : [ {“product_id”: 4555, “quantity”: 3}, {“product_id”: 2155, “quantity”: 4}], “discount”: “Y” } Key Document _id: 1001 _id: 1002 Table: Customer
Column Family
Column Family
Graph Connie Ma Max Cheng Mahendra Negi Eva Chen Report
To Report To IS Function Function Jo Ma Claudia Wu Terry Huang Alex Kuo Report To Report To Report To Report To Report To HR
參考資料 • Martin Fowler: NoSQL Distilled to an Hour http://vimeo.com/66052102
• http://nosql.org.tw/ • http://blog.nosqlfan.com/ • http://www.csdn.net/article/tag/nosql
Demo
MongoDB • JSON like document store (BSON) • Embeded, Referenced
• Sharding:將數據水平切分到不同物理節點 • Replica Set:數據同步 • Mongo Query Language • HTTP / REST API • GridFS:文件存儲API • MapReduce:可以進行複雜的統計和並行計算
Replica Set
Neo4J • Graph Database • A powerful traversal framework •
Cypher Query Language