Một số kỹ thuật áp dụng trong xử lý dữ liệu quy mô lớn: Massively Parallel Processing MPP or parallel DBMS : Một hệ thống song song quá trình thực hiện truy vấn của một DBMS, chia tách
Trang 1ĐẠI HỌC CÔNG NGHỆ - ĐẠI HỌC QUỐC GIA HÀ NỘI
BÁO CÁO
XỬ LÝ SONG SONG DỮ LIỆU LỚN
MÔN HỌC : CƠ SỞ DỮ LIỆU NÂNG CAO
GIẢNG VIÊN : TS NGUYỄN HÀ NAM
HỌC VIÊN : LÊ HỒNG HÀ
ĐÀO THỊ THU HIỀN
Trang 2MỤC LỤC
I Giới thiệu chung 3
II Giới thiệu hệ thống cơ sở dữ liệu song song (Parallel DBMS) 3
III Ứng dụng MapReduce và DBMS song song trong việc xử lý song song dữ liệu quy mô lớn 4
a Greenplum database: 5
b Aster Data database: 7
c HadoopDB database: 10
TÀI LIỆU THAM KHẢO 12
Trang 3I Giới thiệu chung
Các ứng dụng tin học, đặc biệt là các ứng dụng trực tuyến càng ngày càng có nhiều người sử dụng, người sử dụng có thể truy cập ứng dụng tại bất kỳ thời điểm và địa điểm nào vì thế dữ liệu càng ngày càng lớn và tốc độ xử lý cũng đòi hỏi càng ngày càng tăng Một máy tính đơn lẻ không thể đáp ứng được yêu cầu về mặt lưu trữ cũng như tốc độ xử lý dữ liệu
Một số kỹ thuật áp dụng trong xử lý dữ liệu quy mô lớn:
Massively Parallel Processing (MPP) or parallel DBMS : Một hệ thống song song quá trình thực hiện truy vấn của một DBMS, chia tách các câu truy vấn và phân bổ chúng tới nhiều node DBMS để xử lý khối lượng lớn dữ liệu đồng thời
Column-oriented database: Một hệ thống lưu các giá trị trong cùng một trường (cột), trái ngược với phương pháp thông thường, lưu các giá trị giống như các bản ghi
Streaming processing (ESP or CEP) một hệ thống xử lý một luồng dữ liệu hay
sự kiện, hoặc một khái niệm trong đó nội dung của một cơ sở dữ liệu được thay đổi liên tục theo thời gian
Key-value storage (with MapReduce programming model): một hệ thống lưu trữ lưu trữ dữ liệu tập trung vào nâng cao hiệu suất khi đọc một bản ghi bằng cách áp dụng mô hình dữ liệu key-value
II Giới thiệu hệ thống cơ sở dữ liệu song song (Parallel DBMS)
Ý tưởng của hệ thống cơ sở dữ liệu song song là tiến hành song song các bước xử lý
dữ liệu:
Xử lý các transaction song song đồng thời trên các node DBMS
Chia transaction thành các nhiệm vụ con và tiến hành xử lý song song các nhiệm vụ con trên các node DBMS
Lợi ích của DBMS song song:
- Khả năng tăng tốc độ xử lý: Càng nhiều nhiều node DBMS thì thời gian xử lý 1 khối lượng lớn dữ liệu càng ít đi
- Khả năng mở rộng: được thể hiện khi số lượng node DBMS tăng, tương ứng với khối lượng dữ liệu xử lý tăng, nhưng thời gian xử lý là 1 hằng số
Mô hình DBMS song song: có 3 mô hình sau
Trang 4 Shared memory: tất cả các CPU được nối với nhau qua mạng, tất cả các CPU truy cập 1 bộ nhớ chính
Shared-disk: mỗi CPU có mộ bộ nhớ riêng và truy cập trực tiếp tới các ổ đĩa qua mạng
Share-nothing: Mỗi CPU có bộ nhớ và ổ đĩa riêng, việc truyền thông tin giữa các CPU là thông qua kết nối mạng, 2 CPU không thể truy cập cùng 1 vùng lưu trữ
III Ứng dụng MapReduce và DBMS song song
trong việc xử lý song song dữ liệu quy mô lớn
Như đã nói ở trên một CPU không thích hợp cho việc xử lý dữ liệu lớn cỡ terabytes với đáp ứng tốc độ xử lý cỡ 10.000 TPS (Transaction Per Second) Kiến trúc cơ sở
dữ liệu song song Shared Nothing có thể đáp ứng được vấn đề này
Ngoài ra, do chúng ta cần xử lý một lượng dữ liệu lớn và phân tán trên một lượng lớn các node do đó MapReduce là một mô hình lập trình thích hợp giúp chúng ta có thể làm tốt điều này
MapReduce cho phép chia các tập dữ liệu hoặc các xử lý thành các vấn đề nhỏ hơn, sau đó đưa tới các node để xử lý
Mô hình này chia làm 2 pha xử lý:
Pha Map: tại node chính vấn đề cần xử lý sẽ được chia thành các vấn đề nhỏ hơn và phân bổ các vấn đề con này tới các node khác, tại các node này các vấn đề con được xử lý và trả kết quả về cho node chính
Pha Reduce: Node chính làm nhiệ vụ thu thập các kết quả trả về từ node con
và kết hợp chúng lại để tạo thành câu trả lời cho yêu cầu đầu vào
Trang 5Với sự kết hợp trên chúng ta sẽ có một cơ sở dữ liệu có khả năng xử lý một lượng dữ liệu lớn, phân tán trên các nhiều node và có thể dễ dàng mở rộng ra hàng trăm, hàng nghìn node
Một số mô hình cơ sở dữ liệu sử dụng MapReduce trên nền kiến trúc Shared Nothing như: Greenplum, Aster Data (phát triển sử dụng PostgreSQL), HadoopDB
a Greenplum database:
Greenplum database sử dụng kiến trúc Shared Nothing, MPP và hỗ trợ SQL và xử lý song song MapReduce (SQL cho DBA và MapReduce cho lập trình viên)
Hình 1: Kiến trúc của Greenplum database
Trang 6Hình 2: Kiến trúc của Greenplum database
Một database logic trong Greenplum thực chất là một mảng các PosgreSQL tách biệt, tất cả chúng làm việc cùng nhau, biểu diễn một hình ảnh database đơn nhất Master
là điểm vào của hệ thống Greenplum database Nó là database instance nơi mà client kết nối và submit các câu lệnh SQL Master sẽ phân phát công việc tới tất cả các database instance khác trong hệ thống, các segment xử lý dữ liệu và lưu trữ Các segment giao tiếp với mỗi cái khác và master thông qua đường kết nối nội bộ, đường kết nối này là lớp mạng của Greenplum database
Trang 7Cơ chế truy xuất dữ liệu:
Hình 3: Cơ chế truy vấn dữ liệu trong Greenplum database
Kết quả truy vấn bao gồm các thao tác cổ điển: scans, joins, sorts, aggregations… Cũng như các thao tác dịch chuyển song song cái mà mô tả dữ liệu sẽ được chuyển đổi giữa các node như nào và khi nào trong thời gian thực thi truy vấn
Greenplum database có ba thao tác dịch chuyển:
Broadcast Motion (N:N): Mỗi segment gửi dữ liệu đích tới tất cả các segment khác
Redistribute Motion (N:N): Mỗi segment rehash dữ liệu đích (bằng cách join các cột) và phát tán lại mỗi dòng tới các segment tương ứng
Gather Motion (N:1): Mỗi segment gửi dữ liệu đích tới một node (luôn luôn là master)
b Aster Data database:
Trang 8Hình 4: Kiến trúc Aster Data database
Queen nodes cung cấp giao diện với data warehouse bên ngoài Các user và administrator có thể kết nói với một Queen thông qua ODBC/JDBC, trong khi những người quản trị hệ thống (administrators) giám sát nCluster thông qua Aster Data Management Console (AMC) Các Queen node cũng chịu trách nhiệm phân phát các cluster server trong quá trình truy vấn, tập hợp kết quả và xử lý lỗi
Các Worker node chịu trách nhiệm cho việc thực thi song song của các truy vấn và phân tích cơ sở dữ liệu
Các Queen node và Worker node cũng lưu trữ các phân vùng của dữ liệu và các bản sao của dữ liệu cư trú trên các Worker node khác
Cuối cùng các Worker node tham gia trong các nhiệm vụ duy trì (ví dụ indexing load balancing) đã được khởi tạo bởi các Queen node
Trang 9Hình 5: Kiến trúc của Aster Data với SQL-MapReduce frame work
MapReduce frame work của Aster Data cho phép lập trình viết các hàm SQL-MapReduce mạnh mẽ trong các ngôn ngữ như Java, C#, Python, C++ và R Các hàm SQL-MapReduce có thể được gọi sử dụng SQL chuẩn thông qua Aster Database Các hàm này có thể xử lý dữ liệu đầu vào và cung cấp đầu ra để xử lý tiếp bởi các truy vấn SQl hoặc viết chúng vào các bảng trong database MapReduce function có thể tích hợp vào trong SQL:
SELECT
FROM functionname(
ON table-or-query
[ PARTITION BY expr ]
[ ORDER BY expr ]
[ clausename ( arg ) ]
)
Trang 10c HadoopDB database:
Cũng như hai database vừa nói trên HadoopDB là một sự lại ghép, kết hợp giữa hai công nghệ MapReduce và DBMS HadoopDB hướng tới một cơ sở dữ liệu xử lý song song để tăng hiệu năng đồng thời vẫn giữ được khả năng mở rộng dễ dàng và tự gỡ lỗi của hệ thống dựa trên MapReduce HadoopDB sử dụng Hadoop framework (một framework mã nguồn mở giúp xử lý dữ liệu lơn, phân tán sử dụng MapReduce) cùng với RDBMS
Hình 6: Kiến trúc của HadoopDB
Các thành phần chính:
Database Connector: kết nối Hadoop với các node đơn của hệ thống database
Data Loader: phân vùng dữ liệu và quản lý quá trình tải dữ liệu song song vào các hệ thống database
Trang 11 Catalog: theo dõi vị trí của các vùng dữ liệu khác nhau, bao gồm cả các bản sao (replicate) của nhiều node
SQL-MapReduce-SQL (SMS): bộ lập kế hoạch, nó sử dụng Hive để cung cấp một giao diện tới HadoopDB
Một số đặc điểm chính của HadoopDB:
Là sự lai tạo giữa công nghệ DBMS và MapReduce
Được thiết kế để chạy trên một tập các máy tính share-nothing hoặc trên đám mây
Là một cố gắng để lấp đầy lỗ hổng trong thị trường cho một DBMS miễn phí và
mã nguồn mở
Có khả năng mở rộng hơn nhiều so với các hệ thống database song song hiện tại
Với khả năng mở rộng tốt giống Hadoop trong khi đạt được hiệu năng tốt cho phân tích dữ liệu
Trang 12TÀI LIỆU THAM KHẢO
1 http://www.asterdata.com/
2 http://db.cs.yale.edu/hadoopdb/hadoopdb.html
3 http://www.cubrid.org/blog/dev-platform/database-technology-for-large-scale-data/
4 http://hadoop.apache.org/
5 http://davidmenninger.ventanaresearch.com/2011/01/19/secrets-revealed-in-massively-parallel-processing-and-database-technology/