Trích xuất các giá trị thuộc tính từ các phần tử xml python

Trong hầu hết các kịch bản dữ liệu lớn, Apache NiFi được sử dụng làm phần mềm mã nguồn mở để tự động hóa và quản lý luồng dữ liệu giữa các hệ thống. Đây là một hệ thống mạnh mẽ và đáng tin cậy để xử lý và phân phối dữ liệu. Nó cung cấp Giao diện người dùng dựa trên web để tạo, giám sát và kiểm soát luồng dữ liệu. Thu thập dữ liệu từ cơ sở dữ liệu được sử dụng rộng rãi để thu thập dữ liệu truyền phát theo thời gian thực trong môi trường Dữ liệu lớn để thu thập, xử lý và phân tích dữ liệu. Dữ liệu XML thường được sử dụng trong môi trường quy mô lớn dựa trên dữ liệu lớn. Chúng tôi sẽ chia tệp XML thành nhiều tài liệu XML và trích xuất các thuộc tính và giá trị của chúng từ Dữ liệu XML trong tình huống này

Xây dựng Bảng điều khiển thời gian thực với Spark, Grafana và Influxdb

Yêu cầu hệ thống

Bước 1. Định cấu hình GetFile

Tạo FlowFiles từ các tệp trong một thư mục. NiFi sẽ bỏ qua các tệp mà ít nhất nó không có quyền đọc. Ở đây chúng tôi đang lấy tệp từ thư mục cục bộ

bigdata_1.jpg

Chúng tôi đã lên lịch để bộ xử lý này chạy 60 giây một lần trong Lịch chạy và Thực thi dưới dạng nút Chính trong tab LÊN LỊCH. Ở đây chúng tôi đang nhập trình điều khiển_data. tệp xml điều khiển dữ liệu từ một thư mục cục bộ;

Bước 2. Định cấu hình SplitXML

Tách một tệp XML thành nhiều tệp FlowFile riêng biệt, mỗi tệp bao gồm một phần tử con hoặc phần tử con của phần tử gốc ban đầu

bigdata_2.jpg

Ở phần trên, chúng tôi đã đề cập đến độ sâu phân chia 1. Độ sâu bằng 1 có nghĩa là tách các phần tử con của gốc, trong khi độ sâu bằng 2 có nghĩa là tách các phần tử con của gốc, v.v.

Đầu ra của dữ liệu XML đã phân tách

bigdata_3.jpg

Để đánh giá các thuộc tính từ dữ liệu XML, chúng tôi sẽ sử dụng bộ xử lý EvaluXpath

Bước 3. Định cấu hình EvaluXPath

Bộ xử lý này Đánh giá một hoặc nhiều XPath dựa trên nội dung của FlowFile. Kết quả của các XPath đó được gán cho Thuộc tính FlowFile hoặc được ghi vào chính FlowFile, tùy thuộc vào cấu hình của bộ xử lý. XPath được nhập bằng cách thêm các thuộc tính do người dùng xác định; . Kết quả sẽ được đặt (nếu Đích là thuộc tính tệp luồng; nếu không, tên thuộc tính sẽ bị bỏ qua). Giá trị của thuộc tính phải là biểu thức XPath hợp lệ

bigdata_4.jpg

Như thể hiện trong hình trên, chúng tôi đang đánh giá các giá trị thuộc tính từ dữ liệu XML. trong dữ liệu. ” row” là cha và “location” là con

Đầu ra của các giá trị thuộc tính được đánh giá

bigdata_5.jpg

Bước 4. Định cấu hình Văn bản thay thế

Cập nhật nội dung của FlowFile bằng cách đánh giá một Biểu thức chính quy (regex) đối với nó và thay thế phần nội dung khớp với Biểu thức chính quy bằng một số giá trị thay thế

bigdata_6.jpg

Sau khi đánh giá các thuộc tính bắt buộc và giá trị của chúng, chúng tôi sắp xếp chúng theo từng cột bằng cách sử dụng ReplaceText bên dưới

bigdata_7.jpg

Đầu ra của dữ liệu như dưới đây

bigdata_8.jpg

Bước 5. Định cấu hình Hợp nhất Nội dung

Hợp nhất một Nhóm FlowFiles dựa trên chiến lược do người dùng xác định và đóng gói chúng thành một FlowFile duy nhất. Chúng tôi đang hợp nhất một hàng gồm 1000 hàng thành một nhóm;

bigdata_9.jpg

Ở phần trên, chúng ta cần chỉ định Chiến lược dấu phân cách là Văn bản và giá trị trong Dấu phân cách, nhấn nút shift + Enter rồi nhấp vào ok vì chúng ta cần thêm mọi hàng vào dòng mới

Đầu ra của dữ liệu

bigdata_10.jpg

Bước 6. Định cấu hình UpdateAttribute để cập nhật tên tệp

Cập nhật Thuộc tính cho FlowFile bằng Ngôn ngữ Biểu thức Thuộc tính và/hoặc xóa các thuộc tính dựa trên biểu thức chính quy. Ở đây, chúng tôi sẽ đặt tên cho FlowFiles

bigdata_11.jpg

Đầu ra của tên tệp

bigdata_12.jpg

Bước 7. Định cấu hình UpdateAttribute để cập nhật phần mở rộng tệp

Đã định cấu hình bộ xử lý thuộc tính cập nhật như bên dưới;

bigdata_13.jpg

Đầu ra của tên tệp

bigdata_14.jpg

Bước 8. Định cấu hình PutFile

Ghi nội dung của FlowFile vào hệ thống tệp cục bộ, điều đó có nghĩa là chúng tôi đang lưu trữ nội dung CSV đã chuyển đổi trong thư mục cục bộ mà chúng tôi đã định cấu hình như hình bên dưới

Phân tích cú pháp XML trong Python – Chúng ta sẽ học cách phân tích cú pháp các tài liệu xml bằng ngôn ngữ lập trình python. Có rất nhiều lựa chọn có sẵn ngoài kia. Chúng ta sẽ đi qua đủ ví dụ cho các thư viện sau

  • Yếu TốCây
  • cElementTree
  • thiểu số
  • khách quan hóa

Chúng ta sẽ xem xét các ví dụ để phân tích cú pháp tệp xml, trích xuất các thuộc tính, trích xuất các phần tử, v.v. cho tất cả các thư viện trên