Cách giải nén tệp trong bộ lưu trữ blob azure bằng python

UiPath.System.Activities.Compression.Workflow.ExtractFiles

Trích xuất tất cả nội dung của kho lưu trữ tệp zip vào một thư mục được chỉ định

Windows - Di sản. các cửa sổ. đa nền tảng

  • Tệp cần giải nén - Tệp zip để giải nén tất cả các tệp
  • Giải nén vào thư mục chuyên dụng - Nếu được chọn, nội dung của tệp zip được trích xuất vào một thư mục có tên tệp zip được tạo trong thư mục đích. Nếu không được chọn, nội dung sẽ được trích xuất trực tiếp vào thư mục đích. Tùy chọn này được chọn theo mặc định
  • Mật khẩu - Nếu tệp được bảo vệ bằng mật khẩu, hãy chỉ định mật khẩu được yêu cầu
  • Mã hóa tên - Chọn mã hóa cho tên tệp. Mã hóa mặc định của hệ thống được chọn theo mặc định
  • Tệp đã giải nén - Tham chiếu đến các tệp đã giải nén để sử dụng trong các hoạt động khác
  • DisplayName - Tên được hiển thị cho hoạt động trong bảng Designer
  • Thư mục đích - Nội dung sẽ được trích xuất vào thư mục này
  • Giải nén vào thư mục chuyên dụng - Nếu được chọn, nội dung của tệp zip được trích xuất vào một thư mục có tên tệp zip được tạo trong thư mục đích. Nếu không được chọn, nội dung sẽ được trích xuất trực tiếp vào thư mục đích. Tùy chọn này được chọn theo mặc định
  • Tệp - Tệp zip để trích xuất tất cả các tệp, dưới dạng biến lResource
  • Tệp để giải nén - Tệp zip để giải nén tất cả các tệp từ đó, dưới dạng biến string
  • Riêng tư - Nếu được chọn, các giá trị của biến và đối số không còn được ghi ở mức Chi tiết
  • Mã hóa tên - Chọn mã hóa cho tên tệp. Mã hóa mặc định của hệ thống được chọn theo mặc định
  • Mật khẩu - Nếu tệp được bảo vệ bằng mật khẩu, hãy chỉ định mật khẩu được yêu cầu
  • Bỏ qua các tệp không được hỗ trợ - Nếu được chọn, tất cả các tệp được hỗ trợ sẽ được trích xuất và các tệp không được hỗ trợ sẽ bị bỏ qua. Nếu không được chọn, sẽ xảy ra lỗi khi không thể trích xuất tệp không được hỗ trợ. Không thể trích xuất các tệp được nén bằng các phương pháp sau. Xả hơi64, PPMd và XZ
  • Thư mục nội dung đã trích xuất - Tham chiếu đến thư mục chứa nội dung đã trích xuất
  • Tệp đã giải nén - Tham chiếu đến các tệp đã giải nén

Nhà máy dữ liệu Azure. Tệp nén SFTP CSV sang sàn gỗ Azure Blob bằng Azure Key Vault và Azure Batch

Trong bài đăng này, tôi sẽ giải thích cách sử dụng Azure Batch để chạy tập lệnh Python chuyển đổi các tệp CSV đã nén từ SFTP sang sàn gỗ bằng Azure Data Factory và Azure Blob. Hãy làm theo các bước sau

  1. Cung cấp tài nguyên Azure
  2. Chuẩn bị dữ liệu
  3. Thêm tập lệnh Python
  4. Khám phá hàng loạt Azure
  5. Tạo dịch vụ liên kết ADF
  6. Thêm đường dẫn ADF với hoạt động tùy chỉnh
  7. Sử dụng Azure Key Vault cho đường dẫn ADF
  8. Gỡ lỗi đường dẫn ADF

  1. Cung cấp tài nguyên Azure
  • Tạo Azure Blob Storage và tạo một bộ chứa input bên trong Blob này để lưu trữ tập lệnh Python và tạo bộ chứa output đóng vai trò là thư mục chìm
  • Tạo SFTP trên Azure
  • Tạo Azure Batch Service và Linux Pool. Ví dụ: tôi đang sử dụng `tiêu chuẩn_ds2_v2` với 2 nút. Cài đặt Azure Batch Explorer
  • Tạo Kho lưu trữ khóa Azure và thêm chuỗi kết nối Lưu trữ Azure, thẻ SFTP và khóa truy cập Azure Batch vào Kho lưu trữ khóa Azure này
  • Tạo dịch vụ Azure Data Factory v2

2. Chuẩn bị dữ liệu

Hãy tải một số dữ liệu lên SFTP của bạn. Bạn có thể thực hiện việc này bằng cách sử dụng FileZilla chẳng hạn hoặc nếu bạn đã có một số tệp CSV được nén trên SFTP, bạn chỉ cần bỏ qua bước này. Cấu trúc thư mục của tôi trông giống như upload/file1. zip, tải lên/thư mục/tệp2. khóa kéo. Chúng tôi sẽ sử dụng đường dẫn đến thư mục chứa tệp nén làm tham số cho tập lệnh

3. Thêm tập lệnh Python

Trong tập lệnh Python, chúng tôi sử dụng các gói để kết nối và lấy dữ liệu từ máy chủ SFTP [pysftp], giải nén tệp [zipfile], chuyển đổi CSV sang sàn gỗ [pyarrow], tải lên blob [azure-storage-blob]

Bạn có thể tìm tập lệnh Python trên GitHub của tôi. https. //github. com/in4margaret/adf-batch-sftp-zipped-csv-to-parquet

4. Khám phá hàng loạt Azure

Mở ứng dụng Azure Batch Explorer. Chúng tôi cần cài đặt một số thư viện bổ sung để đảm bảo rằng chúng tôi có tất cả các gói cần thiết được thêm vào Azure Batch Nodes cho tập lệnh của mình. Thay đổi cài đặt tác vụ bắt đầu thành

/bin/bash -c "apt update && apt install python3-pip -y; pip3 install azure-storage-blob==12.3.2 pandas==0.25.1 pyarrow==0.17.1 pysftp==0.2.9 cryptography==2.5"

và khởi động lại hồ bơi của bạn

5. Tạo dịch vụ liên kết ADF

Từ cổng Azure, nhấp vào Tác giả và Giám sát trong dịch vụ ADF

Trong ADF, chúng tôi bắt đầu với việc tạo các dịch vụ được liên kết bằng Azure Key Vault

Chọn tên Đăng ký Azure và Azure Key Vault hiện có

  • Tạo dịch vụ liên kết Azure Blob Storage bằng dịch vụ kết nối Azure Key Vault mà bạn vừa tạo. Chỉ định Tên bí mật của chuỗi kết nối blob của bạn [nó phải giống với tên bí mật mà bạn đã thêm trong dịch vụ Azure Key Vault]

  • Tạo dịch vụ liên kết Azure Batch

Cung cấp tên Bí mật mà bạn đã thêm trong Azure Key Vault cho khóa truy cập Azure Batch của mình. Chọn tên dịch vụ được liên kết với Bộ nhớ mà chúng tôi đã tạo trước đó

Bạn có thể tìm thông tin về Batch URL và Pool name từ Azure portal

  • Dịch vụ liên kết Azure SFTP

Cung cấp tên Bí mật mà bạn đã thêm trong Azure Key Vault cho mật khẩu SFTP của mình, chỉ định tên người dùng và máy chủ SFTP

6. Thêm đường dẫn ADF với hoạt động tùy chỉnh

Hãy tạo một đường dẫn mới [trong trường hợp của tôi là pipeline1]. Chọn Hoạt động tùy chỉnh trong Dịch vụ hàng loạt và kéo và thả nó vào khu vực làm việc. Khi bạn nhấp vào hoạt động Custom1, bạn sẽ thấy rằng bạn cần thêm một số thông tin bổ sung để vượt qua xác thực ADF. Hãy thêm dịch vụ Azure Batch Linked bằng cách tìm kiếm tên của dịch vụ được liên kết mà chúng ta đã tạo trước đó và thêm dịch vụ được liên kết này vào hoạt động tùy chỉnh

Chọn tab Cài đặt cho hoạt động của Custom1. Bạn cần chỉ định dịch vụ được liên kết với Azure Blob Storage. Trong trường hợp của tôi, tên của dịch vụ được liên kết làAzureBlobStorageKV. Bạn cũng cần chỉ định đường dẫn thư mục tới bộ chứa Blob inputnơi bạn lưu trữ tập lệnh Python

Chúng tôi đã tạo một dịch vụ được liên kết trong Azure Data Factory với máy chủ SFTP UiPath.System.Activities.Compression.Workflow.ExtractFiles1 và chúng tôi sẽ sử dụng nó làm đối tượng tham chiếu trong hoạt động ADF của Custom1

7. Sử dụng Azure Key Vault cho đường dẫn ADF

Để đảm bảo ADF có thể hoạt động với các bí mật của Azure Key Vault, chúng tôi cần thêm một chính sách truy cập mới vào Azure Key Vault. Chọn chính dịch vụ ADF và chỉ định quyền input0

Chúng tôi sẽ thêm hai hoạt động web để lấy thông tin từ Azure Key Vault để có thể sử dụng nó bên trong tập lệnh Python. Chúng tôi cần khóa kết nối Azure Storage và mật khẩu SFTP cho tập lệnh Python. Chúng tôi có thể lấy thông tin này từ Dịch vụ liên kết ADF. tệp json và hoạt động. json mà ADF cung cấp cho mỗi lần chạy công việc. Sao chép mã định danh bí mật từ Azure Key Vault cho thẻ SFTP và tập lệnh kết nối Azure Blob rồi dán chúng vào trường URL trong Hoạt động web

Từ URL, xóa phần đuôi bắt đầu từ cuối tên bí mật và thêm input1 [nó sẽ trông giống như https. //keyvault của bạn. kho tiền. màu xanh da trời. net/secrets/yoursecret?api-version=7. 0], chọn phương thức xác thực input2 và input3 [Nhận dạng dịch vụ được quản lý] cho cả hai

Trong tab Chung cho mỗi hoạt động, bật cài đặt đầu ra an toàn, do đó, đầu ra từ hoạt động sẽ không được ghi lại trong nhật ký

Hãy chuyển các giá trị từ hai hoạt động này sang hoạt động tùy chỉnh Custom1 bằng cách kết nối hai hoạt động web trên khu vực làm việc và thêm các giá trị chúng ta cần vào Thuộc tính mở rộng trong hoạt động Custom1

Nhấp vào hoạt động Custom1 input6

Ngoài ra, tôi cũng đã thêm input7 làm một trong những thông số mà tôi chuyển đến hoạt động tùy chỉnh

8. Gỡ lỗi đường dẫn ADF

Chúng tôi đã sẵn sàng để lưu và gỡ lỗi đường dẫn của chúng tôi. Bạn có thể nhấp vào nút gỡ lỗi và kiểm tra đầu ra hoặc thông báo lỗi bằng id công việc trong bộ chứa blob

Chủ Đề