6. Q: Graph tốt cho cái gì?
A: Tính kết nối dữ liệu cao
7. Q: Graph tốt cho cái gì?
A: Tính kết nối dữ liệu cao
Giới thiệu, gợi ý(Recommendations)
Kinh doanh thông minh(BI)
Điện toán xã hội(Social computing)
Không gian địa lý(Geospatial)
Quản lý dữ liệu tổng thể(MDM)
Quản lý hệ thống
Tính phả hệ
8. Các trường hợp sử dụng thực tế:
• A - Access Control List
• B - Những khuyến nghị kịp thời
• C - Hợp tác toàn cầu
10. Xu hướng trong những dữ liệu lớn
và NoSQL
Tăng kích thước dữ liệu (dữ liệu lớn)
“Every two days now we create as much information as we
did from the dawn of civilization up until 2003” - Eric
Schmidt
11. Xu hướng trong những dữ liệu lớn
và NoSQL
Tăng kích thước dữ liệu (dữ liệu lớn)
“Every two days now we create as much information as we
did from the dawn of civilization up until 2003” - Eric
Schmidt
Kết nối dữ liệu ngày càng tăng(graph data)
ví dụ như text document tới HTML D
12. Xu hướng trong những dữ liệu lớn
và NoSQL
Tăng kích thước dữ liệu (dữ liệu lớn)
“Every two days now we create as much information as we
did from the dawn of civilization up until 2003” - Eric
Schmidt
Kết nối dữ liệu ngày càng tăng(graph data)
ví dụ như text document tới HTML D
Dữ liệu bán cấu trúc(semi-structured data)
Cá nhân hóa dữ liệu với tập hợp con chung
13. Xu hướng trong những dữ liệu lớn
và NoSQL
Tăng kích thước dữ liệu (dữ liệu lớn)
“Every two days now we create as much information as we
did from the dawn of civilization up until 2003” - Eric
Schmidt
Kết nối dữ liệu ngày càng tăng(graph data)
ví dụ như text document tới HTML
Dữ liệu bán cấu trúc(semi-structured data)
Cá nhân hóa dữ liệu với tập hợp con chung
Cấu trúc – bề ngoài trên nhiều dịch vụ
Từ khối tới mô đun, những ứng dụng phân tán
15. Loại Key-Value
“Dynamo: Của Amazon có khả năng
lưu trữ Key-Value cao”
Data model
-Sắp xếp toàn bộ key-value
-Khả năng mở rộng HashMap lớn
-Khả năng chịu lỗi cao(đặc trưng)
Ví dụ:
-Riak, Redis, Voldemort
16. Điểm mạnh và yếu của key-value
Điểm mạnh
-Mô hình dữ liệu đơn giản
-Rất thích hợp cho việc nhân rộng
theo chiều ngang
-Khả năng mở rộng
-Luôn sẵn sàng để dùng
17. Điểm mạnh và yếu của key-value
Điểm mạnh
-Mô hình dữ liệu đơn giản
-Rất thích hợp cho việc nhân rộng
theo chiều ngang
-Khả năng mở rộng
-Luôn sẵn sàng để dùng
Điểm yếu
-Mô hình dữ liệu đơn giản
-Yếu cho những dữ liệu phức tạp
18. Loại Column-Family
Google "Bigtable: Một hệ thống lưu trữ
phân tán cho cấu trúc Dữ liệu “
-Column-Family là nhân tố chính
nhái Bigtable
Data model
-Một bảng lớn với nhiều cột
-Map-reduce for querying/processing
Ví dụ:
-HBase, HyperTable, Cassandra
19. Điểm mạnh và yếu của Column-Family
Điểm mạnh
-Mô hình dữ liệu hỗ trợ các dữ liệu bán
cấu trúc
-Naturally indexed (columns)
-Tốt tại nhân rộng ra theo chiều ngang
20. Điểm mạnh và yếu của Column-Family
Điểm mạnh
-Mô hình dữ liệu hỗ trợ các dữ liệu bán
cấu trúc
-Naturally indexed (columns)
-Tốt tại nhân rộng ra theo chiều ngang
Điểm yếu
-Không phù hợp cho các dữ liệu kết nối
với nhau
21. Loại Document Database
Data model
-Tập hợp của các tài liệu
-Một Document là tập hợp của các
key-value
-Index trung tâm có rất nhiều map-
reduce
Ví dụ:
-CouchDB, MongoDB
22. Điểm mạnh và yếu của Document-DB
Điểm mạnh
-Đơn giản, mô hình dữ liệu mạnh
mẽ(Giống như SVN)
-Good scale (Đặc biệt nếu được hỗ
trợ sharding)
23. Điểm mạnh và yếu của Document-DB
Điểm mạnh
-Đơn giản, mô hình dữ liệu mạnh mẽ(Giống như
SVN)
-Good scale (Đặc biệt nếu được hỗ trợ
sharding)
Điểm yếu
-Không phù hợp cho các dữ liệu kết nối với
nhau
-Query model limited to keys (và indexes)
-Map-reduce cho những truy vấn lớn
24. Loại Graph Database
Data model
-Nodes & Relationships
-Hypergraph(nhiều cạnh với nhiều
điểm đầu cuối)
Ví dụ:
-Neo4j, OrientDB, InfiniteGraph,
AllegroGraph
32. Điểm mạnh và yếu của Graph-DB
Điểm mạnh
-Mô hình dữ liệu mạnh mẽ, tổng quát như
RDBMS
-Kết nối dữ liệu nhanh
-Dễ dàng truy vấn
33. Điểm mạnh và yếu của Graph-DB
Điểm mạnh
-Mô hình dữ liệu mạnh mẽ, tổng quát như
RDBMS
-Kết nối dữ liệu nhanh
-Dễ dàng truy vấn
Điểm yếu
-sharding(Mặc dù có thể mở rộng
được, cần tiếp tục theo dõi)
-Yêu cầu thay đổi khái niệm(làm sao
để mọi người yêu thích đồ thị hơn?)
40. Cypher
A pattern-matching query language
Khai báo ngữ pháp với các điều kiện
(giống như SQL)
Tập hợp, sắp xếp, giới hạn
Các kết quả xếp thành bảng
43. Background of Neo4j
2001 - Windh Technologies, a media asset management company
•CTO Peter with Emil, Johan prototyped a proper graph interface
•first SQL-backed, then revised as a full-stack implementation
•(just like Amazon-Dynamo, Facebook-Cassandra)
2003 Neo4j went into 24/7 production
2006-2007 - Neo4j was spun off as an open source project
2009 seed funding for the company
2010 Neo4j Server was created (previously only an embedded
DB)
2011 Fully funded silicon valley start-up - Neo Technology
44. Neo4j is a Graph Database
A Graph Database:
• a Property Graph with Nodes, Relationships
and Properties on both
• perfect for complex, highly connected data
• reliable with real ACID Transactions
• Scalable: 32 Billion Nodes, 32 Billion
Relationships, 64 Billion Properties
• Server with REST API, or Embeddable on the
JVM
• High-performance with High-Availability (read
scaling)
46. Neo4j Store
A rough formula to calculate the
memory needed for the nodes:
number_of_nodes * 9 bytes
and for relationships:
number_of_relationships * 33 bytes
A graph database containing
9,006,704 nodes (pages, titles only)
and 82,537,500 relationships (links).
The whole database takes up 3.8G
on disc.