Nghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanhNghiên cứu một số vân đề về BIG data và ứng dụng trong phân tích kinh doanh
Trang 1ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LUẬN VĂN THẠC SĨ
TÊN ĐỀ TÀI NGHIÊN CỨU MỘT SỐ VẤN ĐỀ VỀ BIG DATA
VÀ ỨNG DỤNG TRONG PHÂN TÍCH KINH DOANH
Giáo viên hướng dẫn : GS.TS Vũ Đức Thi
Học viên thực hiện : Phạm Việt Anh
Thái Nguyên, tháng 1 năm 2019
Trang 2ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
LUẬN VĂN THẠC SĨ
Tên đề tài Nghiên cứu một số vấn đề về Big Data
và ứng dụng trong phân tích kinh doanh
Giáo viên hướng dẫn : GS.TS Vũ Đức Thi
Học viên thực hiện : Phạm Việt Anh
Thái Nguyên, tháng 1 năm 2019
Trang 3CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ BIG DATA
VÀ QUY TRÌNH PHÂN TÍCH DỮ LIỆU LỚN
1.1 Giới thiệu tổng quan về Big Data
Trong 22 năm qua, dữ liệu đã tăng lên với một quy mô lớn trong các lĩnh vực
khác nhau Theo một báo cáo từ Tập đoàn Dữ liệu Quốc tế (IDC), trong năm 2011
dung lượng dữ liệu được tạo ra và sao chép trên toàn thế giới là 1.8ZB, tăng gần chín
lần trong năm năm [1] Con số này sẽ không dừng lại ở đó mà sẽ tăng gấp đôi ít nhất
hai năm một lần trong tương lai gần
Dưới sự phát triển mạnh mẽ của CNTT và sự gia tăng một cách bùng nổ của dữ
liệu toàn cầu, thuật ngữ Big Data đã trở nên quen thuộc và thường được dùng để mô tả
các hệ thống dữ liệu lớn So với các tập dữ liệu truyền thống trước đây, dữ liệu lớn
thường bao gồm các khối dữ liệu phi cấu trúc cần thêm phân tích trong thời gian thực
Ngoài ra, dữ liệu lớn cũng mang lại những cơ hội mới để khám phá giá trị mới, giúp
chúng ta có được một sự hiểu biết một cách sâu sắc về các giá trị tiềm ẩn, cũng như
những thách thức mới Ví dụ là làm thế nào để tổ chức và quản lý các tập dữ liệu như
vậy một cách hiệu quả
Trong những năm trở lại đây, nhiều ngành công nghiệp đang trở nên quan tâm
đến tiềm năng to lớn của Big Data, nhiều cơ quan chính phủ đã công bố kế hoạch lớn
trong việc phát triển nghiên cứu và ứng dụng Big Data [2] Không chỉ vậy, các vấn đề
liên quan tới Big Data cũng luôn được nhắc đến trên các phương tiện truyền thông
công cộng, chẳng hạn như Economist [3][4], New York Times [5] và Nation Public
Radio [6][7] Hai tạp chí khoa học đầu ngành là Nature và Science cũng đã mở mục
riêng để thảo luận về những thách thức và các tác động của Big Data [8][9] Tới đây,
có thể nói rằng kỷ nguyên của Big Data đã đến [10]
Ngày nay, Big Data có liên quan đến dịch vụ của các công ty về Internet đều
phát triển nhanh chóng Ví dụ, Google xử lý dữ liệu khoảng hàng trăm Petabyte (PB),
Facebook đã tạo khoảng hơn 10 PB dữ liệu log mỗi tháng, Taobao một công ty con
của Alibaba tạo ra hàng chục Terabyte (TB) dữ liệu về giao dịch trực tuyến mỗi ngày
1.1.1 Những định nghĩa và đặc trưng của Big Data
Big Data là một khái niệm trừu tượng và có rất nhiều định nghĩa về Big Data
Ngay như tên gọi là dữ liệu lớn hay dữ liệu khổng lồ thì nó còn có một số đặc trưng
Trang 4khác trong đó xác định sự khác biệt giữa nó và “dữ liệu lớn” hay “dữ liệu rất lớn”
Hiện nay, mặc dù tầm quan trọng của Big Data đã được thừa nhận rộng rãi, nhưng vẫn có nhiều những ý kiến về định nghĩa của nó Một cách tổng quát có thể định nghĩa rằng Big Data có nghĩa là các bộ dữ liệu không thể được nhận diện, thu hồi, quản lý và xử lý bằng CNTT truyền thống và các công cụ phần mềm/ phần cứng trong một khoảng thời gian có thể chấp nhận được Phát sinh từ nhiều sự quan tâm, các doanh nghiệp khoa học và công nghệ, các nhà nghiên cứu, các nhà phân tích dữ liệu và các kỹ thuật viên có những định nghĩa khác nhau về Big Data Sau đây là một số định nghĩa về Big Data mang tới một sự hiểu biết tốt hơn về những ý nghĩa xã hội, kinh tế
và công nghệ rộng lớn của Big Data
Năm 2010, Apache Hadoop định nghĩa dữ liệu lớn như “bộ dữ liệu mà không thể thu thập, quản lý và xử lý bởi các máy tính nói chung trong một phạm vi chấp nhận được” Cũng trên cơ sở đó, vào tháng 5 năm 2011, McKinsey & Company, một công
ty tư vấn toàn cầu công bố Big Data như một địa hạt mới cho sự đổi mới, cạnh tranh
và hiệu suất Big Data có nghĩa là những bộ dữ liệu mà không có thể được thu lại, lưu trữ và quản lý bởi phần mềm cơ sở dữ liệu cổ điển Định nghĩa này gồm hai ý nghĩa: Thứ nhất, dung lượng của các tập dữ liệu mà phù hợp với tiêu chuẩn Big Data đang thay đổi và có thể tăng trưởng theo thời gian hoặc với những tiến bộ công nghệ Thứ hai, dung lượng của các tập dữ liệu mà phù hợp với tiêu chuẩn của Big Data trong các ứng dụng khác nhau trong mỗi ứng dụng Hiện nay, Big Data thường từ vài TB đến vài
PB [10] Từ định nghĩa của McKinsey & Company, có thể thấy rằng dung lượng của một tập dữ liệu không phải là tiêu chí duy nhất cho Big Data Quy mô dữ liệu ngày càng phát triển và việc quản lý nó mà không thể xử lý bằng công nghệ cơ sử dữ liệu truyền thống là hai đăng trưng quan trọng tiếp theo
Dữ liệu lớn đã được định nghĩa từ sớm những năm 2001 Doug Laney, một nhà phân tích của META (nay có tên là công ty nghiên cứu Gartner) định nghĩa những thách thức và cơ hội mang lại của sự tăng trưởng dữ liệu với một mô hình “3Vs”, tức
là sự gia tăng của dung lượng, tốc độ và tính đa dạng trong một báo cáo nghiên cứu [11] Mặc dù, mô hình này ban đầu không được sử dụng để xác định Big Data, tuy nhiên Gatrtner cùng nhiều doanh nghiệp khác bao gồm cả IBM và một số cơ sở nghiên cứu của Microsoft vẫn còn sử dụng mô hình “3Vs” để mô tả về dữ liệu lớn trong vòng
10 năm tiếp theo
Trang 5Hình 1.1: Mô hình 3Vs của Big Data
Mô hình “3Vs” được giải thích như sau:
- Dung lượng (Volume): Sự sản sinh và thu thập các dữ liệu lớn, quy mô dữ liệu trở nên ngày càng lớn
- Tốc độ (Velocity): Tính kịp thời của dữ liệu lớn, cụ thể là việc thu thập và phân tích
dữ liệu phải được tiến hành nhanh chóng và kịp thời để sử dụng một cách tối đa các giá trị thương mại của Big Data
- Tính đa dạng (Variety): Các loại dữ liệu khác nhau bao gồm dữ liệu bán cấu trúc và phi cấu trúc như âm thanh, video, web, văn bản,…cũng như dữ liệu có cấu trúc truyền thống
Đến năm 2011, định nghĩa về Big Data đã có sự thay đổi khi một báo cáo của IDC đã đưa ra một định nghĩa như sau: “Công nghệ Big Data mô tả một thế hệ mới của những công nghệ và kiến trúc, được thiết kế để lấy ra giá trị kinh tế từ dung lượng rất lớn của một loạt các dữ liệu bằng cách cho phép tốc độ cao trong việc thu thập, khám phá hoặc phân tích” [1] Với định nghĩa này, dữ liệu lớn mang trong mình bốn đặc trưng và được hiểu như một mô hình “4Vs”
Năm 2014, Gartner lại đưa ra một khái niệm mới về Big Data qua mô hình
“5Vs” với năm tính chất quan trọng của Big Data
Trang 6Hình 1.2: Mô hình 5vs của Big Data
Mô hình “5Vs” được giải thích như sau:
- Khối lượng (Volume): Sự sản sinh và thu thập các dữ liệu lớn, quy mô dữ liệu trở nên ngày càng lớn
- Tốc độ (Velocity): Tính kịp thời của dữ liệu lớn, cụ thể là việc thu thập và phân tích dữ liệu phải được tiến hành nhanh chóng và kịp thời để sử dụng một cách tối
đa các giá trị thương mại của Big Data
- Tính đa dạng (Variety): Các loại dữ liệu khác nhau bao gồm dữ liệu bán cấu trúc và phi cấu trúc như âm thanh, video, web, văn bản,…cũng như dữ liệu có cấu trúc truyền thống
- Tính chính xác (Veracity): Tính hỗn độn hoặc tin cậy của dữ liệu Với rất nhiều dạng thức khác nhau của dữ liệu lớn, chất lượng và tính chính xác của dữ liệu rất khó kiểm soát Khối lượng dữ liệu lớn sẽ đi kèm với tính xác thực của dữ liệu
- Giá trị (Value): Đây được coi là đặc điểm quan trọng nhất của dữ liệu lớn Việc tiếp cận dữ liệu lớn sẽ không có ý nghĩa nếu không được chuyển thành những thứ
có giá trị Giá trị của dữ liệu là đặc điểm quan trọng nhất trong mô hình “5Vs” của Big Data
Ngoài ra, Viện tiêu chuẩn và kỹ thuật quốc gia của Hoa Kỳ (NIST) định nghĩa
“Dữ liệu lớn có nghĩa là các dữ liệu mà dung lượng dữ liệu, tốc độ thu thập hoặc biểu diễn dữ liệu hạn chế khả năng của việc sử dụng các phương pháp quan hệ truyền thống
để tiến hành phân tích hiệu quả hoặc các dữ liệu mà có thể được xử lý một cách hiệu quả với các công nghệ” Định nghĩa này tập trung vào các khía cạnh công nghệ của
Trang 7Big Data Nó chỉ ra rằng phương pháp hay công nghệ hiệu quả cần phải được phát triển và được sử dụng để phân tích và xử lý dữ liệu lớn
1.1.2 Sự phát triển của Big Data
Cuối những năm 1970, khái niệm “máy cơ sở dữ liệu” nổi lên, đó là một công nghệ đặc biệt sử dụng cho việc lưu trữ và phân tích dữ liệu Với sự gia tăng của dung lượng dữ liệu, khả năng lưu trữ và xử lý của một hệ thống máy tính lớn duy nhất trở nên không đủ Trong những năm 1980, hệ thống “không chia sẻ”- một hệ thống cơ sở
dữ liệu song song được đề xuất để đáp ứng nhu cầu của dung lượng dữ liệu ngày càng tăng [12] Kiến trúc hệ thống không chia sẻ được dựa trên việc sử dụng các cụm và mỗi máy có riêng bộ xử lý, lưu trữ và đĩa cứng Hệ thống Teradata là hệ thống cơ sở
dữ liệu song song thương mại thành công đầu tiên Ngày 2 tháng 6 năm 1986, một sự kiện bước ngoặt xảy ra khi Teradata giao hệ thống cơ sở dữ liệu song song đầu tiên với dung lượng lưu trữ 1TB cho Kmart để giúp các công ty bán lẻ quy mô lớn tại Bắc Mỹ
mở rộng kho dữ liệu [13] Trong những năm 1990, những ưu điểm của cơ sở dữ liệu song song đã được công nhận rộng rãi trong lĩnh vực cơ sở dữ liệu
Tuy nhiên, Big Data vẫn còn nhiều thách thức phát sinh Với sự phát triển của dịch vụ Internet, các nội dung chỉ mục và truy vấn đã được phát triển nhanh chóng Do
đó, công cụ tìm kiếm của các công ty đều phải đối mặt với những thách thức của việc
xử lý dữ liệu lớn Google tạo ra mô hình lập trình GFS [14] và MapReduce [15] để đối phó với những thách thức mang lại về việc quản lý và phân tích dữ liệu ở quy mô Internet Ngoài ra, nội dung được sinh ra bởi người sử dụng, cảm biến và các nguồn dữ liệu phổ biến khác cũng tăng, do đó yêu cầu một sự thay đổi cơ bản về kiến trúc tính toán và cơ chế xử lý dữ liệu quy mô lớn
Vào tháng 1 năm 2007, Jim Gray là một nhà tiên phong về phần mềm cơ sở dữ liệu đã gọi sự biến đổi là “mô hình thứ tư” [16] Ông nghĩ rằng cách duy nhất đối phó với mô hình như vậy là phát triển một thế hệ mới các công cụ máy tính để quản lý, trực quan hóa và phân tích dữ liệu khổng lồ Trong tháng 6 năm 2011, một sự kiện
bước ngoặt xảy ra khi EMC/IDC công bố một báo cáo nghiên cứu có tựa đề Trích xuất
giá trị từ sự hỗn độn, đây là lần đầu tiên đưa ra khái niệm và tiềm năng của Big Data
Báo cáo nghiên cứu này gây ra mối quan tâm lớn trong cả công nghiệp và học thuật về Big Data
Trang 8Trong vài năm qua, gần như những công ty lớn bao gồm EMC, Oracle, IBM, Microsoft, Google, Amazon, Facebook,… đã bắt đầu cá dự án Big Data của họ Từ năm 2005, IBM đã đầu tư 16 tỷ USD vào 30 sự tiếp nhận liên quan đến dữ liệu lớn Về học thuật, Big Data cũng chiếm địa vị nổi bật Trong năm 2008, Nature công bố một vấn đề đặc biệt về Big Data Năm 2011, Science cũng đưa ra một vấn đề đặc biệt về công nghệ chủ chốt “xử lý dữ liệu” trong Big Data Năm 2012, Tạp chí Hiệp hội Nghiên cứu châu Âu Tin học và Toán học (ERCIM) đăng một vấn đề đặc biêt về dữ
liệu lớn Vào đầu năm 2012, một báo cáo mang tên Big Data, Big Impact trình bày tại
diễn đàn Davos ở Thụy Sĩ, đã thông báo rằng Big Data đã trở thành một loại tài sản kinh tế mới, giống như tiền tệ hoặc vàng
Nhiều chính phủ quốc gia như Mỹ cũng đã rất quan tâm tới dữ liệu lớn Trong tháng 3 năm 2012, chính quyền Obama đã công bố một khoản đầu tư 200 triệu USD
để khởi động “Kế hoạch nghiên cứu và phát triển Big Data” Tháng 7 năm 2012 dự án
“Đẩy mạnh công nghệ thông tin Nhật Bản” được ban hành bởi Bộ Nội vụ và Truyền thông Nhật Bản chỉ ra rằng sự phát triển Big Data nên có một chiến lược quốc gia và các công nghệ ứng dụng nên là trọng tâm Cũng trong thời gian đó, Liên Hiệp Quốc đã
đưa ra báo cáo Big Data cho phát triển, trong đó tóm tắt cách mà các chính phủ sử
dụng Big Data để phục vụ và bảo vệ người dân một cách tốt hơn
Công ty nghiên cứu thị trường IDC cho thấydoanh thu đến từ thị trường Big Data sẽ tăng lên 16,9 tỷ USD vào năm 2015 và sẽ tiếp tục tăng trưởng kép với tốc độ 27% và đạt đến 32,4 tỷ USD vào năm 2017
1.1.3 Những thách thức mà Big Data mang lại
Với sự gia tăng một cách mạnh mẽ của dữ liệu trong kỷ nguyên Big Data đã mang tới những thách thức rất lớn về việc thu thập, lưu trữ, quản lý và phân tích dữ liệu Hệ thống quản lý và phân tích dữ liệu truyền thống được dựa trên hệ thống quản
lý cơ sở dữ liệu quan hệ (RDBMS) Tuy nhiên, RDBMS chỉ áp dụng cho các dữ liệu
có cấu trúc, khác với những dữ liệu bán cấu trúc hoặc không có cấu trúc Ngoài ra, RDBMS đang ngày càng sử dụng nhiều phần cứng đắt tiền Các RDBMS truyền thống không thể xử lý dung lượng rất lớn và không đồng nhất của Big Data Cộng đồng nghiên cứu đã đề xuất một số giải pháp theo các quan điểm khác nhau Đối với các giải pháp lưu trữ vĩnh viễn và quản lý các tập dữ liệu quy mô lớn không có trật tự, hệ thống tập tin được phân phối và cơ sở dữ liệu NoSQL là những lựa chọn tốt Những
Trang 9frameworks lập trình như vậy đã đạt được thành công lớn trong các bài toán xử lý cụm, đặc biệt đối với lập thứ hạng trang web (webpage ranking) Nhiều ứng dụng dữ liệu lớn có thể được phát triển dựa trên những công nghệ hoặc nền tảng cách mạng này
Các thách thức chính mà Big Data mang lại:
- Biểu diễn dữ liệu: Nhiều bộ dữ liệu có mức độ không đồng nhất trong kiểu,
cấu trúc, ngữ nghĩa, tổ chức, độ chi tiết và khả năng tiếp cận Biểu diễn dữ liệu nhằm mục đích làm cho dữ liệu có ý nghĩa hơn trong việc phân tích của máy tính và sự giải thích của người dùng Tuy nhiên, việc biểu diễn dữ liệu không đúng cách sẽ làm giảm giá trị ban đầu của dữ liệu và thậm chí có thể gây cản trở cho việc phân tích dữ liệu Biểu diễn dữ liệu hiệu quả sẽ phản ánh cấu trúc, lớp và kiểu dữ liệu cũng như các công nghệ tích hợp, để cho phép hoạt động hiệu quả trên các tập dữ liệu khác nhau
- Giảm sự dư thừa và nén dữ liệu: Giảm sự dư thừa và nén dữ liệu là cách hiệu
quả để giảm chi phí gián tiếp của toàn bộ hệ thống trên tiền đề rằng các giá trị tiềm năng của dữ liệu không bị ảnh hưởng Ví dụ, hầu hết các dữ liệu được tạo ra bởi các mạng cảm biến là rất cần thiết, trong đó có thể được logic và nén ở các đơn đặt hàng của các cường độ
- Quản lý vòng đời của dữ liệu: Vòng đời của dữ liệu là chuỗi các giai đoạn mà
một đơn vị dữ liệu từ thế hệ ban đầu được thu thập, lưu trữ đến khi bị xóa bỏ và kết thúc vòng đời hữu ích của nó So với tiến bộ của hệ thống lưu trữ tương ứng, cảm biến
và máy tính đang tạo ra dữ liệu với quy mô và tốc độ chưa từng có Điều này đã tạo ra rất nhiều thách thức, một trong số đó là hệ thống lưu trữ hiện đại không thể hỗ trợ dữ liệu lớn như vậy Vì vậy, một nguyên tắc quan trọng liên quan đến các giá trị phân tích cần được phát triển để quyết định dữ liệu nào sẽ được lưu trữ và dữ liệu nào sẽ được loại bỏ
- Cơ chế phân tích: Hệ thống phân tích Big Data sẽ xử lý khối lượng dữ liệu
không đồng nhất trong một thời gian giới hạn Tuy nhiên, RDBMS truyền thống được thiết kế với sự thiếu khả năng thay đổi và khả năng mở rộng, do đó không thể đáp ứng các yêu cầu về hiệu suất Cơ sở dữ liệu không quan hệ đã chỉ ra những lợi thế riêng của mình trong việc xử lý dữ liệu phi cấu trúc và bắt đầu trở thành đề tài chủ đạo trong phân tích Big Data Mặc dù vậy, vẫn còn một số vấn đề về cơ sở dữ liệu không quan
hệ trong hoạt động và những ứng dụng cụ thể của chúng Điều này dẫn tới việc cần tìm
Trang 10một giải pháp thỏa hiệp giữa RDBMS và cơ sở dữ liệu không quan hệ Ví dụ, một số doanh nghiệp đã sử dụng một kiến trúc cơ sở dữ liệu hỗn hợp mà tích hợp những ưu điểm của cả hai loại cơ sở dữ liệu như Facebook và Taobao
- Bảo mật dữ liệu: Hầu như các nhà cung cấp dịch vụ hoặc chủ sở hữu dịch vụ
Big Data có thể không duy trì và phân tích một cách hiệu quả các tập dữ liệu lớn như vậy vì khả năng hạn chế của họ Họ phải dựa vào các chuyên gia hoặc các công cụ để phân tích dữ liệu như vậy, làm tăng rủi ro bảo mật
- Quản lý năng lượng: Năng lượng tiêu thụ của hệ thống máy tính lớn đã thu
hút nhiều sự quan tâm từ cả quan điểm kinh tế và môi trường Với sự gia tăng của dung lượng dữ liệu và nhu cầu phân tích, xử lý, lưu trữ và truyền tải thì Big Data chắc chắn sẽ tiêu thụ ngày càng nhiều năng lượng điện Vì vậy, cơ chế kiểm soát và quản lý điện năng tiêu thụ cấp hệ thống sẽ được thành lập với Big Data trong khi khả năng mở rộng và khả năng tiếp cận được đảm bảo
- Khả năng mở rộng và thay đổi: Hệ thống phân tích Big Data phải hỗ trợ tập
dữ liệu hiện tại và tương lai Thuật toán phân tích phải có khả năng xử lý các tập dữ liệu ngày càng mở rộng và phức tạp hơn
- Sự hợp tác: Phân tích các dữ liệu lớn là một nghiên cứu liên ngành, trong đó
yêu cầu các chuyên gia trong các lĩnh vực khác nhau hợp tác để thu thập các dữ liệu Một kiến trúc mạng lưới Big Data toàn diện phải được thiết lập để giúp các nhà khoa học và kỹ sư trong các lĩnh vực khác nhau truy cập các loại dữ liệu khác nhau và sử dụng đầy đủ chuyên môn của họ, phối hợp để hoàn thành các mục tiêu phân tích
1.1.4 Những công nghệ trong Big Data
Có rất nhiều công nghệ gắn liền với Big Data, ở phần này sẽ giới thiệu một số công nghệ cơ bản liên quan chặt chẽ tới Big Data bao gồm điện toán đám mây, IoT, trung tâm dữ liệu và Hadoop
- Điện toán đám mây:
Theo IBM thì điện toán đám mây là việc cung cấp tài nguyên máy tính cho người dùng tùy theo mục đích sử dụng thông qua Internet Nguồn tài nguyên đó có thể
là bất cứ thứ gì liên quan đến điện toán và máy tính, ví dụ như phần mềm, phần cứng,
hạ tầng mạng cho tới các máy chủ và mạng lưới máy chủ cỡ lớn
Điện toán đám mây có liên quan chặt chẽ với Big Data Big Data là đối tượng của hoạt động tính toán chuyên sâu và nhấn mạnh khả năng lưu trữ của mỗi hệ thống
Trang 11đám mây Mục tiêu chính của hệ thống đám mây là sử dụng tài nguyên tính toán và lưu trữ rất lớn dưới sự quản lý tập trung để cung cấp cho các ứng dụng Big Data khả năng tính toán tốt Sự phát triển của điện toán đám mây cung cấp các giải pháp cho việc lưu trữ và xử lý Big Data Mặt khác, sự xuất hiện của Big Data cũng làm tăng tốc
độ phát triển của điện toán đám mây Các công nghệ lưu trữ phân tán dựa trên điện toán đám mây có thể quản lý Big Data một cách hiểu quả cùng với khả năng tính toán song song của điện toán đám mây có thể nâng cao hiệu quả của việc thu thập và phân tích dữ liệu lớn
Hình 1.3: Kiến trúc của điện toán đám mây
Hiện nay, có rất nhiều loại dịch vụ điện toán đám mây nhưng nhìn chung đều có những dịch vụ cơ bản sau: Dịch vụ cơ sở hạ tầng (Infrastructure as a Service - IaaS), dịch vụ nền tảng (Platform as a Service - PaaS), dịch vụ phần mềm (Software as a Service - SaaS), dịch vụ phần cứng (Hardware as a Service)
Mặc dù có nhiều công nghệ trùng lặp giữa điện toán đám mây và Big Data, tuy nhiên chúng khác nhau ở hai khía cạnh sau Đầu tiên, các khái niệm khác nhau ở một mức độ nhất định Điện toán đám mây biến đổi kiến trúc CNTT trong khi Big Data ảnh hưởng đến các quyết định kinh doanh Tuy vậy, Big Data cũng phải phụ thuộc vào điện toán đám mây như các cơ sở hạ tầng để hoạt động trơn tru Thứ hai, Big Data và điện toán đám mây có khách hàng mục tiêu khác nhau Điện toán đám mây là một công nghệ và sản phẩm nhắm đến Chief Information Officers (CIO) như một giải pháp
Trang 12CNTT tiên tiến Big Data là một sản phẩm nhắm đến Chief Executive Officers (CEO) người mà chỉ tập trung vào hoạt động kinh doanh Khi những người ra quyết định có thể trực tiếp cảm nhận được áp lực cạnh tranh trên thị trường, họ phải đánh bại các đối thủ kinh doanh theo nhiều cách cạnh tranh hơn Với sự tiến bộ của Big Data và điện toán đám mây hai công nghệ này đã trở thành tất yếu và ngày càng kết hợp chặt chẽ với nhau Điện toán đám mây với các chức năng tương tự như của máy tính và hệ điều hành, cung cấp tài nguyên cấp hệ thống Dữ liệu lớn hoạt động trong các cấp độ bên trên được hỗ trợ bởi điện toán đám mây và cung cấp chức năng tương tự như của cơ sở
dữ liệu và khả năng xử lý dữ liệu có hiệu quả
Sự phát triển của Big Data được thúc đẩy bởi sự tăng trưởng nhanh chóng của nhu cầu ứng dụng và điện toán đám mây được phát triển từ công nghệ ảo hóa Đến một lúc nào đó, các tiến bộ của điện toán đám mây cũng thúc đẩy sự phát triển của Big Data, cả hai sẽ bổ sung cho nhau
- IoT và Big Data:
Mô hình IoT sử dụng một số lượng lớn các bộ cảm biến kết nối mạng được nhúng vào các thiết bị và các máy móc khác nhau trong thế giới thực Các cảm biến như vậy được triển khai trong các lĩnh vực khác nhau có thể thu thập các loại dữ liệu khác nhau, chẳng hạn như dữ liệu về môi trường, dữ liệu địa lý, dữ liệu thiên văn và
dữ liệu logistic Thiết bị di động, phương tiện vận tải, phương tiện công cộng và đồ gia dụng tất cả có thể là những thiết bị thu thập dữ liệu trong IoT
Trang 13bao gồm sự không đồng nhất, tính đa dạng, tính năng không có cấu trúc, nhiễu và độ
dư thừa cao Mặc dù dữ liệu IoT hiện nay không phải là phần thống trị của Big Data nhưng trong tương lai số lượng cảm biến sẽ đạt một nghìn tỷ (ước tính vào năm 2030 theo dự báo của HP) số lượng cảm biến sẽ đạt một nghìn tỷ và khi đó dữ liệu IoT sẽ là phần quan trọng nhất của dữ liệu lớn Tập đoàn Intel đã đưa ra một báo cáo trong đó chỉ ra rằng dữ liệu lớn trong IoT có ba tính năng phù hợp với các mô hình dữ liệu lớn: (i) thiết bị đầu cuối phong phú tạo ra khối lượng dữ liệu lớn, (ii) các dữ liệu được tạo
ra bởi IoT thường là bán cấu trúc hoặc không có cấu trúc; (iii) dữ liệu của IoT chỉ có ích khi nó được phân tích
Có một nhu cầu bắt buộc áp dụng Big Data cho các ứng dụng IoT, trong khi sự phát triển của dữ liệu lớn đã sẵn sàng hỗ trợ Việc này đã được công nhận rộng rãi khi hai công nghệ này đều phụ thuộc lẫn nhau và cần được phối hợp để phát triển Việc triển khai rộng rãi IoT đẩy sự tăng trưởng cao của dữ liệu về cả số lượng và chủng loại
từ đó cung cấp cơ hội cho các ứng dụng và phát triển của Big Data Mặt khác, áp dụng công nghệ dữ liệu lớn vào IoT cũng làm tăng tốc độ tiến bộ nghiên cứu và mô hình kinh doanh của IoT
- Trung tâm dữ liệu:
Trong mô hình dữ liệu lớn, các trung tâm dữ liệu không chỉ là một nền tảng lưu trữ tập trung dữ liệu, mà còn đảm nhận nhiều trách nhiệm chẳng hạn như thu thập dữ liệu, quản lý dữ liệu, tổ chức dữ liệu và tận dụng các giá trị dữ liệu cùng các chức năng
Hình 1.5 Hệ thống trung tâm dữ liệu
Trang 14Các trung tâm dữ liệu chủ yếu tập trung vào dữ liệu Dữ liệu được tổ chức, quản
lý theo mục tiêu và phát triển con đường cốt lõi của trung tâm dữ liệu Sự xuất hiện của Big Data mang lại những cơ hội phát triển và thách thức lớn cho các trung tâm dữ liệu Big Data sẽ thúc đẩy sự tăng trưởng bùng nổ của các cơ sở hạ tầng và các phần mềm liên quan của trung tâm dữ liệu Mạng lưới trung tâm dữ liệu vật lý là nòng cốt
hỗ trợ Big Data nhưng hiện nay cơ sở hạ tầng chính mới là điều cần gấp nhất
Big Data đòi hỏi trung tâm dữ liệu cung cấp nền tảng hỗ trợ mạnh mẽ Các mô hình Big Data yêu cầu nghiêm ngặt hơn về khả năng lưu trữ và khả năng xử lý, cũng như khả năng truyền tải mạng
Big Data tạo ra cho các trung tâm dữ liệu nhiều chức năng hơn Trong các mô hình Big Data, trung tâm dữ liệu có trách nhiệm không chỉ tập trung vào các thiết bị phần cứng mà còn tăng cường năng lực mềm như khả năng thu hồi, xử lý, tổ chức, phân tích và ứng dụng của Big Data Các trung tâm dữ liệu có thể giúp nhân viên kinh doanh phân tích các dữ liệu hiện có, phát hiện ra các vấn đề trong hoạt động kinh doanh và phát triển các giải pháp từ Big Data
- Hadoop và Big Data:
Hadoop là một Apache framework mã nguồn mở được viết bằng Java, cho phép
xử lý phân tán (distributed processing) các tập dữ liệu lớn trên các cụm máy tính (clusters of computers) thông qua mô hình lập trình đơn giản Hadoop được thiết kế để
mở rộng quy mô từ một máy chủ đơn giản sang hàng ngàn máy tính khác có tính toán
và lưu trữ cục bộ (local computation and storage)
Hadoop được sử dụng rộng rãi trong các ứng dụng Big Data trong công nghiệp,
ví dụ như lọc thư rác, tìm kiếm mạng, phân tích luồng clicks hay khuyến cáo xã hội,…Ngoài ra, các nghiên cứu học thuật đáng kể hiện nay dựa trên Hadoop
Tháng 6 năm 2012, Yahoo chạy Hadoop trên 42,000 máy chủ tại bốn trung tâm
dữ liệu để hỗ trợ các sản phẩm và dịch vụ của mình Cũng trong thời gian đó, Facebook thống báo rằng cụm Hadoop của họ có thể xử lý 100PB dữ liệu mà dữ liệu này có thể tăng 0,5 PB mỗi ngày như trong tháng 11 năm 2012 Ngoài ra, nhiều công
ty cung cấp Hadoop thương mại bao gồm Cloudera, IBM, MapR,…
Về kiến trúc, Hadoop gồm 4 module:
Trang 15+ Hadoop Common: Đây là các thư viện và tiện ích cần thiết của Java để các
module khác sử dụng Những thư viện này cung cấp hệ thống file và lớp OS trừu tượng, đồng thời chứa các mã lệnh Java để khởi động Hadoop
+ Hadoop YARN: Đây là framework để quản lý tiến trình và tài nguyên của các
cluster
+ Hadoop Distributed File System (DHFS): Đây là hệ thống file phân tán cung
cấp truy cập thông lượng cao cho ứng dụng khai thác dữ liệu
+ Hadoop MapReduce: Đây là hệ thống dựa trên YARN dùng để xử lý song
song các tập dữ liệu lớn
Hình 1.6 Kiến trúc hệ thống Hadoop Trong số các máy móc và hệ thống công nghiệp hiện đại, các cảm biến được triển khai rộng rãi để thu thập thông tin cho việc theo dõi môi trường và dự báo sự cố Bahga và những cộng sự của mình đã đề xuất một framework cho việc tổ chức dữ liệu
và cơ sở hạ tầng điện toán đám mây gọi là CloudView [17] CloudView sử dụng kiến trúc hỗn hợp, các node địa phương và các cụm dữ điều khiển từ xa dựa trên Hadoop để phân tích dữ liệu máy tính tạo ra Các node địa phương được sử dụng cho các dự báo thời gian thực các sự cố, các cụm dựa trên Hadoop được dùng để phân tích offline
1.2 Quy trình phân tích dữ liệu lớn
Nội dung phần này sẽ trình bày theo các giai đoạn trong luồng dữ liệu của Big Data Luồng dữ liệu trong Big Data được chia thành bốn giai đoạn: Tạo ra dữ liệu, thu thập dữ liệu, lưu trữ dữ liệu và phân tích dữ liệu Nếu coi rằng dữ liệu như là một nguyên liệu thô, sự tạo ra và thu thập dữ liệu là một quá trình khai phá, lưu trữ dữ liệu
Trang 16là một quá trình lưu trữ và phân tích dữ liệu là một quá trình sản xuất mà sử dụng các nguyên liệu để tạo ra giá trị mới
1.2.1 Tạo ra dữ liệu
Tạo ra dữ liệu là bước đầu tiên của Big Data Hiện nay, nguồn tạo ra dữ liệu chủ yếu của Big Data là những thông tin hoạt động và buôn bán trong các doanh nghiệp, các thông tin Logistic và cảm biến trong IoT, thông tin tương tác giữa người với người, thông tin về vị trí trong Internet, dữ liệu y sinh và dữ liệu được tạo ra trong nghiên cứu khoa học, Các thông tin vượt xa các năng lực của các kiến trúc và cơ sở
hạ tầng CNTT của các doanh nghiệp hiện có, trong khi yêu cầu về thời gian thực cũng gây áp lực rất lớn cho năng lực tính toán hiện có
1.2.2 Thu thập dữ liệu
Thu thập dữ liệu là giai đoạn thứ hai của hệ thống Big Data, thu thập dữ liệu lớn bao gồm thu nhận dữ liệu, truyền tải dữ liệu và tiền xử lý dữ liệu Trong thời gian thu thập dữ liệu lớn, một khi các dữ liệu thô được thu thập thì cơ chế truyền dẫn hiệu quả
sẻ gửi nó cho một hệ thống quản lý lưu trữ thích hợp để hỗ trợ các ứng dụng phân tích khác nhau Các tập hợp dữ liệu được thu thập có thể bao gồm nhiều dữ liệu dư thừa hoặc vô dụng, chính điều này sẽ làm tăng không gian lưu trữ một cách không cần thiết
và ảnh hưởng đến việc phân tích dữ liệu tiếp theo Ví dụ, sự dư thừa các dữ liệu là rất phổ biến trong các tập hợp dữ liệu được thu thập bởi các cảm biến để theo dõi môi trường Công nghệ nén dữ liệu có thể được áp dụng để giảm bớt sự dư thừa Do đó, hoạt động tiền xử lý dữ liệu là không thể thiếu để đảm bảo lưu trữ và khai thác dữ liệu hiệu quả
Những thành phần của thu thập dữ liệu được trình bày trong bảng 1.1
- Log file: Là một trong những phương pháp thu nhận dữ liệu được sử dụng rộng rãi, log file là file bản ghi được tạo ra tự động bởi hệ thống nguồn dữ liệu, do đó ghi lại các hoạt động trong các định dạng tập tin được chỉ định cho phân tích tiếp theo
- Cảm biến: Cảm biến trở nên phổ biến trong
Trang 17cuộc sống hàng ngày để đo đại lượng vật lý và biến đổi đại lượng vật lý thành tín hiệu số có thể đọc được cho xử lý bước tiếp theo Dữ liệu cảm biến có thể được phân loại như sóng âm thanh, giọng nói, rung động, điện thoại di động, hóa chất, dòng chảy, thời tiết, áp suất, nhiệt độ, vv Thông tin cảm biến được chuyển đến cho một điểm thu thập dữ liệu thông qua mạng có dây hoặc không dây
- Thu thập dữ liệu mạng: Thu thập dữ liệu mạng được thực hiện bằng cách sử dụng một
sự kết hợp của web crawler, hệ thống phân đoạn các từ, hệ thống nhiệm vụ, hệ thống chỉ số,…Web crawler là một chương trình được
sử dụng bởi máy tìm kiếm (search engines) để tải về và lưu trữ dưới dạng web [18]
- Ngoài ba phương pháp thu nhận dữ liệu nói trên của các nguồn dữ liệu chính còn có rất nhiều dữ liệu được thu thập bằng các phương pháp hệ thống khác
Truyền dữ
liệu
Sau khi hoàn thành việc thu thập dữ liệu thô, dữ liệu sẽ được truyền tải đến một cơ
sở hạ tầng lưu trữ dữ liệu để xử lý và phân tích Như đã nêu ở phần trước, Big Data chủ yếu được lưu trữ trong một trung tâm
dữ liệu Sự sắp xếp dữ liệu cần được điều
- Truyền tải dữ liệu bao gồm hai phương pháp tương ứng với hai giai đoạn trong quá trình
truyền dữ liệu: Truyền tải Inter-DCN và
Intra-DCN
- Truyền tải DCN: Là truyền tải từ nguồn dữ
liệu đến trung tâm dữ liệu Do sự phát triển nhanh chóng của nhu cầu truyền tải, cơ sở hạ tầng mạng vật lý ở hầu hết các khu vực trên thế giới được cấu thành bởi các hệ thống truyền dẫn cáp quang dung lượng lớn, tốc độ cao và chi phí thấp
- Truyền tải Intra-DCN: Là các luồng truyền
Trang 18chỉnh để nâng cao hiệu suất tính toán hoặc tạo điều kiện bảo trì phần cứng
Nói cách khác, truyền tải dữ liệu nội bộ có thể xảy ra trong trung tâm dữ liệu
thông dữ liệu xảy ra trong các trung tâm dữ liệu Truyền tải Intra-DCN phụ thuộc vào cơ chế truyền tin bên trong trung tâm dữ liệu (ví
dụ trên các mối kết nối vật lý, chips, bộ nhớ trong của máy chủ dữ liệu, kiến trúc mạng của các trung tâm dữ liệu và các giao thức trao đổi thông tin) Một trung tâm dữ liệu bao gồm nhiều rack được tích hợp máy chủ kết nối với các mạng nội bộ của nó Ngày nay, các mạng kết nối nội bộ của hầu hết các trung tâm dữ liệu là cấu trúc fat-tree, hai lớp hoặc ba lớp dựa trên các luồng mạng hàng hóa [19][20] Tiền xử lý
dữ liệu
- Do sự đa dạng của các nguồn dữ liệu, các tập hợp dữ liệu thu thập được thay đổi do nhiễu, sự dư thừa và tính đồng nhất chắc chắn sẽ là một sự lãng phí khi lưu trữ dữ liệu
vô nghĩa Ngoài ra, một số phương pháp phân tích có những yêu cầu nghiêm ngặt
về chất lượng dữ liệu
Vì vậy, để có thể phân tích dữ liệu hiệu quả cần phải tiền xử
lý dữ liệu dưới nhiều trường hợp để tích hợp dữ liệu từ các nguồn khác nhau,
- Tích hợp: Tích hợp dư liệu là nền tảng của thông tin thương mại hiện đại, trong đó bao gồm sự kết hợp dữ liệu từ các nguồn khác nhau và cung cấp cho người dùng với một cách nhìn thống nhất về dữ liệu [21] Các phương pháp tích hợp dữ liệu thường đi cùng với các công cụ xử lý luồng và công cụ tìm kiếm [22][23]
- Dọn dẹp: Là một quá trình để xác định dữ liệu không chính xác, không đầy đủ hoặc không hợp lý và sau đó sửa đổi hoặc xóa dữ liệu đó để cải thiện chất lượng dữ liệu Dọn dẹp dữ liệu gồm năm thủ tục bổ sung [24]: Định nghĩa và xác định các loại lỗi, tìm kiếm
và xác định lỗi, sửa lỗi, tài liệu các mẫu lỗi và các loại lỗi, sửa đổi các thủ tục nhập dữ liệu
để giảm thiểu sai xót trong tương lai
- Loại bỏ dư thừa: Thừa dữ liệu là sự lặp lại
dữ liệu hoặc các phần dư mà thường xảy ra trong nhiều tập dữ liệu Dữ liệu dư thừa có thể
Trang 19trong đó có thể không chỉ làm giảm chi phí lưu trữ mà còn cải thiện độ chính xác của phân tích
- Có nhiều phương pháp tiền xử lý dữ liệu đối với các bộ dữ liệu khác nhau Tuy nhiên, rất khó khăn hay thậm chí là không thể xây dựng một thủ tục và công nghệ tiền
xử lý dữ liệu tổng quát mà áp dụng cho tất cả các loại dữ liệu
làm tăng chi phí truyền tải dữ liệu không cần thiết và gây ra các khuyết tật trên hệ thống lưu trữ, ví dụ như sự lãng phí không gian lưu trữ,
sự không nhất quán dữ liệu, giảm khả năng định danh dữ liệu, thiệt hại dữ liệu Vì vậy, các phương pháp giảm dư thừa khác nhau đã được đề xuất, chẳng hạn như phát hiện dư thừa, lọc dữ liệu và nén dữ liệu Những phương pháp này có thể áp dụng đối với các tập dữ liệu khác nhau hoặc các môi trường ứng dụng Tuy nhiên, giảm dư thừa cũng có thể mạng lại một số tác động tiêu cực như dữ liệu nén và giải nén gây thêm gánh nặng về tính toán Dữ liệu dư thừa được biết đến nhiều khi hình ảnh và video có chứa các dư thừa đáng kể, bao gồm cả dư thừa thời gian, không gian, dư thừa thống kê, dư thừa về cảm biến Bảng 1.1 Bảng mô tả thành phần trong thu nhận dữ liệu
để thu được sai sót và cung cấp cho khách hàng các dịch vụ hiệu suất cao GFS hỗ trợ các ứng dụng tập tin quy mô lớn với việc đọc nhiều hơn là viết Tuy nhiên, GFS cũng
có một số hạn chế, chẳng hạn như có điểm riêng lẻ bị hỏng và hiệu suất kém cho các tập tin nhỏ
Trang 20Hình 1.7 Kiến trúc hệ thống GFS
- Cơ sở dữ liệu:
Các hệ thống cơ sở dữ liệu khác nhau được phát triển để xử lý các tập dữ liệu ở quy mô khác nhau và hỗ trợ các ứng dụng khác nhau Cơ sở dữ liệu quan hệ truyền thống không thể đáp ứng được những thách thức về các loại quy mô được mang tới bởi Big Data Cơ sở dữ liệu NoSQL (cơ sở dữ liệu quan hệ không truyền thống) đang trở nên phổ biến hơn cho việc lưu trữ Big Data Cơ sở dữ liệu NoSQL có các chế độ linh hoạt, dễ dàng sao chép, API đơn giản, thống nhất cuối cùng và hỗ trợ cho khối lượng dữ liệu lớn Cơ sở dữ liệu NoSQL được trở thành công nghệ cốt lõi cho Big Data
Trong bảng 1.2 sẽ trình bày ba cơ sở dữ liệu NoSQL hay sử dụng đó là cơ sở dữ liệu key-value, cơ sở dữ liệu column-oriented và cơ sở dữ liệu document-oriented, mỗi
cơ sở dữ liệu đều dựa trên mô hình dữ liệu nhất định
Cơ sở dữ liệu Mô tả Ví dụ
CSDL key-value CSDL key-value được thành
lập bởi một mô hình dữ liệu đơn giản là dữ liệu được lưu trữ tương ứng với key-value Mỗi key-value là duy nhất và khách hàng có thể nhập các giá trị truy vấn theo các key CSDL như vậy có một cấu trúc đơn giản và CSDL key-value hiện đại được đặc trưng với khả
Hệ thống lưu trữ key-value bao gồm Redis, Tokyo Canbinet, Tokyo Tyrant, Riak và Scalaris đều cung cấp khả năng mở rộng bằng cách phân phối các
từ khóa vào các node
Trang 21năng mở rộng cao và thời gian đáp ứng truy vấn ngắn hơn so với các cơ sở dữ liệu quan hệ
CSDL
column-oriented
Các CSDL column-oriented lưu trữ và xử lý dữ liệu theo các cột hơn là các hàng Cả cột và hàng được phân đoạn theo nhiều node để có khả năng mở rộng
Cassandra là một hệ thống lưu trữ phân tán để quản lý số lượng lớn các dữ liệu có cấu trúc được phân bố trong nhiều máy chủ thương mại Ngoài ra còn có một số công cụ dẫn xuất của BigTable như HBase hay Hypertable
di chuyển các kiểu đó Bên cạnh đó các cặp key-value vẫn
có thể được lưu giữ
- MongoDB: Là mã nguồn mở
và cơ sở dữ liệu oriented MongoDB lưu trữ các tài liệu như các đối tượng Binary JSON
document Simple DB: Là một CSDL phân tán và là một dịch vụ web của Amazon
Bảng 1.2 Giới thiệu một số CSDL NoSQL
- Các mô hình lập trình:
Big Data thường được lưu trữ trong hàng trăm và thậm chí hàng ngàn máy chủ thương mại Do đó, các mô hình song song truyền thống chẳng hạn như Message Passing Interface (MPI) và Open Multi-Processing (OpenMP) có thể không đủ để hỗ trợ các chương trình song song quy mô lớn như vậy Một số mô hình lập trình song song được để xuất đã cải thiện một cách hiệu quả hiệu suất của NoSQL và giảm khoảng cách hiệu suất với CSDL quan hệ Do đó, các mô hình này đã trở thành nền tảng cho việc phân tích dữ liệu lớn
Mapreduce là mô hình lập trình đơn giản nhưng mạnh mẽ cho tính toán quy mô lớn bằng cách sử dụng một số lượng lớn các cụm máy tính thương mại để đạt được sự phân tán và xử lý song song tự động Trong Mapreduce, mô hình tính toán chỉ có hai hàm là hàm Map và hàm Reduce, cả hai đều được lập trình bởi người sử dụng Hàm
Trang 22Map xử lý các cặp key-value đầu vào và tạo ra các cặp key-value trung gian Sau đó Mapreduce sẽ kết hợp tất cả các giá trị trung gian liên quan tới cùng key và truyền chúng tới hàm Reduce mà trong đó tiếp tục nén các tập giá trị thành một tập nhỏ hơn
Hình 1.8 Mô hình lập trình Map-Reduce Ngoài Map-Reduce, Dryad là một engine thực thi phân tán theo mục đích chung
để xử lý các ứng dụng song song có các dữ liệu hạt thô Cấu trúc hoạt động của Dryad
là một đồ thị chu trình có hướng, trong đó các đỉnh đại diện cho các trương trình và các cạnh đại diện cho các kênh dữ liệu Dryad thực hiện các thao tác trên các đỉnh trong cụm và truyền dữ liệu thông qua các kênh dữ liệu bao gồm các tài liệu, các kết nối TCP và bộ nhớ chia sẻ FIFO
Một mô hình lập trình đồ thị khác tập trung vào các thuật toán máy học song song là GraphLab GraphLab bao gồm ba thành phần: Đồ thị dữ liệu, hàm cập nhật và thao tác đồng bộ Đồ thị dữ liệu là một container điều khiển dữ liệu được người dùng định nghĩa bao gồm các tham số mô hình, trạng thái thuật toán và thậm chí cả dữ liệu thống kê Hàm cập nhật là một thủ tục không trạng thái, thủ tục này thay đổi dữ liệu bên trong phạm vi của một đỉnh và hoạch định việc thực thi tiếp theo của các hàm cập nhật trên các đỉnh khác Cuối cùng, thao tác đồng bộ duy trì đồng thời các tổ hợp toàn cục
Việc phân tích Big Data liên quan đến các phương pháp phân tích chủ yếu cho
dữ liệu truyền thống và Big Data, kiến trúc phân tích cho Big Data và phần mềm được
sử dụng để khai thác và phân tích Big Data Phân tích dữ liệu là giai đoạn cuối cùng và
Trang 23quan trọng nhất trong chuỗi giá trị của Big Data với mục đích rút ra những giá trị hữu ích, cung cấp các đề xuất hoặc quyết định Các mức độ khác nhau của các giá trị tiềm năng có thể được tạo ra thông qua việc phân tích các dữ liệu trong các lĩnh vực khác nhau [10] Tuy nhiên, phân tích dữ liệu là một lĩnh vực rộng lớn, nơi thường xuyên thay đổi và vô cùng phức tạp
1.2.4 Phân tích dữ liệu
Có hai phương pháp phân tích dữ liệu được sử dụng đó là phương pháp phân tích dữ liệu truyền thống và phương pháp phân tích Big Data
- Phân tích dữ liệu truyền thống:
Phân tích dữ liệu truyền thống có nghĩa là sử dụng phương pháp thống kê thích hợp để phân tích dữ liệu lớn, tập trung, trích xuất và tinh chỉnh dữ liệu hữu ích ẩn chứa trong hàng loạt các tập dữ liệu hỗn độn và để xác định các luật vốn có của đối tượng,
từ đó tối đa hóa giá trị của dữ liệu Phân tích dữ liệu đóng một vai trò hướng dẫn rất lớn trong việc xây dựng kế hoạch phát triển cho một quốc gia, sự hiểu biết về nhu cầu khách hàng trong thương mại và dự đoán xu hướng thị trường cho các doanh nghiệp Phân tích dữ liệu lớn có thể được coi như các kỹ thuật phân tích cho một dạng đặc biệt của dữ liệu Do đó, nhiều phương pháp phân tích dữ liệu truyền thống vẫn có thể được
sử dụng để phân tích dữ liệu lớn, những phương pháp đó bắt nguồn từ thống kê và khoa học máy tính
Bảng 1.3 sẽ trình bày một số phương pháp phân tích dữ liệu truyền thống thường được sử dụng
Phân tích cụm được sử dụng để phân biệt các đối tượng với các tính năng riêng biệt và chia chúng thành một
số loại (cụm) theo các tính năng này, các đối tượng như vậy trong cùng một thể loại sẽ có độ đồng nhất cao Phân tích nhân
tố
(Factor analys)
Phân tích nhân tố về cơ bản
là nhắm vào việc mô tả mối quan hệ giữa nhiều phần tử với chỉ một vài nhân tố, ví
Những nhân tố được nhóm từ các biến số được sử dụng để biểu lộ hầu hết thông tin của các dữ liệu ban đầu
Trang 24dụ, nhóm các biến số liên quan chặt chẽ thành một nhân tố
và kiểm soát
Các quan hệ được phân loại thành: (i) hàm (function), phản ánh mối quan hệ phụ thuộc chặt chẽ giữa các hiện tượng mà cũng được gọi là một mối quan hệ phụ thuộc chính thức, (ii) sự tương quan, một số quan hệ phụ thuộc chưa xác định hoặc không chính xác và các giá trị số như vậy biểu diễn một sự nhiễu loạn thường xuyên xung quanh giá trị trung bình của chúng
Dựa trên một nhóm các thí nghiệm hoặc các dữ liệu đã được quan sát, phân tích hồi quy xác định các mối quan hệ phụ thuộc giữa các biến số
ẩn do sự ngẫu nhiên Phân tích hồi quy có thể làm cho mối tương quan phức tạp và không xác định được giữa những biến số để đơn giản và chính qui
Thử nghiệm
A/B
(A/B Testing)
Phương pháp này còn có tên gọi là là gàu múc nước
Đó là một công nghệ để xác định làm thế nào để cải thiện các biến mục tiêu bằng cách so sánh các nhóm được thử nghiệm
Đối với tập dữ liệu lớn sẽ đòi hỏi một số lượng lớn các thử nghiệm sẽ được tiến hành và phân tích
Phân tích
thống kê
Phân tích thống kê là một phương pháp được dựa trên
Phân tích thống kê miêu tả có thể tóm tắt và mô tả các tập dữ liệu,
Trang 25(Statistical
Analysis)
lý thuyết thống kê, một nhánh của toán học ứng dụng Trong lý thuyết thống kê, tính ngẫu nhiên
và sự không chắc chắn được mô hình hóa với lý thuyết xác suất
trong khi phân tích thống kê suy luận
có thể rút ra kết luận từ chủ đề dữ liệu đến các biến ngẫu nhiên Phân tích thống kê được áp dụng rộng dãi trong các lĩnh vực kinh tế và chăm sóc ý tế
mờ và ngẫu nhiên
Trong năm 2006, Hội nghị quốc tế IEEE về khai phá dữ liệu (ICDM) đã xác định mười thuật toán khai thác
dữ liệu có ảnh hưởng nhất thông qua một số thủ tục lựa chọn nghiêm ngặt bao gồm C4.5, k-means, SCM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes và Cart Mười thuật toán này đều được sử dụng trong những vấn đề quan trọng nhất trong nghiên cứu về phai khá dữ liệu Bảng 1.3 Những phương pháp phân tích dữ liệu truyền thống
- Các phương pháp phân tích Big Data:
Các phương pháp xử lý chính của dữ liệu lớn được trình bày trong bảng 1.4 sau đây:
Phương pháp Mô tả Sử dụng
Bloom Filter Bloom Filter bao gồm một loạt
các hàm băm Nguyên tắc của Bloom Filter là để lưu trữ các giá trị băm của dữ liệu khác với dữ liệu chính nó bằng cách sử dụng một mảng bit, mà bản chất là một chỉ số bitmap sử dụng hàm để tiến hành lưu trữ và nén dữ liệu
Bloom Filter có hiệu quả không gian cao và tốc độ truy vấn cao
Băm Là một phương pháp mà chủ yếu Băm có những lợi thế như
Trang 26biến đổi dữ liệu thành các giá trị
số có chiều dài cố định ngắn hơn hoặc thành các giá trị chỉ số
đọc, ghi nhanh và tốc độ truy vấn cao nhưng khó có hàm băm âm thanh
Đánh chỉ mục Một chỉ mục là một cấu trúc
riêng biệt trong cơ sở dữ liệu, nó được tạo ra bằng câu lệnh CREATE INDEX Nó cần có không gian lưu trữ riêng trên thiết
bị lưu trữ (đĩa cứng) và có một phần bản sao của dữ liệu của bảng được lập chỉ mục Điều này
có nghĩa rằng việc tạo ra một chỉ mục là có sự dư thừa về dữ liệu
Tạo một chỉ mục không thay đổi
dữ liệu của các bảng; nó chỉ tạo một cấu trúc dữ liệu mới và nó trỏ đến bảng ban đầu
Đánh chỉ mục luôn là một phương pháp hiệu quả để giảm các chi phí của đọc, ghi
ổ đĩa, cải thiện chèn, xóa, sửa đổi, tốc độ truy vấn trong cả
cơ sở dữ liệu quan hệ truyền thống quản lý các dữ liệu có cấu trúc lẫn các công nghệ khác quản lý các dữ liệu bán cấu trúc và phi cấu trúc Tuy nhiên, đánh chỉ mục có một bất lợi là nó có chi phí phụ thêm để lưu trữ các tập tin chỉ mục và cần được duy trì tự động khi dữ liệu được cập nhật
Tính toán song
song
Tính toán song song đề cập đến việc sử dụng đồng thời nhiều tài nguyên tính toán để hoàn thành một tác vụ tính toán Ý tưởng cơ bản của nó là để phân tách một vấn đề và gắn chúng cho một số tiến trình riêng biệt để thực hiện một cách độc lập, do đó đạt được
sự xử lý đồng thời
Hiện nay, một số mô hình tính toán song song cổ điển bao gồm MPI (Message Passing Interface), Mapreduce và Dryad
Bảng 1.4 Các phương pháp phân tích Big Data
Trang 27CHƯƠNG 2: GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH PYTHON VÀ MỘT
SỐ PHƯƠNG PHÁP MÁY HỌC ỨNG DỤNG TRONG PHÂN TÍCH KINH
DOANH
2.1 Ngôn ngữ lập trình Python trong phân tích dữ liệu
Phần này sẽ giới thiệu tổng quan về ngôn ngữ lập trình Python cùng với đó là những ưu điểm nổi bật của Python trong việc phân tích và xử lý dữ liệu
2.1.1 Giới thiệu về ngôn ngữ lập trình Python
có thể được phân phối tự do
Python 2.0 đã được phát hành vào ngày 16 tháng 10 năm 2000 và có nhiều tính năng mới bao gồm thu gom rác theo chu kỳ (cycle-detecting garbage) và hỗ trợ Unicode Với việc phát hành này quá trình phát triển đã được thay đổi và trở nên minh bạch hơn
Python là ngôn ngữ lập trình được sử dụng rất phổ biến ngày nay để phát triển nhiều loại ứng dụng phần mềm khác nhau như các chương trình chạy trên desktop, server, lập trình các ứng dụng web Ngoài ra Python cũng là ngôn ngữ ưa thích trong ngành khoa học về dữ liệu (data science) cũng như là ngôn ngữ phổ biến để xây dựng các chương trình trí tuệ nhân tạo trong đó bao gồm Machine Learning
- Đặc điểm của ngôn ngữ lập trình Python:
Python là ngôn ngữ dễ học: Ngôn ngữ Python có cú pháp đơn giản, rõ ràng sử dụng một số lượng không nhiều các từ khoá, do đó Python được đánh giá là một ngôn
Trang 28ngữ lập trình thân thiện với người mới học
Python là ngôn ngữ dễ hiểu: Mã lệnh (source code hay đơn giản là code) viết bằng ngôn ngữ Python dễ đọc và dễ hiểu Ngay cả trường hợp người dùng chưa biết gì
về Python cũng có thể suy đoán được ý nghĩa của từng dòng lệnh trong source code
Python có tương thích cao (highly portable): Chương trình phần mềm viết bằng ngôn ngữ Python có thể được chạy trên nhiều nền tảng hệ điều hành khác nhau bao gồm Windows, Mac OSX và Linux
Python có thư viện phong phú: Python đã tồn tại khoảng hơn 20 năm vì vậy có rất nhiều code viết bằng Python được xây dựng qua nhiều thập kỷ và là một ngôn ngữ
mã nguồn mở, rất nhiều trong số này được phát hành cho người khác sử dụng Có những thư viện sử dụng được cho khá nhiều trường hợp từ thao tác với hình ảnh, cho tới tính toán khoa học, và tự động hóa máy chủ
Python có một cộng đồng sử dụng lớn: Python có nhiều nhóm người sử dụng ở khắp mọi nơi và họ tiến hành những cuộc hội thảo lớn trên nhiều châu lục PyCon NA, hội nghị về Python lớn nhất ở Bắc Mỹ có số lượng người tham dự cũng rất đông điều
đó cho thấy Python là ngôn ngữ đang nhận được sự thu hút rất lớn
2.1.2 Ưu điểm nổi bật của Python trong phân tích dữ liệu
- Có sự gắn kết mạnh mẽ với khoa học dữ liệu
Với sự phát triển mạnh mẽ về dữ liệu, khoa học dữ liệu (Data Science) đang giữ một vai trò quan trọng trong việc làm chủ các nguồn dữ liệu lớn Khoa học dữ liệu liên quan đến quá trình phân tích, khám phá tri thức từ dữ liệu nhằm hỗ trợ tổ chức, doanh nghiệp trong việc ra quyết định Khoa học dữ liệu là khoa học dựa trên sự kết hợp của toán học (thống kê) và công nghệ thông tin
Khi nói về việc sử dụng dữ liệu lớn trong khoa học dữ liệu là nói về khoa học
dữ liệu quy mô lớn Trong lĩnh vực Data Science nói chung và phân tích dữ liệu (Data Analytics) nói riêng, ngôn ngữ lập trình Python đã trở thành một công cụ quan trọng không thể thiếu Python đã nổi lên trong vài năm trở lại gần đây như một sự tiên phong trong lập trình về khoa học dữ liệu, mặc dù bên cạnh đó rất nhiều người sử dụng R, SPSS, Jilia hay một số ngôn ngữ phổ biến khác
Tại một số công ty về Machine Learning nhu cầu sử dụng kỹ năng lập trình đối với ngôn ngữ Python cũng đang được quan tâm và chú trọng hơn rất nhiều Kdnuggets một website hàng đầu về phân tích kinh doanh, dữ liệu lớn, khai thác dữ liệu, khoa học
Trang 29dữ liệu và máy học đã đưa ra một kết quả thống kê đối với nhu cầu cần có của khoa học dữ liệu (Data Science) và máy học (Machine Learning)
Hình 2.1 Biểu đồ tổng hợp số liệu về kỹ năng lập trình cần có của kdnuggets
- Hỗ trợ đầy đủ thư viện cho phân tích dữ liệu:
Tính hữu ích của Python đối với phân tích dữ liệu bắt nguồn chủ yếu từ hệ sinh thái của những gói thư viện được cung cấp từ bên thứ ba Những gói thư viện này hỗ trợ rất nhiều trong quá trình lập trình và xử lý thuật toán Một số gói thư viện được tích hợp sẵn những thuật toán máy học, đồ họa, thao tác dữ liệu không đồng nhất phục vụ cho việc tính toán và phân tích dữ liệu Bảng 2.1 dưới đây sẽ giới thiệu về một số gói thư viện thông dụng nhất của Python phục vụ cho việc phân tích dữ liệu lớn
Thư viện Chức năng Sử dụng
NumPy - Numpy (viết tắt của
Nummerical Python) được biết tới là một thư viện không thể thiếu khi xây dựng các ứng dụng về máy học trên Python Thư viện Numpy cung cấp các đối tượng và phương thức để
hỗ trợ trong quá trình làm việc với mảng nhiều chiều
Trang 30tuyến tính Trong thư viện
numpy, chiều của mảng gọi
là axes còn số chiều được
gọi là rank
- Thư viện chủ yếu nằm
trong numpy là đối tượng
mảng (array) Mảng (array)
tương tự như kiểu list ở
Python với điều kiện là mọi
phần tử trong array phải có
cùng kiểu dữ liệu Array có
thể thao tác với số lượng
lớn về dữ liệu số, thường là
kiểu dữ liệu float hay kiểu
dữ liệu int và hiệu quả hơn
trên danh sách (list) rất
nhiều Lớp thường được
dùng trong thư viện numpy
- Hàm T lấy chuyển vị của matrix:
>>> x = np array ([[1,3],[4,4],[4,6])
>>> x.T array([[1,4,4],[3,4,6]])
- Tính ma trận nghịch đảo của matrix X
Pandas - Thư viện pandas trong lập
trình python là một thư viện
trình python Thư viện này
được sử dụng rộng rãi trong
cả nghiên cứu lẫn phát triển
#Trong đó:
# sep: dấu phân cách giữa các điểm dữ liệu trên 1 dòng
Trang 31dữ liệu
- Thư viện pandas sử dụng
một cấu trúc dữ liệu riêng
là Dataframe và được cung
cấp rất nhiều chức năng xử
lý khi làm việc trên cấu trúc
dữ liệu này Chính sự linh
hoạt và hiệu quả đã khiến
cho pandas được sử dụng
rộng rãi
- Pandas là thư viện không
thể thiếu trong suốt quá
trình xử lý dữ liệu (data
munging): từ chuyển đổi
dữ liệu hay ánh xạ dữ liệu
thô sang dạng dữ liệu mong
- Xem số liệu về dữ liệu:
>>> data loc [n,‘name_m’] = ‘value’
#Thay đổi giá trị của nhiều hàng cùng lúc với cột ‘name_m’
từ ‘value_1’ thành ‘value_2’
>>> data loc [data[‘name_m’] ==
[‘value_1’], ‘name_m’] == ‘value_2’
Matplotlib - Matplotlib là thư viện vẽ
biểu đồ 2D của Python
được mở rộng từ numpy
cho phép biểu diễn dữ liệu
thông qua đồ thị, nó có vai
trò quan trọng trong quá
Trang 32- Mỗi hàm pyplot tạo ra
một sự thay đổi trong biểu
đồ, ví dụ như tạo một
khung biểu đồ, vẽ biểu đồ
trên khung đã tạo, hoặc vẽ
nhiều đường biểu diễn trên
cùng một biểu đồ, dán nhãn
cho các trục…
- Ngoài các API liên quan
đến vẽ biểu đồ, thư viện
‘fmt’ là quy cách vẽ đường bao gồm 3
phần là màu sắc, maker (cách đánh dấu điểm dữ liệu), line (cách vẽ đường):
fmt = ‘[color][maker][line]’
‘data’ là nhãn của dữ liệu
**kwargs là tham số vễ đường
>>> plot ([x],y,[fmt],data = None,