Apache NiFi - Giới thiệu
Apache NiFi là một hệ thống mạnh mẽ, dễ sử dụng và đáng tin cậy để xử lý và phân phối dữ liệu giữa các hệ thống khác nhau. Nó dựa trên công nghệ Niagara Files do NSA phát triển và sau 8 năm được tặng cho nền tảng Apache Software. Nó được phân phối theo Giấy phép Apache Phiên bản 2.0, tháng 1 năm 2004. Phiên bản mới nhất cho Apache NiFi là 1.7.1.
Apache NiFi là một nền tảng nhập dữ liệu thời gian thực, có thể chuyển và quản lý việc truyền dữ liệu giữa các nguồn và hệ thống đích khác nhau. Nó hỗ trợ nhiều định dạng dữ liệu như nhật ký, dữ liệu vị trí địa lý, nguồn cấp dữ liệu xã hội, v.v. Nó cũng hỗ trợ nhiều giao thức như SFTP, HDFS và KAFKA, v.v. Điều này hỗ trợ nhiều nguồn dữ liệu và giao thức làm cho nền tảng này trở nên phổ biến trong nhiều tổ chức CNTT.
Apache NiFi- Tính năng chung
Các tính năng chung của Apache NiFi như sau:
Apache NiFi cung cấp giao diện người dùng dựa trên web, cung cấp trải nghiệm liền mạch giữa thiết kế, kiểm soát, phản hồi và giám sát.
Nó có thể cấu hình cao. Điều này giúp người dùng có phân phối đảm bảo, độ trễ thấp, thông lượng cao, ưu tiên động, áp lực ngược và sửa đổi các luồng trong thời gian chạy.
Nó cũng cung cấp mô-đun xuất xứ dữ liệu để theo dõi và giám sát dữ liệu từ khi bắt đầu đến khi kết thúc quy trình.
Các nhà phát triển có thể tạo bộ xử lý tùy chỉnh của riêng họ và các tác vụ báo cáo theo nhu cầu của họ.
NiFi cũng cung cấp hỗ trợ cho các giao thức bảo mật như SSL, HTTPS, SSH và các mã hóa khác.
Nó cũng hỗ trợ người dùng và quản lý vai trò và cũng có thể được cấu hình với LDAP để ủy quyền.
Apache NiFi -Key khái niệm
Các khái niệm chính của Apache NiFi như sau:
Process Group - Đây là một nhóm các luồng NiFi, giúp người dùng quản lý và giữ các luồng theo cách phân cấp.
Flow - Nó được tạo ra để kết nối các bộ xử lý khác nhau để truyền và sửa đổi dữ liệu nếu được yêu cầu từ nguồn dữ liệu này hoặc các nguồn sang nguồn dữ liệu đích khác.
Processor- Bộ xử lý là một mô-đun java chịu trách nhiệm tìm nạp dữ liệu từ hệ thống tìm nguồn hoặc lưu trữ nó trong hệ thống đích. Các bộ xử lý khác cũng được sử dụng để thêm thuộc tính hoặc thay đổi nội dung trong flowfile.
Flowfile- Đây là cách sử dụng cơ bản của NiFi, đại diện cho đối tượng duy nhất của dữ liệu được chọn từ hệ thống nguồn trong NiFi. NiFiprocessormorm thực hiện các thay đổi đối với lưu lượng trong khi nó di chuyển từ bộ xử lý nguồn đến đích. Các sự kiện khác nhau như CREATE, CLONE, RECEIVE, v.v. được thực hiện trên flowfile bởi các bộ xử lý khác nhau trong một luồng.
Event- Các sự kiện đại diện cho sự thay đổi trong lưu lượng trong khi truyền qua NiFi Flow. Các sự kiện này được theo dõi trong nguồn gốc dữ liệu.
Data provenance - Đây là một kho lưu trữ, nó cũng có một giao diện người dùng, cho phép người dùng kiểm tra thông tin về một luồng và giúp khắc phục sự cố nếu có bất kỳ vấn đề nào phát sinh trong quá trình xử lý một luồng.
Ưu điểm của Apache NiFi
Apache NiFi cho phép tìm nạp dữ liệu từ các máy từ xa bằng cách sử dụng SFTP và đảm bảo truyền dữ liệu.
Apache NiFi hỗ trợ phân cụm, vì vậy nó có thể hoạt động trên nhiều nút với cùng một luồng xử lý dữ liệu khác nhau, giúp tăng hiệu suất xử lý dữ liệu.
Nó cũng cung cấp các chính sách bảo mật ở cấp độ người dùng, cấp độ nhóm quy trình và các mô-đun khác.
Giao diện người dùng của nó cũng có thể chạy trên HTTPS, giúp tương tác của người dùng với NiFi được an toàn.
NiFi hỗ trợ khoảng 188 bộ xử lý và người dùng cũng có thể tạo các plugin tùy chỉnh để hỗ trợ nhiều loại hệ thống dữ liệu.
Nhược điểm của Apache NiFi
Khi nút bị ngắt kết nối khỏi cụm NiFi trong khi người dùng đang thực hiện bất kỳ thay đổi nào trong đó, thì flow.xml sẽ trở nên không hợp lệ. Nút không thể kết nối trở lại với cụm trừ khi quản trị viên sao chép thủ công flow.xml từ nút được kết nối.
Apache NiFi có vấn đề liên tục trạng thái trong trường hợp chuyển đổi nút chính, điều này đôi khi khiến bộ xử lý không thể tìm nạp dữ liệu từ hệ thống tìm nguồn.