introduction to nosql
TRANSCRIPT
บรษท สยามานาญกจ จากด และเพอนพองนองพ
somkiat.cc
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
“NoSQL”
“Big Data”
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Database คออะไร ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Database = RDBMS ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
RDBMS คออะไร ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Relational DataBase Management System ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Relational DataBase Management System ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ทกคนจงคดวา
Database = RDBMS
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ทกระบบจงใงาน RDBMS เพยงอยางเดยว
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เปนเรองปกต ทไมปกต !!
บรษท สยามานาญกจ จากด และเพอนพองนองพ
แต RDBMS คอ
Database model ชนดหนง !!
บรษท สยามานาญกจ จากด และเพอนพองนองพ
แสดงวาม model อน ๆ อก ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
แตยงกอน …
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ACID คออะไร ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Atomicity ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Consistency ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Durability ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Isolation ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เรารจกกนในอ Transaction
บรษท สยามานาญกจ จากด และเพอนพองนองพ
RDBMS ทางานไดเปนอยางด
บรษท สยามานาญกจ จากด และเพอนพองนองพ
กวา 30 ป
บรษท สยามานาญกจ จากด และเพอนพองนองพ
แลวไงตอ ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
มาเรยนรประวตศาสตรกนหนอย
บรษท สยามานาญกจ จากด และเพอนพองนองพ
1980 1990 2000 2010
RDBMS
บรษท สยามานาญกจ จากด และเพอนพองนองพ
1980 1990 2000 2010
RDBMSPersistenceIntegrationSQLTransaction
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.youtube.com/watch?v=qI_g07C_Q5I
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เมอ OOP ไดรบความนยม
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Impedance Mismatch
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เคยไดยน ORM ไหม ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ORM ยอมาจาก Object Relational Mapping
บรษท สยามานาญกจ จากด และเพอนพองนองพ
http://www.agile-code.com/blog/microsoft-net-or-mapper-choose-your-own/
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เหนปญหากนไหม ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
1980 1990 2000 2010
Object Database
บรษท สยามานาญกจ จากด และเพอนพองนองพ
แตไมไดรบความนยม !!
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เพราะวาอะไร ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.youtube.com/watch?v=qI_g07C_Q5I
บรษท สยามานาญกจ จากด และเพอนพองนองพ
RDBMS ไดรบความนยมมา 20 ป
บรษท สยามานาญกจ จากด และเพอนพองนองพ
….
บรษท สยามานาญกจ จากด และเพอนพองนองพ
1980 1990 2000 2010
Problem !!
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เมอ Internet ไดรบความนยม
บรษท สยามานาญกจ จากด และเพอนพองนองพ
จานวนขอมลเยอะมาก ๆ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
จดการขอมลอยางไรด ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ขยายเครองใหใหญขน
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เพมจานวนเครองใหมากขน
บรษท สยามานาญกจ จากด และเพอนพองนองพ
vs
บรษท สยามานาญกจ จากด และเพอนพองนองพ
vs
RDBMS ทางานไดด
บรษท สยามานาญกจ จากด และเพอนพองนองพ
vs
RDBMS ทางานไดแย !!
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
สราง Database model ขนมาใหม
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ตองการงทแตกตางไปจากเดม
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Bigtable Dynamo
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
1980 1990 2000 2010
NoSQL
บรษท สยามานาญกจ จากด และเพอนพองนองพ
อ NoSQL มาจากไหน ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
มาจาก meetup
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ตองการพดคยเรอง Non-relational database
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ตองการพดคยเรอง Distributed database
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ตองการอ hashtag ใน twitter ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
#nosql
บรษท สยามานาญกจ จากด และเพอนพองนองพ
http://www.eventbrite.com/e/nosql-meetup-tickets-341739151
บรษท สยามานาญกจ จากด และเพอนพองนองพ
คนทเขารวมมใครบาง ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Dynomite
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ผลจาก meetup มอะไรบาง ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
NoSQL คออะไร ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
NoSQL คออะไร ?No SQLNo No SQLNo No No SQLNot Only SQLNon-relational
บรษท สยามานาญกจ จากด และเพอนพองนองพ
คณลกษณะของ NoSQL ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
คณลกษณะของ NoSQL
Non-relational
บรษท สยามานาญกจ จากด และเพอนพองนองพ
คณลกษณะของ NoSQL
Non-relationalOpen-source
บรษท สยามานาญกจ จากด และเพอนพองนองพ
คณลกษณะของ NoSQL
Non-relationalOpen-sourceCluster-friendly
บรษท สยามานาญกจ จากด และเพอนพองนองพ
คณลกษณะของ NoSQL
Non-relationalOpen-sourceCluster-friendlySchema-less
บรษท สยามานาญกจ จากด และเพอนพองนองพ
คณลกษณะของ NoSQL
Non-relationalOpen-sourceCluster-friendlySchema-lessFor new web app
บรษท สยามานาญกจ จากด และเพอนพองนองพ
แบงกลมตาม Data Model ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Key-Value
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.thoughtworks.com/insights/blog/nosql-databases-overview
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Document
https://www.thoughtworks.com/insights/blog/nosql-databases-overview
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Column-family
https://www.thoughtworks.com/insights/blog/nosql-databases-overview
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Graph
https://www.thoughtworks.com/insights/blog/nosql-databases-overview
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ในตอนนม NoSQL ใหใเยอะมาก ๆ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
NoSQL กบเรอง Consistency
บรษท สยามานาญกจ จากด และเพอนพองนองพ
RDBMS => ACID
NoSQL => BASE
บรษท สยามานาญกจ จากด และเพอนพองนองพ
BASE คออะไร ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Basic Availability ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Soft state ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Eventual consistency ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เรมดวยเรอง Consistency
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.youtube.com/watch?v=qI_g07C_Q5I
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.youtube.com/watch?v=qI_g07C_Q5I
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.youtube.com/watch?v=qI_g07C_Q5I
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เกดปญหาขนมา ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.youtube.com/watch?v=qI_g07C_Q5I
บรษท สยามานาญกจ จากด และเพอนพองนองพ
แกไขอยางไร ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ใงาน Transaction ใไหม ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.youtube.com/watch?v=qI_g07C_Q5I
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.youtube.com/watch?v=qI_g07C_Q5I
บรษท สยามานาญกจ จากด และเพอนพองนองพ
แลวทาอยางไรดละ ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.youtube.com/watch?v=qI_g07C_Q5I
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.youtube.com/watch?v=qI_g07C_Q5I
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.youtube.com/watch?v=qI_g07C_Q5I
บรษท สยามานาญกจ จากด และเพอนพองนองพ
https://www.youtube.com/watch?v=qI_g07C_Q5I
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Consistency ใน NoSQL ม 2 แบบ
1. Logical (Sharding)2. Replication
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Sharding คออะไร ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Replication คออะไร ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ระบบงานตอง Availability
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ConsistencyAvailabilityPartition tolerance
บรษท สยามานาญกจ จากด และเพอนพองนองพ
“CAP Theorem”
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
าหรบ NoSQL เลอกอะไรด ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Partition
Consistency หรอ Availability
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เลอกทสบายใจ !!
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Trade-off !!
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Consistency มผลตอ Response time
บรษท สยามานาญกจ จากด และเพอนพองนองพ
“Business decision”
บรษท สยามานาญกจ จากด และเพอนพองนองพ
คาถาม
บรษท สยามานาญกจ จากด และเพอนพองนองพ
RDBMS จะตายไปหรอไม ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
NoSQL จะเขามาแทนทหรอไม ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
1980 1990 2000 2010
Polyglot persistence
บรษท สยามานาญกจ จากด และเพอนพองนองพ
“Polyglot Persistence”
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
http://martinfowler.com/bliki/PolyglotPersistence.html
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เลอกใหเหมาะสมกบขอมล !!
บรษท สยามานาญกจ จากด และเพอนพองนองพ
โอกาส มาพรอมกบปญหาเสมอ !!
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ปญหาของ Polyglot persistence
Decisions
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ปญหาของ Polyglot persistence
DecisionsOrganizational change
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ปญหาของ Polyglot persistence
DecisionsOrganizational changeImmaturity
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ปญหาของ Polyglot persistence
DecisionsOrganizational changeImmaturityDealing with Eventual Consistency
บรษท สยามานาญกจ จากด และเพอนพองนองพ
มาดความนยมกนหนอย
บรษท สยามานาญกจ จากด และเพอนพองนองพ
http://db-engines.com/en/ranking_trend
บรษท สยามานาญกจ จากด และเพอนพองนองพ
http://db-engines.com/en/ranking_trend
บรษท สยามานาญกจ จากด และเพอนพองนองพ
http://db-engines.com/en/ranking_trend
บรษท สยามานาญกจ จากด และเพอนพองนองพ
http://db-engines.com/en/ranking_trend
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ
ตอจากนมอะไรอกไหม ?
บรษท สยามานาญกจ จากด และเพอนพองนองพ
Real Time Big Data analytic
บรษท สยามานาญกจ จากด และเพอนพองนองพ
เกบขอมลหลก ๆ ใน Memory มากขน
บรษท สยามานาญกจ จากด และเพอนพองนองพ
แกไขปญหาระหวาง RDBMS และ NoSQL
บรษท สยามานาญกจ จากด และเพอนพองนองพ
http://www.somkiat.cc/what-is-newsql/
บรษท สยามานาญกจ จากด และเพอนพองนองพ
บรษท สยามานาญกจ จากด และเพอนพองนองพ