1. Trang chủ
  2. » Luận Văn - Báo Cáo

PHÂN TÍCH SOCIAL NETWORK DÙNG CÔNG CỤ TRỰC QUAN GEPHI

87 1,7K 18

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 87
Dung lượng 19,01 MB

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT BÁO CÁO CHUYÊN ĐỀ : CƠ SỞ DỮ LIỆU NÂNG CAO  GIỚI THIỆU NOSQL VỚI MONGODB  PHÂN TÍCH SOCIAL NETWORK DÙNG CÔNG CỤ TRỰC QUAN GEPHI  GIẢI QUYẾT BÀI TOÁN SCALING DÙNG NOSQL CỦA CÁC SOCIAL NETWORK NỔI TIẾNG HIỆN NAY NHƯ FACEBOOK, FOURSQUARE, TWITTER ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT HV : VŨ MINH THÀNH MS : CH1101134 Lớp : Cao học khóa 6 ĐT : 0913887997 Email : thanhauco@gmail.com GVHD : GS-TS ĐỖ PHÚC TPHCM, 8/2012 Lời Mở Đầu Có thể nói cơ sở dữ liệu (Database) đóng vai trò thiết yếu cho mọi ứng dụng, trong đó CSDL Quan Hệ (RDBMS) đóng vai trò chính yếu nhất hiện nay. Tuy nhiên, RDBMS là hòn đá tảng đã tồn tại và được ứng dụng đến giờ đã mấy chục năm và đã trở nên cũ kỹ, cho đến những năm gần đây khi phong trào “NoSQL” nở rộ thì mô hình CSDL Quan Hệ tỏ ra không còn phù hợp khi các ứng dụng web ngày nay ngày càng trở nên phức tạp, truy xuất khối lượng dữ liệu lớn (big data), và đòi hỏi hiệu suất cao đối với các ứng dụng thời gian thực thì CSDL Quan Hệ tỏ ra chậm chạp và rất khó scaling (mở rộng quy mô ứng dụng) (Ví dụ như các mạng xã hội Facebook, Instagram, Foursquare…). NoSQL cũng là hướng đề tài mà em yêu thích và muốn nghiên cứu sâu, vì thế trong khuôn khổ bài thu hoạch này em muốn trình bày những hiểu biết của em về NoSQL, và Document DB với MongoDB. Em cũng demo ứng dụng sử dụng MongoDB có thể chạy trên các nền tảng khác nhau từ .NET, Java, PHP, và Ruby. 2 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT Phần tiếp theo là mạng xã hội, em xin giới thiệu một công cụ phân tích mạng xã hội thời gian thực vô cùng trực quan và đầy đủ tính năng nhưng open source là Gephi. Mọi người đã quen với NodeXL khi phân tích mạng xã hội, nhưng NodeXL còn thua xa Gephi về mọi mặt và không mạnh bằng Gephi, Gephi cho phép ta tương tác graph ở chế độ 3D real-time với nhiều khả năng tùy biến. Có thể nói Gephi là công cụ mạnh nhất hiện nay dành cho Social Network Analysis (SNA). Trong bài thu hoạch này, em có demo việc phân tích mạng xã hội Facebook sử dụng Gephi. Một phần cũng khá thời sự hiện nay là giải quyết bài toán Scaling (Scalibility) sử dụng NoSQL và Distributed database đối với các mạng xã hội nổi tiếng hiện nay như Facebook, Linkedin, Foursquare, Twitter, Phần này em muốn trình bày cách mà các mạng xã hội trên sử dụng các kỹ thuật như thế nào để improve performance và scaling cho ứng dụng của họ. Họ đã áp dụng CSDL NoSQL và Distributed DB như thế nào và kết quả đạt được ra sao. Có thể nói NoSQL là đề tài thời sự rất nóng bỏng đối với giới công nghệ thông tin hiện nay, và nó vẫn còn đang phát triển, hứa hẹn sẽ có những đột phá mới trong tương lai. Qua đây, em cũng xin gởi lời cám ơn chân thành đến GS-TS Đỗ Phúc, người đã tận tâm truyền đạt những kiến thức nền tảng cơ bản cho chúng em về môn học “Cơ sở dữ liệu nâng cao”. Xin chân thành cám ơn ! Vũ Minh Thành – 8/2012 3 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT NỘI DUNG 4 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 1 PHẦN 1 : GIỚI THIỆU NOSQL VÀ DOCUMENT DATABASE 1.1 GIỚI THIỆU VỀ NOSQL 1.1.1 Khái niệm NoSQL (Not Only SQL) là hệ cơ sở dữ liệu phi quan hệ, khác biệt với CSDL quan hệ truyền thống ở một vài điểm quan trọng. NoSQL được thiết kế dành cho mục đích lưu trữ dữ liệu phân tán nơi mà việc lưu trữ dữ liệu lớn được đòi hỏi. Ví dụ Google hay Facebook mỗi ngày thu thập cả Terabit dữ liệu người dùng. Các loại CSDL NoSQL không cần phải định nghĩa schema trước đó, không dùng những phép kết (join) và cho phép ta có thể mở rộng theo chiều ngang (scale horizontally). Rất nhiều công ty lớn hiện nay đã sử dụng NoSQL như : Google, Facebook, Mozilla, Adobe, Foursquare, Linkedin, Digg, Zynga, Vermont, Twitter, … 1.1.2 Lịch sử ra đời của NoSQL Thuật ngữ NoSQL lần đầu được dùng bởi Carlo Strozzi vào 1998, ông sử dụng tên này để đặt tên cho 1 CSDL nhỏ mã nguồn mở của ông mà không có giao diện SQL. Vào đầu năm 2009, khi last.fm muốn tổ chức một sự kiện về các hệ CSDL phân tán mã nguồn mở, Eric Evans, nhân viên của công ty Rackspace đã sử dụng lại từ này để nói đến những CSDL phi quan hệ, phân tán và không tuân theo ACID (Atomicity, Consistency, Isolation, Durability) – 4 thành phần quan trọng của CSDL quan hệ. Vào cùng năm đó, hội nghị NoSQL được tổ chức tại Atlanta, USA, nó đã được đem ra bàn thảo và tranh luận rất nhiều. Và cho tới bây giờ, việc thảo luận và ứng dụng NoSQL đang trên đà phát triển và chúng ta thấy được sự tăng trưởng một cách mạnh mẽ. 1.1.3 Các tính chất quan trọng của NoSQL • Schema-free : NoSQL không cần phải định nghĩa schema db về defind tables, relationship, contrainst, … như CSDLQH. Trong NoSQL, collection là 1 tập các documents, các documents mô tả cho các row và collection biểu diễn tương ứng cho 1 bảng trong CSDLQH. Ví dụ {"colour" : "red"} đây là 2 documents có thể lưu trong 1 collection {"salary" : 100.00} Điều đặc biệt ở trên là 2 documents trên không có những thành phần dữ liệu giống nhau. Sự linh hoạt này cho phép tính năng schema-free vào NoSQL • Horizontally scalable : đây chính là khả năng scale out (mở rộng thêm nodes) cho hệ thống. Trong NoSQL, việc lưu trữ data sẽ nhanh hơn nhiều vì tận dụng tính năng scaling out, cho phép bổ sung thêm nhiều node vào hệ thống và phân bố tải trên những node đó. 1.1.4 Một số phân loại CSDL NoSQL Hiện nay số lượng DB kiểu NoSQL đã lên tới hàng trăm, đa số là mã nguồn mở, nhưng nó được phân loại theo một loại sau 5 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT • Document-oriented : data được lưu như những tài liệu documents. Ví dụ : { FirstName="Arun", Address="St. Xavier's Road", Spouse=[{Name:"Kiran"}], Children=[{Name:"Rihit", Age:8}] } Một số db dạng này : CouchDB, MongoDB, Jackrabbit, OrientDB, SimpleDB, Terrastore, … • XML database : data được lưu dạng XML. Điển hình : BaseX, eXist, MarkLogic Server, … • Graph databases : data được lưu thành collection của những nodes. Nodes được kết nối bởi cạnh (edges). Một số DB như : AllegroGraph, DEX, Neo4j, FlockDB, Sones GraphDB… • Key-Value store : dạng này cho phép ta lưu data không cần schema, khóa key ở đây có thể là string, hashes, lists, sets, sorted sets và Value được lưu theo những key này. Một số loại : Cassandra, Riak, Redis, memcached, BigTable, … 6 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 1.2 GIỚI THIỆU CSDL TÀI LIỆU (DOCUMENT-ORIENTED DB) Trong phần này ta xét một loại CSDL NoSQL là Document-oriented DB (điển hình là MongoDB). Ta đã định nghĩa Document DB ở trên, ở đây ta nói thêm về một số khía cạnh của document. - Mã hóa (Encodings) : trong Document DB được sử dụng ở dạng XML, YAML, JSON và BSON (Binary JSON), cũng như dạng PDF và MS Office documents. - Khóa (Keys) : các documents trong db được xác định qua khóa duy nhất, thường là dạng string. Trong vài trường hợp có thể là URI hay Path. Dù dạng nào, ta đều có thể dùng key này để rút trích document từ db. DB có thể sử dụng index cho key đó giúp truy xuất document được nhanh giống trong CSDLQH. - Rút trích dữ liệu (Retrieval) : một trong những điểm hay của Document DB là ngoài việc dùng key để tìm ra document,db còn cung cấp API cho phép ta truy vấn document dựa theo nội dung nó chứa trong đó. - Cách tổ chức dữ liệu (Organization) : có vài cách như Collections, Tags, Metadata ẩn, phân cấp giống thư mục 7 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT 2 PHẦN 2 : GIỚI THIỆU MONGODB VÀ DEMO CHƯƠNG TRÌNH 2.1 GIỚI THIỆU VỀ MONGODB MongoDB là Document DB được thiết kế linh hoạt, mở rộng, và tốc độ nhanh, thậm chí với tải lớn. Nó được xây dựng với mục đích đem lại khả năng sẵn sàng cao (high availability), hỗ trợ rich và dynamic schema, và cho phép ta dễ dàng phân tán dữ liệu lên nhiều server khác nhau. MongoDB được viết bởi công ty 10gen (www.10gen.com) bằng C++ nên tốc độ nhanh và phân phối dưới dạng mã nguồn mở. Foursquare là một trong những khách hàng nổi tiếng đang sử dụng MongoDB cho production của mình. 2.2 CÀI ĐẶT VÀ SỬ DỤNG MONGODB MongoDB có thể chạy trên nhiều hệ điều hành khác nhau, cài đặt cũng rất dễ. Xem link hướng dẫn cài đặt dưới đây http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/ hoặc file hướng dẫn trong CD source code tại \Installers\MongoDB\HuongDanCaiDatMongoDB.docx Source để cài MongoDB trong đường dẫn \Installers\MongoDB\mongodb-win32-x86_64-2.0.7.zip 2.3 CÁC ĐIỂM MẠNH CỦA MONGODB  Document-oriented : - Document s (objects) được map dễ dàng vào các kiểu dữ liệu các ngôn ngữ lập trình - Tài liệu con (Embedded documents) và arrays làm giảm nhu cầu không cần phải joins các bảng - Schemaless : không cần định nghĩa schema, nên dễ dàng thay đổi cấu trúc schema - Không kết bảng (joins) và không có giao tác đa tài liệu (multi-document transactions) đem lại hiệu suất cao và dễ scaling.  Hiệu năng cao (High performance): - Không kết bảng và embedding giúp đọc và ghi nhanh - Indexing bao gồm cả indexing keys của các tài liệu con và mảng bên trong. - Cho phép tùy chọn streaming writes  Tính sẵn sàng cao (High availability) 8 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT - Cho phép replicated servers với khả năng tự động kháng lỗi master (master failover)  Dễ dàng mở rộng (Easy scalability) - Tự động chia mảnh (automatic sharding) data trải ra trên các server, read và write phân tán trên các mảnh (shards) - Eventually-consistent reads Mô hình hoạt động ở chế độ phân tán dữ liệu của Mongo 2.4 CÁC TÍNH NĂNG CHÍNH CỦA MONGODB  Document-based queries : cho phép truy vấn dữ liệu linh hoạt với JSON/Javascript  Map/Reduce : tính năng này giống các hàm gom nhóm và xử lý dữ liệu trong SQL - Queries chạy song song trên các mảnh (shards) Có thể nói khái niệm Map/Reduce trong NoSQL là phức tạp và khó hiểu, hình minh họa sau đây giúp ta dễ dàng hơn khi so sánh các hàm gom nhóm trong Mysql tương đương với Map/Reduce trong Mongo như thế nào 9 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT (So sánh Map/Reduce của Mongo với hàm Aggregation trong MySQL)  GridFS : cho phép ta lưu trữ files dung lượng lớn  Geospatial Indexing : khả năng index cho các dữ liệu vị trí địa lý. Cho phép ta tìm object dựa theo vị trí của nó (VD : hãy tìm những điểm gần điểm X cho trước) 2.5 KHI NÀO NÊN SỬ DỤNG MONGODB ? - Khi ta gặp phải những vấn đề về performance với RDBMS - Ta đang cần giải quyết vấn đề lưu trữ files trong db - Ta cần xử lý realtime cho batch processing - Chúng ta đang phát triển theo mô hình agile (Scrum) - Dữ liệu phức tạp không thể mô hình hóa trong RDBMS - Dự án của ta chậm tiến độ và công việc đòi hỏi truy xuất db nhiều - Ta được yêu cầu sử dụng những server hay mạng riêng biệt cho giải pháp db hiện có - Ta đang cần deploy lên trên public hay private cloud 10 [...]... 12 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT value Hình sau so sánh trực quan giữa CSDL quan hệ của MySQL và tương đương trong Mongo 13 ĐẠI HỌC QUỐC GIA TPHCM 2.8 CHƯƠNG TRÌNH THẠC SĨ CNTT CÁC KHÁI NIỆM CƠ BẢN TRONG MONGO 2.8.1 Document - Tương tự như khái niệm row trong RDBMS - Được biểu diễn dạng JSON(BSON) - Có tính phân cấp - Có thể tham chiếu đến 1 document khác 2.8.2 Collection - Tương... các website sử dụng MongoDB rất nhiều (http://www.mongodb.org/display/DOCS/Production+Deployments) Ta có thể điểm qua 1 vài tên tuổi • Foursquare • SAP • SourceForge • GitHub • Eventbrite • CERN • MTV network • EA.com • 02 • BusinessInsider.com • Forbes 11 ĐẠI HỌC QUỐC GIA TPHCM • CNN Turk (www.cnnturk.com) • Disney • Shopwiki • Shutterfly • Intuit • http://bit.ly • The New York Times • CHƯƠNG TRÌNH... collection 2.8.8 Updating Update 1 document trong collection => obj phải load hết trong memory, truy xuất db nhiều lần => không hiệu quả 16 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT Cách khác là dùng Atomic Update (giống Transactions trong RDBMS), cho phép one-trip tới db, thực hiện nhiều tác vụ 1 lần 17 ĐẠI HỌC QUỐC GIA TPHCM 2.9 CHƯƠNG TRÌNH THẠC SĨ CNTT DEMO CHƯƠNG TRÌNH SỬ DỤNG MONGODB MongoDB... ngữ khác nhau : Windows, MacOS, Linux, NET, Java, PHP, C++, Python, Ruby, …  Lưu ý : để chạy được các chương trình demo sau, ta phải start trước MongoDB server (xem phần sử dụng MongoDB ở trên ) thành công 2.9.1 Sử dụng MongoDB với NET Driver MongoDB cung cấp các drivers (DLL) cho phép ta lập trình MongoDB với C# và sử dụng LINQ collection Driver đường dẫn trong folder sourcecode \Installers\NET\CSharpDriver-1.5.0.4566\MongoDB.Driver.dll... Sử dụng MongoDB với Java Driver đường dẫn trong folder sourcecode \Installers\Java\mongo-2.9.0-RC1.jar Sourcecode chương trình Java sử dụng MongoDB tại \Sourcecode\Java Biên dịch và chạy chương trình dùng command sau : javac -cp mongo.jar; Sample.java java -cp mongo.jar; Sample  Mô tả source code 26 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG TRÌNH THẠC SĨ CNTT File Connect.java 27 ĐẠI HỌC QUỐC GIA TPHCM CHƯƠNG . NÂNG CAO  GIỚI THIỆU NOSQL VỚI MONGODB  PHÂN TÍCH SOCIAL NETWORK DÙNG CÔNG CỤ TRỰC QUAN GEPHI  GIẢI QUYẾT BÀI TOÁN SCALING DÙNG NOSQL CỦA CÁC SOCIAL NETWORK NỔI TIẾNG HIỆN NAY NHƯ FACEBOOK,. em xin giới thiệu một công cụ phân tích mạng xã hội thời gian thực vô cùng trực quan và đầy đủ tính năng nhưng open source là Gephi. Mọi người đã quen với NodeXL khi phân tích mạng xã hội, nhưng. xa Gephi về mọi mặt và không mạnh bằng Gephi, Gephi cho phép ta tương tác graph ở chế độ 3D real-time với nhiều khả năng tùy biến. Có thể nói Gephi là công cụ mạnh nhất hiện nay dành cho Social

Ngày đăng: 10/04/2015, 14:35

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w