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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Andy Cheng
August 08, 2013
Programming
84
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
48
.NET Framework update
ccjeng
0
66
Book Sharing 2013
ccjeng
0
68
MS SQL 2012 BI Update
ccjeng
0
53
Other Decks in Programming
See All in Programming
すこし踏み込む CancellationToken
htkym
2
1.7k
最近”作らせてる” ローカルAIアプリの話
akit37
0
470
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.2k
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
カツオ、ご期待ください
suneo3476
0
190
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
170
ジョジョの世界をXRで再現する
mofurune
0
160
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
300
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
sbt 2.0: takeoff
eed3si9n
0
160
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Are puppies a ranking factor?
jonoalderson
2
4.1k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
540
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Agile that works and the tools we love
rasmusluckow
331
22k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
540
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Test your architecture with Archunit
thirion
2
2.4k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
600
Building an army of robots
kneath
307
47k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
530
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