1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

60 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lý thuyết về Data trong môn Công nghệ 4.0 trong lĩnh vực Cơ khí
Tác giả Kiều Trung Tín, Bùi Trung Kiên, Huỳnh Nhật Trường, Huỳnh Lê Hữu Tuấn, Ngô Trần Quang Châu, Lê Gia Khánh
Người hướng dẫn Trần Quang Phước PTS.
Trường học Trường Đại Học Bách Khoa - Đại Học Quốc Gia TP Hồ Chí Minh
Chuyên ngành Công nghệ 4.0 trong lĩnh vực cơ khí
Thể loại Bài tập
Thành phố TP Hồ Chí Minh
Định dạng
Số trang 60
Dung lượng 2,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1. Data Collection (5)
    • 1.1. Khái niệm (5)
    • 1.2. Các phương pháp thu thập dữ liệu (5)
    • 1.3. Hâu quả của thu thập dữ liệu sai cách (6)
    • 1.4. Yếu tố quan trọng trong thu thập dữ liệu (7)
    • 1.5. Các bước để thu thập dữ liệu (8)
    • 1.6. Hadoop (10)
      • 1.6.1. Khái niệm (10)
      • 1.6.2. Kiến trúc Hadoop (10)
      • 1.6.3. Hoạt động của Hadoop (13)
  • 2. Data Integration (13)
    • 2.1. Khái niệm (0)
    • 2.3. Hệ thống lưu trữ dữ liệu HDFS (16)
      • 2.3.1. Khái niệm (16)
      • 2.3.2. Ưu điểm nổi bật của HDFS (16)
      • 2.3.3. Kiến trúc của HDFS (17)
  • 3. Data processing (19)
    • 3.1. Định nghĩa (19)
    • 3.2. Chức năng của data processing (19)
    • 3.3. Các hình thức xử lý dữ liệu (20)
    • 3.4. Công cụ hỗ trợ xử lý Apache Spark (21)
    • 3.5. Các thành phần của Apache Spark (22)
    • 3.6. Các dữ liệu bị trùng lặp hoặc các dữ liệu không liên quan (24)
    • 3.7. Chuyển dữ liệu sang một dạng mới để dễ dàng phân tích (25)
  • 4. Data Analysis (26)
    • 4.1. Apache Hadoop (26)
    • 4.2. Apache Hive (26)
      • 4.2.1. Khái niệm (26)
      • 4.2.2. Nguyên lý hoạt động (27)
      • 4.2.3. Cấu trúc của Apache Hive (27)
      • 4.2.4. Các Tính Năng Chính (28)
      • 4.2.5. Ưu điểm và nhược điểm (29)
    • 4.3. Apache Impala (29)
      • 4.3.1. Khái niệm (29)
      • 4.3.2. Nhiệm vụ (30)
      • 4.3.3. Ưu điểm và nhược điểm của Impala (30)
      • 4.3.4. Các tính năng của Impala (31)
      • 4.3.5. Cơ sở dữ liệu quan hệ và Impala (31)
    • 4.4. Apache Drill (32)
      • 4.4.1. Tìm hiểu về Apacha Drill (32)
      • 4.4.2. Khái niệm (33)
  • 5. Data Visualization (33)
    • 5.1. Khái niệm (33)
    • 5.2. Các loại trực quan hóa dữ liệu (35)
    • 5.3. Các công cụ trực quan hóa (35)
    • 5.4. Ưu điểm và nhược điểm (36)
    • 5.5. Power BI (36)
      • 5.5.1. Sơ bộ về phần mềm Power BI (36)
      • 5.5.2. Các thành phần của Power BI (37)
      • 5.5.3. Ưu điểm và nhược điểm (37)
      • 5.5.4. Hướng dẫn sử dụng Power BI (38)
    • 5.6. Apache Zeppelin (45)
      • 5.6.1. Giới thiệu Apache Zeppelin (45)
      • 5.6.2. Các tính năng của Apache Zeppelin (46)
    • 5.7. Tableau (54)
      • 5.7.1. Giới thiệu Tableau (54)
      • 5.7.2. Ưu điểm, nhược điểm của Tableau (56)
  • 6. Data Management (57)
    • 6.1. Khát quát (57)
    • 6.2. Ứng dụng (57)
    • 6.3. Điểm mạnh (57)
      • 6.3.1. Hệ thống phân tán (57)
      • 6.3.2. Cơ chế lưu dữ liệu (58)
    • 6.4. Cấu trúc dữ liệu (59)
    • 6.5. Tính dư thừa (59)
    • 6.6. Ưu điểm và nhược điểm (59)
      • 6.6.1. Ưu điểm (59)
      • 6.6.2. Nhược điểm (59)

Nội dung

- 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 q

Data Collection

Khái niệm

Quá trình thu thập dữ liệu là việc hệ thống hóa việc thu thập và đo lường thông tin về các biến số quan tâm, nhằm trả lời các câu hỏi nghiên cứu, kiểm tra giả thuyết và đánh giá kết quả Thành phần này là thiết yếu trong mọi lĩnh vực nghiên cứu, từ khoa học vật lý đến xã hội, nhân văn và kinh doanh Mặc dù phương pháp thu thập dữ liệu có thể khác nhau giữa các ngành, nhưng mục tiêu chính vẫn là đảm bảo tính chính xác và trung thực trong quá trình thu thập.

Dù là trong lĩnh vực nghiên cứu hay sở thích nào, việc thu thập dữ liệu chính xác là rất quan trọng để đảm bảo tính toàn vẹn của nghiên cứu Việc lựa chọn công cụ thu thập dữ liệu phù hợp, có thể là công cụ hiện có, đã được sửa đổi hoặc mới phát triển, cùng với các hướng dẫn được mô tả rõ ràng, là yếu tố then chốt trong quá trình này.

Các phương pháp thu thập dữ liệu

- Phương pháp quan sát (observation)

Quan sát là một phương pháp thu thập dữ liệu hiệu quả, cho phép ghi lại có kiểm soát các sự kiện và hành vi của con người Phương pháp này thường được sử dụng kết hợp với các kỹ thuật khác để xác minh độ chính xác của dữ liệu thu thập.

Phỏng vấn là quá trình trao đổi thông tin giữa phỏng vấn viên và người được phỏng vấn thông qua nhiều hình thức tiếp xúc khác nhau Các hình thức này rất đa dạng trong thực tiễn.

Các hình thức tiếp xúc trong phỏng vấn:

+ Phỏng vấn qua thư tín;

+ Phỏng vấn qua điện thoại;

Thử nghiệm trong phòng thí nghiệm nhằm quan sát và đo lường các phản ứng tâm lý, cũng như theo dõi các cuộc phỏng vấn và thảo luận của các nhóm trọng điểm Phòng thí nghiệm thường được chia thành hai ngăn: Ngăn 1 dành cho những người tham gia phỏng vấn hoặc thử nghiệm, trong khi Ngăn 2 dành cho các quan sát viên và thiết bị kỹ thuật Giữa hai ngăn có một tấm kính một chiều để hỗ trợ quan sát.

Thử nghiệm tại hiện trường là quá trình quan sát và đo lường thái độ, phản ứng của khách hàng đối với các thay đổi từ nhà cung cấp sản phẩm hoặc dịch vụ, bao gồm thay đổi giá bán, phương thức phục vụ và chăm sóc khách hàng Hoạt động này diễn ra ngay tại địa điểm giao dịch, do đó được gọi là thử nghiệm tại hiện trường.

Phương pháp điều tra thăm dò là quá trình tìm hiểu sâu về nguồn gốc các sự kiện, tập trung vào việc thu thập thông tin từ nhân chứng và vật chứng Trong nghiên cứu marketing, phương pháp này được áp dụng rộng rãi nhờ vào những lợi ích của nó, giúp đảm bảo bốn nguyên tắc cơ bản của nghiên cứu khoa học.

Công cụ chính để thu thập thông tin và sự kiện trong phương pháp này là "Bảng câu hỏi - Questions Form", được khách hàng tự điền.

Nghiên cứu định lượng rất hữu ích trong marketing vì nó tập trung vào việc đo lường và so sánh ý kiến, kỳ vọng của khách hàng, nhà cung cấp và người tiêu dùng Do đó, việc thu thập dữ liệu thông qua "bảng câu hỏi" trong các cuộc khảo sát là phương pháp phù hợp nhất.

- 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 chủ yếu trong nghiên cứu định tính, nơi dữ liệu được thu thập thông qua cuộc thảo luận giữa một nhóm đối tượng nghiên cứu, thường gọi là nhóm tập trung hoặc nhóm chuyên đề, dưới sự hướng dẫn của người điều khiển chương trình.

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

- 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 độ tác động của việc thu thập dữ liệu bị lỗi có thể khác nhau tùy thuộc vào kỷ luật và bản chất của cuộc điều tra, nhưng nó có thể 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.

Yếu tố quan trọng trong thu thập dữ liệu

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 là biện pháp hiệu quả nhất để đảm bảo tính toàn vẹn của việc thu thập dữ liệu, giúp tiết kiệm chi phí Để thực hiện phòng ngừa, cần chuẩn hóa giao thức trong sổ tay thủ tục chi tiết cho việc thu thập dữ liệu Việc viết sổ tay hướng dẫn kém có thể dẫn đến nguy cơ không phát hiện sớm các vấn đề và sai sót trong nghiên cứu, từ đó gây ra những thất bại có thể được chứng minh qua nhiều cách khác nhau.

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

Các công cụ thu thập dữ liệu sẽ được mô tả một cách mơ hồ, thay vì cung cấp hướng dẫn chi tiết về quản lý các bài kiểm tra Nội dung và chiến lược cụ thể để đào tạo hoặc đào tạo lại nhân viên phụ trách thu thập dữ liệu chưa được xác định rõ ràng Hướng dẫn sử dụng, điều chỉnh và hiệu chuẩn thiết bị thu thập dữ liệu cũng bị che khuất, nếu có.

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.

Các hoạt động kiểm soát chất lượng, bao gồm phát hiện, giám sát và hành động, cần được thực hiện cẩn thận trong quá trình thu thập dữ liệu Việc xác định rõ ràng cấu trúc thông tin liên lạc là điều kiện tiên quyết để thiết lập hệ thống giám sát hiệu quả Không được có 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à nhân viên khi phát hiện sai sót trong quá trình thu thập dữ liệu Một cấu trúc giao tiếp kém phát triển sẽ dẫn đến giám sát lỏng lẻo và hạn chế khả năng phát hiện lỗi.

Việc phát hiện và giám sát có thể được thực hiện thông qua quan sát trực tiếp nhân viên trong các chuyến thăm thực địa, hội nghị, hoặc đánh giá thường xuyên các báo cáo dữ liệu để phát hiện sự không nhất quán và mã không hợp lệ Mặc dù thăm địa điểm không phải lúc nào cũng khả thi, việc không kiểm tra hồ sơ định kỳ sẽ gây khó khăn cho các nhà điều tra trong việc xác minh quy trình thu thập dữ liệu theo hướng dẫn Hơn nữa, nếu cấu trúc thông tin liên lạc không được mô tả rõ ràng trong sổ tay, việc truyền đạt thay đổi thủ tục đến nhân viên có thể gặp khó khăn.

Kiểm soát chất lượng xác định các phản hồi cần thiết để sửa chữa các lỗi trong quy trình thu thập dữ liệu và giảm thiểu sự cố trong tương lai Những hành động này khó có thể thực hiện nếu các quy trình thu thập dữ liệu không rõ ràng và các bước giảm thiểu tái diễn không được thực hiện thông qua phản hồi và giáo dục.

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 thu thập dữ liệu, việc xác định rõ mục tiêu là rất quan trọng Hãy bắt đầu bằng cách viết một bản tuyên bố vấn đề, nêu rõ vấn đề thực tế hoặc khoa học mà bạn muốn giải quyết và lý do tại sao nó lại quan trọng.

Hình thành một hoặc nhiều câu hỏi nghiên cứu là bước quan trọng để xác định rõ ràng những gì bạn muốn tìm hiểu Tùy thuộc vào các câu hỏi nghiên cứu, 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 bạn muốn kiểm tra giả thuyết hoặc đo lường chính xác, hãy thu thập dữ liệu định lượng Ngược lại, nếu bạn muốn khám phá ý tưởng và hiểu biết sâu sắc về bối cảnh, hãy thu thập dữ liệu định tính Đối với những mục tiêu đa dạng, phương pháp hỗn hợp cho phép bạn thu thập cả dữ liệu định lượng và định tính.

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 là phương pháp định lượng chủ yếu, trong khi phỏng vấn, nhóm tập trung và dân tộc học thuộc về phương pháp định tính Ngoài ra, đ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ể được áp dụng dưới cả hai hình thức định lượng và đị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 đã xác định được các phương pháp sử dụng, bạn cần xây dựng một kế hoạch chi tiết để thực hiện chúng Điều này bao gồm việc xác định quy trình cụ thể để tiến hành các quan sát hoặc đo lường chính xác các biến mà bạn đang quan tâm.

Khi thực hiện khảo sát hoặc phỏng vấn, bạn cần xác định dạng câu hỏi Đối với các thử nghiệm, việc thiết kế thử nghiệm cũng rất quan trọng Một số biến số có thể được đo lường trực tiếp, chẳng hạn như thu thập dữ liệu về độ tuổi trung bình của nhân viên thông qua ngày sinh Tuy nhiên, thường thì bạn sẽ cần thu thập dữ liệu về các khái niệm hoặc biến trừu tượng 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

Để thu thập dữ liệu hiệu quả, bạn cần chuyển đổi định nghĩa khái niệm về lĩnh vực nghiên cứu của mình thành các định nghĩa hoạt động cụ thể cho những gì sẽ được đo lường thực tế.

Bước 4: Thu thập dữ liệu

Cuối cùng, bạn có thể áp dụng các phương pháp đã chọn để đo lường hoặc quan sát các biến quan trọng Để đảm bảo dữ liệu chất lượng cao được ghi lại một cách có hệ thống, hãy tham khảo một số phương pháp tốt nhất sau đây.

Ghi chép tất cả thông tin liên quan khi thu thập dữ liệu, chẳng hạn như việc 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.

Khi thu thập dữ liệu định lượng, việc đánh giá độ tin cậy và tính hợp lệ là rất quan trọng để xác định chất lượng dữ liệu của bạn.

Hadoop

Hadoop là một framework nguồn mở của Apache, được viết bằng Java, cho phép phát triển ứng dụng phân tán với dữ liệu lớn miễn phí Nó có khả năng mở rộng từ một máy chủ đơn lẻ đến hàng ngàn máy tính với tính toán và lưu trữ cục bộ Dựa trên 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), Hadoop cung cấp môi trường song song để thực hiện các tác vụ Map-Reduce Nhờ cơ chế streaming, Hadoop hỗ trợ phát triển ứng dụng phân tán bằng nhiều ngôn ngữ lập trình khác nhau như Java, C++, Python, và Perl.

Hadoop có cấu trúc master-slave với một node master và nhiều node slave Node master chịu trách nhiệm gán tác vụ và quản lý tài nguyên, trong khi các node slave, thường là những máy tính không mạnh, lưu trữ dữ liệu thực Kiến trúc Hadoop bao gồm ba lớp chính, trong đó có HDFS (Hadoop Distributed File System).

Distributed File System), Map-Reduce, Yarn.

HDFS (Hadoop Distributed File System)

HDFS là một hệ thống file phân tán, cho phép lưu trữ dữ liệu lớn và tối ưu hóa băng thông giữa các node Nó có khả năng hoạt động trên các cluster lớn với hàng chục ngàn node.

Cho phép truy xuất nhiều ổ đĩa như một ổ đĩa duy nhất, giúp người dùng sử dụng dung lượng gần như không giới hạ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

DataNode hoạt động trên các nút Slave và chịu trách nhiệm lưu trữ dữ liệu kinh doanh thực tế Một tệp tin định dạng HDFS được chia thành nhiều block, và các block này được lưu trữ trong một tập hợp các DataNode.

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 là một framework cho phép phát triển các ứng dụng xử lý song song với khả năng chịu lỗi cao, có thể xử lý lượng lớn dữ liệu trên hàng ngàn 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

Giảm: Kết quả đầu ra từ tác vụ Map sẽ được kết hợp dữ liệu thành tập dữ liệu nhỏ hơn Để minh họa, chúng ta sẽ xem xét ví dụ WordCount, một bài toán đếm tần suất xuất hiện của các từ trong văn bản Chúng ta sẽ mô tả quá trình xử lý bài toán này bằng phương pháp Map-Reduce.

Input là 1 đoạn văn bản

Output là các cặp

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 , trong đó list là tập hợp các giá trị đếm được của mỗi từ

Output:

Hàm Reduce hoạt động song song để xử lý các tập từ khóa khác nhau Giữa hàm Map và Reduce, có một giai đoạn trung gian gọi là hàm Shuffle, có nhiệm vụ sắp xếp các từ và tổng hợp dữ liệu đầu vào cho hàm Reduce từ các kết quả đầu ra của hàm Map.

YARN (Yet-Another-Resource-Negotiator) is a framework designed to support the development of distributed applications It provides essential daemons and APIs for building these applications while managing and scheduling computational resources such as CPU and memory, as well as monitoring the execution of those applications.

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

The Resource Manager calculates the necessary resources based on application requirements and creates an Application Master (App Master) This Application Master is then assigned to run on a computing node, where it communicates with NodeManagers on other nodes to request tasks for execution.

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

Bộ lập lịch có nhiệm vụ phân bổ tài nguyên cho các ứng dụng khác nhau mà không theo dõi trạng thái của chúng Đây là một loại bộ lập lịch thuần túy, không thực hiện việc sắp xếp lại các tác vụ bị lỗi do sự cố phần cứng hoặc phần mềm Tài nguyên được phân bổ dựa trên các yêu cầu cụ thể của từng ứ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.

YARN Federation cho phép mở rộng YARN lên hàng nghìn node bằng cách kết hợp nhiều cụm YARN thành một cụm lớn Tính năng này giúp sử dụng các cụm độc lập, kết nối chúng lại để xử lý các job lớn một cách hiệu quả.

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

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ủa chúng, đồ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.

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", bạn đang thực hiện việc khởi động một tập hợp các trình nền (daemon) hoặc chương trình thường trú trên nhiều máy chủ trong mạng của mình Các trình nền này có vai trò cụ thể, với một số chỉ hoạt động trên một máy chủ, trong khi một số khác có thể chạy trên nhiều máy chủ khác nhau.

Các daemon bao gồm: NameNode, DataNode, SecondaryNameNode,JobTracker, TaskTracker

Data Integration

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

HDFS, viết tắt của Hadoop Distributed File System, là hệ thống lưu trữ dữ liệu được thiết kế cho Hadoop, cung cấp khả năng truy cập hiệu suất cao đến dữ liệu trên các cụm Hadoop Hệ thống này thường được triển khai trên phần cứng chi phí hợp lý, vì máy chủ có thể gặp phải lỗi phần cứng Do đó, HDFS được phát triển với khả năng chịu lỗi cao, nhằm giảm thiểu rủi ro và tối ưu hóa quá trình xử lý lỗi.

HDFS chia nhỏ dữ liệu lớn thành các mảnh nhỏ và phân tán chúng trên nhiều nodes khác nhau Mỗi mảnh dữ liệu được sao chép trên nhiều nodes để đảm bảo tính sẵn sàng Khi một node gặp lỗi, hệ thống tự động sử dụng dữ liệu từ một node khác để tiếp tục xử lý, đây là tính năng quan trọng của HDFS.

2.3.2 Ưu điểm nổi bật của HDFS

HDFS cho phép phân tán dữ liệu hiệu quả, nghĩa là khi bạn đưa một file vào HDFS trong một cụm Hadoop gồm 20 máy tính, file đó sẽ tự động được chia nhỏ thành nhiều phần và lưu trữ trên tất cả 20 máy tính.

HDFS cho phép tính toán và phân tán song song, giúp nhiều máy tính hoạt động đồng thời để xử lý cùng một công việc, từ đó tiết kiệm thời gian đáng kể.

HDFS cho phép nhân bản các file, giúp bảo vệ dữ liệu khỏi việc mất mát khi một máy tính trong cụm Hadoop gặp sự cố.

HDFS có khả năng mở rộng theo chiều dọc, cho phép nâng cấp hệ thống bằng cách tăng cường cấu hình cho máy tính Tính năng này được gọi là Scale Up hay Vertical scaling.

HDFS có khả năng mở rộng hệ thống theo chiều ngang, cho phép người dùng không cần nâng cấp phần cứng mà chỉ cần thêm một máy tính mới để kết nối với máy hiện tại.

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ối ưu hóa HDFS, cần bổ sung thêm DataNodes cho NameNode, trong đó luôn có một DataNode dành riêng cho các máy chủ dữ liệu Một tập tin lớn trong HDFS sẽ được chia thành nhiều khối, và các khối này sẽ được lưu trữ trên một tập hợp các DataNodes.

NameNode có nhiệm vụ chính là quản lý các tập tin và thư mục, bao gồm việc đóng, mở và đổi tên chúng, đồng thời điều chỉnh quyền truy cập vào hệ thống tập tin Trong khi đó, DataNode thực hiện các tác vụ ghi và đọc dữ liệu trong hệ thống tập tin, cũng như tạo, xóa và nhân bản dữ liệu theo chỉ dẫn từ NameNode Cả NameNode và DataNode đều là phần mềm được phát triển để chạy trên máy chủ và được viết bằng ngôn ngữ Java.

NameNode có vai trò quan trọng trong việc điều phối các thao tác truy cập của client đối với hệ thống HDFS Các DataNode là nơi lưu trữ thực tế các block của các file, đảm bảo rằng dữ liệu được quản lý và truy cập hiệu quả.

HDFS là nơi đáp ứng các truy cập dữ liệu, với NameNode thực hiện nhiệm vụ thông qua daemon namemode chạy trên cổng 8021 Đồng thời, DataNode server sẽ chạy một daemon datanode trên cổng tương ứng.

8022, theo định kỳ thì mỗi DataNode sẽ có nhiệm vụ báo cáo cho

NameNode lưu trữ danh sách tất cả các block và sử dụng thông tin này để cập nhật metadata Sau mỗi lần cập nhật, metadata trên NameNode sẽ đồng bộ hóa với dữ liệu trên các DataNode, đảm bảo tính nhất quán Tình trạng metadata trong hệ thống này được gọi là checkpoint.

Mỗi metadata ở trạng thái checkpoint được sử dụng để nhân bản metadata nhằm phục hồi NameNode khi xảy ra lỗi Khi các máy con client gửi yêu cầu đọc đến NameNode, nó sẽ thực hiện các tác vụ kiểm tra sự tồn tại của file, cũng như xác định xem file có bị lỗi hoặc nhiễm virus hay không.

Nếu file không gặp sự cố, NameNode sẽ cung cấp danh sách các Block của file cùng với địa chỉ của các DataNode Hệ thống sau đó sẽ kết nối với DataNode và thực hiện chức năng RPC để lấy dữ liệu cần thiết, rồi đóng kết nối với DataNode còn lại.

Các client sẽ đọc liên tục các block của file cho đến khi đến block cuối Lập trình viên sử dụng tập tin API của Hadoop để tương tác trực tiếp với HDFS, với các API này giúp ẩn đi NameNode và kết nối với DataNode để nhận dữ liệu.

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

Data processing

Định nghĩa

Xử lý dữ liệu là quá trình đồng bộ hóa và quản lý thông tin trong hệ thống, bao gồm việc tiếp nhận nguồn thông tin mới và lọc ra dữ liệu phù hợp Quá trình này đóng vai trò quan trọng trong học tập và làm việc, với mục đích lưu trữ và phân loại thông tin để sử dụng khi cần thiết Xử lý dữ liệu hiệu quả sẽ nâng cao năng suất và hiệu quả công việc.

Chức năng của data processing

Trong quá trình xử lý dữ liệu, có nhiều bước quan trọng cần thực hiện để đảm bảo hiệu quả công việc, với mỗi bước đảm nhận một chức năng khác nhau.

Trong quá trình xử lý dữ liệu, bước đầu tiên là thu thập thông tin đầu vào cho hệ thống Sau khi tìm kiếm các thông tin theo yêu cầu, cần xác nhận tính chính xác và sự liên quan của các dữ liệu đã tìm được với yêu cầu ban đầu.

Sau khi xác nhận thông tin đã đúng yêu cầu, bước tiếp theo là sắp xếp dữ liệu Cần kiểm tra xem các dữ liệu đã tìm được có chính xác và liên quan đến yêu cầu ban đầu hay không.

Sau khi xác nhận thông tin đúng yêu cầu, hệ thống sẽ tiến hành sắp xếp và phân loại dữ liệu theo từng bộ có nội dung tương đồng, đồng thời đánh số thứ tự để dễ dàng kiểm soát.

Công việc tóm tắt dữ liệu giúp xử lý thông tin bằng cách cung cấp những điểm chính, giảm bớt các giải thích chi tiết, từ đó tạo điều kiện thuận lợi cho việc tổng hợp và tìm kiếm thông tin, mang lại sự tiện lợi cho người dùng.

Tập hợp nội dung là quá trình kết hợp các thông tin đã được phân loại và tóm tắt, giúp tạo ra những thư mục dữ liệu lớn bằng cách nhóm các thông tin cùng loại lại với nhau.

Phân tích dữ liệu là bước quan trọng trong xử lý thông tin, quyết định hiệu quả công việc Quá trình này bao gồm nhiều bước, bắt đầu từ việc thu thập dữ liệu, tổ chức và phân loại thông tin, đến việc phân tích các nội dung liên quan đến yêu cầu Mục tiêu là tìm kiếm kết quả chính xác nhất và đưa ra giải thích về quá trình phân tích, cũng như trình bày kết quả sau khi hoàn thành các bước này.

Sau khi hoàn tất các bước xử lý và phân tích thông tin, việc báo cáo dữ liệu là cần thiết Điều này bao gồm việc trình bày toàn bộ thông tin chi tiết về dữ liệu thông qua các tóm tắt cụ thể.

Bước phân loại nội dung tương tự như phân loại dữ liệu thông tin, nhưng khác ở chỗ nó tập trung vào việc phân loại thông tin đầu ra thay vì dữ liệu đầu vào.

Các hình thức xử lý dữ liệu

Xử lý dữ liệu thủ công là quá trình mà mọi công việc đều được thực hiện bởi con người, dẫn đến việc tiêu tốn nhiều thời gian và công sức.

Xử lý dữ liệu tự động là phương pháp tiên tiến được phát triển từ công nghệ, hỗ trợ cho các hoạt động thực hiện thông qua các công cụ và thiết bị ghi nhận đơn vị cụ thể.

Xử lý dữ liệu điện tử là quá trình xử lý thông tin trên các thiết bị điện tử như máy tính, kết hợp với các tính năng tự động, phản ánh sự tiến bộ của công nghệ.

Xử lý dữ liệu thương mại là quá trình xử lý thông tin với ít tính toán, nhằm mục đích lưu trữ và tạo ra một lượng thông tin đầu ra khổng lồ.

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

Các tổ chức ở mọi quy mô đều phụ thuộc 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 phức tạp Apache Spark đã ra đời như một giải pháp hiệu quả cho việc phân tích và xử lý dữ liệu, và kể từ khi phát hành, nó đã nhanh chóng được các doanh nghiệp trong nhiều ngành công nghiệp áp dụng.

Apache Spark là một framework mã nguồn mở cho xử lý dữ liệu quy mô lớn, cung cấp giao diện lập trình cho các cụm tính toán song song với khả năng chịu lỗi Được phát triển tại AMPLab, Đại học California Berkeley, Spark đã được tặng cho Apache Software Foundation vào năm 2013 và được tổ chức này duy trì cho đến nay.

Apache Spark với khả năng tính toán phân tán mạnh mẽ rất phù hợp cho big data và machine learning, yêu cầu sức mạnh tính toán lớn để xử lý kho dữ liệu khổng lồ Nó cũng giảm bớt gánh nặng lập trình cho các nhà phát triển nhờ vào API dễ sử dụng, giúp xử lý phần lớn công việc phức tạp liên quan đến tính toán phân tán và xử lý dữ liệu lớn.

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.

Spark Core là thành phần cốt lõi của Apache Spark, đóng vai trò quan trọng trong việc thực hiện các công việc tính toán và xử lý dữ liệu trong bộ nhớ (In-memory computing) Tất cả các thành phần khác của Apache Spark đều cần thông qua Spark Core để hoạt động, đồng thời nó cũng tham chiếu đến dữ liệu được lưu trữ tại các hệ thống lưu trữ bên ngoài.

Spark SQL là một công cụ mạnh mẽ cho việc xử lý dữ liệu có cấu trúc, áp dụng khung dữ liệu tương tự như trong R và Python (Pandas) Với cú pháp SQL, Spark SQL cho phép người dùng truy vấn dữ liệu một cách dễ dàng, mang lại sức mạnh của Apache Spark cho cả nhà phân tích dữ liệu và nhà phát triển.

Spark SQL không chỉ hỗ trợ SQL mà còn cung cấp giao diện tiêu chuẩn để đọc và ghi dữ liệu từ nhiều kho dữ liệu khác nhau, bao gồm JSON, HDFS, Apache Hive, và JDBC.

ORC và Apache Parquet được hỗ trợ trực tiếp, cùng với các cơ sở dữ liệu phổ biến như Apache Cassandra, MongoDB và Apache HBase, cũng được tích hợp thông qua các trình kết nối riêng biệt từ hệ sinh thái Spark Packages.

Spark Streaming là một phần mở rộng của Apache Spark, cho phép xử lý dữ liệu theo thời gian thực hoặc gần thời gian thực Nó chia nhỏ luồng dữ liệu thành các microbatch liên tục, giúp người dùng thao tác dễ dàng thông qua API của Apache Spark.

Mã trong các xử lý hàng loạt và trực tuyến có thể được tái sử dụng trên cùng một framework, giúp giảm chi phí cho cả nhà phát triển và nhà điều hành.

MLlib là nền tảng học máy phân tán trên Spark, sử dụng kiến trúc phân tán dựa trên bộ nhớ Theo một số so sánh, Spark MLlib nhanh hơn 9 lần so với thư viện tương đương trên Hadoop, cụ thể là Apache Mahout.

Spark GraphX cung cấp các thuật toán phân tán để xử lý cấu trúc đồ thị, sử dụng phương pháp RDD của Spark Core để lập mô hình dữ liệu Gói GraphFrames cho phép thực hiện các xử lý biểu đồ trên khung dữ liệu, đồng thời 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

Apache Spark chủ yếu 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 có nhiệm vụ chuyển đổi mã của người dùng thành nhiều tác vụ (tasks) để phân phối trên các nút xử lý (worker nodes).

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

Apache Spark chuyển đổi các lệnh xử lý dữ liệu của người dùng thành Đồ thị vòng có hướng (DAG), đóng vai trò là lớp lập lịch của hệ thống DAG xác định các tác vụ sẽ được thực hiện trên các nút và theo trình tự cụ thể Một trong những ưu điểm nổi bật của Apache Spark là khả năng tối ưu hóa hiệu suất xử lý dữ liệu.

Apache Spark được thiết kế để tối ưu hóa hiệu suất, cho phép xử lý dữ liệu quy mô lớn nhanh hơn 100 lần so với Hadoop Nhờ vào khả năng khai thác tính toán trên bộ nhớ và các tối ưu hóa khác, Spark duy trì tốc độ cao ngay cả khi dữ liệu được lưu trữ trên đĩa Hiện tại, Spark đang nắm giữ kỷ lục thế giới về phân loại dữ liệu trên đĩa quy mô lớn.

Spark cung cấp các API thân thiện với người dùng, giúp làm việc với các tập dữ liệu lớn một cách dễ dàng Nó bao gồm hơn 100 toán tử để chuyển đổi dữ liệu và các API dataframe quen thuộc, hỗ trợ hiệu quả trong việc xử lý dữ liệu bán cấu trúc.

Spark cung cấp một thư viện hỗ trợ phong phú, bao gồm các tính năng như truy vấn SQL, truyền dữ liệu trực tuyến, học máy và xử lý đồ thị Những thư viện tiêu chuẩn này không chỉ nâng cao năng suất của nhà phát triển mà còn cho phép kết hợp dễ dàng để xây dựng các quy trình làm việc phức tạp.

Các dữ liệu bị trùng lặp hoặc các dữ liệu không liên quan

Việc loại bỏ các đối tượng không mong muốn khỏi tập dữ liệu là rất quan trọng, bao gồm cả các đối tượng trùng lặp và không liên quan Đối tượng trùng lặp thường xuất hiện khi kết hợp dữ liệu từ nhiều nguồn khác nhau, như khách hàng hoặc các bộ phận khác nhau Khử trùng lặp là một trong những vấn đề lớn cần được giải quyết trong quá trình này Ngoài ra, các quan sát không liên quan cũng cần được loại bỏ, vì chúng không phù hợp với vấn đề phân tích cụ thể Hiện nay, có nhiều phần mềm hỗ trợ cho việc này, trong đó có phần mềm Tableau.

Chuyển dữ liệu sang một dạng mới để dễ dàng phân tích

Chuyển đổi dữ liệu là quá trình sửa đổi dữ liệu để phù hợp với các ứng dụng xuôi dòng trong công cụ, quy trình và phân tích Quy trình này thường bắt đầu bằng việc kiểm tra và làm sạch dữ liệu, và 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, 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.

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 là hiểu rõ các đặc điểm chính của dữ liệu và xác định những thay đổi cần thiết để dữ liệu đáp ứng các mục đích cuối cùng.

Bước 2: Ánh xạ dữ liệu

Khi kết hợp dữ liệu từ nhiều nguồn thành một tập dữ liệu duy nhất, cần đảm bảo rằng các trường dữ liệu khớp nhau giữa các bộ dữ liệu để thực hiện việc nối chúng một cách hiệu quả.

Bước 3: Thực thi tạo mã và chuyển đổi dữ liệu là giai đoạn quan trọng để biến đổi dữ liệu theo các mục tiêu đã xác định Đầu tiên, mã được tạo ra bằng cách thủ công hoặc thông qua các công cụ trực quan Sau đó, mã này được thực thi, dẫn đến quá trình chuyển đổi dữ liệu.

Có nhiều loại chuyển đổi dữ liệu, bao gồm việc làm phong phú dữ liệu thông qua các hoạt động cộng, như lấy tuổi từ ngày sinh Các hoạt động trừ có thể bao gồm việc xóa các bản ghi hoặc trường không cần thiết Ngoài ra, tiêu chuẩn hóa và chuẩn hóa giúp định cỡ lại dữ liệu, trong khi thay đổi cấu trúc có thể áp dụng cho chính tập dữ liệu Bước 4 là xác thực và đánh giá.

Cuối cùng, sau khi hoàn tất quá trình chuyển đổi dữ liệu, người thực hiện sẽ xác thực rằng dữ liệu đáp ứng các mục tiêu đã đề ra trong giai đoạn khám phá ban đầu Những người sử dụng dữ liệu xuôi dòng, như các doanh nghiệp vừa và nhỏ, sẽ kiểm tra xem dữ liệu có đáp ứng nhu cầu của họ hay không, chẳng hạn như để 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, dẫn đến việc chu kỳ bắt đầu lại dưới một hình thức nào đó.

Data Analysis

Apache Hadoop

Apache Hadoop là nền tảng mã nguồn mở miễn phí, cho phép lưu trữ và xử lý các tập dữ liệu lớn từ gigabyte đến petabyte Nó hỗ trợ 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ì phụ thuộc vào một máy tính lớn duy nhất Hai thành phần chính của Hadoop là MapReduce và Hệ thống tệp phân tán MapReduce là kỹ thuật lập trình song song, giúp 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 thông thường.

HDFS (Hệ thống tệp phân tán Hadoop) là một thành phần quan trọng trong khung Hadoop, có chức năng lưu trữ và xử lý dữ liệu Hệ thống này được thiết kế với khả năng chịu lỗi và hoạt động hiệu quả 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.

Apache Hive

Apache Hive là một công cụ mã nguồn mở dùng để quản lý và xử lý các tập dữ liệu lớn, cho phép người dùng đọc và ghi dữ liệu trực tiếp trong Hệ thống tệp phân tán.

Apache Hadoop (HDFS) và các hệ thống lưu trữ dữ liệu khác như Apache HBase cho phép các nhà phát triển SQL sử dụng Hive để tạo các câu lệnh Hive Query Language (HQL) nhằm truy vấn và phân tích dữ liệu tương tự như SQL thông thường Hive được thiết kế để đơn giản hóa lập trình MapReduce, giúp loại bỏ nhu cầu học và viết mã Java phức tạp Thay vào đó, người dùng có thể viết các truy vấn trong HQL, và Hive sẽ tự động xây dựng các chức năng bản đồ và giảm bớt cho họ.

Giao diện SQL của Apache Hive đã trở thành tiêu chuẩn vàng cho việc tìm kiếm, tóm tắt và phân tích dữ liệu Hadoop Khi triển khai trên đám mây, giải pháp này không chỉ tiết kiệm chi phí mà còn dễ dàng mở rộng, lý do khiến nhiều công ty lớn như Netflix và Amazon tiếp tục phát triển và cải tiến Apache Hive.

Apache Hive chuyển đổi chương trình đầu vào viết bằng ngôn ngữ HiveQL thành các tác vụ Java MapReduce, Tez hoặc Spark, tất cả đều tương thích với Hadoop YARN Nó sắp xếp dữ liệu thành các bảng cho hệ thống tệp phân tán Hadoop (HDFS) và thực hiện các tác vụ trên một cụm để nhận được kết quả Các bảng trong Apache Hive được tổ chức giống như bảng trong cơ sở dữ liệu quan hệ, với dữ liệu được phân loại từ lớn đến nhỏ Cơ sở dữ liệu bao gồm các bảng được chia thành các bộ phận và nhóm HiveQL được sử dụng để truy cập, thay đổi hoặc thêm dữ liệu, với mỗi bảng có thư mục HDFS riêng và dữ liệu được tuần tự hóa trong mỗi cơ sở dữ liệu.

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:

Kho hàng theo dõi thông tin về cấu trúc và vị trí của từng bảng, bao gồm cả siêu dữ liệu phân vùng 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 trong cụm Dữ liệu được lưu trữ theo định dạng RDBMS thông thường, và siêu dữ liệu Hive rất quan trọng để duy trì theo dõi dữ liệu Máy chủ sao lưu thực hiện việc sao lưu dữ liệu thường xuyên để đảm bảo khả năng phục hồi trong trường hợp mất dữ liệu.

Người lái xe trong HiveQL nhận các câu lệnh và hoạt động như một bộ điều khiển Trình điều khiển thiết lập các phiên để thực hiện câu lệnh và theo dõi tuổi thọ cũng như tiến độ của giám đốc điều hành trong quá trình thực thi.

HiveQL là một trình điều khiển lưu trữ siêu dữ liệu cần thiết và cũng hoạt động như một điểm thu thập dữ liệu hoặc kết quả truy vấn sau khi thực hiện quá trình Rút gọn.

Trình biên dịch thực hiện việc biên dịch truy vấn HiveQL, chuyển đổi chúng thành kế hoạch thực thi với các nhiệm vụ được liệt kê trong kế hoạch.

MapReduce thực hiện các bước cần thiết để đạt được kết quả từ truy vấn Truy vấn được chuyển đổi thành Cây cú pháp trừu tượng (AST) bởi trình biên dịch của Hive Sau khi kiểm tra tính tương thích và lỗi thời gian biên dịch, AST được chuyển đổi thành Đồ thị vòng có hướng (DAG).

Trình tối ưu hóa cải thiện hiệu quả củ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, chẳng hạn như gộp nhiều phép nối thành một phép nối duy nhất Để tăng tốc độ, trình tối ưu hóa có thể phân chia các hoạt động, ví dụ như áp dụng 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 là người thực hiện các tác vụ sau khi quá trình biên dịch và tối ưu hóa hoàn tất, với các công việc được điều hành bởi Người thừa hành Giao diện dòng lệnh (CLI) cung cấp cho người dùng bên ngoài khả năng giao tiếp với Hive, trong khi máy chủ Thrift 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 kết nối với Hive qua mạng.

Bảo mật trong Apache Hive được tích hợp với hệ thống bảo mật của Hadoop, sử dụng Kerberos để xác thực lẫn nhau giữa máy khách và máy chủ Hệ thống HDFS quản lý quyền truy cập cho các tệp mới được tạo trong Apache Hive, cho phép người dùng, nhóm và các đối tượng khác phê duyệt quyền truy cập.

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 là giải pháp lý tưởng cho nhu cầu giao diện cấp thấp của Hadoop, giúp đơn giản hóa quá trình tóm tắt, truy vấn và phân tích dữ liệu.

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 hỗ trợ báo cáo hàng ngày, đánh giá giao dịch và phân tích dữ liệu hiệu quả Thông tin chi tiết mà Apache Hive cung cấp giúp doanh nghiệp có lợi thế cạnh tranh và dễ dàng đáp ứng nhu cầu thị trường.

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 trong Apache Hive cho phép đọc lược đồ mà không cần xác minh loại bảng hay định nghĩa lược đồ, giúp dữ liệu không phải trải qua quá trình đọc, phân tích cú pháp và tuần tự hóa vào đĩa Điều này khác biệt so với các cơ sở dữ liệu thông thường, nơi dữ liệu cần được xác thực mỗi khi được thêm vào.

Apache Impala

Impala là một công cụ truy vấn SQL MPP (Massive Parallel Processing) hiệu quả, được thiết kế để xử lý khối lượng dữ liệu lớn trong cụm Hadoop Là phần mềm mã nguồn mở, Impala được phát triển bằng C++ và Java, mang lại hiệu suất cao và độ trễ thấp so với các công cụ SQL khác cho Hadoop.

Impala là công cụ SQL hiệu suất cao nhất, mang lại trải nghiệm tương tự như RDBMS, và cung cấp phương pháp nhanh nhất để truy cập dữ liệu lưu trữ trong Hệ thống tệp phân tán Hadoop.

Impala kết hợp khả năng 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 tính linh hoạt và khả năng mở rộng của Apache Hadoop, 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ó khả năng giao tiếp nhanh chóng với HDFS hoặc HBase thông qua các truy vấn SQL, vượt trội 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 siêu dữ liệu và cú pháp SQL giống như Apache Hive, bao gồm trình điều khiển ODBC và giao diện người dùng Hue Beeswax, tạo ra một nền tảng quen thuộc cho các truy vấn theo định hướng hàng loạt và thời gian thực.

Khác với Apache Hive, Impala không sử dụng các thuật toán MapReduce Thay vào đó, nó áp dụng một kiến trúc phân tán với các quy trình daemon đảm nhiệm mọi khía cạnh của việc thực thi truy vấn 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.

Quá trình xử lý dữ liệu diễn ra ngay tại nơi dữ liệu cư trú trên cụm Hadoop, do đó, việc chuyển đổi và di chuyển dữ liệu không cần thiết khi làm việc với Impala.

Sử dụng Impala, bạn có thể truy cập dữ liệu từ HDFS, HBase và Amazon S3 mà không cần kiến thức về Java Với kiến thức cơ bản về SQL, bạn có thể viết truy vấn dễ dàng Impala rút ngắn quy trình ETL phức tạp, giúp tiết kiệm thời gian trong việc tải và tổ chức dữ liệu Các kỹ thuật mới như phân tích dữ liệu thăm dò và khám phá dữ liệu giúp tăng tốc quá trình này.

Impala đang dẫn đầu trong việc áp dụng định dạng tệp Parquet, một cấu trúc lưu trữ cột được tối ưu hóa cho các truy vấn quy mô lớn, thường thấy trong các môi trườ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ỉ hỗ trợ đọc các tệp văn bản và không thể xử lý các tệp nhị phân tùy chỉnh Mỗi khi có bản ghi hoặc tệp mới được thêm vào thư mục dữ liệu trong HDFS, bảng cần phải được làm mới để cập nhật thông tin.

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 là một công cụ mã nguồn mở miễn phí, được phát hành theo giấy phép Apache Nó cho phép xử lý dữ liệu trong bộ nhớ, giúp truy cập và phân tích dữ liệu trực tiếp trên các nút dữ liệu Hadoop mà không cần phải di chuyển dữ liệu.

Bạn có thể truy cập dữ liệu trong HDFS bằng Impala thông qua các truy vấn tương tự như SQL Impala mang lại tốc độ truy cập nhanh hơn so 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 dưới đây trình bày một số điểm khác biệt chính giữa SQL và ngôn ngữ truy vấn của Impala.

Impala Cơ sở dữ liệu quan hệ

Impala sử dụng SQL giống như ngôn ngữ truy vấn tương tự như HiveQL

Trong Impala, bạn không thể cập nhật 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ệ sử dụng ngôn ngữ SQL.

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ẻ

Cơ sở dữ liệu quan hệ hỗ trợ các giao dịch

Impala có khả năng lưu trữ và quản lý khối lượng dữ liệu lớn lên đến petabyte, trong khi cơ sở dữ liệu quan hệ chỉ xử lý được lượng dữ liệu nhỏ hơn, khoảng terabyte.

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 với độ trễ thấp trên các tập dữ liệu lớn Drill hỗ trợ nhiều nguồn dữ liệu như HBase, Cassandra, MongoDB và các cơ sở dữ liệu quan hệ truyền thống Trong khi Hadoop cung cấp băng thông dữ liệu lớn, việc khám phá ý tưởng có thể mất nhiều thời gian Với Drill, bạn nhận được kết quả nhanh chóng, cho phép khám phá ý tưởng và phát triển lý thuyết hiệu quả hơn.

Apache Drill là một công cụ đơn giản và dễ sử dụng, cho phép người dùng dễ dàng xử lý và phân tích dữ liệu lớn Nó hỗ trợ truy vấn nhiều bộ dữ liệu có cấu trúc và phi cấu trúc thông qua ANSI SQL Người dùng chỉ cần sử dụng SQL cùng với bất kỳ công cụ Business Intelligence (BI) nào để thực hiện các truy vấn trên dữ liệu từ nhiều nguồn khác nhau Apache Drill có thể hoạt động trên máy tính xách tay mà không cần xác định sơ đồ, giúp phân tích dữ liệu lớn trở nên dễ tiếp cận hơn cho nhiều người dùng.

Apache Khoan là một công cụ truy vấn nguồn mở, cho phép phân tích SQL tương tác và an toàn với quy mô petabytes Đây là công cụ đầu tiên cung cấp khả năng truy vấn và khám phá dữ liệu từ nhiều nguồn khác nhau, bao gồm cơ sở dữ liệu NoSQL và nhiều định dạng tệp Với việc tuân thủ tiêu chuẩn ANSI SQL, người dùng chỉ cần có kiến thức cơ bản về SQL để bắt đầu sử dụng.

Doanh nghiệp không cần phụ thuộc vào một hồ bơi tài năng hạn chế để truy cập và phân tích dữ liệu Họ có thể tận dụng các nguồn tài nguyên hiện có trên ANSI SQL để đạt được kết quả nhanh chóng Các nhà phân tích SQL và chuyên gia kinh doanh thông minh có khả năng truy vấn và phân tích dữ liệu một cách hiệu quả, giúp doanh nghiệp giảm thiểu thời gian chờ đợi cho việc chuẩn bị dữ liệu từ bộ phận CNTT.

Các bộ phận CNTT có thể tối ưu hóa quy trình làm việc bằng cách loại bỏ các công việc bảo trì không cần thiết và các chu trình ETL, đồng thời vẫn duy trì quản trị đơn giản và dễ hiểu nhờ vào việc triển khai các cơ chế truy cập dạng hạt một cách dễ dàng.

Data Visualization

Data Management

Ngày đăng: 09/05/2023, 14:48

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w