introduction to nosql

154
บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพีsomkiat.cc

Upload: somkiat-puisungnoen

Post on 11-Apr-2017

4.921 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

somkiat.cc

Page 2: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 3: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 4: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

“NoSQL”

“Big Data”

Page 5: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 6: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Database คออะไร ?

Page 7: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Database = RDBMS ?

Page 8: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

RDBMS คออะไร ?

Page 9: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Relational DataBase Management System ?

Page 10: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Relational DataBase Management System ?

Page 11: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ทกคนจงคดวา

Database = RDBMS

Page 12: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ทกระบบจงใงาน RDBMS เพยงอยางเดยว

Page 13: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เปนเรองปกต ทไมปกต !!

Page 14: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

แต RDBMS คอ

Database model ชนดหนง !!

Page 15: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

แสดงวาม model อน ๆ อก ?

Page 16: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

แตยงกอน …

Page 17: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ACID คออะไร ?

Page 18: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Atomicity ?

Page 19: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Consistency ?

Page 20: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Durability ?

Page 21: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Isolation ?

Page 22: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เรารจกกนในอ Transaction

Page 23: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

RDBMS ทางานไดเปนอยางด

Page 24: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

กวา 30 ป

Page 25: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

แลวไงตอ ?

Page 26: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

มาเรยนรประวตศาสตรกนหนอย

Page 27: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

1980 1990 2000 2010

RDBMS

Page 28: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

1980 1990 2000 2010

RDBMSPersistenceIntegrationSQLTransaction

Page 29: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.youtube.com/watch?v=qI_g07C_Q5I

Page 30: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เมอ OOP ไดรบความนยม

Page 31: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Impedance Mismatch

Page 32: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เคยไดยน ORM ไหม ?

Page 33: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ORM ยอมาจาก Object Relational Mapping

Page 34: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

http://www.agile-code.com/blog/microsoft-net-or-mapper-choose-your-own/

Page 35: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เหนปญหากนไหม ?

Page 36: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

1980 1990 2000 2010

Object Database

Page 37: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

แตไมไดรบความนยม !!

Page 38: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เพราะวาอะไร ?

Page 39: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.youtube.com/watch?v=qI_g07C_Q5I

Page 40: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

RDBMS ไดรบความนยมมา 20 ป

Page 41: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

….

Page 42: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

1980 1990 2000 2010

Problem !!

Page 43: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เมอ Internet ไดรบความนยม

Page 44: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

จานวนขอมลเยอะมาก ๆ

Page 45: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 46: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 47: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 48: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

จดการขอมลอยางไรด ?

Page 49: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ขยายเครองใหใหญขน

Page 50: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เพมจานวนเครองใหมากขน

Page 51: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

vs

Page 52: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

vs

RDBMS ทางานไดด

Page 53: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

vs

RDBMS ทางานไดแย !!

Page 54: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 55: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

สราง Database model ขนมาใหม

Page 56: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ตองการงทแตกตางไปจากเดม

Page 57: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Bigtable Dynamo

Page 58: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 59: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

1980 1990 2000 2010

NoSQL

Page 60: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

อ NoSQL มาจากไหน ?

Page 61: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

มาจาก meetup

Page 62: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ตองการพดคยเรอง Non-relational database

Page 63: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ตองการพดคยเรอง Distributed database

Page 64: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ตองการอ hashtag ใน twitter ?

Page 65: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

#nosql

Page 66: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

http://www.eventbrite.com/e/nosql-meetup-tickets-341739151

Page 67: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

คนทเขารวมมใครบาง ?

Page 68: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Dynomite

Page 69: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ผลจาก meetup มอะไรบาง ?

Page 70: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

NoSQL คออะไร ?

Page 71: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

NoSQL คออะไร ?No SQLNo No SQLNo No No SQLNot Only SQLNon-relational

Page 72: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

คณลกษณะของ NoSQL ?

Page 73: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

คณลกษณะของ NoSQL

Non-relational

Page 74: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

คณลกษณะของ NoSQL

Non-relationalOpen-source

Page 75: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

คณลกษณะของ NoSQL

Non-relationalOpen-sourceCluster-friendly

Page 76: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

คณลกษณะของ NoSQL

Non-relationalOpen-sourceCluster-friendlySchema-less

Page 77: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

คณลกษณะของ NoSQL

Non-relationalOpen-sourceCluster-friendlySchema-lessFor new web app

Page 78: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

แบงกลมตาม Data Model ?

Page 79: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 80: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 81: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Key-Value

Page 82: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.thoughtworks.com/insights/blog/nosql-databases-overview

Page 83: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Document

https://www.thoughtworks.com/insights/blog/nosql-databases-overview

Page 84: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Column-family

https://www.thoughtworks.com/insights/blog/nosql-databases-overview

Page 85: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Graph

https://www.thoughtworks.com/insights/blog/nosql-databases-overview

Page 86: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 87: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ในตอนนม NoSQL ใหใเยอะมาก ๆ

Page 88: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 89: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

NoSQL กบเรอง Consistency

Page 90: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

RDBMS => ACID

NoSQL => BASE

Page 91: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

BASE คออะไร ?

Page 92: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Basic Availability ?

Page 93: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Soft state ?

Page 94: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Eventual consistency ?

Page 95: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เรมดวยเรอง Consistency

Page 96: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.youtube.com/watch?v=qI_g07C_Q5I

Page 97: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.youtube.com/watch?v=qI_g07C_Q5I

Page 98: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.youtube.com/watch?v=qI_g07C_Q5I

Page 99: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เกดปญหาขนมา ?

Page 100: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.youtube.com/watch?v=qI_g07C_Q5I

Page 101: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

แกไขอยางไร ?

Page 102: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ใงาน Transaction ใไหม ?

Page 103: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.youtube.com/watch?v=qI_g07C_Q5I

Page 104: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 105: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.youtube.com/watch?v=qI_g07C_Q5I

Page 106: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

แลวทาอยางไรดละ ?

Page 107: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.youtube.com/watch?v=qI_g07C_Q5I

Page 108: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.youtube.com/watch?v=qI_g07C_Q5I

Page 109: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.youtube.com/watch?v=qI_g07C_Q5I

Page 110: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

https://www.youtube.com/watch?v=qI_g07C_Q5I

Page 111: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Consistency ใน NoSQL ม 2 แบบ

1. Logical (Sharding)2. Replication

Page 112: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Sharding คออะไร ?

Page 113: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 114: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Replication คออะไร ?

Page 115: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 116: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ระบบงานตอง Availability

Page 117: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ConsistencyAvailabilityPartition tolerance

Page 118: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

“CAP Theorem”

Page 119: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 120: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 121: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

าหรบ NoSQL เลอกอะไรด ?

Page 122: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Partition

Consistency หรอ Availability

Page 123: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เลอกทสบายใจ !!

Page 124: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Trade-off !!

Page 125: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Consistency มผลตอ Response time

Page 126: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

“Business decision”

Page 127: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

คาถาม

Page 128: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

RDBMS จะตายไปหรอไม ?

Page 129: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

NoSQL จะเขามาแทนทหรอไม ?

Page 130: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

1980 1990 2000 2010

Polyglot persistence

Page 131: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

“Polyglot Persistence”

Page 132: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 133: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

http://martinfowler.com/bliki/PolyglotPersistence.html

Page 134: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 135: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เลอกใหเหมาะสมกบขอมล !!

Page 136: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

โอกาส มาพรอมกบปญหาเสมอ !!

Page 137: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ปญหาของ Polyglot persistence

Decisions

Page 138: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ปญหาของ Polyglot persistence

DecisionsOrganizational change

Page 139: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ปญหาของ Polyglot persistence

DecisionsOrganizational changeImmaturity

Page 140: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ปญหาของ Polyglot persistence

DecisionsOrganizational changeImmaturityDealing with Eventual Consistency

Page 141: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

มาดความนยมกนหนอย

Page 142: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

http://db-engines.com/en/ranking_trend

Page 143: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

http://db-engines.com/en/ranking_trend

Page 144: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

http://db-engines.com/en/ranking_trend

Page 145: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

http://db-engines.com/en/ranking_trend

Page 146: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 147: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 148: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

ตอจากนมอะไรอกไหม ?

Page 149: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Real Time Big Data analytic

Page 150: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

เกบขอมลหลก ๆ ใน Memory มากขน

Page 151: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

แกไขปญหาระหวาง RDBMS และ NoSQL

Page 152: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

http://www.somkiat.cc/what-is-newsql/

Page 153: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ

Page 154: Introduction to NoSQL

บรษท สยามานาญกจ จากด และเพอนพองนองพ