Công nghệ Big Data và ứng dụng phân tích số liệu kinh doanh của Tập đoàn ViettelCông nghệ Big Data và ứng dụng phân tích số liệu kinh doanh của Tập đoàn ViettelCông nghệ Big Data và ứng dụng phân tích số liệu kinh doanh của Tập đoàn ViettelCông nghệ Big Data và ứng dụng phân tích số liệu kinh doanh của Tập đoàn ViettelCông nghệ Big Data và ứng dụng phân tích số liệu kinh doanh của Tập đoàn ViettelCông nghệ Big Data và ứng dụng phân tích số liệu kinh doanh của Tập đoàn Viettel
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
NGUYỄN HỮU THẢO THUẬN
CÔNG NGHỆ BIG DATA
VÀ ỨNG DỤNG PHÂN TÍCH SỐ LIỆU KINH DOANH
CỦA TẬP ĐOÀN VIETTEL
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
HÀ NỘI - 2016
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
NGUYỄN HỮU THẢO THUẬN
CÔNG NGHỆ BIG DATA
VÀ ỨNG DỤNG PHÂN TÍCH SỐ LIỆU KINH DOANH
CỦA TẬP ĐOÀN VIETTEL
CHUYÊN NGÀNH : HỆ THỐNG THÔNG TIN
Trang 3i
LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất cứ công trình nào
TÁC GIẢ
Nguyễn Hữu Thảo Thuận
Trang 4Trong quá trình nghiên cứu của mình, mặc dù được sự hướng dẫn rất nhiệt tình, đầy trách nhiệm của TS Nguyễn Đình Hóa và các thầy cô giáo trong Học viện Công nghệ Bưu Chính Viễn thông cùng với sự nỗ lực của cá nhân nhưng cũng không thể tránh được những thiếu sót Tác giả chân thành mong nhận được những ý kiến đóng góp từ quý Thầy, Cô và các bạn bè đồng nghiệp
Trân trọng cám ơn
Tác giả
Trang 5iii
MỤC LỤC
LỜI CAM ĐOAN……… i
LỜI CẢM ƠN……… ii
DANH MỤC VIẾT TẮT……… v
DANH MỤC BẢNG BIỂU……… … vi
DANH MỤC HÌNH VẼ……… vii
TỔNG QUAN VỀ BIG DATA 3
Khái niệm về Big data 3
Các đặc tính của việc xử lý Big Data 4
Ứng dụng Big Data trong tài chính ngân hàng, bảo hiểm 6
Thương mại 8
Hiện trạng khai thác Big Data trên thế giới và ở Việt Nam 8
Tổng quan về các giải pháp Big Data 11
Google Cloud Platform 11
Amazon EMR 16
Apache Hadoop 26
Kết luận chương 1 27
CÔNG NGHỆ APACHE HADOOP 28
Giới thiệu về Hadoop 28
Các trình nền của Hadoop 32
NameNode 32
DataNode 33
Secondary NameNode 33
JobTracker 34
TaskTracker 34
Kiến trúc tổng thể Hadoop 35
Hệ thống tập tin phân tán Hadoop (HDFS) 38
Hadoop MapReduce 42
Hệ sinh thái các sản phẩm đi kèm Hadoop 47
Kết luận chương 2 50
ỨNG DỤNG 52
Đặt vấn đề bài toán ứng dụng 52
Xây dựng hệ thống 55
Trang 6iv
Mô hình kiến trúc tổng thể 55
Mô tả dữ liệu đầu vào 59
Kết quả chương trình 60
Trung tâm GPCNTT Viettel 60
Đánh giá chương trình 69
Kết luận chương 3 71
KẾT LUẬN…… 72
TÀI LIỆU THAM KHẢO 73
Trang 7minh hóa doanh nghiệp)
2 Big Data Dữ liệu lớn
5 Data mining Khai phá dữ liệu
6 Data set Tập dữ liệu
7
ERP Enterprise Resource Planning (Lập kế
hoạch nguồn lực doanh nghiệp)
8 IoT Internet Of Things (Internet vạn vật)
9
MIS Management Inventory System (Hệ thống
báo cáo điều hành)
10 MultiMedia Đa phương tiện
vRTAP Viettel Realtime Analytic Processing (Xử
lý phân tích thời gian thực)
17 ZB Zetabyte (1 zetabyte = 1 ngàn tỷ tỷ byte )
Trang 8vi
DANH MỤC CÁC BẢNG BIỂU
Bảng 3.1Bảng đánh giá hệ thống 69
Trang 9vii
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Thống kê các nguồn dữ liệu hiện nay 4
Hình 1.2 Biểu đồ google trends về sự quan tâm tới các sản phẩm phân tích dữ liệu trên thế giới 9
Hình 1.3 Nhà cung cấp dịch vụ lập kế hoạch đầu tư vào Big Data và phân tích sâu 10
Hình 1.4 Mô hình kiến trúc mẫu hệ thống Big Data của google 12
Hình 1.5 Mô hình kiến trúc tích hợp Amazon webservice điển hình 18
Hình 2.1 Mô hình Hadoop lưu trữ dữ liệu phân tán trên hệ thống Hadoop Distributed File System (HDFS) 30
Hình 2.2 Mô hình Hadoop xử lý dữ liệu song song và phân tán trên các nút 30
Hình 2.3 Tương tác giữa JobTracker và TaskTracker 34
Hình 2.4 Cấu trúc liên kết của một nhóm Hadoop điển hình 35
Hình 2.5 Mô hình kiến trúc tổng quát của Hadoop 36
Hình 2.6 Sơ đồ kiến trúc hệ thống HDFS 39
Hình 2.7 Sơ đồ quá trình client đọc một file trên HDFS 40
Hình 2.8 Sơ đồ quá trình ghi file trên HDFS 41
Hình 2.9 Sơ đồ thành phần Map Reduce 42
Hình 2.10 Sơ đồ luồng hoạt động Map Reduce 44
Hình 2.11 Sơ đồ luồng hoạt động của Map 45
Hình 2.12 Sơ đồ luồng hoạt động của Reduce 46
Hình 2.13 Sơ đồ luồng thông báo TaskTracker hoàn thành Reduce Task 47
Hình 2.14 Hình vẽ hệ sinh thái các sản phẩm trên Hadoop 48
Hình 3.1 Mô hình kiến trúc tổng thể hệ thống xử lý số liệu kinh doanh 55
Hình 3.2 Hình vẽ vào chức năng xem biểu đồ 60
Hình 3.3 Hình vẽ màn hình tìm kiếm 61
Hình 3.4 Hình vẽ vào chức năng xem biểu đồ 61
Hình 3.5 Hình vẽ kết quả xem biểu đồ 62
Hình 3.6 Hình vẽ vào chức năng xem biểu đồ 63
Trang 10viii
Hình 3.7 Hình vẽ vào chức năng xem biểu đồ 63
Hình 3.8 Hình vẽ vào chức năng xem biểu đồ 64
Hình 3.9 Hình vẽ kết quả chức năng xem biểu đồ 64
Hình 3.10 Hình vẽ vào chức năng xem biểu đồ 65
Hình 3.11 Hình vẽ vào chức năng xem biểu đồ 65
Hình 3.12 Hình vẽ vào chức năng xem biểu đồ 66
Hình 3.13 Hình vẽ kết quả chức năng xem biểu đồ 66
Hình 3.14 Hình vẽ vào chức năng xem biểu đồ 67
Hình 3.15 Hình vẽ vào chức năng xem biểu đồ 67
Hình 3.16 Hình vẽ vào chức năng xem biểu đồ 68
Hình 3.17 Hình vẽ kết quả xem biểu đồ 68
Trang 111
MỞ ĐẦU
Ngày nay, sự phát triển của Internet đã làm thay đổi mạnh mẽ cách thức hoạt động của các tổ chức Các ứng dụng Web 2.0, mạng xã hội, điện toán đám mây đã một phần mang lại cho các tổ chức phương thức kinh doanh mới Số lượng người sử dụng máy tính và các tài nguyên trực tuyến để xử lý công việc, giải trí, ngày càng tăng nhanh Đặc biệt dữ liệu được tạo ra và truyền tải trên internet là vô cùng lớn,
cụ thể: dữ liệu trên thế giới tăng gấp đôi sau mỗi 2 năm Google có hơn 3 triệu máy chủ để xử lý hơn 1,7 nghìn tỷ lượt tìm kiếm trong một năm, các trung tâm dữ liệu tiêu thụ gần 1,5% điện năng trên toàn thế giới, có 571 website mới được tạo ra sau mỗi phút, dự đoán sẽ có 1/3 lượng dữ liệu trên thế giới sẽ được lưu trữ và truyền tải thông qua "đám mây" vào năm 2020, Twitter xử lý 7 TB dữ liệu mỗi ngày, Facebook xử lý 10 TB dữ liệu mỗi ngày, có 750 triệu bức ảnh được đăng tải lên Facebook mỗi 2 ngày, có hơn 247 tỷ email được gửi đi mỗi ngày, gần 80% email là thư rác, số lượng tin nhắn văn bản được gửi và nhận mỗi ngày vượt qua số lượng con người trên hành tinh này, 48 giờ video được đăng tải lên YouTube mỗi phút,
tương đương lượng nội dung số dài 8 năm mỗi ngày[1]
Trong kỷ nguyên của IoT, các cảm biến được nhúng vào trong các thiết bị di động như điện thoại di động, ô tô, và máy móc công nghiệp,… việc chuyển dữ liệu định kỳ hoặc liên tục từ chiếc xe bạn lái về máy chủ tại chính hãng không còn là chuyện viễn tưởng nữa Vấn đề chỉ còn là xử lý: kích thước, tốc độ, phương thức xử
lý và kết quả đầu ra Ford, GE hay Rolls Royce cùng rất nhiều hãng xe hơi khác đang đầu tư vào IoT Điều tương tự cũng xuất hiện ở nhiều ngành khác, vốn là kịch bản tất yếu của khái niệm vạn vật kết nối Hệ quả tất yếu là khối lượng dữ liệu số đang phình to ra với tốc độ chóng mặt Khối lượng dữ liệu mới được tạo ra nhiều và nhanh đến mức mà hai năm gần đây nhất chiếm đến 90% khối lượng dữ liệu trên thế giới hiện nay Những dữ liệu này tới từ mọi nơi Ví dụ như từ những chiếc cảm biến để thu thập thông tin thời tiết, những thông tin được cập nhật trên các trang web mạng xã hội, những bức ảnh và video kỹ thuật số được đưa lên mạng, dữ liệu
Trang 12ZB Dự báo đến năm 2020 là 40 ZB Dưới sự bùng nổ này, thuật ngữ Big Data được
sử dụng để chỉ những bộ dữ liệu khổng lồ, chủ yếu không có cấu trúc, được thu thập
từ nhiều nguồn khác nhau Với những tác động trong việc khám phá giá trị tiềm ẩn
to lớn, Big Data đang được xem là một yếu tố mới quan trọng mang lại lợi ích cho các tổ chức trong nhiều lĩnh vực khác nhau Các chuyên gia tài chính đánh giá đầu
tư vào Big Data sẽ là yếu tố then chốt để đạt được lợi thế cạnh tranh Chính vì những lợi ích to lớn mà Big Data có thể mang lại, nhiều tổ chức đã đầu tư mạnh vào việc nghiên cứu và ứng dụng vào xử lý khai thác Big Data [1]
Tại Tập đoàn Viễn thông Quân đội Viettel, cùng với việc mở rộng mạng lưới kinh doanh dịch vụ viễn thông toàn cầu, khối lượng dữ liệu tăng trưởng rất mạnh Đặc biệt là số liệu kinh doanh: hóa đơn điện tử, giao dịch đấu nối, dữ liệu cước, … Việc đầu tư vào nghiên cứu ứng dụng công nghệ Big Data để đưa ra các quyết định kinh doanh kịp thời và chính xác là rất cần thiết
Từ nhu cầu thực tế đó, tác giả quyết định chọn đề tài “Công nghệ Big Data
và ứng dụng phân tích số liệu kinh doanh của Tập đoàn Viettel” cho luận văn
tốt nghiệp với mục đích nghiên cứu công nghệ Big Data và giải quyết bài toán xử lý
số liệu kinh doanh tại Viettel
Luận văn của Tác giả gồm có 3 chương với nội dung cơ bản sau:
Chương 1: Làm rõ định nghĩa Big Data và hiện trạng ứng dụng khai thác xử
lý Big Data ở Việt Nam và trên thế giới Giới thiệu tổng quan về 3 giải pháp Big Data Đề xuất sử dụng công nghệ Apache Hadoop để xây dựng module xử lý số liệu kinh doanh của Viettel
Chương 2: Trình bày chi tiết công nghệ Hadoop
Chương 3: Trình bày xây dựng ứng dụng xử lý số liệu kinh doanh tại
Viettel
Trang 133
TỔNG QUAN VỀ BIG DATA
Khái niệm về Big data
Big Data là một thuật ngữ dùng để mô tả các bộ dữ liệu có kích thước rất lớn, khả năng phát triển nhanh, rất khó thu thập, lưu trữ, quản lý và phân tích với các công cụ thống kê hay ứng dụng cơ sở dữ liệu truyền thống Big Data rất quan trọng với các tổ chức, doanh nghiệp Dữ liệu ngày một lớn và nhiều sẽ giúp các phân tích càng chính xác hơn Việc phân tích chính xác này sẽ giúp doanh nghiệp đưa ra các quyết định giúp tăng hiệu quả sản xuất, giảm rủi ro và chi phí [2]
Big Data có thể bao gồm ba nhóm kiểu dữ liệu
Thứ nhất là dữ liệu của các hệ thống doanh nghiệp truyền thống bao gồm các
dữ liệu từ hệ thống CRM, các giao dịch của hệ thống ERP, các dữ liệu kế toán…
Thứ hai là dữ liệu máy tạo ra/ Dữ liệu từ các thiết bị cảm biến: Bao gồm CDR, các dữ liệu ghi log thiết bị, …
Thứ ba là dữ liệu mạng xã hội (Social data): bao gồm các dữ liệu được sinh
ra từ quá trình sử dụng mạng xã hội của người dùng như: hình ảnh, video, thông tin trên Facebook, Twitter, …
Trang 144
Hình 1.1 Thống kê các nguồn dữ liệu hiện nay[2]
Các đặc tính của việc xử lý Big Data
Nói đến Big Data người ta thường nói đến bốn chữ “V” thể hiện đặc trưng của Big Data
Thứ nhất là độ lớn dữ liệu (volume), nghĩa là dữ liệu sinh ra tự động có số lượng nhiều hơn rất nhiều so với dữ liệu truyền thống Dữ liệu có thể sinh ra hàng
TB trong thời gian ngắn và dữ liệu lưu trữ có thể lên đến PB Cách đây vài năm, việc lưu trữ dữ liệu lớn là một vấn đề khó khăn Tuy nhiên hiện nay, với việc phần cứng ngày càng rẻ cộng thêm công nghệ lưu trữ đám mây thì việc xác định giá trị cần thiết từ tập dữ liệu lớn mới là vấn đề cốt yếu
Thứ hai là tốc độ xử lý dữ liệu (Velocity), tức là dữ liệu lớn không đồng nghĩa với xử lý chậm Ngày nay các hệ thống Mutilmedia cần xử lý nhanh và có phản hồi chấp nhận được với người dùng Trong việc xử lý dữ liệu lớn luôn cần quan tâm đến Tốc độ xử lý dữ liệu
Thứ ba là tính đa dạng dữ liệu (variety), tức là với việc thu thập từ nhiều nguồn dữ liệu khác nhau (web, mobile…), Big Data không chỉ có dữ liệu kiểu truyền thống dạng lược đồ cấu trúc mà ngày nay còn có nhiều loại dữ liệu khác như
Trang 15Ứng dụng của Big Data
Big Data và các ứng dụng có liên quan đang ngày càng được sử dụng rộng rãi trong các tổ chức, trong các lĩnh vực khác nhau, nhằm giảm thiểu các rủi ro, hỗ trợ tổ chức trong việc quản lý các hoạt động hằng ngày cũng như ra quyết định Như đã nói ở trên, vấn đề không phải chúng ta thu thập được bao nhiêu dữ liệu mà
là sẽ làm gì với tập dữ liệu được thu thập đó Dữ liệu càng lớn thì việc đưa ra quyết định cho một vấn đề càng chính xác Một tổ chức, doanh nghiệp sẽ lấy dữ liệu từ nhiều nguồn khác nhau, thu thập các dữ liệu phù hợp và phân tích để đưa ra quyết định, cho phép giảm chi phí và giảm thời gian thực hiện xây dựng sản phẩm, giúp lập kế hoạch phát triển và tối ưu hóa sản phẩm, hỗ trợ đưa ra quyết định tốt hơn trong kinh doanh
Các cơ quan chính phủ tìm cách phân tích dữ liệu nhằm tìm ra những cách thức thu thuế một cách khéo léo, dự đoán được tỷ lệ thất nghiệp, xu hướng nghề nghiệp trong tương lai, các doanh nghiệp trong lĩnh vực y tế cũng đang chủ động hơn trong việc quản lý và theo dõi sức khỏe khách hàng, thiết kế các gói sản phẩm hợp lý nhằm giảm chi phí chăm sóc sức khỏe Ngành khách sạn và du lịch sử dụng
dữ liệu từ nhiều nguồn như mạng xã hội và tạo ra những gói kỳ nghỉ cá nhân cho các khách hàng Các doanh nghiệp phân tích dữ liệu nhằm tìm hiểu hành vi khách hàng và tư vấn cho họ về danh mục sản phẩm, thời gian và địa điểm mua có những chính sách giá hấp dẫn Nhiều nghiên cứu đã tìm hiểu về các ứng dụng của Big Data
và các lĩnh vực trong đó Big Data có thể được áp dụng Chẳng hạn: Hsinchun, Chiang phân tích một số ứng dụng của Big Data bao gồm thương mại điện tử, chính phủ điện tử, khoa học và công nghệ, chăm sóc sức khỏe, và an ninh và an toàn công cộng O'Leary mô tả một số ưu điểm cũng như trở ngại của Big Data và các ứng
Trang 166
dụng nền tảng cảm biến trên thiết bị di động trong quản lý cơ sở hạ tầng đường bộ McKinsey và Company thực hiện nghiên cứu về những giá trị dữ liệu mang lại đối với y tế, quản lý công, bán lẻ, sản xuất ở Mỹ Báo cáo nêu rõ nếu Big Data được sử dụng một cách sáng tạo và hiệu quả để cải tiến năng suất và chất lượng công việc, các doanh nghiệp bán lẻ Mỹ có thể tăng lợi nhuận trên 60%, chi tiêu cho công nghiệp, y tế Mỹ có thể giảm trên 8%, các nền kinh tế phát triển ở châu Âu cũng có thể tiết kiệm được 149 triệu Euro nhờ việc cải tiến hiệu suất hoạt động
Ứng dụng Big Data trong tài chính ngân hàng, bảo hiểm
Nhiều cuộc khảo sát được thực hiện để xác định vai trò của Big Data trong hoạt động của tổ chức Khảo sát của Gartner FEI năm 2013 nhấn mạnh tầm quan trọng của BI và AI trong công việc của các giám đốc tài chính Nhờ khung nhìn tổng quan, rõ ràng vào dữ liệu của tổ chức, các giám đốc tài chính có thể có những quyết định tốt hơn, làm tăng hiệu quả hoạt động của tổ chức, tăng tính liên kết giữa tài chính và hoạt động kinh doanh chung, cũng như tăng cường tính linh hoạt của tổ chức Một ví dụ từ ngân hàng China Merchants Bank (CMB) Trung Quốc, cho thấy hiệu quả của việc ứng dụng Big Data Để thu hút khách hàng, ngân hàng sử dụng dịch vụ tích điểm và đổi điểm Ngân hàng cũng sử dụng mô hình cảnh báo khả năng người dùng ngưng sử dụng dịch vụ để xây dựng các gói dịch vụ tín dụng lãi suất cao nhằm giữ chân khách hàng Đồng thời, thông qua việc phân tích
dữ liệu các giao dịch, các khách hàng tiềm năng là các doanh nghiệp nhỏ, cũng
được xác định một cách hiệu quả [1]
Có nhiều nguyên nhân dẫn đến quyết định đầu tư vào các dự án Big Data Trên thực tế, nhiều ứng dụng về Big Data được nghiên cứu và phát triển nhằm cải tiến hiệu quả hoạt động của các tổ chức tín dụng và bảo hiểm
1.2.1.1 Quản lý rủi ro
Hoạt động quản lý rủi ro được cải thiện đáng kể nhờ những tác động của Big Data Trước đây, hoạt động phân tích các tình huống rủi ro chủ yếu phụ thuộc vào việc phân tích khách hàng, các danh mục đầu tư, độ tin cậy tín dụng Hiện nay, với
Trang 177
những nguồn dữ liệu từ các phương tiện truyền thông xã hội cho phép tạo ra những hiểu biết mới về các danh mục rủi ro của khách hàng Các dữ liệu thu được từ nhiều nguồn không liên kết làm tăng khả năng phát hiện các hoạt động gian lận sớm hơn
so với các phương pháp hiện hành Hiểu về rủi ro và làm thế nào để quản lý rủi ro tốt hơn là mối quan tâm chính của các công ty bảo hiểm Phân tích rủi ro bao gồm việc đanh giá khả năng rủi ro xảy ra và chi phí phải bỏ ra trong từng trường hợp rủi
ro Những dữ liệu như mưa đá, cháy rừng, bão lụt, tội phạm và các yếu tố khác cần được khai thác và tận dụng để đánh giá rủi ro Các dữ liệu từ các thiết bị viễn thông, thiết bị cảm biến được cài đặt trong các phương tiện giao thông có thể thu thập những dữ liệu như địa điểm, tốc độ, quãng đường đi, tình trạng vận hành của phương tiện trong thời gian thực, giúp cải thiện khả năng đánh giá rủi ro, từ đó,
doanh nghiệp có thể tạo ra nhiều chiến lược giá khác nhau [1]
1.2.1.2 Tư vấn Big Data và các ứng dụng liên quan
Cho phép các tổ chức tài chính thu thập và tổ chức các dữ liệu như sở thích của khách hàng, lịch sử giao dịch, phương thức giao dịch, vị trí địa lý, thông tin gia đình, v.v Từ đó, hệ tư vấn sẽ dựa vào mục tiêu kinh doanh của ngân hàng, nhu cầu của Khách hàng để từ đó đưa ra các kiến nghị về bán chéo, bán thêm hoặc cung cấp các dịch vụ tốt hơn cho khách hàng Thông qua việc phân tích dữ liệu khách hàng ở cấp độ tinh vi hơn, các tổ chức còn có thể tạo ra những cơ hội mới từ việc tạo ra
những sản phẩm mục tiêu mới [1]
1.2.1.3 Các kỹ thuật thống kê trên dữ liệu lịch sử
Cho phép dự đoán các hành động tiếp theo của khách hàng Nền tảng phân tích dữ liệu lớn thông qua việc sử dụng các kỹ thuật xử lý phân tán (Map-Reduce) cho phép tổ chức tài chính, ngân hàng có thể lưu trữ, xử lý khối lượng dữ liệu rất lớn Nhờ vậy, các mô hình dự báo có thể chạy trên toàn bộ các tập dữ liệu, giúp rút
ngắn thời gian trích xuất, khám phá những thông tin quý giá còn tiềm ẩn
Trang 188
Thương mại
Các phân tích trên lượng dữ liệu lớn còn góp phần cải tiến và tối ưu hóa quá trình ra quyết định, giảm thiểu rủi ro, tạo ra những giá trị gia tăng cho doanh nghiệp Bằng việc khai thác nền tảng phân tích dữ liệu lớn, các doanh nghiệp có thể khám phá các giá trị tiềm ẩn to lớn, thông qua các khung nhìn tổng hợp về hành vi mua hàng của khách hàng Chẳng hạn, các công ty kinh doanh qua mạng chẳng những có thể theo dõi để biết được không chỉ những thông tin như khách hàng mua
gì, mà còn biết được họ xem những mặt hàng nào, họ xem những gì, làm gì mỗi lần
họ truy cập vào trang web, hay mức độ khách hàng bị tác động bởi những chính sách khuyến mãi hay bình luận từ những khách hàng khác; từ đó phát hiện ra được những điểm chung của những nhóm khách hàng Ngoài ra, sự phát triển của Internet, web 2.0, các thiết bị di động, cho phép tổ chức sử dụng nhiều phương thức khác nhau để tương tác với khách hàng bên cạnh các phương tiện truyền thống Việc phân tích các giao dịch của khách hàng qua các kênh khác nhau này cho phép
tổ chức hiểu hành vi khách hàng, phân cụm nhóm khách hàng, từ đó có thể cung cấp các sản phẩm và dịch vụ phù hợp với yêu cầu khách hàng Big Data còn mang lại lợi ích cho các doanh nghiệp trong việc lên kế hoạch bán hàng Bằng việc so sánh các yếu tố khác nhau từ nguồn dữ liệu khổng lồ, doanh nghiệp có thể tối ưu hóa việc định giá cho các sản phẩm Việc sử dụng Big Data trong quản lý chuỗi cung ứng cho phép các doanh nghiệp tối ưu hóa dự trữ kho, vận chuyển, phối hợp với nhà cung cấp nhằm giảm thiểu khoảng cách giữa nhà cung cấp và người tiêu thụ
[1]
Hiện trạng khai thác Big Data trên thế giới và ở Việt Nam
Phân tích, khai phá dữ liệu không phải là lĩnh vực mới Về bản chất, phân tích dữ liệu, kho dữ liệu và thông minh doanh nghiệp BI là các khái niệm đi liền với nhau, là các giai đoạn phát triển của nhau, hỗ trợ nhau Trong đó, thiết kế và triển khai Kho dữ liệu là bước chuẩn bị cho quá trình phân tích dữ liệu, các ứng dụng BI
là công cụ để khai thác các dữ liệu này Trên thế giới, rất nhiều doanh nghiệp từ lâu
đã ứng dụng khai phá dữ liệu (data mining) và xem đó như là phương pháp tạo ra sự
Trang 199
khác biệt, đột phá trong các hoạt động sản xuất kinh doanh Các hãng phần mềm lớn đều có các nền tảng phân tích dữ liệu của riêng mình như: Oracle Exadata, IBM Netezza, HP Vertica, EMC Greenplum, SAP HANA, Google, Ngoài ra, các công
ty công nghệ mới nổi cũng đang phát triển những sản phẩm cho riêng mình như Amazon Redshift, Cloudera Impala, ADATAO pAnalytics, Metamarkets Druid…
Hình 1.2 Biểu đồ google trends về sự quan tâm tới các sản phẩm phân tích dữ liệu
trên thế giới [1]
Đặc biệt, vài năm trở lại đây, phân tích dữ liệu luôn được các doanh nghiệp viễn thông quan tâm, đầu tư, có thể thấy điều đó qua bản báo cáo nghiên cứu của Heavy Reading tháng 12/2013 (thực hiện dưới sự tài trợ của Huawei) được biểu diễn trong Hình 1.3
Trang 2010
Hình 1.3 Nhà cung cấp dịch vụ lập kế hoạch đầu tư vào Big Data và phân tích sâu
[1]
Tuy nhiên ở Việt Nam nói chung và Viettel nói riêng, việc khai phá dữ liệu
và phân tích dữ liệu thời gian thực (real-time analysis) còn là cái gì đó mới mẻ Hệ thống ZTE BI hiện đang triển khai ở Viettel thuần túy là một hệ thống báo cáo điều hành (MIS), chưa có các cấu phần rất quan trọng là cấu phần tương tác với khách hàng hoặc các hệ thống nghiệp vụ OLTP khác và cấu phần phân tích dữ liệu thời gian thực Các công ty phần mềm trong nước hiện cũng chưa phát triển nền tảng phân tích dữ liệu lớn thời gian thực nào Dự kiến, theo xu thế chung, các doanh nghiệp sẽ nhanh chóng nhận ra sự cần thiết của tương tác và phân tích dữ liệu thời gian thực Đối với Viettel, nhu cầu này đã là rất hiển nhiên Như vậy, phát triển sản phẩm Viettel Realtime Analytic Processing (vRTAP) vừa đáp ứng nhu cầu nội tại, vừa mở ra một phân khúc thị trường phần mềm mới trong nước và xa hơn nữa là cạnh tranh với các sản phẩm nước ngoài
Trang 2111
Dữ liệu lớn không chỉ là thách thức dành cho tổ chức và doanh nghiệp; hơn thế, dữ liệu lớn là cơ hội để tìm kiếm những thông tin chiến lược từ những dạng dữ liệu mới, để bảo đảm rằng công việc kinh doanh bền vững, có hiệu quả hơn, và cũng là cơ hội để tìm ra câu trả lời cho những vấn đề mà trước đây chưa có lời giải đáp
Tổng quan về các giải pháp Big Data
Google Cloud Platform
Xây dựng hệ thống xử lý Big Data dựa trên nền tảng điện toán đám mây
“Cloud computing” sẽ nhanh hơn, sẽ không phải lo lắng về hạ tầng bên dưới Đặc biệt hơn, nó cho phép:
Không vận hành (NoOps): Nhà cung cấp cloud sẽ chịu trách nhiệm triển khai, quản lý và nâng cấp hạ tầng để làm cho hệ thống tin cậy và có khả năng mở rộng “NoOps” có nghĩa là nền tảng tự động xử lý các công việc như thế cho người
sử dụng, giải phóng người dùng hoàn toàn để có thể tập trung vào việc hiểu và khai thác giá trị dữ liệu
Chi phí hiệu quả: Không chỉ dễ sử dụng và nhanh, một giải pháp “NoOPs” cung cấp lợi ích chi phí khá rõ ràng thông qua việc loại bỏ công việc vận hành, nhưng lợi ích về mặt chi phí của Big Data theo “Cloud way” còn hơn nữa - nền tảng tự động mở rộng và tối ưu việc tiêu tốn hạ tầng của bạn, bỏ qua các tài nguyên nhàn rỗi như các cụm không hoạt động Bạn quản lý chi phí bằng số truy vấn và độ trễ dựa trên phân tích lợi ích/chi phí Bạn không bao giờ phải cấu trúc lại hệ thống chỉ để điều chỉnh chi phí
Trang 2212
Cộng tác an toàn và dễ dàng: Bạn có thể chia sẻ bộ dữ liệu “data set” lên Google Cloud Storage hoặc các bảng trong google big query với bộ cộng tác bên trong hoặc bên ngoài tổ chức mà không cần tạo bản sao hoặc gán quyền truy cập cơ
sở dữ liệu Có một phiên bản dữ liệu mà bạn kiểm soát và xác thực quyền truy cập
mà không ảnh hưởng đến hiệu năng
Hình 1.4 Mô hình kiến trúc mẫu hệ thống Big Data của google [3]
1.4.1.2 Các thành phần
1.4.1.2.1 Google App Engine
Google App Engine (gọi tắt là GAE hay App Engine) là một môi trường phát triển ứng dụng dựa trên công nghệ điện toán đám mây Ở đó, Google cung cấp một
hệ thống gồm: ngôn ngữ lập trình, hệ cơ sở dữ liệu, các thư viện lập trình Người lập trình sẽ viết ứng dụng và ứng dụng này sẽ chạy trên các máy chủ của Google
Google App Engine được cung cấp miến phí cho mỗi ứng dụng trong một giới hạn, khi các ứng dụng vượt qua mức hạn mức thì phải trả thêm khoản phí cho mức vượt quá này
Hiện App Engine hỗ trợ 2 loại ngôn ngữ chính là: Python và Java Ngôn ngữ
Go đang ở mức thử nghiệm Một số ngôn ngữ khác như PHP cũng có thể chạy được nếu cài cùng với bộ chuyển từ PHP sang Java
Trang 2313
1.4.1.2.2 Google Cloud Pub/Sub
Google Cloud Pub / Sub mang lại khả năng mở rộng, tính linh hoạt và độ tin cậy khi giao tiếp với các doanh nghiệp ngoài qua bản tin - định hướng đến điện toán đám mây Bằng cách cung cấp nhiều - nhiều, bản tin không đồng bộ tách riêng người gửi và người nhận, nó cho phép giao tiếp an toàn và tính sẵn sàng cao giữa các ứng dụng được viết một cách độc lập Google Cloud Pub / Sub cung cấp độ trễ thấp, giúp nhà phát triển tích hợp nhanh chóng các hệ thống lưu trữ trên nền tảng đám mây của Google và bên ngoài
1.4.1.2.3 Google Cloud Monitoring
Hiểu sâu hơn về hiệu suất và tính sẵn sàng của các ứng dụng điện toán đám mây của bạn Xem xét số liệu hiệu suất và các bản ghi cho các dịch vụ Google Cloud Platform và các máy ảo, và tạo ra các biểu đồ giám sát tùy biến Google Cloud Monitoring có nhiều ưu điểm Thứ nhất là cài đặt đơn giản, tức là người sử dụng không bao giờ phải lo lắng về việc triển khai một hệ thống giám sát một lần nữa Thứ hai là cung cấp biểu đồ mạnh mẽ, cho phép tìm kiếm và cảnh báo cho các công cụ bên ngoài, cho phép Alerting mạnh mẽ, tức là xác định cảnh báo theo quy luật để phù hợp với ứng dụng của người sử dụng Ngoài ra nó còn cho phép nhận thông báo qua email, tin nhắn SMS, chat và nhiều hơn nữa, các thông báo về các số liệu cá nhân và ngưỡng hoặc trên hiệu suất của nhóm tổng hợp
Thứ ba là có thể tích hợp với các hệ thống OSS, nó cung cấp cái nhìn sâu sắc vào nhiều máy chủ mã nguồn mở phổ biến với cấu hình tối thiểu
1.4.1.2.4 Google Cloud Storage
Google Cloud Storage là dịch vụ lưu trữ dữ liệu mạnh mẽ, đơn giản và chi phí hiệu quả Dịch vụ lưu trữ mạnh mẽ và đơn giản, cung cấp cho các nhà phát triển
và các tổ chức CNTT tính sẵn sàng cao khi lưu trữ đối tượng Google đã tạo ra ba lựa chọn đơn giản để giúp bạn giải quyết nhu cầu của các ứng dụng của bạn trong khi vẫn giữ chi phí thấp, cung cấp cho bạn một phương pháp truy cập đơn giản và phù hợp
Trang 2414
Dịch vụ có Chi phí thấp và không có phí tối thiểu, tức là không có lệ phí tối thiểu cho những gì bạn sử dụng, mô hình Google Cloud Storage là chi phí hiệu quả nhất trên thị trường Ngoài ra, với quản lý vòng đời của Google Cloud Storage cho phép bạn giảm chi phí hơn nữa bằng cách lưu trữ các đối tượng thành Cloud Storage tuyến tính và thông qua xóa bỏ lịch trình
Dịch vụ có hiệu suất cao, ổn định và sẵn sang, tức là lưu trữ dữ liệu của bạn trên cơ sở hạ tầng của Google với mức độ rất cao về độ ổn định và tính sẵn sàng
Dịch vụ an toàn, riêng tư và bảo mật, tức là Google Cloud Storage được xây dựng với một chiến lược lưu trữ bản sao Tất cả các dữ liệu được mã hóa cả khi đang sử dụng và đang lưu trữ Các mô hình bảo mật của Google là một quá trình end- to-end, được xây dựng trên hơn 15 năm kinh nghiệm
1.4.1.2.5 Google Cloud Dataflow
Một mô hình lập trình và dịch vụ điện toán đám mây cho phép quản lý đầy
đủ xử lý dữ liệu lớn theo luồng và lô
Quản lý & hợp nhất: Dataflow là một mô hình lập trình hợp nhất và một dịch
vụ được quản lý để phát triển và thực hiện một loạt các chuỗi xử lý dữ liệu bao gồm ETL, tính toán lô, và tính liên tục Cloud Dataflow giải phóng bạn khỏi nhiệm vụ như quản lý tài nguyên và tối ưu hóa hiệu năng
Quản lý đầy đủ: Các dịch vụ quản lý xử lý trong suốt vòng đời tài nguyên và
có thể tự động cung cấp các tài nguyên để giảm thiểu độ trễ trong khi vẫn duy trì hiệu quả sử dụng Tài nguyên dataflow được phân bổ theo yêu cầu cung cấp cho bạn nguồn tài nguyên gần như vô hạn để giải quyết những thách thức lớn khi xử lý
dữ liệu của bạn
Mô hình lập trình hợp nhất: Dataflow cung cấp nguyên thủy lập trình như điều khiển cửa sổ và tự động sửa lỗi một cách mạnh mẽ mà có thể được áp dụng trên cả hai lô và dòng nguồn dữ liệu dựa trên nguồn dữ liệu Dataflow loại bỏ hiệu quả chi phí chuyển đổi mô hình lập trình giữa lô và xử lý dòng liên tục bằng cách cho phép các nhà phát triển thể hiện yêu cầu tính toán bất kể nguồn dữ liệu nào
Trang 2515
Tích hợp & nguồn mở: Được xây dựng trên các dịch vụ như Google Compute Engine, Dataflow là một môi trường tính toán hoạt động quen thuộc mà hoàn toàn phù hợp với Cloud Storage, Cloud Pub / Sub, Cloud Datastore, Cloud Bigtable, và BigQuery Các mã nguồn mở dựa trên Java Cloud Dataflow SDK cho phép các nhà phát triển thực hiện các phần mở rộng tùy chỉnh và mở rộng Dataflow
để thay thế môi trường dịch vụ
Quan hệ đối tác & Tích hợp: đối tác Google Cloud Platform và các nhà phát triển bên thứ 3 đã phát triển tích hợp với Dataflow một cách nhanh chóng và dễ dàng để cho phép các nhiệm vụ xử lý dữ liệu mạnh mẽ của bất kỳ kích thước nào Tích hợp được thực hiện với các API mở được cung cấp bởi Dataflow
Một kho dữ liệu nhanh chóng, tiết kiệm và quản lý đầy đủ để phân tích dữ liệu quy mô lớn
Phân tích dữ liệu Quy mô lớn: BigQuery là quản lý đầy đủ, NoOps, phân tích
cơ sở dữ liệu chi phí thấp của Google Với BigQuery bạn không có cơ sở hạ tầng để quản lý và không cần một quản trị cơ sở dữ liệu, sử dụng SQL quen thuộc và có thể tận dụng lợi thế của mô hình pay-as-you-go (dùng bao nhiêu trả bấy nhiêu) Bộ sưu tập các tính năng này cho phép bạn tập trung vào việc phân tích dữ liệu để tìm hiểu
ý nghĩa BigQuery là một nền tảng phân tích dữ liệu lớn mạnh mẽ được sử dụng bởi tất cả các loại hình tổ chức, từ các startups đến 500 công ty lớn
Tốc độ & Hiệu năng: Nạp dữ liệu của bạn từ Google Cloud Storage hoặc Google Cloud kho dữ liệu , hoặc chuyển nó vào BigQuery để cho phép phân tích thời gian thực dữ liệu của bạn Với BigQuery bạn có thể dễ dàng triển khai cơ sở dữ liệu quy mô Petabyte
Giá không thể tin nổi: BigQuery tách khái niệm về lưu trữ và tính toán dữ liệu lớn, cho phép bạn mở rộng quy mô và thanh toán cho mỗi cái một cách độc lập Ngoài ra, các terabyte đầu tiên (1 TB) dữ liệu xử lý mỗi tháng là miễn phí Vui lòng tham khảo trang định giá để biết thêm thông tin
Trang 261.4.2.1 Giới thiệu tổng quan
Khi chúng ta đã trở thành một xã hội kỹ thuật số, số lượng dữ liệu được tạo ra và thu thập được phát triển và đẩy nhanh đáng kể Phân tích dữ liệu này
sẽ trở thành một thách thức với các công cụ truyền thống Đòi hỏi chúng ta phải cải tiến để thu hẹp khoảng cách giữa dữ liệu được tạo ra và dữ liệu có thể phân tích hiệu quả
Công cụ dữ liệu lớn và các công nghệ đem lại các cơ hội và thách thức trong việc có thể phân tích dữ liệu một cách hiệu quả để hiểu rõ hơn về sở thích của khách hàng, đạt được một lợi thế cạnh tranh trên thị trường, và phát triển doanh nghiệp của bạn Kiến trúc quản lý dữ liệu đã tiến hóa từ kho dữ liệu truyền thống thành mô hình kiến trúc phức tạp hơn, giải quyết yêu cầu nhiều hơn, chẳng hạn như thời gian thực và xử lý hàng loạt; dữ liệu có cấu trúc và không có cấu trúc; giao dịch tốc độ cao;
Amazon Web Services (AWS) cung cấp một nền tảng rộng các dịch
vụ quản lý để giúp bạn xây dựng an toàn và liên tục mở rộng quy mô ứng dụng dữ liệu lớn end-to-end một cách nhanh chóng và dễ dàng Cho dù các ứng dụng của bạn yêu cầu streaming thời gian thực hay xử lý dữ liệu hàng loạt, AWS cung cấp cơ
sở hạ tầng và các công cụ để giải quyết dữ liệu lớn của bạn trong tương lai Không cần mua sắm phần cứng, không cần bảo trì và mở rộng cơ sở hạ tầng, duy nhất những gì bạn cần là thu thập, lưu trữ, xử lý và phân tích dữ liệu lớn AWS có một
hệ sinh thái các giải pháp phân tích thiết kế đặc biệt để xử lý tăng số lượng dữ liệu
và cung cấp cái nhìn sâu sắc vào doanh nghiệp của bạn Amazon web services (AWS) là tập hợp các dịch vụ cung cấp cho người lập trình có khả năng truy cập tới
hạ tầng kiến trúc tính toán kiểu sẵn sàng để sử dụng của Amazon AWS cung cấp
Trang 27Đối với các ứng dụng quan trọng trên cơ sở hạ tầng truyền thống, nhà thiết
kế hệ thống không có sự lựa chọn mà phải để quá hơn thực tế để dự phòng Ngược lại, trên AWS bạn có thể cung cấp dung lượng nhiều hơn và tính toán trong một vài phút, nghĩa là các ứng dụng dữ liệu lớn của bạn phát triển và co theo nhu cầu, và hệ thống của bạn chạy gần đến hiệu quả tối ưu nhất Ngoài ra, bạn sẽ có được tính linh hoạt trên cơ sở hạ tầng toàn cục với truy cập nhiều vùng địa lý khác nhau mà AWS cung cấp, cùng với khả năng sử dụng các dịch vụ mở rộng khác để xây dựng các ứng dụng dữ liệu lớn phức tạp Những dịch vụ khác bao gồm Amazon Simple Storage Service (Amazon S3) để lưu trữ dữ liệu và AWS Data Pipeline để dàn xếp việc di chuyển và chuyển đổi dữ liệu dễ dàng AWS IoT, cho phép kết nối các thiết
bị tương tác với các ứng dụng điện toán đám mây và các thiết bị kết nối khác
Ngoài ra, AWS có nhiều lựa chọn để giúp đưa dữ liệu vào đám mây, bao gồm thiết bị an toàn như AWS Import / Export Snowball để tăng tốc chuyển dữ liệu quy mô petabyte, Amazon Kinesis Firehose để tải luồng dữ liệu, và khả năng mở rộng kết nối tin qua AWS Direct Connect
Khi di động tiếp tục phát triển nhanh chóng trong cách sử dụng, bạn có thể
sử dụng bộ dịch vụ trong AWS Mobile Hub để thu thập và đo lường sử dụng ứng dụng và dữ liệu hoặc xuất dữ liệu cho mục đích phân tích thêm
AWS phù hợp lý tưởng cho việc giải quyết các vấn đề dữ liệu lớn, và nhiều khách hàng đã thực hiện phân tích dữ liệu lớn thành công trên AWS
Trang 2818
Hình 1.5 Mô hình kiến trúc tích hợp Amazon webservice điển hình [3]
1.4.2.2 Các thành phần
1.4.2.2.1 Dịch vụ lưu trữ đơn giản của Amazon (S3)
S3 là hệ thống lưu trữ dữ liệu nhanh và có thể mở rộng được trên internet giúp bạn lưu trữ và lấy dữ liệu một cách đơn giản với bất cứ dung lượng nào, bất cứ khi nào và bất cứ đâu trên thế giới Bạn trả phí dựa trên dung lượng lưu trữ và băng thông mà bạn dùng Không phí cài đặt, không phí tối thiểu hay phí phụ trội
Amazon cung cấp sự quản lý và duy trì của nền tảng lưu trữ, giúp bạn thoải mái tập trung vào các chức năng quan trọng của hệ thống và ứng dụng của bạn S3
là nền tảng công nghiệp mà luôn sẵn sàng cho nhu cầu lưu trữ dữ liệu của bạn Nó tuyệt vời cho:
Lưu trữ dữ liệu cho các ứng dụng của bạn
Sao lưu dữ liệu cho doanh nghiệp hoặc cá nhân
Phân tán nhanh và rẻ các nội dung làm tiêu hao băng thông lớn tới khách hàng của bạn
Tính năng của S3 bao gồm:
Tính ổn định
Trang 29Tính mở rộng
Thiết kế của S3 cung cấp một cấp độ cao về tính mở rộng và cho phép sự điều chỉnh dễ dàng trong dịch vụ khi lượng truy cập vào ứng dụng web của bạn tăng đột biến với lưu lượng khổng lồ
1.4.2.2.2 Amazon Kinesis Streams
Sử dụng Amazon Kinesis Streams để thu thập và xử lý các luồng lớn các bản ghi dữ liệu trong thời gian thực
Bạn sẽ tạo ra các ứng dụng xử lý dữ liệu, được biết đến là ứng dụng Amazon Kinesis Streams Một ứng dụng Amazon Kinesis Streams điển hình đọc dữ liệu từ một dòng Amazon Kinesis như các bản ghi dữ liệu Các ứng dụng này có thể
sử dụng thư viện Amazon Kinesis Client, và chúng có thể chạy trên Amazon EC2 Các bản ghi được xử lý có thể được gửi đến các biểu đồ, sử dụng để tạo ra các cảnh báo, tự động thay đổi chiến lược giá và quảng cáo, hoặc gửi dữ liệu đến một loạt các dịch vụ AWS khác
Bạn có thể sử dụng Streams cho lấy, gộp dữ liệu nhanh chóng và liên tục Các loại dữ liệu sử dụng bao gồm các dữ liệu cơ sở hạ tầng log, các bản ghi ứng
Trang 3020
dụng, phương tiện truyền thông xã hội, dữ liệu thị trường thức ăn, và dữ liệu click trên trang web
Sau đây là những tình huống điển hình cho việc sử dụng Streams:
Tăng tốc việc đưa log và lượng dữ liệu vào xử lý: Bạn có thể có các nhà sản xuất đẩy dữ liệu trực tiếp vào luồng Ví dụ, đẩy log hệ thống và ứng dụng và chúng
sẽ sẵn để xử lý trong vài giây Điều này ngăn ngừa các dữ liệu log bị mất, nếu các ứng dụng có lỗi
Số liệu và báo cáo Thời gian thực: Bạn có thể sử dụng dữ liệu thu thập vào Streams để phân tích dữ liệu đơn giản và báo cáo trong thời gian thực Ví dụ, ứng dụng xử lý dữ liệu của bạn có thể làm việc trên các số liệu và báo cáo cho các bản ghi hệ thống và ứng dụng như các dữ liệu đang trong luồng, chứ không phải chờ đợi
để nhận được lô dữ liệu
Phân tích dữ liệu thời gian thực: Điều này kết hợp sức mạnh xử lý song song với các giá trị của dữ liệu thời gian thực Ví dụ, xử lý sự kiện click trang web trong thời gian thực
Xử lý dòng phức tạp: Bạn có thể tạo đồ thị dòng dữ liệu phức tạp, đưa dữ liệu từ nhiều ứng dụng Amazon Kinesis Streams vào dòng khác để xử lý luồng ra bởi ứng dụng Amazon Kinesis Streams
Lợi ích của việc sử dụng Streams: Trong khi bạn có thể sử dụng Streams để giải quyết một loạt các vấn đề luồng dữ liệu, một cách sử dụng phổ biến là gộp dữ liệu thời gian thực theo sau bằng cách tải các dữ liệu tổng hợp thành một kho dữ liệu hoặc cụm Map-Reduce
Dữ liệu được đưa vào Amazon Kinesis Stream, đảm bảo độ bền và độ co dãn Việc chậm trễ giữa thời gian mộtbản ghi được đưa vào dòng và thời gian nó có thể được lấy ra thường là ít hơn 1 giây - nói cách khác, một ứng dụng Amazon Kinesis Streams có thể bắt đầu tiêu thụ dữ liệu từ dòng gần như ngay lập tức sau khi
dữ liệu được thêm vào Các khía cạnh dịch vụ quản lý của Streams giúp bạn thoát khỏi gánh nặng hoạt động của việc tạo ra và chạy một đường ống nạp dữ liệu Bạn
có thể tạo ứng dụng loại map-reduce, và độ co giãn của Streams cho phép bạn mở
Trang 31và lấy dữ liệu để lưu trữ dữ liệu như Amazon S3 Các bảng chạy gộp DynamoDB sau đó được đọc bởi một bảng điều khiển cho các báo cáo cập nhật theo phút
Thư viện Amazon Kinesis client cho phép chịu lỗi dữ liệu từ các luồng và cung cấp rộng hỗ trợ cho các ứng dụng Amazon Kinesis Streams
1.4.2.2.3 Amazon DynamoDB
DynamoDB là môt dịch vụ quản lý NoSQL có khả năng đáp ứng hiệu suất
cao và nhanh kèm theo khả năng mở rộng Nếu bạn là một nhà phát triển, bạn có thể
sử dụng DynamoDB để tạo ra một bảng có khả năng lưu trữ và truy xuất bất kỳ số
lượng dữ liệu, mà vẫn có thể phục vụ cho bất kỳ mức độ lượng yêu cầu nào
DynamoDB tự động phân tán dữ liệu và lưu lượng của một bảng ra một số
lượng server vừa đủ để có thể xử lý lượng yêu cầu đặt ra bơi khách hàng và lượng
dữ liệu lưu trữ, và đồng thời đảm bảo hiệu suất nhanh và đồng nhất Tất cả dự liệu
được lưu trữ trên SSD và tự động được sao chép ra các vùng sẵn sằng (Availability Zones) trong một khu vực (Region) để cung cấp độ sẵn sàng cao và độ bền của dữ liệu (high availablity and data durability)
Nếu bạn là một nhà quản lý dữ liệu, bạn có thể tạo một bảng dữ liệu mới, mở rộng hay thu hẹp yêu cầu capacity mà không bị giảm hiệu suất, và có thể thây được
các thông số qua AWS Management Console Với DynamoDB, bạn có thể phó
thác gánh nặng quản lý và mở rộng dữ liệu cho AWS và không phải lo lắng về việc cung cấp hardware, thiết lập và cài đặt, sao chép dữ liệu
Trang 3222
1.4.2.2.4 AWS Lambda
AWS Lambda là một dịch vụ tính toán nơi mà bạn có thể tải mã nguồn của mình lên, và dịch vụ AWS Lambda sẽ giúp bạn chạy đoạn mã đó bằng việc sử dụng các tài nguyên sẵn có của AWS Sau khi bạn tải mã, và bạn tạo ra một hàm Lambda, AWS sẽ cung cấp và quản lý các server mà bạn sử dụng để chạy mã Về phần sử dụng AWS, bạn có thể làm như sau:
Một dịch vụ tính toán hướng sự kiện nơi mà AWS Lambda chạy mã của bạn
và trả về các sự kiện, những thay đổi về data được đẩy vào một bucket của Amazon S3 hoặc là một bảng của Amazon DynamoDB
Dịch vụ tính toán để chạy mã và sẽ trả về các yêu cầu HTTP sử dụng Amazon API Gateway hoặc API dùng đến AWS SDKs
AWS Lambda sẽ chạy mã mà bạn tải trên môi trường có tính sẵn sàng cao và vận hành với quyền cao nhất đối với các tài nguyên tính toán, bao gồm server và hệ điều hành Những gì bạn cần làm là chắc chắn mã thuộc một trong những ngôn ngữ
mà AWS Lambda đang hỗ trợ: Node.js, Java, Python
AWS Lambda chỉ thực hiện mã của bạn chỉ khi cần thiết, và được mở rộng một cách tự động, từ một vài yêu cầu đến hàng ngàn yêu cầu/ giây Với khả năng
đó, bạn có thể sử dụng Lambda dễ dàng để xây dựng dữ liệu cho các dịch vụ AWS S3 và Amazon DynamoDB, luồng xử lý dữ liệu trong Amazon Kinesis hoặc tạo back end riêng mà AWS thực hiện có quy mô, năng suất và bảo mật
Khi nào chúng ta nên dùng AWS Lambda?
AWS Lambda là nền tảng tính toán lý tưởng cho nhiều kịch bản ứng dụng, cung cấp cho bạn môi trường ở những ngôn ngữ đang được hỗ trợ từ AWS ( Java, Node.js, Python )
Khi sử dụng AWS Lambda, bạn cần chắc chắn về phần mã của mình, phần việc còn lại bao gồm quản lý cân bằng bộ nhớ, CPU, mạng và các tài nguyên khác
sẽ do AWS Lambda đảm nhiệm Nó khá linh hoạt, có thể thực hiện và hoạt động các công việc với quyền cao nhất của mình, bao gồm lập dự phòng và hiệu năng, theo dõi các tài nguyên, bảo mật, deploy mã Tuy nhiên, điều đó đồng nghĩa với
Trang 33Lambda hoạt động ra sao?
Các thành phần chính: Lambda Function và Event Source
Lambda function và Event Source là những thành phần chính trong khi bạn làm việc với AWS Lambda
Event Source đưa ra các sự kiện, và một Lambda function tùy biến mã theo những gì bạn viết và xử lý các sự kiện một cách tự động, mỗi thay đổi của Event sẽ kích hoạt Lambda function tương ứng của bạn, bạn có thể gọi Lambda function điều hướng đến HTPS hoặc sử dụng AWS SDKs
Lambda function: bạn tải mã hoàn chỉnh của mình lên Lambda, khi đó chúng
ta gọi nó là function của Lambda, và Lambda function có quan hệ phụ thuộc với cấu hình mà bạn đã cài đặt, nói cách khác, bạn phải cài đặt trước tài nguyên cho function đó, và tất nhiên, cài đặt này có thể chỉnh sửa được
Tính toán tài nguyên cho hệ thống là con số ước lượng mà bạn đưa ra mà function của mình cần dùng Bạn chỉ cần tính toán về bộ nhớ, hệ thống sẽ tự tính toán ra CPU cho bạn
1.4.2.2.5 Amazon EMR
Amazon Elastic MapReduce (Amazon EMR) là một dịch vụ web mà giúp xử
lý lượng dữ liệu lớn một cách dễ dàng, nhanh chóng và tiết kiệm chi phí
Amazon EMR giúp đơn giản hoá xử lý dữ liệu lớn, sử dụng Apache Hadoop
- một framework mã nguồn mở, giúp phân phối và xử lý dễ dàng, nhanh chóng, và hiệu quả một lượng lớn dữ liệu trên Amazon EC2 instances Hay cũng có thể các
Trang 3424
framework phổ biến khác được phân phối như Apache Spark và Presto ở Amazon EMR, và tương tác với dữ liệu trong AWS store như Amazon S3 và Amazon DynamoDB
Amazon EMR bảo mật và đáng tin cậy xử lý các trường hợp sử dụng dữ liệu lớn của bạn, bao gồm phân tích log, lập chỉ mục web, lưu trữ dữ liệu, máy học, phân tích tài chính, mô phỏng khoa học, và tin học hóa
Các tính năng và lợi ích:
Dễ sử dụng
Chúng ta chỉ mất vài phút để khởi động một cụm Amazon EMR Không cần phải lo lắng về nút dự phòng, cài đặt cluster, cấu hình Hadoop, hoặc cụm điều chỉnh Amazon EMR sẽ chăm sóc các công việc này, do đó có thể tập trung vào phân tích
Chi phí thấp
Giá sử dung Amazon EMR là hợp lý và có thể dự toán: Chỉ phải trả một phí theo giờ cho mỗi giờ sử dụng Chúng ta có thể khởi động một cụm 10 nút Hadoop với $0,15 cho mỗi giờ Bởi vì Amazon EMR có hỗ trợ cho Amazon EC2 Spot và Instances Reserved, bạn cũng có thể tiết kiệm 50-80% chi phí đối với các trường hợp cơ bản
Mềm dẻo
Với Amazon EMR, bạn có thể cung cấp một, hàng trăm, hay hàng ngàn trường hợp tính toán để xử lý dữ liệu ở mọi quy mô Bạn có thể dễ dàng tăng hoặc giảm số lượng các trường hợp và bạn chỉ phải trả cho những gì bạn sử dụng
Đáng tin cậy
Chúng ta có thể dành ít thời gian điều chỉnh và giám sát các cluster của mình Amazon EMR đã điều chỉnh Hadoop cho các đám mây, cũng như màn hình cluster của bạn – thử lại công việc không thành công và tự động thay thế các trường hợp hoạt động kém
Bảo mật
Trang 3525
Amazon EMR tự động cấu hình Amazon EC2 thiết lập tường lửa kiểm soát truy cập mạng với các trường hợp, và bạn có thể khởi động các cụm trong một Amazon Virtual Private Cloud (VPC), một mạng lưới hợp lý cô lập xác định Đối với các đối tượng được lưu trữ trong Amazon S3, bạn có thể sử dụng Amazon S3
mã hóa server-side hoặc Amazon S3 mã hóa client-side với EMRFS, AWS Key Management Service hoặc khách hàng quản lý
Linh hoạt
Chúng ta có thể hoàn toàn kiểm soát cluster của mình Có quyền truy cập root để mọi trường hợp, có thể dễ dàng cài đặt thêm các ứng dụng, và có thể tùy chỉnh tất cả các cluster Amazon EMR cũng hỗ trợ nhiều bản phân phối Hadoop và các ứng dụng
1.4.2.2.6 Amazon Machine Learning
Amazon Machine Learning là một dịch vụ mà làm dễ dàng cho các nhà phát triển của tất cả các cấp độ kỹ năng sử dụng công nghệ học máy Amazon Machine Learning cung cấp công cụ trực quan và trình hướng dẫn bạn thông qua quá trình tạo học máy (ML) kiểu mô hình mà không cần phải tìm hiểu các thuật toán học máy
và công nghệ phức tạp Khi mô hình của bạn đã sẵn sàng, Amazon Machine Learning làm cho nó dễ dàng để có được những dự đoán cho ứng dụng của bạn sử dụng các API đơn giản
Amazon Machine Learning dựa trên chứng minh, khả năng mở rộng, công nghệ ML sử dụng trong nhiều năm bởi cộng đồng khoa học dữ liệu nội bộ của Amazon Dịch vụ này sử dụng các thuật toán mạnh mẽ để tạo ra mô hình ML bằng cách tìm các mẫu trong dữ liệu hiện có của bạn Sau đó, Amazon Machine Learning
sử dụng các mô hình để xử lý dữ liệu mới và tạo ra những dự đoán cho ứng dụng của bạn
Amazon Machine Learning là khả năng mở rộng và có thể tạo ra hàng tỷ dự báo hàng ngày và phục vụ những dự đoán trong thời gian thực Với Amazon Machine Learning, không có phần cứng hoặc phần mềm đầu tư trả trước, và bạn
Trang 36dữ liệu sử dụng công nghệ lưu trữ dạng cột trong khi dạng hàng ngang hoặc phân tán sắp xếp các truy vấn trên nhiều nút Như một dịch vụ quản lý, sự tự động hóa được cung cấp hầu hết cho các nhiệm vụ hành chính thông thường liên quan tới trích lập, cấu hính, giám sát, sao lưu, và bảo mật một kho giữ liệu Điều này đã khiến cho giá cả sử dụng dịch vụ không hề đắt đỏ cũng như khi suy trì sử dụng dịch
vụ Sự tự động hóa cho phép người dùng xây dựng một kho dữ liệu quy mô nhiều petabyte chỉ trong vài phút, trong khi những dịch vụ truyền thống phải mất thời gian dài có khi cả tháng mới có thể hoàn thành
Đối với các giám đốc kỹ thuật: Hadoop là một bộ phần mềm nguồn mở để khai phá Big Data có cấu trúc và không có cấu trúc về công ty của bạn Nó tích hợp với hệ sinh thái Business Intelligence của bạn
Đối với nhân viên pháp lý: Hadoop là một bộ phần mềm nguồn mở được nhiều nhà cung cấp đóng gói và hỗ trợ
Trang 3727
Đối với các kỹ sư: Hadoop là một môi trường song song thực thi map-reduce dựa trên Java, không chia sẻ gì cả Hãy nghĩ đến hàng trăm, hàng ngàn máy tính đang làm việc để giải quyết cùng một vấn đề, có khả năng khôi phục lỗi dựng sẵn Các dự án trong hệ sinh thái Hadoop cung cấp khả năng load (tải) dữ liệu, hỗ trợ
Đối với chuyên gia bảo mật: Hadoop là một bộ phần mềm bảo mật-Kerberos
Chúng ta sẽ tiếp tục nghiên cứu chi tiết Hadoop ở chương 2
Kết luận chương 1
Cùng với sự bùng nổ của công nghệ số, Big Data đã và đang trở thành
xu thế công nghệ mới mà các doanh nghiệp cần nắm bắt để phát triển
Nội dung của chương làm rõ định nghĩa Big data, các đặc trưng của Big Data và hiện trạng ứng dụng khai thác xử lý Big data trên thế giới và Việt Nam Giới thiệu tổng quan về 3 giải pháp Big data trên thế giới và các đặc điểm cùng với các trường hợp sử dụng Từ đó đề xuất sử dụng công nghệ Apache Hadoop để xây dựng module xử lý số liệu kinh doanh của Viettel
Nội dung của chương sau sẽ đi sâu vào tìm hiểu công nghệ Apache Hadoop
Trang 3828
CÔNG NGHỆ APACHE HADOOP
Giới thiệu về Hadoop
Apache Hadoop được Doug Cutting, người viết hadoop, đặt tên theo tên con voi đồ chơi của con ông ta, đã nhận được sự ủng hộ và ứng dụng của Yahoo, Google, IBM…Hadoop có thể chạy các ứng dụng với lượng dữ liệu lớn một cách nhanh chóng, chính xác, hiệu quả cao bằng cách lưu và tính toán dữ liệu trên nhiều node một cách độc lập Hadoop có 2 thành phần chủ yếu là HDFS (Hadoop Distributed File System) và MapReduce [4]
Apache Hadoop định nghĩa: Apache Hadoop là một framework dùng để chạy những ứng dụng trên 1 cluster lớn được xây dựng trên những phần cứng thông thường Hadoop hiện thực mô hình Map/Reduce, đây là mô hình mà ứng dụng sẽ được chia nhỏ ra thành nhiều phân đoạn khác nhau, và các phần này sẽ được chạy song song trên nhiều node khác nhau Thêm vào đó, Hadoop cung cấp một hệ thống file phân tán (HDFS) cho phép lưu trữ dữ liệu lên trên nhiều node Cả Map/Reduce
và HDFS đều được thiết kế sao cho framework sẽ tự động quản lý được các lỗi, các
hư hỏng về phần cứng của các node [2]
Wikipedia định nghĩa: Hadoop là một framework nguồn mở viết bằng Java cho phép phát triển các ứng dụng phân tán có cường độ dữ liệu lớn một cách miễn phí Nó cho phép các ứng dụng có thể làm việc với hàng ngàn node khác nhau và hàng petabyte dữ liệu Hadoop được phát triển dựa trên ý tưởng từ các công bố của Google về mô hình MapReduce và hệ thống file phân tán Google File System (GFS)
Vậy ta có thể kết luận như sau:
1) Hadoop là một framework cho phép phát triển các ứng dụng phân tán 2) Hadoop viết bằng Java Tuy nhiên, nhờ cơ chế streaming, Hadoop cho phép phát triển các ứng dụng phân tán bằng cả java lẫn một số ngôn ngữ lập trình khác như C++, Python, Pearl
3) Hadoop cung cấp một phương tiện lưu trữ dữ liệu phân tán trên nhiều node, hỗ trợ tối ưu hoá lưu lượng mạng, đó là HDFS HDFS che giấu tất cả các
Trang 395) Hadoop là Linux-based Tức Hadoop chỉ chạy trên môi trường Linux Mục đích: Mong muốn của các doanh nghiệp là tận dụng lượng dữ liệu khổng lồ để đưa ra quyết định kinh doanh, Hadoop giúp các công ty xử lý khối lượng cỡ terabyte và thậm chí là petabytes dữ liệu phức tạp tương đối hiệu quả với chi phí thấp hơn
Các doanh nghiệp đang nỗ lực tìm kiếm thông tin quý giá từ khối lượng lớn
dữ liệu phi cấu trúc được tạo ra bởi các weblog, công cụ clickstream, các sản phẩm truyền thông xã hội Chính yếu tố đó làm tăng sự quan tâm đến công nghệ mã nguồn mở Hadoop
Hadoop, một dự án phần mềm quản lý dữ liệu Apache với nhân trong khung phần mềm MapReduce của Google, được thiết kế để hỗ trợ các ứng dụng sử dụng được số lượng lớn dữ liệu cấu trúc và phi cấu trúc Hadoop là một hệ thống lưu trữ,
xử lý dữ liệu song song và phân tán Được Google phát triển từ năm 2002.Năm
2009, Hadoop đã giành chiến thắng khi sắp xếp 1 terabyte (=1000GB) dữ liệu trong vòng 209s, phá kỷ lục trước đó là 297s
Không giống như các hệ quản trị cơ sở dữ liệu truyền thống, Hadoop được thiết kế để làm việc với nhiều loại dữ liệu và dữ liệu nguồn Công nghệ HDFS của Hadoop được cho phép khối lượng lớn công việc được chia thành các khối dữ liệu nhỏ hơn được nhân rộng và phân phối trên các phần cứng của một cluster để xử lý nhanh hơn Công nghệ này đã được sử dụng rộng rãi bởi một số trang web lớn nhất thế giới chẳng hạn như Facebook, eBay, Amazon, Baidu, và Yahoo.Trong đó Yahoo là một trong những nhà đóng góp lớn nhất đối với Hadoop
Trang 4030
Hình 2.1 Mô hình Hadoop lưu trữ dữ liệu phân tán trên hệ thống Hadoop
Distributed File System (HDFS)[4]
Hình 2.2 Mô hình Hadoop xử lý dữ liệu song song và phân tán trên các nút [4]
Một số thuật ngữ:
MapReduce Job là một đơn vị của công việc mà khách hàng (client) muốn được thực hiện: nó bao gồm dữ liệu đầu vào, chương trình MapReduce, và thông tin cấu hình Hadoop chạy các công việc (job) này bằng cách chia nó thành các nhiệm