31
KHOÁ LUẬN TỐT NGHIỆP TÌM HIỂU NOSQL VÀ XÂY DỰNG ỨNG DỤNG MINH HOẠ Giảng viên hướng dẫn: ThS. PHẠM THI VƯƠNG Sinh viên thực hiện : DƯƠNG THÂN DÂN - 08520057 BÙI NGỌC HUY - 08520544 ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Slide Bao Cao NoSQL

  • Upload
    ku-vic

  • View
    152

  • Download
    4

Embed Size (px)

DESCRIPTION

Bao Cao ve NoSQL

Citation preview

BO CO

KHO LUN TT NGHIPTM HIU NOSQL V XY DNG NG DNG MINH HOGing vin hng dn: ThS. PHM THI VNGSinh vin thc hin : DNG THN DN- 08520057 BI NGC HUY - 08520544

I HC QUC GIA TP.H CH MINHTRNG I HC CNG NGH THNG TIN

1ni dung trnh byGii thiu tiTm hiu RavenDBGii thiu ng dngTng kt2I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINGii thiu ti:Nghin cu g ?N hot ng ra sao ?p dng vo u ?Phn loiMc tiu ti2l do la chn ti ?3I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN4I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN

1000 t truy cp

Em xin bt u bui thuyt trnh bng mt website kh quen thucMng x hi pht trin s ngi s dng tng cao d liu ngy cng nhiu vn lu tr, cc my ch hin ti khng p ng ni cn gii phpphn tn ra nhiu serverTuy nhin m rng phn cng s tn nhiu chi ph, v vn ko p ng Cn ci tin gii php phn mm45I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN

6I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN

Cn tm gii php nng cao hiu xut hot ng vi lng d liu cc ln

NOSQL

67I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN

MongoDB vs. SQL Server 2008 Performance ShowdownBiu so snh hiu sut hot ng gia MongoDB v SQL Server 2008 cho thy hiu sut ca NoSQL gp rt nhiu ln csdl truyn thng7nosql l g8I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINRDBMSNon RelationDistributedHorizontal ScalableSchema-freeEventual ConsistenceOpen sourceNOSQLcch lm vic ca nosqlCch thit k d liu phi quan h Khng s dng SQLGim s lng cc yu cu truy cp ti databaseS dng ti a indexKh nng phn tn n gin9I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN t c hiu sut cao vi lng d liu ln, NoSQL lm th no?Cch thit k d liu phi quan h Khng c join khi truy vnKhng s dng SQL gim rm rS dng index tnh ton trc cc d liu kiu tp hpGim s lng cc yu cu truy cp ti database: lu vo 1 documentKh nng phn tn n gin

9p dng vo u ?Ph hp vi nhng ng dng:Khi lng d liu rt lnKhng yu cu rng buc d liu

Khng ph hp vi:ng dng yu cu rng buc caoCc truy vn phc tpCc phn tch hin i (BI)

10I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN

Ph hp: mng x hi, thu thp d liu.Ko ph hp: ng dng ti chnh, ngn hng. vi cc con s lun c cp nhp v cn c cp nhp tc th. S chm tr c th phi tr gi rt t. Bi th nu cc ng dng ca bn thuc loi ny th hy la chn c s d liu RDBMS vi m hnh quan h truyn thng.

10mc tiu ti11I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN

Tm hiu cc trin khai NoSQL ph bin nh: RavenDB, MongoDB, CouchDB, MemCache, Cassandra, u khuyt im ca tng loi, tiu ch la chn mt trin khai cho ng dng thc t.

11

PHN LOI C S D LIU NOSQLC 4 loi c s d liu NoSQL:12I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINKey-value storeColumn families Document database Graph database

Vi key-value store th vic truy xut, xa, cp nht gi tr thc (value) u thng qua key tng ng. Gi tr c lu di dng BLOB (Binary large object)12ni dung trnh byGii thiu tiTm hiu RavenDBGii thiu ng dngTng kt13I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN13gii thiu v ravendb14I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINDocument databaseM ngun m - thit k da trn kin trc client-serverGii php dnh ring cho nn tng .NETM hnh d liu linh hot Xy dng ng dng c hiu sut cao, tr thp mt cch nhanh chng v hiu qu.M ngun m giy php j ??M hnh d liu linh hot => p ng yu cu ca cc ng dng thi gian thc

14ti sao chn ravendb?15I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINH tr transactionD liu lu di dng JSON, phi lc (schema-less).NET API, HTTP APIS dng index truy vn d liu nhanh chngReplication v shardingRaven Studio ManagementTha hng sc mnh ca NOSQL ni chung v sc mnh ca document database ni ringH tr transaction => iu ny c ngha l d liu ca chng ta c x l mt cch an ton v ng tin cyD liu lu di dng JSON, phi lc (schema-less) => khng cn nh ngha trc m hnh d liu/ lc . H tr .NET API, RESTful API => c th s dng Linq truy vn d liu trong cc ng dng .NET hoc xy dng ng dng ch s dng JavaScript v HTML da trn HTTP API( write a fully functioning RavenDB application using just JavaScript and HTML, database documents are addressable resources via unique URLs and those resources can be acted upon using the HTTP verbs GET, PUT, POST and DELETE.)S dng index truy vn d liu mt cch nhanh chng => index c thc thi trong sut bn di nn, kt qu truy vn c lu tr sn => nhanhRaven Studio Management: giao din web trc quan, c th xem, thao tc v truy vn d liu.RavenDB cn h tr replication (to bn sao cho cc document) v sharding (phn tn d liu thnh cc phn nh lu trn nhiu server khc nhau). C th kt hp replication v sharding. Thch hp cho vic xy dng cc ng dng web-scale (c kh nng m rng ln)C cng c qun l (Raven Studio Management) giao din web trc quan, c th xem, thao tc v truy vn d liu

1516I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINso snh ravendb vi rdbmsRavenDBRDBMSD liu C cu trc, khng c cu trc. C cu trc, d liu phi c chun ha.Kiu d liuKhng cn nh ngha trc kiu d liu.D liu lu tr di dng JSON Phi nh ngha trc kiu d liuLc Khng yu cuYu cu lc Kin thc SQLKhng yu cuYu cu SQLTruy vnS dng index (c php Linq)Truy vn SQL.Rng buc d liuB qua rng buc d liuRng buc d liuJoinKhng cCHiu sut I/OTt vi m hnh batch processing v nhng ti u v c ghi d liu.Km do thit k m bo s ra vo lin tc ca d liu.M rngn gin, vic tng s lng node trong h thng d dngKh m rng hn. Hn ch v s lng nodePhn cngYu cu thp hn v gi tr v tnh ng nht ca phn cngYu cu phn cng caoMc d RavenDB c gng lm cho vic s dng tr nn n gin nht c th, nhng vn cn nhng tr ngi trong vic thay i suy ngh ca nh pht trin v vic m hnh d liu. Chng ta cn suy ngh v d liu theo mt cch khc so vi trc y tng lm vi c s d liu quan h. y l nhng th m chng ta cn xc nh r rng trc khi chn RavenDB lm cng ngh lu tr cho ng dng mi pht trin vi thi hn hon thnh gii hn.- Tuy nhin, hc cch m hnh d liu cc document vi RavenDB v lm vic vi RavenDB s l nhng kinh nghim b ch bi v chng ta s c c nhng thng tin phn hi ngay lp tc. V khi chng ta hon thnh vic hc ny ri th vic pht trin ng dng s nhanh chng v d dng hn rt nhiu.- Mc d chng ta c EF 4.1 code first, FNH (Fluent NHibernate)vi vic automappings, thm ch l micro-orms nh Massive hay l Petapoco lm rt tt trong vic n gin qu trnh pht trin ng dng khi lm vic vi SQL server, nhng n cn d dng hn khi lm vic vi RavenDB. Chng ta khng cn ngh v vic mapping v normalization, ch cn c i tng l xong.

1617I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINso snh ravendb vi mongodb v couchdbMongoDBCouchDBRavenDBDocumentsFormatBSONJSONJSONMetadataNoSystemSystem + CustomVersioningNoYesIncluded Plug-inAttachmentsGridFSYesYesMap/ReduceJavaScript + othersJavaScriptLINQBulk LoadMonogoimport utilityYesYesAdhoc QueryYesNoNometadata1718I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINso snh ravendb vi mongodb v couchdbso snh ravendb vi mongodb v couchdbMongoDBCouchDBRavenDBStorageShardingAvailable in 1.6YesYesDurabilitySingle Server will be available in 1.8"crash-only" designwrite ahead logging and snapshot isolation for guaranteed crash recovery via ESETransactionsNoNoYesConcurrencyUpdate in-placeMVCC (Multi-version Concurrency Control)Optimistic concurrencyConsistencyStrong Master /Eventual SlaveStrong Node /Eventual ClusterEventualReplicationMaster-SlavePeer-basedIncluded Plug-inOptimistic concurrencyPhn tn d dngReplication + Sharding1819I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINso snh ravendb vi mongodb v couchdbso snh ravendb vi mongodb v couchdbMongoDBCouchDBRavenDBInterfaceInterface ProtocolCustom protocol over TCP/IPHTTP/RESTHTTP/REST.NET API3rdParty Projects3rdParty ProjectsIncludedOtherTriggersNoUpdate ValidationSecurityYesSecurityBasicBasicBasic using included plug-in

Written InC++ErlangC#.Net APITng kt li nhng u im: .Net api, studio, phn tn d dng, ti u ho x l ng thi19ni dung trnh byGii thiu tiTm hiu RavenDBGii thiu ng dngTng kt20I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN20chc nng h thng21I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINngi dng ca h thng22I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINOwnerManagerMemberGuest23I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINDatabase serverServer AsiaServer MiddelEastServer AmericanWeb serverViewModelControllerClients AsiaClient nClient 1Client 2Clients AmericanClient nClient 1Client 2Clients MiddelEastClient nClient 1Client 2Thit k m hinh 3 tng 24I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINUsesUsesInjects dependenciesUsesCoreDomainInterfaceServiceWebImplementViewControllerModelUnityContainerUsesKin truc WebsiteCore.Domain25I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN

giao din chng trnh26I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN

demo27I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINni dung trnh byGii thiu tiTm hiu RavenDBGii thiu ng dngTng kt28I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN28kt qu t c29I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TINV mt l thuytTng hp v phn tch kh chi tit v c s d liu NoSQL.Tm hiu tng quan v cc loi NoSQL.Tm hiu v tnh nng, c im v nhng li ch ca document database. Tm hiu v RavenDB.V thc nghim:Xy dng c mt ng dng c cc chc nng c bn ging Google Groups nh: to group, ng bi, bnh lun, tm kim, qun l memberS dng c s d liu RavenDB, website s dng m hnh MVC4.

Tng hp v phn tch kh chi tit v c s d liu NoSQL cng vi nhng ng dng thc tin ca n.

Tm hiu su v tnh nng, c im v nhng li ch ca document database. Mt s loi ph bin l: RavenDB , MongoDB, CouchDB.

ng dng tuy khng qu quy m nhng cng p dng c nhng k thut c bn v nng cao ca RavenDB v ng dng th hin tc vt tri khi hot ng vi mt lng ln d liu, p ng c yu cu ra29hng pht trinTm hiu cc loi cn li ca NoSQL. Xy dng thm chc nng, giao din.Tm hiu thm vn phn tn d liu nhiu my ch. Mt s vn nh bo mt, config server, backup v restore d liu trn c s d liu NoSQL.

30I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN

1. Kh khn khi phn trang trn nhiu server2. Tm hiu thm cc vn qun l transaction. c bit x l tnh hung c s d liu phn tn trn nhiu my ch.

30CM N QU THY C THEO DI31I HC QUC GIA TP.H CH MINH TRNG I HC CNG NGH THNG TIN