Tải các tệp lớn lên bộ nhớ Azure blob Python

Có nhiều cách để tải tệp lên Azure Data Lake Storage [ADLS] Gen2. Trong bài viết này, chúng tôi sẽ so sánh hai cách phổ biến để một tổ chức tải tệp lên ADLS. Chủ yếu, chúng tôi sẽ so sánh các thông số bên dưới để xác định thông số nào phù hợp nhất với nhu cầu của bạn

  1. Màn biểu diễn. Tốc độ mà tập tin đang được tải lên
  2. Xoa dịu. Thật dễ dàng để thiết lập và sử dụng
  3. tự động hóa. Trường hợp sẽ có hoặc không có bất kỳ can thiệp thủ công nào sau khi vận hành

Trong hướng dẫn này, chúng tôi sẽ xếp hạng từng tham số trong ba tham số trên với phạm vi từ 1 đến 5, với 1 là thấp nhất và 5 là tham số được hỗ trợ/có thể đạt được cao nhất

Chúng tôi sẽ thử nghiệm hai phương pháp này để tải lên tệp thử nghiệm 10 GB

  1. AzCopy
  2. Trình khám phá lưu trữ Azure

Không chần chừ thêm nữa, chúng ta hãy bắt đầu

AzCopy

Để truyền tệp bằng AzCopy, bạn cần có AzCopy, bạn có thể tải xuống từ đây

Khi AzCopy được tải xuống, hãy tạo ADLS Gen2 cho hướng dẫn của chúng tôi. Tôi đã tạo một cái cho mục đích của hướng dẫn này và một bộ chứa để kiểm tra AzCopy

Để sử dụng AzCopy chuyển tệp sang vùng chứa, chúng tôi cần mã thông báo SAS, hãy tạo mã thông báo SAS của chúng tôi

Nhấp vào “Chữ ký truy cập được chia sẻ” trong “Bảo mật + kết nối mạng” trong Tài khoản lưu trữ

Tôi đã chọn phạm vi 1 ngày để mã thông báo SAS hoạt động. Sau đó nhấp vào nút “Tạo SAS và chuỗi kết nối”

Sao chép mã thông báo SAS từ các URL có sẵn, nó sẽ giống như bên dưới


?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupx&se=2021-09-30T04:15:53Z&st=2021-09-28T20:15:53Z&spr=https&sig=w%2Bn8Jl%2BsnOe1Xk5A2CfjM6%2BDuHz8kb4ZFQugmgtOcfQ%3D

Bây giờ chúng ta đã có mã thông báo SAS, hãy tạo lệnh AzCopy của chúng ta, bên dưới là cú pháp cho dòng lệnh AzCopy


azcopy copy '' '//..core.windows.net//'

// TIP This example encloses path arguments with single quotes ['']. 
// Use single quotes in all command shells except for the Windows Command Shell [cmd.exe]. 
// If you're using a Windows Command Shell [cmd.exe], enclose path arguments with double quotes [""] instead of single quotes [''].

Tôi đã đặt cả tệp mẫu và ứng dụng AzCopy trong thư mục gốc trên ổ C có tên là “AzCopy”. Thay thế các giá trị trong cú pháp trên, dưới đây là những gì chúng tôi nhận được


azcopy copy “c:\AzCopy\10GB.bin” “//tuttransfer.blob.core.windows.net/azcopy/10GB.bin?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupx&se=2021-09-30T04:15:53Z&st=2021-09-28T20:15:53Z&spr=https&sig=w%2Bn8Jl%2BsnOe1Xk5A2CfjM6%2BDuHz8kb4ZFQugmgtOcfQ%3D”

 

AzCopy là tiện ích dòng lệnh, chúng ta sẽ phải mở dấu nhắc lệnh và thực hiện lệnh trên, khi kết thúc thực hiện, AzCopy sẽ cung cấp một bản tóm tắt quá trình chuyển. Hãy thực hiện

Vì vậy, phải mất 16. 34 phút để truyền tệp 10 GB bằng cách sử dụng ủy quyền mã thông báo AzCopy và SAS

Bây giờ, hãy thử sử dụng Storage Explorer

Trình thám hiểm lưu trữ

Azure Storage Explorer có giao diện người dùng đồ họa để tương tác với tài khoản lưu trữ trên Azure, điều này làm cho nó thân thiện hơn với người dùng, nhưng ở đây chúng tôi đang cố gắng so sánh một trong hai tùy chọn này là tốt nhất để chuyển các tệp lớn sang ADLS Gen 2. Hãy tải xuống Storage Explorer từ đây. Thực thi tệp thực thi đã tải xuống và làm theo trình hướng dẫn cài đặt

Sau khi cài đặt, trình thám hiểm lưu trữ sẽ tự động bắt đầu với màn hình thiết lập để kết nối với Azure Storage, chọn tùy chọn “ADLS Gen2 container or directory”

Bây giờ chúng ta đã có mã thông báo SAS mà chúng ta đã tạo trong quá trình kiểm tra AzCopy, hãy chọn tùy chọn URL SAS trên màn hình tiếp theo và sau đó nhấp vào “Tiếp theo”

Nhập tên thân thiện trong Tên hiển thị và dán URL SAS và nhấp vào tiếp theo

Nhấp vào “Kết nối” trên màn hình Tóm tắt

Bước này sẽ kết nối với bộ lưu trữ của bạn, bước tiếp theo chỉ cần sử dụng GUI để nhấp vào “Tải lên”, chọn tệp và bắt đầu tải lên

Chúng ta có thể theo dõi quá trình chuyển giao ở khung bên dưới

Tổng thời gian dành cho Storage explorer là 18. 03 phút

Sự kết luận

Hãy sử dụng các tham số của chúng tôi để xác định phương pháp nào là tốt nhất giữa hai phương pháp trên để chuyển các tệp lớn sang Azure Storage

Màn biểu diễn. Tốc độ mà tập tin đang được tải lên

Tôi đánh giá hiệu suất của AzCopy tốt hơn Storage Explorer, mất ít hơn ~3 phút so với storage explorer

  • AzCopy – 5 điểm
  • Trình thám hiểm lưu trữ – 3 điểm

Xoa dịu. Thật dễ dàng để thiết lập và sử dụng

Storage Explorer dễ sử dụng hơn nhiều so với AzCopy vì GUI thân thiện với người dùng, trong khi AzCopy là tiện ích dòng lệnh và yêu cầu thực thi lệnh

  • AzCopy – 3 điểm
  • Trình thám hiểm lưu trữ – 5 điểm

tự động hóa. Trường hợp sẽ có hoặc không có bất kỳ can thiệp thủ công nào sau khi vận hành

AzCopy có thể được tự động hóa bằng cách sử dụng Windows Task, PowerShell và các thực thi điều phối và tham số hóa khác, trong khi Storage Explorer hoàn toàn thủ công, chúng tôi không thể tự động hóa các công việc hoặc tác vụ bằng cách sử dụng GUI của trình thám hiểm lưu trữ

  • AzCopy – 4 điểm
  • Trình thám hiểm lưu trữ – 1 điểm

Mặc dù cả hai tùy chọn đều có ưu và nhược điểm, AzCopy có thể bao gồm tất cả các tình huống Storage Explorer chuyển sang/từ ADLS Gen2, trong khi một số trường hợp sử dụng có thể không đạt được bằng Storage Explorer, đặc biệt là tự động hóa

Làm cách nào để tải nhiều tệp lên bộ lưu trữ blob Azure bằng Python?

Hãy bắt đầu bằng cách tạo vùng chứa Azure. .
Tạo tài khoản lưu trữ Azure và vùng chứa. Bạn có thể sử dụng bộ chứa Azure hiện tại của mình để thực thi quy trình này hoặc bạn có thể tạo một quy trình mới bằng các bước được đề cập bên dưới. .
Cài đặt gói Python cần thiết. .
Mã Python để tải tệp lên Azure Blob. .
Tệp Trong Azure Blob

Làm cách nào để tải tệp CSV lên bộ lưu trữ blob Azure bằng Python?

Tải mã Python csv[df] trở lại azure blob .
nhập gấu trúc dưới dạng pd
nhập numpy dưới dạng np
nhập ngày giờ
nhập hệ điều hành, uuid
từ màu xanh. kho. blob nhập BlobServiceClient, BlobClient, ContainerClient, __version__
chức năng xác định [df]
[hoạt động df]
một = df. to_csv['current19. csv', chỉ mục=Sai]

Tôi có thể tải tệp ZIP lên bộ nhớ Azure blob không?

Chỉ cần thêm đường dẫn thư mục vào tên blob . Ví dụ: nếu bạn muốn tải lên abc. zip trong thư mục xyz/pqr, chỉ cần đổi tên blob thành xyz/pqr/abc.

Làm cách nào để tải lên tệp json trong bộ lưu trữ blob Azure bằng Python?

'] # Khởi tạo biến để theo dõi mọi thay đổi anyChanges= False # Đọc tệp JSON jsonData= json. tải [inputblob. read[]] # Thực hiện các thay đổi đối với jsonData [bỏ qua để đơn giản] và cập nhật bất kỳThay đổi nào # Tải lên tệp JSON mới nếu cóThay đổi. đầu ra. bộ trả về [jsonData]

Chủ Đề