Cơ sở dữ liệu đồ thị và OrientDB

Một phần của tài liệu TÌM tầm ẢNH HƯỞNG của bài báo KHOA học TRONG MẠNG TRÍCH dẫn (Trang 40)

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT

2.2. Cơ sở dữ liệu đồ thị và OrientDB

2.2.1. Khái quát về cơ sở dữ liệu đồ thị

Trong thế giới ngày nay, dữ liệu có tính kết nối xuất hiện khắp mọi nơi. Ví dụ, mối quan hệ bạn bè trên Facebook, mối liên hệ của các video trên YouTube, hệ thống đường hàng không, hệ thống web site trên Internet ... Hơn nữa, phần lớn dữ liệu là ở dạng không cấu trúc hoặc bán cấu trúc. Để tổ chức và xử lý dữ liệu như vậy, các hệ quản trị cơ sở dữ liệu quan hệ tỏ ra kém hiệu quả và khi số lượng dữ liệu đạt đến một độ lớn nhất định thì khơng thể xử lý. Ngược lại, các hệ các hệ quản trị cơ sở dữ liệu đồ thị lại chứng tỏ khả năng vượt trội của mình. Điều này đã được chứng tỏ trong Bảng 1.1.

2.2.2. Cơ sở dữ liệu đồ thị là gì?

Cơ sở dữ liệu đồ thị (graph databases) là một cơ sở dữ liệu thuộc loại NoSql (Not only Sql), lưu dữ liệu dưới dạng cấu trúc đồ thị (graph structures) như Hình 2.6. Cụ thể, nó lưu trữ dữ liệu dưới dạng nút (nodes), cạnh (edges) và thuộc tính (properties).

Nút biểu diễn các thực thể như con người, doanh nghiệp, tài khoản, hoặc bất kỳ mục nào khác cần theo dõi. Nút còn được gọi là đỉnh (vetices).

Cạnh còn được gọi là mối quan hệ (relationships), là đường kết nối các nút với nhau. Cạnh biểu diễn quan hệ giữa các nút.

Hình 2.6 — Cơ sở dữ liệu đồ thị

(Nguồn: https://en.wikipedia.org/wiki/Graph database )

Trong Hình 2.6, cơ sở dữ liệu đồ thị biểu diễn đồ thị có 3 đỉnh và 6 cạnh. Đỉnh thứ nhất có các thuộc tính: Id = 1, Name = Alice, Age = 18. Tương tự, đỉnh thứ hai có các thuộc tính: Id = 2, Name = Bob, Age = 22. Cạnh từ đỉnh thứ nhất đến đỉnh thứ hai có các thuộc tính: Id = 100, Label = knows, Since = 2001/10/03...

2.2.3. Sự phát triển của cơ sở dữ liệu đồ thị

Cơ sở dữ liệu đồ thị được thiết kế để mơ hình hóa và khám phá các mối quan hệ trong dữ liệu một cách hiệu quả.

Nhu cầu về một mơ hình dữ liệu đồ thị thường đến từ các trường hợp như phân tích các mối quan hệ xã hội, nhận dạng và quản lý truy cập, khuyến nghị sản phẩm và dịch vụ trực tuyến, quản lý thiết bị (loT) và lưới điện, phát hiện gian lận tài chính.

Các nhà phân tích của Forrester Research gần đây đã nhận xét rằng các hệ quản trị cơ sở dữ liệu đồ thị sẽ đạt trên 25% của tất cả các doanh nghiệp vào năm 2017. Theo biểu đồ theo dõi độ phổ biến của các hệ quản trị cơ sở dữ liệu trong Hình 1.2, độ phổ biến

ld:2 Name Boũ Age . 22 lơ: 1 Namc Alice Age: 18 Id 3 Type G-oup

hiện ở dạng key-value (Tesoriero, 2013).

của các hệ quản trị cơ sở dữ liệu được chuẩn hóa là 100 vào tháng

01/2013. Trong khi các

hệ quản trị cơ sở dữ liệu quan hệ khá ổn định thì các hệ quản trị cơ sở dữ liệu

loại khác

đều gia tăng độ phổ biến, đặc biệt độ phổ biến của các hệ quản trị cơ sở dữ

liệu đồ thị tăng

hơn 500%. Thật kinh ngạc! (Andlinger, 2015)

Bảng 2.1 — Bảng xếp hạng 24 hệ quản trị cơ sở dữ liệu đồ thị trong tháng 04/2017

(Nguồn: http://db-engines. com/en/ranking/graph+dbms )

24 Systems in ranking, April 2017

Rank

DBMS Database Model Score

Apr 201 7 Mar Apr 2017 2016 2017Apr M ar 201 A pr 201 1 . 1. 1. Neo4j Q Graph DBMS 34.91 +0.5 9 +3.00 2 . 2. OríentDB 3 Multi-model IU 5.44 +0.10 -0.87 3 . 3. Titan Graph DBMS 4.63 -0.24 -0.48 4 . 4. ArangoDB Multi-model lu 2.61 +0.23 + 1.10 5 . 6 5. 4- 4. Virtuoso Multi-model lu 1.87 -0.11 -0.53 . 6. 6. Giraph Graph DBMS 1.02 -0.04 +0.1 7 7 . 7. AllegroGraph Q Multi-model IU 0.49 +0.01 -0.09 8 . 8. <t< 19. GraphDB 3 Multi-model IU 0.42 +0.02 +0.36 9 . 9. 4 7. stardog Multi-model lu 0.41 +0.0 3 -0.17 1 0. 10. 4* 9. Sqrrl Multi-model IU 0.39 +0.0 6 +0.09 1 1. 11. 410. IntiníteGraph Graph DBMS 0.23 +0.0 1 +0.00 1 2. 12. Dgraph Graph DBMS 0.22 +0.0 1 1 3. 13. 1« 18. Blazegraph Multi-model lu 0.20 +0.0 3 +0.13 1 4. 14. 1« 15. FlockDB Graph DBMS 0.13 +0.0 1 -0.01 1

5. 16. Graph Engine Multi-model IU 0.12

+0.0 3 1 6. 4 15. 17. IntoGrid Graph DBMS 0.12 +0.0 1 -0.01 1 7. 17. 4> 13. HyperGraphDB Graph DBMS 0.10 +0.0 1 -0.05 1 8. 18. 4 12. VelocityDB Multi-model lu 0.08 +0.0 1 -0.10 1 9.2 19. 4 14. GlobalsDB Multi-model IU 0.06 -0.01 -0.09 0. <f<21. 20. GraphBase Graph DBMS 0.04 +0.0 4 +0.01 2 1.2 4 20. 411- Sparksee Graph DBMS 0.03 -0.03 -0.14 2. 22. AgensGraph Multi-model lu 0.00 ±0.0 0 2

2. 22. 421. Amisa Server Multi-model lu 0.00

±0.0 0 ±0.00 2 2. 22. GRAKN.AI Q Graph DBMS 0.00 ±0.0 0

Bảng 2.1 trình bày bảng xếp hạng 24 hệ quản trị cơ sở dữ liệu đồ thị trong tháng 04/2017. Trong đó 3 hệ quản trị cơ sở dữ liệu đồ thị hàng đầu là Neo4j, OrientDB và

Titan.

2.2.4. Khái quát về OrientDB

OrientDB - là hệ quản trị cơ sở dữ liệu NoSQL đa mơ hình, mã nguồn mở đầu tiên; kết hợp sức mạnh của Graph Databases và sự linh hoạt của Document Databases vào một cơ sở dữ liệu hoạt động hiệu suất cao và có khả năng mở rộng.

Hình 2.7- Các tổ chức tiêu biểu đang sử dụng OrientDB

(Nguồn: http://orientdb. com )

OrientDB là cơ sở dữ liệu đồ thị phân tán thế hệ thứ 2 (the 2nd Generation Distributed Graph Database) kết hợp sự linh hoạt của các tài liệu trong một sản phẩm. Nó là một hệ quản trị cơ sở dữ liệu độc đáo, đa mơ hình thật sự, được trang bị để giải quyết những thách thức của Big Data ngày nay và cung cấp khả năng nhân bản multi-master5, sharding6 cũng như sự linh hoạt hơn cho những trường hợp sử dụng phức tạp, hiện đại. Người dùng có thể sử dụng OrientDB bằng giấy phép mã nguồn mở Apache 2.

OrientDB hoạt động cực kỳ nhanh chóng, lưu trữ lên tới 120.000 records trên giây (On Intel i7 8 core CPU, 16 GB RAM, SSD RPM, Multi-threads, No indexes, PLocal

5Multi-master cho phép lưu trữ cơ sở dữ liệu trong nhiều server, server nào cũng có thể làm master.

6Sharding là kỹ thuật phân hoạch cơ sở dữ liệu. Kỹ thuật này chia các cơ sở dữ liệu rất lớn thành các phần nhỏ hơn,

truy cập nhanh hơn và dễ quản lý hơn được gọi là các mảnh dữ liệu (data shards).

access). Nó hỗ trợ các chế độ schema-less, schema-full và schema-

mixed và dùng ngôn

ngữ truy vấn dựa trên SQL giúp những người mới đối với OrientDB tiếp cận dễ

dàng hơn

(Tesoriero, 2013).

Hiện tại trên thế giới nhiều tổ chức lớn, nổi tiếng đang sử dụng OrientDB để giải quyết các vấn đề của họ. Hình 2.7 trình bày một số tổ chức tiêu biểu đang sử dụng OrientDB. Còn ở Việt Nam, việc khai thác Big Data còn hạn chế, hiện tại chưa thấy tổ chức nào sử dụng OrientDB.

2.2.5. Lý do chọn OrientDB

2.2.5.I. So sánh OrientDB và Neo4j

Bảng 3 so sánh một số đặc điểm quan trọng giữa OrientDB và Neo4j.

Bảng 2.2 - So sánh OrientDB và Neo4j

(Nguồn: http://db-engines.com/en/svstem/Neo4i%3BOrientDB và

http://vschart.com/compare/neo4i/vs/orientdb )

Name OrientDB Neo4j

Description Multi-model DBMS (Document, Graph, Key/Value)

Open source graph database

Database model Document store Graph DBMS Key-value store Graph DBMS Impleimentation language Java Java Server operating

systems All OS with a Java VM LinuxOS X Windows

APIs and other

access methods Java APIRESTful HTTP/JSON API Tinkerpop technology stack

Cypher query language Java API

Name OrientDB Neo4j

with Blueprints, Gremlin, Pipes Supported programming languages .Net C C# C++ Clojure Java JavaScript JavaScript (Node.js) PHP Python Ruby Scala .Net Clojure Go Groovy Java JavaScript Perl PHP Python Ruby Scala

Triggers Hooks yes

Partitioning methods

Sharding none

Replication methods

Master-master replication Master-slave replication

Transaction concepts

ACID ACID

2.2.5.2. Một số đặc điểm nổi trội của OrientDB so với Neo4j 1. Hệ quản trị cơ sở dữ liệu đa mơ hình (Multi-model DBMS)

OrientDB là hệ quản trị cơ sở dữ liệu đa mơ hình, tận dụng sức mạnh của mơ hình đồ thị và được làm phong phú bằng dữ liệu văn bản, không gian, key/values, đối tượng và tài liệu. Tất cả các mơ hình này được quản lý bởi phần core của OrientDB. Điều này khác với các hệ quản trị cơ sở dữ liệu khác là thêm các tầng quản lý cho các mơ hình bổ sung, dẫn đến hiệu suất giảm.

OrientDB có thể được sử dụng như Graph Databases thuần túy hoặc như Multi- Models, giúp tránh sử dụng nhiều loại cơ sở dữ liệu cho cùng một ứng dụng.

2. Phương pháp phân mảnh (Partitioning methods)

Neo4j không hỗ trợ phân mảnh dữ liệu mà chỉ nhân bản toàn bộ cơ sở dữ liệu sang nhiều server. Trong khi đó OrientDB hỗ trợ cơ chế phân mảnh dữ liệu ở mức class

gọi là sharding. Một class có thể được chia thành nhiều cluster và một cluster có thể lưu

đồng thời trên nhiều server.

Ta có thể gán mỗi cluster cho một hoặc nhiều server. Khi gán một cluster cho nhiều server thì các record thuộc cluster đó sẽ được sao chép lên tất cả các server được gán. Điều này cũng tương tự như những gì RAID làm trên các đĩa. Server đầu tiên trong danh sách sẽ là Master Server cho cluster đó.

Hình 2.8 — Phân mảnh class Client thành 3 cluster.

(Nguồn: http://orientdb.com/docs/last/Distributed-Sharding.html )

Ví dụ như trong Hình 2.8, class Client được chia thành 3 cluster: client_usa, client_europe và client_china. Mỗi cluster được gán cho nhiều server như sau:

- Cluster client_usa: được quản lý bởi server USA và EUROPE.

- Cluster client_europe: được quản lý bởi server EUROPE.

Như vậy một record thuộc cluster client_usa sẽ được sao chép lên server USA và EUROPE.

Việc chia nhỏ cơ sở dữ liệu thành nhiều mảnh để lưu trên nhiều server giúp giải quyết những thách thức của Big Data như: lưu trữ số lượng lớn dữ liệu, hiệu quả xử lý dữ liệu... Việc lưu dư thừa một cluster trên nhiều server giúp hệ thống có tính sẵn sàng cao vì khi có một server cần được bảo trì thì hệ thống vẫn sẵn sàng phục vụ. Cũng nhờ có đặc điểm này mà OrientDB được xem là cơ sở dữ liệu đồ thị phân tán hoàn toàn.

3. Phương pháp nhân bản (Replication methods)

Neo4j hỗ trợ nhân bản, nhưng đây là một tính năng của phiên bản Enterprise chứ khơng có trong phiên bản Open Source Community miễn phí. Hơn nữa, Neo4j nhân bản cơ sở dữ liệu theo kiến trúc Master/Slave với một nút cổ chai lớn khi ghi: do chỉ có một server làm master nên thông lượng ghi bị giới hạn theo khả năng của Master Server duy nhất. Điều này có nghĩa là Neo4j khơng thể tăng thông lượng ghi.

OrientDB hỗ trợ một kiến trúc Multi-Master + Sharding: tất cả các server đều là master. Thông lượng ghi không bị giới hạn bởi một server duy nhất. Với OrientDB, thơng lượng tồn cục là tổng thông lượng của tất cả các server.

2.2.5.3. Lý do chọn OrientDB

Do Neo4J khơng có cơ chế phân mảnh dữ liệu mà chỉ nhân bản toàn bộ cơ sở dữ liệu sang server khác. Điều này cũng có nghĩa là khi dữ liệu vượt quá khả năng lưu trữ của một server thì Neo4J khơng xử lý được.

Trong khi đó, OrientDB có cơ chế sharding có thể chia nhỏ cơ sở dữ liệu thành nhiều mảnh để lưu trên nhiều server giúp giải quyết những thách thức của Big Data như: lưu trữ số lượng lớn dữ liệu, hiệu quả xử lý dữ liệu, tính sẵn sàng cao...

Như trong Bảng 2.1, mặc dù hiện tại Neo4J đứng vị trí số một nhưng có nhiều đặc điểm OrientDB tỏ ra vượt trội, đáp ứng được nhu cầu lưu trữ đồ thị lớn (Big Data) trong hiện tại cũng như tương lai, nên trong đề tài này OrientDB được chọn để lưu trữ dữ liệu đồ thị.

2.3. Big Data

2.3.1. Khái quát về Big Data

Big Data là thuật ngữ dùng để mô tả tập hợp dữ liệu có kích thước rất lớn, khả năng phát triển nhanh, không thể thu thập, quản lý và xử lý bởi các công cụ phần mềm/phần cứng truyền thống (Min Chen, Shiwen Mao, Yunhao Liu, 2014).

2.3.2. Đặc trưng của Big Data

Big Data có 5 đặc trưng quan trọng được thể hiện bởi 5V như trong Hình 2.9 (Sabia, Love Arora, 2014).

Hình 2.9 - Năm đặc trưng của Big Data

2.3.2.I. Volume (Khối lượng)

Khối lượng dữ liệu lưu trữ của Big Data rất lớn, vượt quá khả năng lưu trữ của những phương tiện truyền thống. Kích cỡ của Big Data từ vài chục TB (terabyte)7 trở lên.

2.3.2.2. Velocity (Tốc độ)

Đối với Big Data, tốc độ dữ liệu tăng trưởng rất nhanh và tốc độ xử lý cũng phải nhanh, lý tưởng là đạt tới tốc độ thời gian thực.

Ví dụ, theo (Smith, 2017) của chuyên trang thống kê DMR (Digital Marketing Ramblings), thống kê của YouTube vào tháng 10/2016, cứ mỗi phút thì 300 giờ video mới được tải lên YouTube. Đây là tốc độ tăng trưởng dữ liệu đáng kinh ngạc!

2.3.2.3. Variety (Đa dạng)

Dữ liệu của Big Data rất đa dạng, nhưng có thể chia thành ba loại lớn sau đây:

- Dữ liệu có cấu trúc: như cơ sở dữ liệu quan hệ.

- Dữ liệu bán cấu trúc: như tài liệu XML, JSON.

- Dữ liệu khơng có cấu trúc: chiếm trên 80% trong tổng số dữ liệu hiện tại bao gồm tài liệu, blog, hình ảnh, video, âm thanh...

2.3.2.4. Veracity (Xác thực)

Một trong những tính chất phức tạp nhất của BigData là độ chính xác của dữ liệu. Với xu hướng Social Media và Social Network ngày nay và sự gia tăng mạnh mẽ tính tương tác và chia sẻ của người dùng di động làm cho bức tranh xác định về độ tin cậy và chính xác của dữ liệu ngày một khó khăn hơn. Việc phân tích và loại bỏ dữ liệu thiếu chính xác và nhiễu đang là vấn đề quan trọng của Big Data.

2.3.2.5. Value (Giá trị)

Đây là tính chất quan trọng nhất của Big Data. Các giá trị tiềm ẩn của Big Data là rất lớn nhưng cần phải có cơng cụ khai thác để biến dữ liệu thành thông tin và tri thức.

Ví dụ: Sở Cảnh Sát Santa Cruz Hoa Kỳ đã dùng Big Data để phân tích tiên đốn. Bằng cách phân tích dữ liệu mạng xã hội, cảnh sát có thể khám phá các xu hướng tội phạm và các hình thức phạm tội, và thậm chí dự đốn tỷ lệ tội phạm trong các khu vực chính.

2.3.3. Ứng dụng của Big Data

Hiện nay, Big Data chủ yếu được sử dụng trong các doanh nghiệp, trong khi BI (Business intelligence) và OLAP (Online Analytical Processing) có thể được coi như là những ứng dụng thuộc thế hệ trước của ứng dụng Big Data.

Nói chung, ứng dụng Big Data giúp doanh nghiệp nâng cao hiệu quả sản xuất và năng lực cạnh tranh. Cụ thể:

- Phân tích thị trường: dự đốn chính xác hơn các hành vi tiêu dùng và tìm phương thức kinh doanh mới.

- Lập kế hoạch bán hàng: tối ưu hóa giá cả hàng hóa.

- Về hoạt động: nâng cao hiệu quả hoạt động và sự hài lịng, tối ưu hóa lực lượng lao động, dự báo chính xác các yêu cầu phân bổ nhân sự, tránh khả năng sản xuất dư thừa và giảm chi phí lao động.

- Về chuỗi cung ứng: tối ưu hóa hàng tồn kho, tối ưu hóa hậu cần và phối hợp cung cấp... để giảm thiểu khoảng cách giữa cung và cầu, kiểm soát ngân sách và cải thiện dịch vụ.

Big Data cũng được ứng dụng dựa trên mạng xã hội. Có thể khái quát gồm những ứng dụng sau:

- Phân tích dư luận.

- Thu thập và phân tích thơng tin tình báo.

- Tiếp thị xã hội hóa.

- Hỗ trợ chính phủ ra quyết định.

- Giáo dục trực tuyến.

Ngồi ra Big Data cịn được ứng dụng trong nhiều lĩnh vực khác nữa như thành phố thông minh (smart city), loT (Internet of Things), lưới điện thông minh (smart grid)...

Hiện tại trên thế giới việc ứng dụng Big Data tương đối nhiều tuy nhiên ở Việt Nam thì cịn hạn chế.

2.3.4. Tác động của Big Data

Trong kỷ nguyên Công Nghệ Thông Tin, công nghệ thúc đẩy sự phát triển của dữ liệu. Trong kỷ nguyên Big Data, dữ liệu sẽ thúc đẩy sự tiến bộ của công nghệ. Big Data

Một phần của tài liệu TÌM tầm ẢNH HƯỞNG của bài báo KHOA học TRONG MẠNG TRÍCH dẫn (Trang 40)

Tải bản đầy đủ (DOCX)

(145 trang)
w