Tuan 3-Thu Thap Va Tao Du Lieu

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 60

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA




BÀI TẬP 2 LÝ THUYẾT VỀ DATA


MÔN HỌC CÔNG NGHỆ 4.0
TRONG LÃNH VỰC CƠ KHÍ - ME4063
GVHD: TRẦN QUANG PHƯỚC

SVTH MSSV Phân công Ghi chú


Kiều Trung Tín 1910610 4, 6, Tổng hợp Nhóm trưởng
Bùi Trung Kiên 1910285 2
Huỳnh Nhật Trường 1910652 1
Huỳnh Lê Hữu Tuấn 1915762 3
Ngô Trần Quang Châu 1912766 5
Lê Gia Khánh 1913734 5

0
MỤC LỤC
MỤC LỤC .......................................................................................................................... 1
1. Data Collection ............................................................................................................... 4
1.1. Khái niệm ................................................................................................................. 4
1.2. Các phương pháp thu thập dữ liệu ........................................................................ 4
1.3. Hâu quả của thu thập dữ liệu sai cách .................................................................. 5
1.4. Yếu tố quan trọng trong thu thập dữ liệu ............................................................. 6
1.5. Các bước để thu thập dữ liệu ................................................................................. 7
1.6. Hadoop ..................................................................................................................... 9
1.6.1. Khái niệm ............................................................................................................ 9
1.6.2. Kiến trúc Hadoop ................................................................................................ 9
1.6.3. Hoạt động của Hadoop ................................................................................... 12
2. Data Integration ........................................................................................................... 12
2.1. Khái niệm ............................................................................................................... 12
2.3. Hệ thống lưu trữ dữ liệu HDFS ........................................................................... 15
2.3.1. Khái niệm .......................................................................................................... 15
2.3.2. Ưu điểm nổi bật của HDFS .............................................................................. 15
2.3.3. Kiến trúc của HDFS .......................................................................................... 16
3. Data processing ............................................................................................................ 18
3.1. Định nghĩa .............................................................................................................. 18
3.2. Chức năng của data processing ........................................................................... 18
3.3. Các hình thức xử lý dữ liệu .................................................................................. 19
3.4. Công cụ hỗ trợ xử lý Apache Spark .................................................................... 20
3.5. Các thành phần của Apache Spark ..................................................................... 21
3.6. Các dữ liệu bị trùng lặp hoặc các dữ liệu không liên quan ............................... 23
3.7. Chuyển dữ liệu sang một dạng mới để dễ dàng phân tích ................................ 24
4. Data Analysis ................................................................................................................ 25
4.1. Apache Hadoop ..................................................................................................... 25
4.2. Apache Hive ........................................................................................................... 25
4.2.1. Khái niệm .......................................................................................................... 25

1
4.2.2. Nguyên lý hoạt động ......................................................................................... 26
4.2.3. Cấu trúc của Apache Hive ................................................................................ 26
4.2.4. Các Tính Năng Chính ....................................................................................... 27
4.2.5. Ưu điểm và nhược điểm ................................................................................... 28
4.3. Apache Impala ....................................................................................................... 28
4.3.1. Khái niệm .......................................................................................................... 28
4.3.2. Nhiệm vụ........................................................................................................... 29
4.3.3. Ưu điểm và nhược điểm của Impala ................................................................. 29
4.3.4. Các tính năng của Impala ................................................................................. 30
4.3.5. Cơ sở dữ liệu quan hệ và Impala ...................................................................... 30
4.4. Apache Drill ........................................................................................................... 31
4.4.1. Tìm hiểu về Apacha Drill ................................................................................. 31
4.4.2. Khái niệm .......................................................................................................... 32
5. Data Visualization........................................................................................................ 32
5.1. Khái niệm ............................................................................................................... 32
5.2. Các loại trực quan hóa dữ liệu ............................................................................. 34
5.3. Các công cụ trực quan hóa ................................................................................... 34
5.4. Ưu điểm và nhược điểm ........................................................................................ 35
5.5. Power BI ................................................................................................................. 35
5.5.1. Sơ bộ về phần mềm Power BI .......................................................................... 35
5.5.2. Các thành phần của Power BI ........................................................................... 36
5.5.3. Ưu điểm và nhược điểm ................................................................................... 36
5.5.4. Hướng dẫn sử dụng Power BI .......................................................................... 37
5.6. Apache Zeppelin .................................................................................................... 44
5.6.1. Giới thiệu Apache Zeppelin .............................................................................. 44
5.6.2. Các tính năng của Apache Zeppelin ................................................................. 45
5.7. Tableau ................................................................................................................... 53
5.7.1. Giới thiệu Tableau ............................................................................................ 53
5.7.2. Ưu điểm, nhược điểm của Tableau ................................................................... 55
6. Data Management........................................................................................................ 56

2
6.1. Khát quát ............................................................................................................... 56
6.2. Ứng dụng ................................................................................................................ 56
6.3. Điểm mạnh ............................................................................................................. 56
6.3.1. Hệ thống phân tán ............................................................................................. 56
6.3.2. Cơ chế lưu dữ liệu............................................................................................. 57
6.4. Cấu trúc dữ liệu ..................................................................................................... 58
6.5. Tính dư thừa .......................................................................................................... 58
6.6. Ưu điểm và nhược điểm ........................................................................................ 58
6.6.1. Ưu điểm ............................................................................................................ 58
6.6.2. Nhược điểm ...................................................................................................... 58

3
1. Data Collection
1.1. Khái niệm
Data collection là quá trình thu thập và đo lường thông tin về các biến số quan tâm,
theo một cách thức có hệ thống đã được thiết lập cho phép người ta trả lời các câu hỏi
nghiên cứu đã nêu, kiểm tra giả thuyết và đánh giá kết quả. Thành phần Data collection
của nghiên cứu là chung cho tất cả các lĩnh vực nghiên cứu bao gồm khoa học vật lý và xã
hội, nhân văn, kinh doanh, v.v. Mặc dù các phương pháp khác nhau tùy theo ngành học,
nhưng trọng tâm về việc đảm bảo thu thập chính xác và trung thực vẫn không đổi.

Bất kể lĩnh vực nghiên cứu hoặc sở thích xác định dữ liệu (định lượng, định tính) là
gì, việc Data collection chính xác là điều cần thiết để duy trì tính toàn vẹn của nghiên cứu.
Cả việc lựa chọn các công cụ Data collection thích hợp (hiện có, sửa đổi hoặc mới được
phát triển) và các hướng dẫn được mô tả rõ ràng để sử dụng chúng đúng cách đều làm giảm
khả năng xảy ra sai sót.
1.2. Các phương pháp thu thập dữ liệu
- Phương pháp quan sát (observation)
Quan sát là phương pháp thu thập dữ liệu bằng cách ghi lại có kiểm soát các sự kiện
hoặc các hành vi ứng xử của con người. Phương pháp thu thập dữ liệu này khá tiện dụng
thường được dùng kết hợp với các phương pháp khác để kiểm tra chéo độ chính xác của
dữ liệu thu thập.
- Phương pháp phỏng vấn

4
Phỏng vấn là một cuộc hỏi đáp giữa một bên là phỏng vấn viên và một bên là người
được phỏng vấn thông qua một hình thức tiếp xúc nào đó. Trong thực tiễn các hình thức
tiếp xúc trong phỏng vấn khá đa dạng:
Các hình thức tiếp xúc trong phỏng vấn:
+ Phỏng vấn trực tiếp;
+ Phỏng vấn qua thư tín;
+ Phỏng vấn qua điện thoại;
+ Phỏng vấn qua Email…
- Phương pháp thử nghiệm
Phương pháp thu thập dữ liệu này gồm 2 loại:
- Thử nghiệm trong phòng thí nghiệm là để quan sát và đo lường các phản ứng
tâm lý hoặc theo dõi các cuộc phỏng vấn, thảo luận của các nhóm trọng điểm. Phòng
thí nghiệm thường được chia làm 2 ngăn: Ngăn 1 dành cho những người được phỏng
vấn, hay thử nghiệm; Ngăn 2 dành cho những quan sát viên và các trang bị kỹ thuật,
ở giữa 2 ngăn được trang bị 1 tấm kính 1 chiều.
- Thử nghiệm tại hiện trường là việc quan sát đo lường thái độ, phản ứng của
khách hàng trước những sự thay đổi của nhà cung cấp sản phẩm/dịch vụ như: thay
đổi giá bán, thay đổi cách thức phục vụ, chăm sóc khách hàng… Việc quan sát được
thực hiện tại nơi diễn ra sự giao dịch, cho nên được gọi là thử nghiệm tại hiện trường.
- Phương pháp điều tra thăm dò
Điều tra là việc tìm hiểu thật kỹ ngọn nguồn các sự kiện, chú trọng tới việc thu thập
thông tin cùng các nhân chứng, vật chứng. Trong nghiên cứu marketing phương pháp thu
thập dữ liệu này được áp dụng khá phổ biến vì những ưu thế của nó nhằm bảo đảm 4
nguyên tắc của một nghiên cứu khoa học.
Công cụ chủ yếu được dùng để thu thập các thông tin, sự kiện trong phương pháp này
là “Bảng câu hỏi – Questions Form” do khách hàng tự trả lời.
Nó đặc biệt hữu dụng trong nghiên cứu định lượng bởi vì: Đối tượng nghiên cứu chủ
yếu của nghiên cứu marketing là các ý kiến, kỳ vọng của khách hàng, nhà cung cấp, người
tiêu dùng… cần được đo lường, tính toán, so sánh một cách cụ thể. Vì vậy, cách thức để
thu thập dữ liệu bằng “bảng câu hỏi” trong điều tra thăm dò là phù hợp hơn cả.
- Thảo luận nhóm (focus group)
Thảo luận nhóm là phương pháp thu thập dữ liệu phổ biến nhất trong nghiên cứu định
tính. Các dữ liệu được thu thập thông qua một cuộc thảo luận giữa một nhóm đối tượng
nghiên cứu (nhóm tập trung hay nhóm chuyên đề) dưới sự dẫn dắt của người điều khiển
chương trình (moderator).
1.3. Hâu quả của thu thập dữ liệu sai cách
- Không có khả năng trả lời chính xác các câu hỏi nghiên cứu

5
- Không có khả năng lặp lại và xác thực nghiên cứu
- Phát hiện sai lệch dẫn đến lãng phí tài nguyên
- Đánh lừa các nhà nghiên cứu khác để theo đuổi những con đường điều tra không có
kết quả
- Thỏa hiệp các quyết định đối với chính sách
- Gây hại cho người tham gia và động vật
- Mặc dù mức độ tác động từ việc Data collection bị lỗi có thể khác nhau tùy theo kỷ
luật và bản chất của cuộc điều tra, nhưng có khả năng gây ra tác hại không cân xứng khi
các kết quả nghiên cứu này được sử dụng để hỗ trợ các khuyến nghị chính sách công.
1.4. Yếu tố quan trọng trong thu thập dữ liệu
Đảm bảo chất lượng
Vì đảm bảo chất lượng có trước việc Data collection, trọng tâm chính của nó là ‘phòng
ngừa’ (tức là ngăn chặn các vấn đề với việc Data collection). Phòng ngừa là hoạt động tiết
kiệm chi phí nhất để đảm bảo tính toàn vẹn của việc Data collection. Biện pháp chủ động
này được thể hiện rõ nhất bằng việc chuẩn hóa giao thức được phát triển trong sổ tay thủ
tục toàn diện và chi tiết để Data collection. Sổ tay hướng dẫn viết kém làm tăng nguy cơ
không xác định sớm được các vấn đề và sai sót trong quá trình nghiên cứu. Những thất bại
này có thể được chứng minh theo một số cách:
 Sự không chắc chắn về thời gian, phương pháp và danh tính của (những) người
chịu trách nhiệm xem xét dữ liệu
 Liệt kê một phần các mục cần thu thập
 Mô tả mơ hồ về các công cụ Data collection sẽ được sử dụng thay cho các hướng
dẫn từng bước nghiêm ngặt về việc quản lý các bài kiểm tra
 Không xác định được nội dung và chiến lược cụ thể để đào tạo hoặc đào tạo lại
các nhân viên chịu trách nhiệm Data collection
 Các hướng dẫn sử dụng, điều chỉnh và hiệu chuẩn thiết bị Data collection bị che
khuất (nếu thích hợp)
 Không có cơ chế nào được xác định để ghi lại những thay đổi trong thủ tục có
thể phát triển trong quá trình điều tra.
Kiểm soát chất lượng
Mặc dù các hoạt động kiểm soát chất lượng (phát hiện / giám sát và hành động) diễn
ra trong và sau khi Data collection, các chi tiết cần được thực hiện cẩn thận trong sổ tay
thủ tục. Một cấu trúc thông tin liên lạc được xác định rõ ràng là tiền đề cần thiết để thiết
lập hệ thống giám sát. Không được có bất kỳ sự không chắc chắn nào về luồng thông tin
giữa các điều tra viên chính và các nhân viên sau khi phát hiện ra các sai sót trong quá trình
Data collection. Một cấu trúc giao tiếp kém phát triển khuyến khích việc giám sát lỏng lẻo
và hạn chế cơ hội phát hiện lỗi.

6
Việc phát hiện hoặc giám sát có thể dưới hình thức quan sát nhân viên trực tiếp trong
các chuyến thăm thực địa, các cuộc gọi hội nghị, hoặc đánh giá thường xuyên và thường
xuyên các báo cáo dữ liệu để xác định sự không nhất quán, giá trị cực đoan hoặc mã không
hợp lệ. Mặc dù việc thăm địa điểm có thể không phù hợp với tất cả các lĩnh vực, nhưng
việc không kiểm tra hồ sơ thường xuyên, dù là định lượng hay định lượng, sẽ khiến các
nhà điều tra khó xác minh rằng việc Data collection đang tiến hành theo các thủ tục được
thiết lập trong sổ tay hướng dẫn. Ngoài ra, nếu cấu trúc thông tin liên lạc không được mô
tả rõ ràng trong sổ tay thủ tục, việc truyền tải bất kỳ thay đổi nào trong thủ tục đến nhân
viên đều có thể bị tổn hại.
Kiểm soát chất lượng cũng xác định các phản hồi bắt buộc hoặc “hành động” cần thiết
để sửa chữa các thực hành Data collection bị lỗi và cũng giảm thiểu các sự cố xảy ra trong
tương lai. Những hành động này ít có khả năng xảy ra nếu các thủ tục Data collection được
viết một cách mơ hồ và các bước cần thiết để giảm thiểu sự tái diễn không được thực hiện
thông qua phản hồi và giáo dục
1.5. Các bước để thu thập dữ liệu
Bước 1: Xác định mục tiêu nghiên cứu
Trước khi bắt đầu quá trình thu thập dữ liệu, bạn cần xác định chính xác những gì bạn
muốn đạt được. Bạn có thể bắt đầu bằng cách viết một bản tuyên bố vấn đề: vấn đề thực tế
hoặc khoa học mà bạn muốn giải quyết là gì và tại sao nó lại quan trọng?
Tiếp theo, hình thành một hoặc nhiều câu hỏi nghiên cứu xác định chính xác những gì
bạn muốn tìm hiểu. Tùy thuộc vào câu hỏi nghiên cứu của bạn, bạn có thể cần thu thập dữ
liệu định lượng hoặc định tính:
 Dữ liệu định lượng được thể hiện bằng số và đồ thị và được phân tích thông
qua các phương pháp thống kê.
 Dữ liệu định tính được thể hiện bằng từ ngữ và được phân tích thông qua các
diễn giải và phân loại.
Nếu mục đích của bạn là kiểm tra một giả thuyết, đo lường chính xác điều gì đó hoặc
có được những hiểu biết thống kê quy mô lớn, hãy thu thập dữ liệu định lượng. Nếu mục
đích của bạn là khám phá ý tưởng, hiểu kinh nghiệm hoặc hiểu biết chi tiết về bối cảnh cụ
thể, hãy thu thập dữ liệu định tính. Nếu bạn có nhiều mục tiêu, bạn có thể sử dụng cách
tiếp cận phương pháp hỗn hợp để thu thập cả hai loại dữ liệu.
Bước 2: Chọn phương pháp thu thập dữ liệu của bạn
Dựa trên dữ liệu bạn muốn thu thập, hãy quyết định phương pháp nào phù hợp nhất
cho nghiên cứu của bạn.
Nghiên cứu thực nghiệm trước hết là một phương pháp định lượng.
Phỏng vấn / nhóm tập trung và dân tộc học là các phương pháp định tính.

7
Điều tra, quan sát, nghiên cứu lưu trữ và thu thập dữ liệu thứ cấp có thể là phương
pháp định lượng hoặc định tính.
Cẩn thận xem xét phương pháp bạn sẽ sử dụng để thu thập dữ liệu giúp bạn trực tiếp
trả lời các câu hỏi nghiên cứu của mình.

Bước 3: Lập kế hoạch cho các thủ tục thu thập dữ liệu của bạn
Khi bạn biết mình đang sử dụng (các) phương pháp nào, bạn cần lập kế hoạch chính
xác cách bạn sẽ thực hiện chúng. Bạn sẽ tuân theo quy trình nào để thực hiện các quan sát
hoặc đo lường chính xác các biến mà bạn quan tâm?
Ví dụ: nếu bạn đang thực hiện các cuộc khảo sát hoặc phỏng vấn, hãy quyết định các
câu hỏi sẽ có dạng gì; nếu bạn đang tiến hành một thử nghiệm, hãy đưa ra quyết định về
thiết kế thử nghiệm của bạn.
Đôi khi các biến số của bạn có thể được đo lường trực tiếp: ví dụ: bạn có thể thu thập
dữ liệu về độ tuổi trung bình của nhân viên chỉ bằng cách hỏi ngày sinh. Tuy nhiên, bạn
thường quan tâm đến việc thu thập dữ liệu về các khái niệm hoặc biến trừu tượng hơn mà
không thể quan sát trực tiếp.
Hoạt động hóa có nghĩa là biến những ý tưởng khái niệm trừu tượng thành những quan
sát có thể đo lường được. Khi kế hoạch
Nếu bạn sẽ thu thập dữ liệu như thế nào, bạn cần chuyển định nghĩa khái niệm về
những gì bạn muốn nghiên cứu thành định nghĩa hoạt động của những gì bạn sẽ thực sự đo
lường.
Bước 4: Thu thập dữ liệu

8
Cuối cùng, bạn có thể triển khai các phương pháp đã chọn để đo lường hoặc quan sát
các biến mà bạn quan tâm.
Để đảm bảo rằng dữ liệu chất lượng cao được ghi lại một cách có hệ thống, đây là một
số phương pháp hay nhất:
Ghi lại tất cả thông tin liên quan khi và khi bạn lấy dữ liệu. Ví dụ, ghi lại xem thiết bị
phòng thí nghiệm có được hiệu chuẩn lại trong quá trình nghiên cứu thử nghiệm hay không.
Kiểm tra kỹ việc nhập dữ liệu thủ công để tìm lỗi.
Nếu bạn thu thập dữ liệu định lượng, bạn có thể đánh giá độ tin cậy và tính hợp lệ để
có được dấu hiệu về chất lượng dữ liệu của bạn.
1.6. Hadoop
1.6.1. Khái niệm
Hadoop là một Apache 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ó được thiết kế để mở
rộng quy mô từ một máy chủ đơ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 phát triển dựa trên ý tưởng từ các
công bố của Google về mô hình Map-Reduce và hệ thống file phân tán Google File
System (GFS). Và có cung cấp cho chúng ta một môi trường song song để thực thi các tác
vụ Map-Reduce. Nhờ có cơ chế streaming mà Hadoop có thể phát triển trê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++, Pyhthon, Pearl,...
1.6.2. Kiến trúc Hadoop
Hadoop có một cấu trúc liên kết master-slave. Trong cấu trúc này, chúng ta có một
node master và nhiều node slave . Chức năng của node master là gán một tác vụ cho các
node slave khác nhau và quản lý tài nguyên. Các node slave là máy tính thực tế có thể
không mạnh lắm. Các node slave lưu trữ dữ liệu thực trong khi trên master chúng ta có
metadata.
Kiến trúc Hadoop gồm có ba lớp chính đó là:HDFS (Hadoop Distributed File
System), Map-Reduce, Yarn.
HDFS (Hadoop Distributed File System)
 Là hệ thống file phân tán, cung cấp khả năng lưu trữ dữ liệu khổng lồ và tính năng
tối ưu hoá việc sử dụng băng thông giữa các node. HDFS có thể được sử dụng để chạy
trên một cluster lớn với hàng chục ngàn node.
 Cho phép truy xuất nhiều ổ đĩa như là 1 ổ đĩa. Nói cách khác, chúng ta có thể sử
dụng một ổ đĩa mà gần như không bị giới hạn về dung lượng. Muốn tăng dung lượng chỉ
cần thêm node (máy tính) vào hệ thống.
 Có kiến trúc Master-Slave
 NameNode chạy trên máy chủ Master, có tác vụ quản lý Namespace và điều chỉnh
truy cập tệp của client

9
 DataNode chạy trên các nút Slave. có tác vụ lưu trữ business data thực tế
 Một tập tin với định dạng HDFS được chia thành nhiều block và những block này
được lưu trữ trong một tập các DataNodes
 Kích thước 1 block thông thường là 64MB, kích thước này có thể thay đổi được
bằng việc cấu hình
MAP-REDUCE
Map-Reduce là một framework dùng để viết các ứng dụng xử lý song song một lượng
lớn dữ liệu có khả năng chịu lỗi cao xuyên suốt hàng ngàn cluster(cụm) máy tính
Map-Reduce thực hiện 2 chức năng chính đó là Map và Reduce
 Map: Sẽ thực hiện đầu tiên, có chức năng tải, phân tích dữ liệu đầu vào và được
chuyển đổi thành tập dữ liệu theo cặp key/value
 Reduce: Sẽ nhận kết quả đầu ra từ tác vụ Map, kết hợp dữ liệu lại với nhau thành
tập dữ liệu nhỏ hơn

Để dễ hiểu hơn, chúng ta hãy cùng xem ví dụ WordCount sau đây. WordCount là
bài toán đếm tần suất xuất hiện của các từ trong đoạn văn bản. Và chúng ta sẽ mô tả quá
trình xử lý bài toán này bằng Map-Redue
Đối với hàm Map:
 Input là 1 đoạn văn bản
 Output là các cặp <word, 1>
 Hàm Map được thực hiện song song để xử lý các tập dữ liệu khác nhau.
Đối Với hàm Reduce:
 Input có dạng <word, [list]>, trong đó list là tập hợp các giá trị đếm được của mỗi
từ
 Output: <word, tổng số lần xuất hiện của từ>
 Hàm Reduce cũng được chạy song song để xử lý các tập từ khoá khác nhau.
Giữa hàm Map và Reduce có một giai đoạn xử lý trung gian gọi là hàm Shuffle. Hàm
này có nhiệm vụ sắp xếp các từ và tổng hợp dữ liệu đầu vào cho Reduce từ các kết quả
đầu ra của hàm Map.
10
YARN
YARN (Yet-Another-Resource-Negotiator) là một framework hỗ trợ phát triển ứng
dụng phân tán YARN cung cấp daemons và APIs cần thiết cho việc phát triển ứng dụng
phân tán, đồng thời xử lý và lập lịch sử dụng tài nguyên tính toán (CPU hay memory)
cũng như giám sát quá trình thực thi các ứng dụng đó.
Bên trong YARN, chúng ta có hai trình quản lý ResourceManager và NodeManage
 ResourceManager: Quản lý toàn bộ tài nguyên tính toán của cluster.
 NodeManger: Giám sát việc sử dụng tài nguyên của container và báo cáo với
ResourceManger. Các tài nguyên ở đây là CPU, memory, disk, network,...

Quá trình 1 ứng dụng chạy trên YARN được mô tả bằng sơ đồ trên qua các bước sau:
 Client giao 1 task cho Resource Manager
 Resource Manager tính toán tài nguyên cần thiết theo yêu cầu của ứng dụng và tạo
1 App Master (App Mstr). Application Master được chuyển đến chạy 1 một node tính toán.
Application Master sẽ liên lạc với các NodeManager ở các node khác để ra yêu cầu công
việc cho node này.
 Node Manager nhận yêu cầu và chạy các task trên container
 Các thông tin trạng thái thay vì được gửi đến JobTracker sẽ được gửi đến App
Master.
 ResourceManger có hai thành phần quan trọng đó là Scheduler và
ApplicationManager
Scheduler có trách nhiệm phân bổ tài nguyên cho các ứng dụng khác nhau. Đây là
Scheduler thuần túy vì nó không thực hiện theo dõi trạng thái cho ứng dụng. Nó cũng không

11
sắp xếp lại các tác vụ bị lỗi do lỗi phần cứng hoặc phần mềm. Bộ lập lịch phân bổ các tài
nguyên dựa trên các yêu cầu của ứng dụng
ApplicationManager có chức năng sau:
 Chấp nhận nộp công việc.
 Đàm phán container đầu tiên để thực thi ApplicationMaster. Một nơi chứa kết hợp
các yếu tố như CPU, bộ nhớ, đĩa và mạng.
 Khởi động lại container ApplicationMaster khi không thành công.
Chúng ta có thể mở rộng YARN ngoài một vài nghìn node thông qua tính năng YARN
Federation. Tính năng này cho phép chúng ta buộc nhiều cụm YARN thành một cụm lớn.
Điều này cho phép sử dụng các cụm độc lập, ghép lại với nhau cho một job rất lớn
1.6.3. Hoạt động của Hadoop
Giai đoạn 1
Một user hay một ứng dụng có thể submit một job lên Hadoop (hadoop job client)
với yêu cầu xử lý cùng các thông tin cơ bản:
1. Nơi lưu (location) dữ liệu input, output trên hệ thống dữ liệu phân tán.
2. Các java class ở định dạng jar chứa các dòng lệnh thực thi các hàm map và
reduce.
3. Các thiết lập cụ thể liên quan đến job thông qua các thông số truyền vào.
Giai đoạn 2
Hadoop job client submit job (file jar, file thực thi) và các thiết lập cho JobTracker.
Sau đó, master sẽ phân phối tác vụ đến các máy slave để theo dõi và quản lý tiến trình
các máy này, đồng thời cung cấp thông tin về tình trạng và chẩn đoán liên quan đến job-
client.
Giai đoạn 3
TaskTrackers trên các node khác nhau thực thi tác vụ MapReduce và trả về kết quả
output được lưu trong hệ thống file.
Khi “chạy Hadoop” có nghĩa là chạy một tập các trình nền – daemon, hoặc các
chương trình thường trú, trên các máy chủ khác nhau trên mạng của bạn. Những trình nền
có vai trò cụ thể, một số chỉ tồn tại trên một máy chủ, một số có thể tồn tại trên nhiều
máy chủ.
Các daemon bao gồm: NameNode, DataNode, SecondaryNameNode, JobTracker,
TaskTracker
2. Data Integration
2.1. Khái niệm
Tích hợp dữ liệu (Data Integration) bao gồm việc kết hợp dữ liệu không đồng nhất trong
các nguồn khác nhau vào một lược đồ duy nhất và có thể truy vấn, cung cấp cho người
dùng một cái nhìn thống nhất về chúng.

12
Tích hợp dữ liệu được sử dụng với tần số ngày càng nhiều khi mà khối lượng và nhu
cầu chia sẻ dữ liệu hiện nay rất lớn. Để đảm bảo việc trao đổi dữ liệu trong hệ thống được
hiệu quả hoặc xử lý các công việc tiếp theo theo các luồng công việc định trước như: phân
tích, so sánh, thống kê, báo cáo,…
2.2. Phân loại
Các phương pháp tích hợp dữ liệu: Có hai phương pháp chủ yếu để tích hợp dữ liệu:
Ghép nối chặt chẽ (Tight Coupling): kho dữ liệu
Phương pháp ghép nối chặt chẽ thường được thực hiện thông qua kho dữ liệu, dữ liệu
được lấy từ nhiều nguồn khác nhau đưa vào một vị trí vật lý duy nhất thông qua quá trình
ETL (Extraction, Transformation, Loading). Lớp ETL giúp ánh xạ dữ liệu từ các nguồn để
cung cấp một kho dữ liệu thống nhất. Vị trí vật lý, cung cấp một giao diện đồng nhất để
truy vấn dữ liệu.
Cách tiếp cận này được gọi là ghép nối chặt chẽ vì trong cách tiếp cận này dữ liệu được
kết hợp chặt chẽ với kho lưu trữ vật lý tại thời điểm truy vấn.
Ghép nối lỏng lẻo (Loose Coupling): lược đồ trung gian ảo
Ở đây một lược đồ trung gian ảo cung cấp một giao diện nhận truy vấn từ người dùng,
biến đổi nó theo cách mà cơ sở dữ liệu nguồn có thể hiểu và gửi truy vấn trực tiếp tới cơ
sở dữ liệu nguồn để thu được kết quả. Trong phương pháp này, dữ liệu chỉ nằm trong cơ
sở dữ liệu nguồn thực tế. Mô hình của phương pháp ghép nối lỏng lẻo được mô phỏng như
hình dưới.

13
Mô hình phương pháp ghép nối lỏng lẻo trong tích hợp dữ liệu
Lược đồ trung gian chứa một số “bộ điều hợp” hoặc “trình bao bọc” có thể kết nối lại
với hệ thống nguồn để mang dữ liệu đến giao diện người dùng.
Ưu điểm và nhược điểm
So sánh ưu nhược điểm của 2 phương pháp: ghép nối chặt chẽ và ghép nối lỏng lẻo
được thể hiện chi tiết trong sau:
Ghép nối chặt chẽ Ghép nối lỏng lẻo
Ưu điểm – Độc lập (phụ thuộc ít hơn – Làm mới dữ liệu (độ trễ
vào hệ thống nguồn vì dữ thấp – gần như thời gian
liệu được sao chép về mặt thực)
vật lý) – Nhanh nhẹn hơn (khi có
- Xử lý truy vấn nhanh hơn hệ thống nguồn mới hoặc hệ
- Xử lý truy vấn phức tạp thống nguồn hiện tại thay
- Tóm tắt dữ liệu nâng cao đổi thì chỉ bộ điều hợp
và có thể lưu trữ tương ứng mới được tạo
– Xử lý dữ liệu lớn hoặc thay đổi, phần lớn
không ảnh hưởng đến các
phần khác của hệ thống)

14
– Chi phí thấp

Nhược điểm – Độ trễ (vì dữ liệu cần được – Phản hồi truy vấn chậm
tải bằng ETL) hơn (do vấn đề về mạng /
– Chi phí cao băng thông, tải dữ liệu trên
hệ thống nguồn,…)
– Phụ thuộc vào các nguồn
dữ liệu

2.3. Hệ thống lưu trữ dữ liệu HDFS


2.3.1. Khái niệm
HDFS (tên viết tắt của từ Hadoop Distributed File System” là một hệ thống lưu dữ dữ
dữ liệu được sử dụng bởi Hadoop. Chức năng của hệ thống này là cung cấp khả năng truy
cập với hiệu suất cao đến với các dữ liệu nằm trên các cụm của Hadoop.
Thông thường, HDFS sẽ sử dụng cũng như triển khai trên các phần cứng với chi phí
vừa phải, bởi các máy chủ sẽ rất dễ phát sinh các lỗi phần cứng. Đây là lý do mà HDFS
được lập trình và được xây dựng nhằm mục đích chịu lỗi cao để giảm rủi ro cũng như giảm
thiểu được quá trình phát sinh lỗi.
HDFS tạo ra các mảnh nhỏ hơn của dữ liệu lớn rồi phân tán chúng lên các nodes khác
nhau. Từ đó, sao chép mỗi miếng dữ liệu nhỏ hơn trên nhiều nodes khác. Do vậy, khi node
bất kỳ có dữ liệu bị lỗi thì hệ thống sẽ tự động sử dụng dữ liệu từ 1 node khác rồi tiếp tục
xử lý. Đây là một trong những tính năng đặc biệt quan trọng của HDFS.
2.3.2. Ưu điểm nổi bật của HDFS
HDFS cho phép dữ liệu có thể phân tán: Điều này có thể hiểu như sau: Nếu như có một
cụm Hadoop mà trong đó bao gồm 20 máy tính thì bạn chỉ cần đưa một file dữ liệu vào
HDFS. Khi đó, thì file sẽ tự động được chia nhỏ thành nhiều phần rồi được lưu trữ ở 20
máy tính đó.
HDFS cho phép tính toán và phân tán song song: Thay vì chỉ sử dụng một máy để xử
lý công việc, thì với HDFS thì bạn có thể để các máy hoạt động song song để xử lý chung
một công việc để tiết kiệm thời gian.
HDFS cho phép nhân bản các file: Đặc điểm này sẽ giúp bạn đề phòng được các trường
hợp một máy tính trong cụm Hadoop phát sinh sự cố thì dữ liệu sẽ được backup lại mà
không bị mất.
HDFS có thể mở rộng theo chiều dọc: Lúc này, bạn sẽ có nhiệm vụ nâng cấp cho các
hệ thống bằng cách tăng cấu hình cho máy tính lên. Tính năng này còn được gọi là Scale
Up hay Vertical scaling.

15
HDFS sở hữu khả năng mở rộng hệ thống theo chiều ngang: Đặc điểm này có nghĩa
rằng, bạn không cần phải nâng cấp cho phần cứng mà chỉ cần mua thêm một chiếc máy
tính mới để chia sẻ với chiếc máy hiện tại là được.
2.3.3. Kiến trúc của HDFS
Kiến trúc của HDFS là master / slave, một HDFS Cluster sẽ luôn bao gồm 1
NameNode. NameNode này là 1 master server và nó có nhiệm vụ quản lý cho hệ thống
tập tin và điều chỉnh các truy cập đến những tập tin khác.
Từ đó, bổ sung cho NameNode để có nhiều DataNodes. Bạn nên chú ý rằng, sẽ luôn
có 1 DataNode dành riêng cho các máy chủ dữ liệu. Trong một HDFS, 1 tập tin lớn sẽ
được chia thành 1 hoặc nhiều khối, những khối này đều sẽ được lưu trữ trong 1 tập các
DataNodes.

Kiến trúc của HDFS

NameNode có tác vụ chính là đóng, mở và đổi tên cho các tập tin, thư mục. Ngoài ra,
nó còn điều chỉnh cho các truy cập đến hệ thống tập tin. Trong khi đó, DataNode có tác vụ
là ghi, đọc vào hệ thống tập tin; nó còn có nhiệm vụ tạo, xóa, nhân rộng các dữ liệu dựa
trên chỉ dẫn của NameNode. Lưu ý: NameNode và DataNode đều là phần mềm được thiết
kế nhằm mục đích chạy trên máy chủ và chúng được viết bằng Java. Quá trình hoạt động
của NameNode và DataNode như sau:
 NameNode: Có trách nhiệm điều phối cho các thao tác truy cập của client với hệ
thống HDFS. Bởi vì các DataNode là nơi lưu trữ thật sự các block của các file trên

16
HDFS nên chúng là nơi đáp ứng các truy cập này. NameNode sẽ thực hiện nhiệm
vụ của nó thông qua daemon tên namemode chạy trên port 8021.
 DataNode: DataNode server sẽ chạy một daemon datanode trên port 8022, theo
định kỳ thì mỗi DataNode sẽ có nhiệm vụ báo cáo cho Namenode biết được danh
sách tất cả các block mà nó đang lưu trữ. Để NameNode có thể dựa vào nó để cập
nhật lại các metadata trong nó.
Sau mỗi lần cập nhật thì metadata trên NameNode đều sẽ đạt được các tình trạng thống
nhất dữ liệu trên các DataNode. Toàn bộ trạng thái của metadata trên NameNode sẽ đạt
được sự thống nhất với các dữ liệu ở trên DataNode. Tất cả các trạng thái của metadata
ngay khi đang ở tình trạng hệ thống này sẽ được gọi là checkpoint.
Mỗi một metadata ở trạng thái checkpoint đều sẽ được sử dụng cho mục đích nhân bản
metadata với mục đích phục hồi lại NameNode nếu như NameNode xuất hiện lỗi. Đọc file
trên HDFS: Khi các máy con client gửi yêu cầu đọc đến NameNode, khi đó NameNode
nhận được phải sẽ thực hiện các tác vụ để kiểm tra xem file có tồn tại không, file có bị lỗi
hoặc bị nhiễm virus không?
Nếu như file không có vấn đề thì NameNode sẽ gửi các danh sách của các Block của
file cùng với địa chỉ của các DataNode. Sau đó, hệ thống sẽ mở kết nối với DataNode rồi
thực hiện chức năng RPC để nhận được các dữ liệu cần đọc, rồi đóng kết nối với DataNode
còn lại.
Khi đó, các client đọc các block của file liên tục và lặp lại cho đến block cuối của file.
Tiếp theo, lập trình viên sẽ sử dụng một tập tin API của Hadoop để có thể tương tác trực
tiếp được với HDFS. Những tập API sẽ có chức năng giấu đi các NameNode để giúp kết
nối với các DataNode để nhận được dữ liệu.

HDFS là một hệ thống quan trọng trong Hadoop

17
Cách ghi file trên HDFS: Tương tự quá trình đọc file, tuy nhiên quá trình này thì các
client sẽ gửi đến cho các NameNode một file entry (đây là file chưa có bất kỳ block nào
bên trong). Những file client sẽ thực hiện chia file dữ liệu thành các block và mỗi block
đều sẽ được đóng gói thành packet.
Tiếp theo, Client sẽ gửi Packet cho DataNode thứ nhất, sau khi được lưu xong thì
DataNode đầu tiên lại gửi tiếp packet cho DataNode thứ hai để sao lưu. Quá trình này sẽ
tiếp diễn cho đến các DataNode cuối cùng nhận được packet và sao lưu nó. Thì nó sẽ lại
gửi thông báo cho client là đã lưu thành công. Từ đó, client sẽ thực hiện hành động để
babos cáo cho NameNode biết rồi cập nhật lại toàn bộ danh sách các block mà file đã ghi
lại.
3. Data processing
3.1. Định nghĩa
Xử lý dữ liệu là quá trình xữ lý và đồng bộ hóa toàn bộ dữ liệu trong hệ thống như tiếp
nhận nguồn thông tin mới và lọc ra những dữ liệu phù hợp với yêu cầu, xử lý dữ liệu đóng
vai trò rất quan trọng trong việc học tập và làm việc. Mục đích của việc xử lý dữ liệu chính
là giúp lưu trữ và phân loại thông tin để có thể sữ dụng trong mọi thời điểm và trường hợp.
Việc xử lý dữ liệu tốt dữ liệu sẽ đem lại năng suất, hiệu quả công việc cao.

3.2. Chức năng của data processing


Trong quá trình xử lý dữ liệu gồm có rất nhiều bước cần phải bắt buộc thực hiện để
đảm bảo hiệu quả công việc. Trong đó các bước có chức năng khác nhau:
- Xác nhận thông tin: trong quá trình xử lý dữ liệu thì việc đầu tiên chính là thu thập
những thông tin đầu vào cho hệ thống. Thì sau khi tìm kiếm những thông tin theo yêu cầu

18
thì cần xác nhận các dữ liệu đã tìm được có đúng chính xác và liên quan với yêu cầu ban
đầu hay không
- Sắp xếp dữ liệu: Việc tiếp theo sau khi xác nhận các thông tin đã đảm bảo đúng
yêu cầu thì cần xác nhận các dữ liệu đã tìm được có đúng chính xác và liên quan với yêu
cầu ban đầu hay không.
- Sắp xếp dữ liệu: Việc tiếp theo sau khi xác nhận các thông tin đã đảm bapr đúng
yêu cầu thì hệ thống sẽ sữ lý bằng cách sắp xếp và phân loại các dữ liệu theo từng bộ
riêng có nội dung tương đồng rồi đánh số thứ tự đê có thể dễ kiểm soát.
- Tóm tắt dữ liệu: công việc này hỗ trợ xử lý bằng cách đưa ra những thông tin
chính của dữ liệu và giảm bớt những giải thích chi tiết cho nội dung chính để dễ tổng hợp
và tìm kiếm như vậỵ sẽ tiện lợi hơn với người dung.
- Tập hợp nội dung: sau khi thông tin đã được phân loại và thâu tóm những nội
dung chính thì tập hợp dữ liệu giúp kết hợp những thông tin có cùng loại với nhau tạo
thành những thư mục dữ liệu lớn.
- Phân tích dữ liệu: Đây là bước quan trọng trong quá trình xử lý thông tin, đóng vai
trò quyết định hiệu quả công việc. Quá trình phân tích dữ liệu cũng được coi là một quá
trình xử lý dữ liệu con bỡi cũng phải trải qua nhiều bước thực hiện đó là thu thập dữ liệu
sau đó tổ chức phân loại thông tin tiến hành phân tích các nội dung liên quan đến yêu cầu
và tìm kiếm kết quả sát sao nhất đưa ra giải thích về quá trình phân tích và trình bày kết
quả phân tích thông tin sau khi đã hoàn thành những bước trên
- Báo cáo: sau khi hoàn thành những bước xử lý bên trên và đưa ra kết quả phân
tích thông tin thì cần phải báo cáo dữ liệu bằng cách kê khai toàn bộ những thông tin chi
tiết cụ thể về dữ liệu thông qua những thông tin tóm tắt.
- Phân loại nội dung: Bước phân loại này khá giống với phân loại dữ liệu thông tin
phía trên chỉ khác ở điểm là cái ở trên phân loại dữ liệu đầu vào còn bước này là phân
loại thông tin đầu ra.
3.3. Các hình thức xử lý dữ liệu
- Xử lý dữ liệu thủ công: mọi công việc đều được con người xữ lý một cách thủ
công, phương pháp này tốn rất nhiều thời gian và công sức.
- Xử lý dữ liệu tự động: là phương pháp được phát triễn của công nghệ hỗ trợ áp
dụng với các loại hình hoạt động thực hiện bằng các công cụ thiết bị ghi đơn vị cụ thể.
- Xử lý dữ liệu điện tử: đây là hình thức xử lý dữ liệu trên các thiết bị điện tử như
máy tính kết hợp với những tính năng của việc sử lý tự động thể hiện sự phát triển của
công nghệ.
- Xử lý dữ liệu thương mại: đây là hình thức xử lý thông tin dưới dạng ít tính toán
mà có mục đích lưu trữ cùng với lượng thông tin đầu ra khổng lồ

19
3.4. Công cụ hỗ trợ xử lý Apache Spark

Các tổ chức thuộc mọi quy mô đều dựa vào dữ liệu lớn, nhưng việc xử lý hàng
terabyte dữ liệu cho ứng dụng thời gian thực có thể trở nên cồng kềnh. Lúc này, Apache
Spark ra đời như một sứ mệnh mang đến giải pháp hiệu quả cho việc phân tích và xử lý
dữ liệu. Kể từ khi phát hành, Apache Spark đã được các doanh nghiệp trong nhiều ngành
công nghiệp áp dụng nhanh chóng.
Apache Spark là một framework xử lý dữ liệu mã nguồn mở trên quy mô lớn. Spark
cung cấp một giao diện để lập trình các cụm tính toán song song với khả năng chịu lỗi.
Ban đầu Spark được phát triển tại AMPLab của Đại học California Berkeley, sau đó mã
nguồn được tặng cho Apache Software Foundation vào năm 2013 và tổ chức này đã duy
trì nó cho đến nay.
Khả năng tính toán phân tán của Apache Spark khiến nó rất phù hợp với big data và
machine learning, vốn đòi sức mạnh tính toán khổng lồ để làm việc trên các kho dữ liệu
lớn. Spark cũng giúp loại bỏ một số gánh nặng lập trình khỏi vai của các nhà phát triển
với một API dễ sử dụng đảm nhiệm phần lớn công việc khó khăn của tính toán phân tán
và xử lý dữ liệu lớn.

20
3.5. Các thành phần của Apache Spark
Apache Spark gồm có 5 thành phần chính: Spark Core, Spark Streaming, Spark SQL,
MLlib và GraphX.
Như tên gọi, Spark Core là thành phần cốt lõi của Apache Spark, các thành phần
khác muốn hoạt động đều cần thông qua Spark Core. Spark Core có vai trò thực hiện
công việc tính toán và xử lý trong bộ nhớ (In-memory computing), đồng thời nó cũng
tham chiếu đến các dữ liệu được lưu trữ tại các hệ thống lưu trữ bên ngoài.

Spark SQL
Spark SQL tập trung vào việc xử lý dữ liệu có cấu trúc, sử dụng phương pháp tiếp
cận khung dữ liệu được mượn từ các ngôn ngữ R và Python (trong Pandas). Như tên gọi,
Spark SQL cũng cung cấp giao diện với cú pháp SQL để truy vấn dữ liệu, mang sức
mạnh của Apache Spark đến các nhà phân tích dữ liệu cũng như các nhà phát triển.
Bên cạnh khả năng hỗ trợ SQL, Spark SQL cung cấp một giao diện tiêu chuẩn để đọc
và ghi vào các kho dữ liệu khác bao gồm JSON, HDFS, Apache Hive, JDBC, Apache

21
ORC và Apache Parquet, tất cả đều được hỗ trợ trực tiếp. Các cơ sở dữ liệu phổ biến
khác như Apache Cassandra, MongoDB, Apache Hbase,… cũng được hỗ trợ thông qua
các trình kết nối riêng biệt từ hệ sinh thái Spark Packages.
Spark Streaming
Spark Streaming là một bổ sung ban đầu cho Apache Spark giúp nó đáp ứng các yêu
cầu xử lý thời gian thực (realtime) hoặc gần như thời gian thực. Spark Streaming chia
nhỏ luồng xử lý thành một chuỗi liên tục gồm các microbatch mà sau đó có thể được thao
tác bằng API Apache Spark.
Bằng cách này, mã trong các xử lý hàng loạt và trực tuyến có thể được tái sử dụng,
chạy trên cùng một framework, do đó giảm chi phí cho cả nhà phát triển và nhà điều
hành.

MLlib (Machine Learning Library)


MLlib là một nền tảng học máy phân tán bên trên Spark với kiến trúc phân tán dựa
trên bộ nhớ. Theo các một số so sánh, Spark MLlib nhanh hơn 9 lần so với thư viện
tương đương chạy trên Hadoop là Apache Mahout.
GrapX
Spark GraphX đi kèm với lựa chọn các thuật toán phân tán để xử lý cấu trúc đồ thị.
Các thuật toán này sử dụng phương pháp tiếp cận RDD của Spark Core để lập mô hình
dữ liệu; gói GraphFrames cho phép bạn thực hiện các xử lý biểu đồ trên khung dữ liệu,
bao gồm cả việc tận dụng trình tối ưu hóa Catalyst cho các truy vấn đồ thị.
Kiến trúc của Apache Spark
Về cơ bản, Apache Spark bao gồm hai thành phần chính: trình điều khiển (driver) và
trình thực thi (executors). Trình điều khiển dùng để chuyển đổi mã của người dùng thành
nhiều tác vụ (tasks) có thể được phân phối trên các nút xử lý (worker nodes).

22
Trình thực thi chạy trên các nút xử lý và thực hiện các nhiệm vụ được giao cho
chúng. Spark cũng có thể chạy ở chế độ cụm độc lập chỉ yêu cầu khung Apache Spark và
JVM trên mỗi máy trong cụm. Tuy nhiên, sử dụng các công cụ quản lý cụm như trung
gian giữa hai thành phần giúp tận dụng tài nguyên tốt hơn và cho phép phân bổ theo yêu
cầu. Trong doanh nghiệp, Apache Spark có thể chạy trên Apache Mesos, Kubernetes và
Docker Swarm.

Apache Spark xây dựng các lệnh xử lý dữ liệu của người dùng thành Đồ thị vòng có
hướng hoặc DAG. DAG là lớp lập lịch của Apache Spark; nó xác định những tác vụ nào
được thực thi trên những nút nào và theo trình tự nào.
Ưu điểm Apache Spark
- Tốc độ cao: Được thiết kế từ dưới lên để tăng hiệu suất, Spark có thể nhanh hơn
100 lần so với Hadoop khi xử lý dữ liệu quy mô lớn bằng cách khai thác tính toán trên bộ
nhớ và các tối ưu hóa khác. Spark cũng nhanh khi dữ liệu được lưu trữ trên đĩa và hiện
đang giữ kỷ lục thế giới về phân loại trên đĩa quy mô lớn.
- Dễ sử dụng: Spark có các API dễ sử dụng để làm việc trên các tập dữ liệu lớn, bao
gồm hơn 100 toán tử để chuyển đổi dữ liệu và các API dataframe quen thuộc để xử lý dữ
liệu bán cấu trúc.
- Thư viện hỗ trợ rộng: Spark được đóng gói với các thư viện cấp cao, bao gồm hỗ
trợ truy vấn SQL, truyền dữ liệu trực tuyến, học máy và xử lý đồ thị. Các thư viện tiêu
chuẩn này làm tăng năng suất của nhà phát triển và có thể được kết hợp liền mạch để tạo
ra các quy trình làm việc phức tạp.
3.6. Các dữ liệu bị trùng lặp hoặc các dữ liệu không liên quan
Loại bỏ các đối tượng không mong muốn khỏi tập dữ liệu của , bao gồm các đối
tượng trùng lặp hoặc đối tượng không liên quan. Các đối tượng trùng lặp sẽ xảy ra

23
thường xuyên nhất trong quá trình thu thập dữ liệu. Khi kết hợp các tập dữ liệu từ nhiều
nơi, loại bỏ dữ liệu hoặc nhận dữ liệu từ khách hàng hoặc nhiều bộ phận, sẽ có cơ hội tạo
dữ liệu trùng lặp. Khử trùng lặp là một trong những lĩnh vực lớn nhất được xem xét trong
quá trình này. Các quan sát không liên quan là khi nhận thấy các quan sát không phù hợp
với vấn đề cụ thể đang cố gắng phân tích. Hiện nay có rất nhiều phần mềm để giải quyết
việc này và một trong số đó là phần mềm Tableau.
3.7. Chuyển dữ liệu sang một dạng mới để dễ dàng phân tích

Về cơ bản, chuyển đổi dữ liệu có thể được định nghĩa là quá trình sửa đổi dữ liệu để
làm cho nó có thể sử dụng được cho ứng dụng xuôi dòng trong các công cụ, quy trình và
phân tích. Mặc dù các bước có thể khác nhau tùy thuộc vào mục tiêu của dự án và nhu
cầu dữ liệu của bạn, quy trình chuyển đổi dữ liệu thường bắt đầu bằng việc kiểm tra trước
mức độ hiểu và làm sạch dữ liệu, đồng thời kết thúc bằng việc xem xét các thay đổi với
các bên liên quan chính.
Bước 1: Khám phá và xác thực dữ liệu
Mục tiêu của giai đoạn này cuối cùng là để hiểu các đặc điểm chính của dữ liệu và
khám phá những thay đổi nào có thể cần xảy ra đối với dữ liệu để đáp ứng các mục đích
cuối cùng.
Bước 2: Ánh xạ dữ liệu
Thường thì sẽ cần kết hợp dữ liệu từ nhiều nguồn vào một tập dữ liệu duy nhất. Trong
tình huống này, các trường dữ liệu phải khớp giữa các bộ dữ liệu để chuẩn bị nối chúng.
Bước 3: Thực thi tạo mã và chuyển đổi dữ liệu
Đây là lúc thực sự chuyển đổi dữ liệu để đáp ứng các mục tiêu đã xác định trước đó.
Đầu tiên, mã được tạo bằng tay hoặc trực quan với một số công cụ. Sau đó, mã được thực
thi và chuyển đổi xảy ra.
Có nhiều loại chuyển đổi dữ liệu, bao gồm các hoạt động cộng để làm phong phú dữ
liệu với ý nghĩa lớn hơn, chẳng hạn như lấy tuổi từ ngày sinh, các hoạt động trừ bao gồm

24
xóa bản ghi hoặc các trường không cần thiết, tiêu chuẩn hóa hoặc chuẩn hóa để định cỡ
lại dữ liệu và thay đổi cấu trúc đối với chính tập dữ liệu.
Bước 4: Xác thực và Đánh giá
Cuối cùng, sau khi quá trình chuyển đổi dữ liệu diễn ra, người thực hiện quá trình
chuyển đổi xác thực rằng nó đáp ứng các mục tiêu cuối cùng được đặt ra trong các giai
đoạn khám phá ban đầu. Cuối cùng, những người liên quan đến việc sử dụng dữ liệu xuôi
dòng sẽ xác nhận dữ liệu đáp ứng nhu cầu của họ, chẳng hạn như các doanh nghiệp vừa
và nhỏ sẽ sử dụng dữ liệu để làm phong phú thêm một ứng dụng kinh doanh mới. Thông
thường tại thời điểm này, các sửa đổi sẽ cần được thực hiện và do đó, chu kỳ bắt đầu lại
dưới một hình thức nào đó.
4. Data Analysis
4.1. Apache Hadoop
Apache Hadoop là miễn phí và mã nguồn mở nền tảng để lưu trữ và xử lý các tập dữ
liệu lớn có kích thước từ gigabyte đến petabyte. Hadoop cho phép phân cụm nhiều máy
tính để phân tích song song các bộ dữ liệu khổng lồ, thay vì yêu cầu một máy tính lớn
duy nhất để lưu trữ và phân tích dữ liệu.
MapReduce và Hệ thống tệp phân tán Hadoop là hai trong số các thành phần:
 Bản đồ Giảm - MapReduce là một kỹ thuật lập trình song song để xử lý khối
lượng lớn dữ liệu có tổ chức, bán cấu trúc và phi cấu trúc trên các cụm phần cứng hàng
hóa.
 HDFS - HDFS (Hệ thống tệp phân tán Hadoop) là một thành phần khung Hadoop
lưu trữ và xử lý dữ liệu. Đó là một hệ thống tệp có khả năng chịu lỗi chạy trên phần cứng
tiêu chuẩn
Các dự án con (công cụ) khác nhau trong hệ sinh thái Hadoop, bao gồm Sqoop, Pig và
Hive, được sử dụng để hỗ trợ các mô-đun Hadoop.
 Tổ ong - Hive là một khuôn khổ để viết các script kiểu SQL thực hiện các phép
tính MapReduce.
 Heo - Pig là một ngôn ngữ lập trình thủ tục có thể được sử dụng để tạo tập lệnh
cho các quy trình MapReduce.
 Sqoop - Sqoop là công cụ nhập và xuất dữ liệu giữa HDFS và RDBMS.
4.2. Apache Hive
4.2.1. Khái niệm
Apache Hive là một mã nguồn mở kho dữ liệu chương trình để đọc, ghi và quản lý
các tập dữ liệu khổng lồ được lưu trữ trực tiếp trong Hệ thống tệp phân tán Apache
Hadoop (HDFS) hoặc các hệ thống lưu trữ dữ liệu khác như Apache HBase.
Các nhà phát triển SQL có thể sử dụng Hive để tạo các câu lệnh Hive Query
Language (HQL) để truy vấn và phân tích dữ liệu có thể so sánh với các câu lệnh SQL

25
thông thường. Nó được tạo ra để giúp lập trình MapReduce dễ dàng hơn bằng cách loại
bỏ nhu cầu học và viết mã Java dài. Thay vào đó, bạn có thể viết các truy vấn của mình
trong HQL và Hive sẽ xây dựng bản đồ và giảm bớt các chức năng cho bạn.
Giao diện giống SQL của Apache Hive đã trở thành Tiêu chuẩn vàng để thực hiện các
tìm kiếm đặc biệt, tóm tắt và phân tích dữ liệu Hadoop. Khi được đưa vào đám mây mạng
máy tính, giải pháp này đặc biệt hiệu quả về chi phí và có thể mở rộng, đó là lý do tại sao
nhiều công ty, bao gồm Netflix và Amazon, tiếp tục phát triển và cải tiến Apache Hive.

4.2.2. Nguyên lý hoạt động


Apache Hive chuyển đổi chương trình đầu vào được viết bằng ngôn ngữ HiveQL
(giống SQL) thành một hoặc nhiều tác vụ Java MapReduce, Tez hoặc Spark. (Tất cả các
công cụ thực thi này đều tương thích với Hadoop YARN.) Sau đó, Apache Hive sắp xếp
dữ liệu thành các bảng cho HDFS Hệ thống tệp phân tán Hadoop) và thực hiện các tác vụ
trên một cụm để nhận được câu trả lời.
Các bảng Apache Hive được sắp xếp giống như các bảng trong cơ sở dữ liệu quan hệ
được tổ chức, với các đơn vị dữ liệu có kích thước từ lớn hơn đến nhỏ hơn. Cơ sở dữ liệu
được tạo thành từ các bảng được chia thành các bộ phận, các bảng này lại được chia
thành các nhóm. HiveQL (Ngôn ngữ truy vấn Hive) được sử dụng để truy cập dữ liệu, dữ
liệu này có thể được thay đổi hoặc thêm vào. Dữ liệu bảng được tuần tự hóa trong mỗi cơ
sở dữ liệu và mỗi bảng có thư mục HDFS riêng.
4.2.3. Cấu trúc của Apache Hive
Bây giờ chúng ta sẽ nói về khía cạnh quan trọng nhất của Kiến trúc Hive. Các thành
phần của Apache Hive như sau:

26
Kho hàng - Nó theo dõi thông tin về mỗi bảng, chẳng hạn như cấu trúc và vị trí của
nó. Siêu dữ liệu phân vùng cũng được bao gồm trong Hive. Điều này cho phép trình điều
khiển theo dõi tiến trình của các tập dữ liệu khác nhau trải rộng trong cụm. Dữ liệu được
lưu trữ ở định dạng RDBMS thông thường. Siêu dữ liệu Hive là cực kỳ quan trọng để
trình điều khiển duy trì theo dõi dữ liệu. Máy chủ sao lưu sao lưu dữ liệu một cách
thường xuyên để nó có thể được phục hồi trong trường hợp mất dữ liệu.
Người lái xe - Các câu lệnh HiveQL được nhận bởi một trình điều khiển, có chức
năng như một bộ điều khiển. Bằng cách thiết lập các phiên, trình điều khiển bắt đầu thực
hiện câu lệnh. Nó theo dõi tuổi thọ và tiến độ của giám đốc điều hành. Trong quá trình
thực thi một câu lệnh HiveQL, trình điều khiển sẽ lưu siêu dữ liệu được yêu cầu. Nó cũng
đóng vai trò là điểm thu thập dữ liệu hoặc kết quả truy vấn sau quá trình Rút gọn.
Trình biên dịch - Nó thực hiện biên dịch truy vấn HiveQL. Truy vấn hiện được
chuyển đổi thành một kế hoạch thực thi. Các nhiệm vụ được liệt kê trong kế hoạch. Nó
cũng bao gồm các bước mà MapReduce phải thực hiện để có được kết quả như được dịch
bởi truy vấn. Truy vấn được trình biên dịch của Hive (AST) chuyển đổi thành Cây cú
pháp trừu tượng. Chuyển đổi AST thành Đồ thị vòng có hướng dẫn sau khi kiểm tra tính
tương thích và lỗi thời gian biên dịch (DAG).
Trình tối ưu hóa - Nó tối ưu hóa DAG bằng cách thực hiện các thay đổi khác nhau
trên kế hoạch thực hiện. Nó kết hợp các phép biến đổi để cải thiện hiệu quả, chẳng hạn
như biến một đường dẫn các phép nối thành một phép nối duy nhất. Để cải thiện tốc độ,
trình tối ưu hóa có thể phân chia các hoạt động, chẳng hạn như áp dụng một phép chuyển
đổi cho dữ liệu trước khi thực hiện thao tác giảm.
Công chức - Người thực thi chạy các tác vụ khi quá trình biên dịch và tối ưu hóa kết
thúc. Các công việc được điều hành bởi Người thừa hành.
CLI, UI và Thrift Server - Giao diện dòng lệnh (CLI) là giao diện người dùng cho
phép người dùng bên ngoài giao tiếp với Hive. Máy chủ tiết kiệm của Hive, tương tự như
các giao thức JDBC hoặc ODBC, cho phép các máy khách bên ngoài giao tiếp với Hive
qua mạng.
Bảo mật - Apache Hive được tích hợp với bảo mật Hadoop, sử dụng Kerberos để xác
thực lẫn nhau giữa máy khách-máy chủ. HDFS chỉ định quyền cho các tệp mới được tạo
trong Apache Hive, cho phép bạn phê duyệt bởi người dùng, nhóm và những người khác.
4.2.4. Các Tính Năng Chính
Hive hỗ trợ các bảng bên ngoài, cho phép bạn xử lý dữ liệu mà không cần lưu trữ
trong HDFS.
Nó cũng cho phép phân đoạn dữ liệu ở cấp bảng để tăng tốc độ.
Apache Hive đáp ứng xuất sắc nhu cầu giao diện cấp thấp của Hadoop.
Hive giúp việc tóm tắt, truy vấn và phân tích dữ liệu trở nên dễ dàng hơn.

27
HiveQL không yêu cầu bất kỳ kỹ năng lập trình nào; hiểu đơn giản về các truy vấn
SQL là đủ.
Chúng tôi cũng có thể sử dụng Hive để thực hiện các truy vấn đặc biệt để phân tích dữ
liệu.
Nó có thể mở rộng, quen thuộc và có thể thích ứng.
HiveQL không yêu cầu bất kỳ kỹ năng lập trình nào; hiểu đơn giản về các truy vấn
SQL là đủ.
4.2.5. Ưu điểm và nhược điểm
Apache Hive cho phép báo cáo cuối ngày, đánh giá giao dịch hàng ngày, tìm kiếm đột
xuất và phân tích dữ liệu. Thông tin chi tiết toàn diện do Apache Hive cung cấp mang lại
lợi thế cạnh tranh đáng kể và giúp bạn đáp ứng nhu cầu thị trường dễ dàng hơn.
- Ưu điểm:
 Dễ sử dụng - Với ngôn ngữ giống SQL, việc truy vấn dữ liệu rất dễ hiểu.
 Chèn dữ liệu tăng tốc - Vì Apache Hive đọc lược đồ mà không xác minh loại
bảng hoặc định nghĩa lược đồ, dữ liệu không phải đọc, phân tích cú pháp và tuần tự hóa
vào đĩa ở định dạng bên trong của cơ sở dữ liệu. Ngược lại, trong cơ sở dữ liệu thông
thường, dữ liệu phải được xác thực mỗi khi được thêm vào.
 Khả năng mở rộng vượt trội, tính linh hoạt và hiệu quả chi phí - Bởi vì dữ liệu
được lưu trữ trong HDFS, Apache Hive có thể chứa 100 petabyte dữ liệu, làm cho nó trở
thành một tùy chọn có khả năng mở rộng hơn nhiều so với một cơ sở dữ liệu thông
thường. Apache Hive, là một dịch vụ Hadoop dựa trên đám mây, cho phép khách hàng
nhanh chóng quay lên và xuống các máy chủ ảo để đáp ứng khối lượng công việc đang
thay đổi.
 Năng lực làm việc rộng rãi - Bộ dữ liệu lớn có thể xử lý tới 100,000 truy vấn mỗi
giờ.
- Nhược điểm
 Nói chung, các truy vấn Apache Hive có độ trễ rất cao.
 Hỗ trợ truy vấn con bị hạn chế.
 Các truy vấn thời gian thực và thay đổi cấp độ hàng không khả dụng trong Apache
Hive.
 Không có hỗ trợ cho các quan điểm cụ thể hóa.
 Trong tổ ong, các hành động cập nhật và xóa không được hỗ trợ.
 Không dành cho OLTP (quy trình chuyển tiếp trực tuyến).
4.3. Apache Impala
4.3.1. Khái niệm
Impala là một công cụ truy vấn SQL MPP (Massive Parallel Processing) để xử lý khối
lượng dữ liệu khổng lồ được lưu trữ trong cụm Hadoop. Nó là một phần mềm mã nguồn

28
mở được viết bằng C ++ và Java. Nó cung cấp hiệu suất cao và độ trễ thấp so với các công
cụ SQL khác cho Hadoop.
Nói cách khác, Impala là công cụ SQL có hiệu suất cao nhất (mang lại trải nghiệm
giống như RDBMS) cung cấp cách nhanh nhất để truy cập dữ liệu được lưu trữ trong Hệ
thống tệp phân tán Hadoop.
4.3.2. Nhiệm vụ
Impala kết hợp hỗ trợ SQL và hiệu suất đa người dùng của cơ sở dữ liệu phân tích
truyền thống với khả năng mở rộng và tính linh hoạt của Apache Hadoop, bằng cách sử
dụng các thành phần tiêu chuẩn như HDFS, HBase, Metastore, YARN và Sentry.
 Với Impala, người dùng có thể giao tiếp với HDFS hoặc HBase bằng cách sử dụng
các truy vấn SQL một cách nhanh hơn so với các công cụ SQL khác như Hive.
 Impala có thể đọc hầu hết các định dạng tệp như Parquet, Avro, RCFile được
Hadoop sử dụng.
Impala sử dụng cùng một siêu dữ liệu, cú pháp SQL (Hive SQL), trình điều khiển
ODBC và giao diện người dùng (Hue Beeswax) như Apache Hive, cung cấp một nền tảng
quen thuộc và thống nhất cho các truy vấn theo định hướng hàng loạt hoặc thời gian thực.
Không giống như Apache Hive, Impala không dựa trên các thuật toán MapReduce.
Nó thực hiện một kiến trúc phân tán dựa trên các quy trình daemon chịu trách nhiệm cho
tất cả các khía cạnh của thực thi truy vấn chạy trên cùng một máy.
Do đó, nó làm giảm độ trễ của việc sử dụng MapReduce và điều này làm cho Impala
nhanh hơn Apache Hive.
4.3.3. Ưu điểm và nhược điểm của Impala
Dưới đây là danh sách một số ưu điểm đáng chú ý của Cloudera Impala.
 Sử dụng impala, bạn có thể xử lý dữ liệu được lưu trữ trong HDFS với tốc độ nhanh
như chớp với kiến thức SQL truyền thống.
 Vì quá trình xử lý dữ liệu được thực hiện ở nơi dữ liệu cư trú (trên cụm Hadoop),
nên việc chuyển đổi dữ liệu và di chuyển dữ liệu là không cần thiết đối với dữ liệu được
lưu trữ trên Hadoop, trong khi làm việc với Impala.
 Sử dụng Impala, bạn có thể truy cập dữ liệu được lưu trữ trong HDFS, HBase và
Amazon s3 mà không cần kiến thức về Java (công việc MapReduce). Bạn có thể truy cập
chúng với một ý tưởng cơ bản về các truy vấn SQL.
 Để viết truy vấn trong các công cụ kinh doanh, dữ liệu phải trải qua một chu trình
trích xuất-chuyển đổi-tải (ETL) phức tạp. Nhưng, với Impala, thủ tục này được rút ngắn.
Các giai đoạn tốn thời gian của việc tải và tổ chức lại được khắc phục bằng các kỹ thuật
mới như phân tích dữ liệu thăm dò & khám phá dữ liệu giúp quá trình nhanh hơn.

29
 Impala đang đi tiên phong trong việc sử dụng định dạng tệp Parquet, một bố cục lưu
trữ cột được tối ưu hóa cho các truy vấn quy mô lớn điển hình trong các tình huống kho dữ
liệu.
Một số nhược điểm của việc sử dụng Impala như sau:
 Impala không cung cấp bất kỳ hỗ trợ nào cho Serialization và Deserialization.
 Impala chỉ có thể đọc các tệp văn bản, không thể đọc các tệp nhị phân tùy chỉnh.
 Bất cứ khi nào các bản ghi/tệp mới được thêm vào thư mục dữ liệu trong HDFS,
bảng cần được làm mới.
4.3.4. Các tính năng của Impala
Dưới đây là các tính năng của cloudera Impala:
 Impala có sẵn miễn phí dưới dạng mã nguồn mở theo giấy phép Apache.
 Impala hỗ trợ xử lý dữ liệu trong bộ nhớ, tức là nó truy cập / phân tích dữ liệu được
lưu trữ trên các nút dữ liệu Hadoop mà không cần di chuyển dữ liệu.
 Bạn có thể truy cập dữ liệu bằng Impala bằng cách sử dụng các truy vấn giống SQL.
 Impala cung cấp quyền truy cập nhanh hơn cho dữ liệu trong HDFS khi so sánh với
các công cụ SQL khác.
 Sử dụng Impala, bạn có thể lưu trữ dữ liệu trong các hệ thống lưu trữ như HDFS,
Apache HBase và Amazon s3.
 Bạn có thể tích hợp Impala với các công cụ nghiệp vụ thông minh như Tableau,
Pentaho, chiến lược Micro và dữ liệu Zoom.
 Impala hỗ trợ các định dạng tệp khác nhau như, LZO, Sequence File, Avro, RCFile
và Parquet.
 Impala sử dụng siêu dữ liệu, trình điều khiển ODBC và cú pháp SQL từ Apache
Hive.
4.3.5. Cơ sở dữ liệu quan hệ và Impala
Impala sử dụng ngôn ngữ truy vấn tương tự như SQL và HiveQL. Bảng sau đây mô tả
một số phím dfferences giữa SQL và ngôn ngữ truy vấn Impala.
Impala Cơ sở dữ liệu quan hệ

Impala sử dụng SQL giống như ngôn Cơ sở dữ liệu quan hệ sử dụng ngôn ngữ
ngữ truy vấn tương tự như HiveQL. SQL.

Trong Impala, bạn không thể cập nhật Trong cơ sở dữ liệu quan hệ, có thể cập nhật
hoặc xóa các bản ghi riêng lẻ. hoặc xóa các bản ghi riêng lẻ.

Impala không hỗ trợ giao dịch. Cơ sở dữ liệu quan hệ hỗ trợ các giao dịch.

Impala không hỗ trợ lập chỉ mục. Cơ sở dữ liệu quan hệ hỗ trợ lập chỉ mục.

30
Impala lưu trữ và quản lý lượng lớn dữ Cơ sở dữ liệu quan hệ xử lý lượng dữ liệu nhỏ
liệu (petabyte). hơn (terabyte) khi so sánh với Impala.

4.4. Apache Drill


4.4.1. Tìm hiểu về Apacha Drill
Lấy cảm hứng từ hệ thống Dremel của Google, Apache Drill được thiết kế để phân
tích tương tác có độ trễ thấp của các tập dữ liệu rất lớn. Drill hỗ trợ nhiều nguồn dữ liệu,
bao gồm cả HBase, Cassandra, và MongoDB cũng như cơ sở dữ liệu quan hệ truyền
thống. Với Hadoop, bạn nhận được băng thông dữ liệu lớn, nhưng khám phá một ý tưởng
có thể mất thời gian vài giờ hoặc vài phút. Với Drill, bạn sẽ có được kết quả đủ nhanh để
làm việc tương tác, vì vậy ý tưởng có thể được khám phá nhanh chóng và các lý thuyết có
hiệu quả được phát triển hơn nữa.

Apache khoan đơn giản và dễ sử dụng và hầu như ai cũng có thể xử lý và phân tích
dữ liệu lớn với nó. Apache khoan có thể truy vấn nhiều bộ dữ liệu có cấu trúc và phi cấu
trúc với sự giúp đỡ của ANSI SQL. Người dùng chỉ cần sử dụng SQL và bất kỳ Business
Intelligence (BI) công cụ để chạy các truy vấn chạy trên dữ liệu từ nhiều nguồn. Apache
khoan có thể được sử dụng trên máy tính xách tay và không có nhu cầu để xác định bất
kỳ sơ đồ. Không có nghi ngờ rằng Apache khoan có trong nó để làm phân tích dữ liệu lớn
dễ tiếp cận hơn với các nhóm lớn hơn của người dân.
31
4.4.2. Khái niệm
Apache khoan là một công cụ truy vấn nguồn mở cung cấp phân tích SQL tương tác
và an toàn ở quy mô của petabytes. Máy khoan là lần đầu tiên của loại hình này trong
việc cung cấp dữ liệu truy vấn và khám phá khả năng từ các nguồn khác nhau như cơ sở
dữ liệu NoSQL hoặc nhiều định dạng tập tin. Kể từ khi Apache khoan theo tiêu chuẩn
ANSI SQL, không có nỗ lực cần thiết trong học tập tươi. Tất cả bạn cần làm là để có kiến
thức về SQL và bạn có thể bắt đầu.
Những lợi ích chính của Apache là khoan:
 Các doanh nghiệp không cần phải phụ thuộc vào một hồ bơi tài năng chọn để truy
cập và phân tích dữ liệu. Các hồ bơi tài năng hiện có và các nguồn tài nguyên trên ANSI
SQL có thể được sử dụng để có được kết quả nhanh chóng. Các nhà phân tích cho SQL
và các chuyên gia kinh doanh thông minh có thể truy vấn và phân tích dữ liệu một cách
nhanh chóng và các doanh nghiệp không cần phải phụ thuộc vào chuẩn bị dữ liệu của bộ
phận CNTT trong một thời gian dài.
 Các bộ phận CNTT có thể bỏ qua các công việc bảo dưỡng đồ không cần thiết và
các chu trình ETL và vẫn còn có quản trị đơn giản và dễ hiểu với sự giúp đỡ của các cơ
chế truy cập dạng hạt được dễ dàng để triển khai.

5. Data Visualization
5.1. Khái niệm
Có thể hiểu khái niệm Data Visualization một cách đơn giản là dùng các biểu đồ, bảng
đồ, đồ thị thay vì con số. Giúp người xem, người đọc có thể hiểu được nội dung được
truyền đạt, nắm bắt thông tin, khai thác tối ưu dữ liệu.
Một ví dụ thường gặp là khi viết báo cáo công việc, đối với phương pháp truyền thống
bạn sẽ gửi cho sếp một bảng báo cáo "ngập tràn" các con số. Cũng với dữ liệu này nhưng
được "trực quan" sẽ cho một kết quả hoàn toàn khác biệt.
Trực quan hóa dữ liệu có thể được sử dụng cho nhiều mục đích khác nhau và điều quan
trọng cần lưu ý rằng không chỉ được dành riêng để sử dụng bởi các nhóm dữ liệu. Quản lý
cũng tận dụng nó để truyền đạt cơ cấu tổ chức và phân cấp trong khi các nhà phân tích dữ
liệu và các nhà khoa học dữ liệu sử dụng nó để khám phá và giải thích các mô hình và xu
hướng. Harvard Business Review (Liên kết cư trú bên ngoài IBM) phân loại trực quan hóa
dữ liệu thành bốn mục đích chính: tạo ý tưởng, minh họa ý tưởng, khám phá trực quan và
Dataviz hàng ngày.
Tạo ra ý tưởng:
Trực quan hóa dữ liệu thường được sử dụng để thúc đẩy tạo ý tưởng giữa các nhóm.
Chúng thường được tận dụng trong các phiên tư duy thiết kế hoặc động não khi bắt đầu
một dự án bằng cách hỗ trợ thu thập các quan điểm khác nhau và làm nổi bật các mối quan
tâm chung của tập thể. Mặc dù những hình ảnh trực quan này thường không được đánh
32
bóng và chưa được tinh chỉnh, nhưng chúng giúp đặt nền tảng trong dự án để đảm bảo rằng
nhóm được liên kết với vấn đề mà họ đang tìm cách giải quyết cho các bên liên quan chính.
Minh họa ý tưởng:
Trực quan hóa dữ liệu để minh họa ý tưởng hỗ trợ trong việc truyền đạt một ý tưởng,
chẳng hạn như một chiến thuật hoặc quá trình. Nó thường được sử dụng trong các cài đặt
học tập, chẳng hạn như hướng dẫn, khóa học chứng nhận, trung tâm xuất sắc, nhưng nó
cũng có thể được sử dụng để đại diện cho các cấu trúc hoặc quy trình tổ chức, tạo điều kiện
giao tiếp giữa các cá nhân phù hợp với các nhiệm vụ cụ thể. Các nhà quản lý dự án thường
sử dụng biểu đồ Gantt và biểu đồ thác nước để minh họa quy trình công việc. Mô hình hóa
dữ liệu cũng sử dụng sự trừu tượng hóa để thể hiện và hiểu rõ hơn về luồng dữ liệu trong
hệ thống thông tin của doanh nghiệp, giúp các nhà phát triển, nhà phân tích kinh doanh,
kiến trúc sư dữ liệu và những người khác dễ dàng hiểu được các mối quan hệ trong cơ sở
dữ liệu hoặc kho dữ liệu.
Trực quan hóa dữ liệu
Trực quan hóa dữ liệu là một bước quan trọng trong quá trình khoa học dữ liệu, giúp
các nhóm và cá nhân truyền đạt dữ liệu hiệu quả hơn cho các đồng nghiệp và người ra
quyết định. Các nhóm quản lý các hệ thống báo cáo thường tận dụng chế độ xem mẫu được
xác định để theo dõi hiệu suất. Tuy nhiên, trực quan hóa dữ liệu không giới hạn trong bảng
điều khiển hiệu suất. Ví dụ, trong khi khai thác văn bản, một nhà phân tích có thể sử dụng
một đám mây từ để nắm bắt các khái niệm, xu hướng và các mối quan hệ ẩn trong dữ liệu
phi cấu trúc này. Ngoài ra, họ có thể sử dụng cấu trúc đồ thị để minh họa mối quan hệ giữa
các thực thể trong biểu đồ kiến thức. Có một số cách để thể hiện các loại dữ liệu khác nhau
và điều quan trọng cần nhớ là đó là một kỹ năng sẽ vượt ra ngoài nhóm phân tích cốt lõi
của bạn.
Các loại trực quan hóa dữ liệu:
Hình thức trực quan hóa dữ liệu sớm nhất có thể được bắt nguồn từ người Ai Cập
trong thế kỷ trước ngày 17, phần lớn được sử dụng để hỗ trợ điều hướng. Khi thời gian tiến
triển, mọi người tận dụng trực quan hóa dữ liệu cho các ứng dụng rộng hơn, chẳng hạn như
trong các ngành kinh tế, xã hội, sức khỏe. Có lẽ đáng chú ý nhất, Edward Tufte đã công bố
màn hình trực quan của thông tin định lượng (liên kết nằm bên ngoài IBM), minh họa rằng
các cá nhân có thể sử dụng trực quan hóa dữ liệu để trình bày dữ liệu một cách hiệu quả
hơn. Cuốn sách của ông tiếp tục đứng trước thử thách của thời gian, đặc biệt là khi các
công ty chuyển sang bảng điều khiển để báo cáo số liệu hiệu suất của họ trong thời gian
thực. Bảng điều khiển là các công cụ trực quan hóa dữ liệu hiệu quả để theo dõi và trực
quan hóa dữ liệu từ nhiều nguồn dữ liệu, cung cấp khả năng hiển thị về các tác động của
các hành vi cụ thể của một nhóm hoặc một nhóm liền kề về hiệu suất. Bảng điều khiển bao
gồm các kỹ thuật trực quan phổ biến, chẳng hạn như:

33
5.2. Các loại trực quan hóa dữ liệu
Thông tin được trình bày dưới dạng bảng, đồ họa với dữ liệu được hiển thị dọc theo hai
trục. Có thể ở dạng biểu đồ, sơ đồ hoặc bản đồ.
 Bảng: Tập hợp các số liệu được hiển thị theo hàng và cột.
 Biểu đồ: Biểu đồ gồm các điểm, đường thẳng, đoạn thẳng, đường cong hoặc vùng
biểu thị các biến nhất định so với nhau, thường dọc theo hai trục ở một góc vuông.
 Không gian địa lý: Hình ảnh trực quan hóa hiển thị dữ liệu ở dạng bản đồ sử dụng
các hình dạng và màu sắc khác nhau để hiển thị mối quan hệ giữa các phần dữ liệu và
vị trí cụ thể.
 Infographic: Sự kết hợp giữa hình ảnh và từ ngữ thể hiện dữ liệu. Thường sử dụng
biểu đồ hoặc sơ đồ.
 Trang tổng quan: Tập hợp các hình ảnh và dữ liệu được hiển thị ở một nơi để giúp
phân tích và trình bày dữ liệu.
5.3. Các công cụ trực quan hóa
Truy cập vào các công cụ trực quan hóa dữ liệu chưa bao giờ dễ dàng hơn. Các thư
viện nguồn mở, chẳng hạn như D3.js, cung cấp một cách để các nhà phân tích trình bày dữ
liệu theo cách tương tác, cho phép họ thu hút đối tượng rộng hơn với dữ liệu mới. Một số
thư viện trực quan nguồn mở phổ biến nhất bao gồm:
D3.js: Đây là một thư viện JavaScript phía trước để tạo ra trực quan dữ liệu tương tác,
động trong trình duyệt web. D3.js (liên kết cư trú bên ngoài IBM) sử dụng HTML, CSS và
SVG để tạo các biểu diễn trực quan của dữ liệu có thể được xem trên bất kỳ trình duyệt
nào. Nó cũng cung cấp các tính năng cho các tương tác và hình ảnh động.
Echarts: Một thư viện biểu đồ và trực quan mạnh mẽ cung cấp một cách dễ dàng để
thêm các biểu đồ trực quan, tương tác và có thể tùy chỉnh cao cho các sản phẩm, tài liệu
nghiên cứu, thuyết trình, v.v. thư viện.
VEGA: VEGA (Liên kết nằm bên ngoài IBM) tự định nghĩa là ngữ pháp trực quan
hóa của Hồi giáo, cung cấp hỗ trợ để tùy chỉnh trực quan hóa trên các bộ dữ liệu lớn có thể
truy cập từ web.
Deck.gl: Đây là một phần của bộ khung trực quan nguồn mở của Uber. boong.gl (liên
kết cư trú bên ngoài IBM) là một khung, được sử dụng để phân tích dữ liệu khám phá trên
dữ liệu lớn. Nó giúp xây dựng trực quan hóa GPU hiệu suất cao trên web.
Trực quan hóa dữ liệu thực hành tốt nhất
Với rất nhiều công cụ trực quan hóa dữ liệu có sẵn, cũng đã có sự gia tăng trong trực
quan hóa thông tin không hiệu quả. Giao tiếp trực quan nên đơn giản và có chủ ý để đảm
bảo rằng trực quan hóa dữ liệu của bạn giúp đối tượng mục tiêu của bạn đi đến cái nhìn sâu
sắc hoặc kết luận dự định của bạn. Các thực tiễn tốt nhất sau đây có thể giúp đảm bảo trực
quan hóa dữ liệu của bạn là hữu ích và rõ ràng

34
5.4. Ưu điểm và nhược điểm
Ưu điểm
Đôi mắt của chúng ta bị thu hút bởi màu sắc và hoa văn. Chúng ta có thể nhanh chóng
xác định màu đỏ từ màu xanh lam và hình vuông từ hình tròn. Trực quan hóa dữ liệu là
một hình thức nghệ thuật thị giác khác thu hút sự quan tâm của mọi người giúp họ dễ dàng
chú ý đến thông điệp. Khi xem biểu đồ, chúng ta nhanh chóng thấy các xu hướng và giá trị
ngoại lệ.
+Dễ dàng chia sẻ thông tin.
+Tương tác khám phá cơ hội.
+Trực quan hóa các mẫu và mối quan hệ.
Nhược điểm
+Mặc dù có nhiều lợi thế, một số nhược điểm có vẻ ít rõ ràng hơn. Ví dụ, khi xem một
hình ảnh trực quan với nhiều dữ liệu khác nhau, nó dễ dàng đưa ra giả định không chính
xác.
+Hoặc đôi khi hình dung chỉ được thiết kế sai để nó thiên vị hoặc khó hiểu.
+Thông tin thiên vị hoặc không chính xác.
+Tương quan không phải lúc nào cũng có nghĩa là nhân quả.
+Thông điệp cốt lõi có thể bị mất trong dịch thuật.
5.5. Power BI
5.5.1. Sơ bộ về phần mềm Power BI
“BI” trong Power BI là viết tắt của Business Intelligence đó là phần mềm giúp báo cáo
dễ dàng hơn và hấp dẫn hơn về mặt hình ảnh. Nền tảng tạo trang tổng quan tương tác mà
người dùng có thể dễ dàng chia sẻ.
Power BI có thể được dùng với nhiều mục đích khác nhau:
- Power BI có thể kéo và tổng hợp các dữ liệu về lại một nơi và xử lý các dữ liệu đó
trở thành các thông tin dễ hiểu hơn (thông thường là các hình ảnh bắt mắt, đồ thị, biểu đồ).
- Power BI có thể kết nối nhiều nguồn dữ liệu với dung lượng từ nhỏ đến lớn (>200
nguồn)
Files: Excel, Access…
Data Warehouse: SQL, Azure SQL…
SharePoint list, Website…

35
5.5.2. Các thành phần của Power BI
 Power Query: công cụ để làm sạch, chuyển đổi và chuẩn hóa dữ liệu, đưa dữ liệu
từ dạng thô trở thành dữ liệu “sạch sẽ”, sẵn sàng để đưa vào phân tích.
 Power Pivot: công cụ mô hình hóa dữ liệu, thiết lập các liên kết và tạo ra các phép
tính với các hàm DAX (data analysis expression).
 Power View: tạo các biểu đồ trực quan, có tính tương tác với nhau, các bộ lọc (filter,
slicer) để xây dựng nên một dashboard chứa đựng nhiều thông tin hữu ích.
 Power Map: công cụ trực quan hóa dữ liệu dạng 3-D giúp bạn lập bản đồ dữ liệu.
Hoạt động dựa trên bản đồ của Bing, Power Map tạo ra các hình ảnh trực quan tốt
nhất dựa trên thông tin vĩ độ, kinh độ hoặc quốc gia, tiểu bang, thành phố và địa chỉ
đường phố.
 Power Q&A: tính năng Q&A (Question & Answer) trong Power BI cho phép bạn
khám phá dữ liệu của mình theo cách của riêng bạn bằng những câu hỏi đơn giản.
Đây là cách nhanh nhất để nhận được câu trả lời từ dữ liệu của bạn bằng ngôn ngữ
tự nhiên.
 Power BI Desktop: đây là công cụ trung tâm của toàn bộ kiến trúc của Power BI,
giúp xây dựng và phát triển các giải pháp kinh doanh thông minh và phân tích dữ
liệu.
 Power BI Website (Power BI Service): là một dạng phần mềm như là dịch vụ SaaS
(Software as a Service). Power BI Service đóng vai trò như là một đám mây lưu
trữ, theo dõi và chia sẻ báo cáo với người khác.
5.5.3. Ưu điểm và nhược điểm
Ưu điểm của Power BI
 Các hình ảnh trực quan hóa - Một trong những điểm mạnh nhất mà Power BI có
chính là các hình ảnh trực quan hóa dữ liệu. Nó có chức năng thả và kéo, cho phép
bạn sửa đổi giao diện của báo cáo một cách dễ dàng, dù cho bạn là người mới. Bên
cạnh đó, bạn còn có thể áp dụng các bộ lọc và tương tác trực tiếp với ứng dụng.
 ứng dụng.

36
 Sự liên kết bền chặt - Power BI cho phép người dùng cộng tác trong thời gian thực.
Với dịch vụ Power BI, nhiều người có thể làm việc trên cùng một tệp cùng một thời
điểm.
 Khả năng kết nối - Power BI kết nối với nhiều nguồn dữ liệu, bao gồm Excel, cơ sở
dữ liệu SQL Server, Google Analytics, phân tích truyền thông xã hội, nguồn Azure,
nguồn dựa trên đám mây, ...
 Tích hợp Excel – Người dùng có thể tải và xem dữ liệu Power BI trong Excel, điều
này sẽ đặc biệt có lợi khi bạn sử dụng báo cáo dạng bảng.
Nhược điểm của Power BI
 Không thiết kế được đối với các bảng phức tạp - Power BI sẽ gặp khó khăn khi xử
lý liên kết giữa các bảng. Vì thế, người dùng cần đảm bảo rằng các mô hình dữ liệu
bổ sung chỉ có một trường duy nhất, nếu không Power BI sẽ bị nhầm lẫn giữa các
bảng.
 ulky UI - Giao diện người dùng của Power BI chỉ đang tập trung vào các biểu tượng
và tùy chọn, vì thế vẫn còn một số hạn chế như chế độ chặn xem trang tổng quan và
báo cáo.
 Cấu hình của hình ảnh bị hạn chế - Microsoft có nhiều hình ảnh đa dạng với Power
BI. Tuy nhiên, trong khi người dùng hiếm khi cần cấu hình của hình ảnh thì các tùy
chọn và tùy chỉnh lại bị hạn chế.
 Phức tạp - Về bản chất, Power BI là một công cụ trực quan, tương đối đơn giản để
nhập dữ liệu và tạo báo cáo. Tuy nhiên, nhiều công cụ có liên quan với nhau lại làm
tăng độ phức tạp của nó lên.
5.5.4. Hướng dẫn sử dụng Power BI

37
Power BI Workspace:
Hình ảnh bên dưới làm nổi bật các thành phần chính của không gian làm việc của Power
BI.

Các Chế độ xem cơ bản:


Chế độ xem Báo cáo: Đây là chế độ xem chính nơi Trang tổng quan được tạo.
Chế độ xem dữ liệu: Chế độ xem dữ liệu cung cấp bản xem trước của toàn bộ dữ liệu.

38
Chế độ xem mối quan hệ: Chế độ xem mối quan hệ hiển thị mối quan hệ giữa các đối tượng
khác nhau.

Kết nối dữ liệu


Để kết nối đến dữ liệu trong Power BI Desktop bạn chọn “Get Data” từ menu Home. Lúc
này, Power BI sẽ cho bạn một danh sách các định dạng file dữ liệu mà phần mềm hỗ trợ.

Ngoài ra Power BI còn hỗ trợ lấy dữ liệu từ nhiều nguồn:

39
Ta tải 1 vd về báo cáo tài chính giả về để thực hành tại đường link:

Sau khi thêm vào theo dạng file excel:


Sau khi được tải, dữ liệu có thể được xem trong Fields Pane.

40
Chuyển đổi dữ liệu
Sau khi dữ liệu đã được tải, nó sẽ hiển thị trong Tab Trường. Từ đây, chúng tôi có thể sửa
đổi bộ dữ liệu của mình với sự trợ giúp của Trình soạn thảo truy vấn. Trình chỉnh sửa truy
vấn có thể được sử dụng để sửa đổi bộ dữ liệu bất kể nguồn dữ liệu của chúng. Chúng ta
có thể thực hiện các thao tác như đổi tên tập dữ liệu, xóa một hoặc nhiều cột, v.v. trong
trình chỉnh sửa truy vấn. Có thể truy cập Query Editorbằng cách nhấp vào nút Edit Queries
trên Home Ribbon.
Tạo cột tùy chỉnh
Sử dụng cùng một dữ liệu Tài chính mà chúng tôi đã sử dụng ở trên. Hãy tạo một cột tùy
chỉnh có tên là Giá sản xuất mới, bằng: ([manufacturing Price])*3\
Trong trình Query Editor bạn có thể tạo ra các công thức tùy chỉnh từ giá trị ở các cột
khác trong bảng. Sau đó, sử dụng kết quả để tạo ra cột mới, tại tab Add Column chọn Add
Custom Column.

41
Thao tác thêm, xóa, sửa tương tự các phần mềm khác của Microsoft
Thay đổi kiểu dữ liệu cột:
Kiểu dữ liệu của các cột cũng có thể được thay đổi dễ dàng. Cột Đơn vị đã bán có kiểu dữ
liệu dấu phẩy động có thể được điều chỉnh thành một số nguyên.

Tạo một bảng điều khiển


Khi tập dữ liệu với tất cả các thao tác được thực hiện, tiến hành quy trình tạo Trang tổng
quan. Bảng điều khiển Power BI, còn được gọi là canvas, bao gồm nhiều hình ảnh trực
quan hóa trên một trang giúp kể một câu chuyện. Những hình ảnh trực quan được gọi là ô
xếp này được ghim vào trang tổng quan từ các báo cáo.
Vd:
Doanh số theo quốc gia:
42
Trong tab visualization ta chọn map và thực hiện kéo thả dữ liệu country trong tab fields
vào canvas. Kết quả sẽ tạo ra bản đồ chứa các nước có doanh số.

Tiếp đến kéo thả mục sales vào trong bản đồ vửa tạo để hiện thị chính xác doanh số thực
tế theo data:

Doanh thu và lợi nhuận theo phân khúc:


Trong tab Visualization chọn biểu đồ cột đôi, và tick chọn mục sale và profit bên tab Fields
và kéo thả vào canvas.

43
Tiếp đến chọn mục segment và kéo thả vào biểu đồ đôi đã có:

Tương tự, ta có thể vẽ các biểu đồ như doanh thu và lợi nhuận theo theo tháng, doanh thu
theo sản phẩm, lợi nhuận theo dải chiết khấu:

Lưu và xuất bản


Bạn có thể lưu tệp của mình dưới dạng mẫu Power BI. Các hình ảnh trực quan cũng có thể
được xuất dưới dạng tệp PDF.
Hoặc xuất bản lên Dịch vụ Power BI. Sau đó có thể sử dụng Ứng dụng Power BI để xem
hoặc tương tác với Bảng điều khiển/Báo cáo.
5.6. Apache Zeppelin
5.6.1. Giới thiệu Apache Zeppelin
Apache Zeppelin là một "sổ ghi chép" dựa trên web, mã nguồn mở cho phép phân tích dữ
liệu tương tác và các tài liệu cộng tác. Máy tính xách tay được tích hợp với các hệ thống
xử lý dữ liệu đa năng, phân tán như Apache Spark (xử lý dữ liệu quy mô lớn), Apache
Flink (khung xử lý luồng) và nhiều hệ thống khác. Apache Zeppelin cho phép bạn tạo các
tài liệu tương tác đẹp, dựa trên dữ liệu với SQL, Scala, R hoặc Python ngay trong trình
duyệt của bạn.

44
5.6.2. Các tính năng của Apache Zeppelin
Giao diện tương tác
Apache Zeppelin có giao diện tương tác cho phép bạn xem ngay kết quả phân tích của
mình và có kết nối ngay lập tức với sáng tạo của bạn

Tích hợp với nhiều công cụ dữ liệu lớn nguồn mở khác nhau như các dự án Apache Spark,
Flink, Hive, Ignite, Lens và Tajo.
Sổ tay trình duyệt
Tạo sổ ghi chép chạy trong trình duyệt của bạn (cả trên máy và từ xa) và thử nghiệm các
loại biểu đồ khác nhau để khám phá bộ dữ liệu của bạn:

Dynamic Forms
Tự động tạo các hình thức đầu vào ngay trong máy tính xách tay của bạn.

45
Hợp tác và chia sẻ
Cộng đồng nhà phát triển đa dạng và sôi động cho phép bạn truy cập vào các nguồn dữ liệu
mới liên tục được bổ sung và phân phối thông qua giấy phép Apache 2.0 nguồn mở của họ.

Thông dịch viên


Khái niệm trình thông dịch Zeppelin của Apache cho phép mọi ngôn ngữ / xử lý dữ liệu-
phụ trợ được cắm vào Zeppelin. Hiện tại, Apache Zeppelin hỗ trợ nhiều trình thông dịch
như Apache Spark, Python, JDBC, Markdown và Shell.

46
Thêm một thông dịch viên MySQL
Trong nền tảng Apache Zeppelin, hãy chuyển đến trình đơn thả xuống ở góc trên bên phải
và nhấp vào Trình thông dịch :

Đây là nơi bạn có thể tìm thấy một danh sách tất cả các thông dịch viên. Chúng
ta cần tạo một cái mới cho MySQL, vì vậy hãy nhấp vào nút Create ở góc trên
bên phải:

Nhập tên dễ nhận biết cho trình thông dịch (ví dụ: mysql ) và chọn nhóm làm JDBC:

47
Giữ tất cả các tùy chọn mặc định, nhưng nhập các chi tiết cần thiết và đảm bảo rằng kết
nối đến máy chủ MySQL của bạn được thiết lập:

Chúng ta cũng cần thêm một tạo phẩm tùy chỉnh vào JAR của trình kết nối MySQL để
Zeppelin biết nơi thực hiện nó. Tải xuống trình kết nối tại đây , đặt nó vào thư mục trình
thông dịch / jdbc và sau đó cung cấp đường dẫn chính xác đến tạo phẩm:

Để kiểm tra trình thông dịch, cần tạo một ghi chú mới. Nhưng trước tiên, hãy thiết lập trình
thông dịch MongoDB.
Quay trở lại trang Interpreter và nhấp vào nút Create. Ta sẽ sử dụng trình thông dịch
MongoDB mã nguồn mở này , vì vậy tiếp theo bạn sẽ cần tải xuống .zip tệp và đổi tên
thành .jar.
Sau đó, đi đến trình thông dịch / , tạo thư mục mongodb / và dán .jar vào thư mục.

48
Bây giờ bạn sẽ có một nhóm Interpreter mới gọi là mongodb. Chuyển đến trang Interpreter
của bạn, nhập tên thân thiện như mongodb và sau đó chọn mongodb trong danh sách thả
xuống của Interpreter.

Nhập chi tiết của cụm ScaleGrid MongoDB mới được tạo của chúng tôi trong Thuộc tính,
được tìm thấy trong phần Tổng quan / Máy của trang Chi tiết cụm.
Tạo một ghi chú Zeppelin
Để chạy các truy vấn sẽ giúp trực quan hóa dữ liệu của chúng tôi, chúng tôi cần tạo ghi
chú. Từ ngăn tiêu đề Zeppelin , bấm Notebook , rồi Tạo ghi chú mới :

Đảm bảo tiêu đề máy tính xách tay hiển thị trạng thái được kết nối như được biểu thị bằng
dấu chấm màu xanh lá cây ở góc trên bên phải:

49
Khi tạo ghi chú, bạn sẽ thấy một hộp thoại để nhập thêm thông tin. Chọn trình thông dịch
mặc định là mysql mới được tạo của chúng tôi và nhấp vào Tạo ghi chú.

Chạy truy vấn trên ghi chú


Trước khi chúng tôi có thể chạy bất kỳ truy vấn nào, chúng tôi cũng cần đề cập đến loại
trình thông dịch chúng tôi sẽ sử dụng cho ghi chú của chúng tôi. Chúng tôi có thể làm điều
đó bằng cách bắt đầu ghi chú của chúng tôi với %mysql. Điều này sẽ cho Zeppelin mong
đợi các truy vấn MySQL trong ghi chú đó.

Và bây giờ, ta đã sẵn sàng để truy vấn cơ sở dữ liệu của ta. Với mục đích của ví dụ này, sử
dụng cài đặt WordPress của mình có chứa một wp_options bảng điển hình để truy vấn và
trực quan hóa dữ liệu của nó.

50
Bây giờ bạn có thể nhấp vào các biểu đồ khác nhau để trực quan hóa dữ liệu theo các định
dạng biểu đồ khác nhau.

Tương tự, đối với MongoDB, đảm bảo bạn có dữ liệu trong cụm MongoDB. Bạn có thể
thêm một số bằng cách vào tab Quản trị và chạy truy vấn Mongo.
Dưới đây là ví dụ về một số dữ liệu MongoDB trong ghi chú:

51
Chia sẻ liên kết đến ghi chú của bạn
Bây giờ dữ liệu của bạn đã sẵn sàng để trực quan hóa và truy vấn, bạn có thể muốn hiển
thị nó cho nhóm của mình. Bạn có thể làm điều này rất dễ dàng bằng cách tạo một liên kết
có thể chia sẻ đến ghi chú:

Liên kết có thể chia sẻ này sẽ có sẵn cho bất kỳ ai xem và bạn cũng có thể chọn chỉ chia sẻ
một liên kết đến một biểu đồ cụ thể:

52
Phần kết luận
Apache Zeppelin là một công cụ vô cùng hữu ích cho phép các nhóm quản lý và phân tích
dữ liệu với nhiều tùy chọn trực quan, bảng và liên kết có thể chia sẻ khác nhau để cộng tác.
5.7. Tableau
5.7.1. Giới thiệu Tableau

Tableau là phần mềm hỗ trợ phân tích (Data Analyst) và trực quan hóa dữ liệu (Data
Visualization), công cụ được dùng nhiều trong ngành BI (Business Intelligence).
Tableau giúp tổng hợp các dữ liệu này từ các dãy số thành những hình ảnh, biểu đồ trực
quan, xây dựng các dashboard và các phân tích (Self-services).
Tính năng nổi bật của Tableau
 Quản lý siêu dữ liệu
 Hỗ trợ phân tích dữ liệu với Big Data.
 Dễ dàng xây dựng các Business Dashboard.
 Khám phá dữ liệu hoạt động của doanh nghiệp.
 Xây dựng các tài liệu về dữ liệu hoạt động (Data Stories).
 Tính năng mô phỏng dữ liệu (Data visualization).
 Phân tích dữ liệu của mạng xã hội.

53
 Xây dựng bản đồ.
 Hỗ trợ các thiết bị di động.
 Tích hợp với ngôn ngữ R.
 Phân tích khảo sát.
 Phân tích theo thời gian.
 Các khả năng tích hợp của Tableau

Cơ chế hoạt động của Tableau


Tableau dựa trên sự kết hợp các hoạt động: phân tích kinh doanh, khai thác dữ liệu, phân
tích dữ liệu cùng các công cụ và cơ sở hạ tầng để giúp tổ chức đưa ra quyết định dựa trên
cơ sở dữ liệu thực tế.
Phân tích dữ liệu là một hoạt động rất quan trọng trong BI. Phân tích dữ liệu sẽ giúp cho
doanh nghiệp thấy được quá khứ và hiện tại ra sao, từ đó đưa ra các quyết định, hành động
để dự đoán tương lai
Các dòng sản phẩm phổ biến của Tableau

54
5.7.2. Ưu điểm, nhược điểm của Tableau
Ưu điểm của Tableau
 Dễ dàng thao tác và xây dựng các Dashboard và cá bản phân tích bắt mắt
 Có thể sử dụng cho mọi phòng ban và mọi nhân viên trong bất cứ ngành nghề nào
 Tốc độ xử lý dữ liệu cực kỳ nhanh với công nghệ In-memory
 Khả năng mở rộng cơ sở dữ liệu và mức độ phức tạp cho doanh nghiệp đang phát
triển nhanh
 Có khả năng quản lý toàn bộ các công tác, chia sẻ và mức độ bảo mật cao
 Khả năng kết nối và làm việc với nhiều loại dữ liệu cùng lúc
 Đáp ứng được các công nghệ mạnh mẽ như Big Data, AI và khả năng tích hợp cao
 Dữ liệu có thể được chia sẻ với nhau và đưa đến tay người cần để họ tự xử lý
 Tạo ra một môi trường làm việc dựa trên dữ liệu và phân tích dữ liệu
 Luôn có dữ liệu và phân tích mọi lúc mọi nơi
Nhược điểm của Tableau
 Hạn chế các hỗ trợ truy vấn SQL nâng cao
 Giá các gói dịch vụ khá cao

55
6. Data Management
6.1. Khát quát
Cassandra là hệ cơ sở dữ liệu phân tán kết hợp mô hình dữ liệu của Google Bigtable
với thiết kế hệ thống phân tán như bản sao của Amazon Dynamo. Được phát triển bởi
Facebook và tặng cho quỹ Apache với ngôn ngữ phát triển là Java.
Dữ liệu được lưu trữ dựa trên nhiều node của nhiều máy khác nhau, theo cơ chế P2P
– một mô hình mạng phi tập trung với các bên có các cấu trúc phiên giao tiếp giống nhau.
Trong đó, mỗi nút hoạt động giống như một máy khách và máy chủ của hệ thống cho phép
chia sẻ các phương tiện truyền thông với nhau dễ dàng hơn, nhanh chóng hơn. Hiệu năng
xử lý của hệ thống cũng tăng theo số node. Một số tổ chức sử dụng Cassandra làm hệ quản
trị cơ sở dữ liệu: Spotify, 1&1, Netflix, Dell, …
6.2. Ứng dụng
- Nhắn tin: Cassandra thích hợp trong những ứng dụng hay dịch vụ về chat như
Facebook, Discord.
- Internet vạn vật : Cassandra thích hợp cho những ứng dụng mà có tốc độ gửi dữ liệu
cực khủng từ các thiết bị khác.
- Phân tích truyền thông xã hội và công cụ đề xuất
6.3. Điểm mạnh
6.3.1. Hệ thống phân tán
Tính mở rộng của Cassandra là khá lớn. Khi tốc độ xử lý của hệ thống không đủ thì
chỉ cần thêm node.
Phân vùng

56
Là kiến trúc phân phối dữ liệu trên nhiều node bên trong cluster. Dựa theo thuật toán
Consistent Hashing thì mỗi node sẽ được cấp phát 1 token, và dựa vào token này sẽ phân
phối dữ liệu đến từng node.
Giao thức chuyện phiếm

Là giao thức truyền thông (P2P) giữa các node trong cluster.
6.3.2. Cơ chế lưu dữ liệu

Việc lưu dữ liệu thông qua 2 chỗ


 Không gian bộ nhớ (memtable)

57
 Không gian đĩa (SSTable)
Khi nhập dữ liệu thì đầu tiên sẽ lưu trên memtale. Sau khi dữ liệu trên memtable full
thì ghi toàn bộ dữ liệu trên memtable xuống SSTable. Vì thế khi đọc dữ liệu thì đầu tiên sẽ
tìm trong memtable trước. Sau đó sẽ tìm trong SSTable nếu không thấy trong memtable.
Khi xóa dữ liệu thì dữ liệu sẽ được gắn 1 cái cờ (tombstone) và sẽ được xóa sau 1
khoảng thời gian do 1 con batch.
 Việc lấy dữ liệu trở nên nhanh.
6.4. Cấu trúc dữ liệu
Dữ liệu sẽ thuộc dạng key-value store (KVS) – một kiểu cơ sở dữ liệu sử dụng
mảng kết hợp. Trong đó mỗi key sẽ tồn tại duy nhất một value trong collection.
Có thể tạo được nhiều table trong database nhưng mà giữa các table sẽ không có
mỗi quan hệ nào. Nhiều table được tổng hợp lại thành keyspace.
6.5. Tính dư thừa
Không có node nào là chính, các node trong cluster có vai trò như nhau. Dữ liệu
được lưu trên toàn bộ các node, do đó, độ chịu lỗi khá cao.
Dù một node thì lỗi, nó sẽ được điều hướng sang node khác.
6.6. Ưu điểm và nhược điểm
6.6.1. Ưu điểm
- Mã nguồn mở miễn phí.
- Kiến trúc ngang hàng
- Khả năng mở rộng đàn hồi: Bất kỳ số lượng các node có thể được thêm vào hoặc
xóa đi trong cụm Cassandra mà không gây ra xáo trộn nào.
- Highly Availbility và Fault Tolerance
- Hiệu suất cao: Hiệu suất của Cassandra cao hơn các hệ quản trị SQL khi lượng dữ
liệu đầu vào lớn hơn 50GB vì nó tận dụng hết được khả năng của các máy.
- Định hướng cột: Cho nên việc cắt rất nhanh.
- Tính nhất quán có thể điều chỉnh: Dữ liệu trong các node có thể tùy chỉnh bản sao
dữ liệu được lưu trên tất cả các node và số node lưu bản sao dữ liệu.
- Schema-less: Các cột được tạo theo ý muốn của người phát triển
- Dễ học và sử dụng.
- Tính phân tán không tập trung.
- Khả năng phân tích : Có 4 phương pháp phân tích :
 Tìm kiếm tích hợp dựa trên Solr.
 Phân tích hàng loạt tích hợp Hadoop và Cassandra.
 Phân tích theo lô bên ngoài được hỗ trợ vơí Hadoop và Cloudera/Hortonworks.
 Spark dựa trên phân tích thời gian thực.
6.6.2. Nhược điểm

58
- Không hỗ trợ nhiều cho việc tính toán trên storage, tức nó không hỗ trợ hàm sum,
group, join, max, min và bất kỳ hàm nào khác để tính toán dữ liệu.
- Khi có một lỗi trong cơ sở dữ liệu thì lỗi này sẽ lan truyền toàn bộ các máy trên hệ
thống.

59

You might also like