AzureStorage.Blobs ดึงรายชื่อของ blobs (ไฟล์) ที่มีอยู่ในคอนเทนเนอร์ Azure Storage และสร้างตารางนำทางเพื่อเข้าถึงไฟล์เหล่านั้น
=AzureStorage.Blobs(account as text, optional options as nullable record) as table
=AzureStorage.Blobs(account as text, optional options as nullable record) as table
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| account | text | Yes | URL ของบัญชี Azure Storage (เช่น https://mystorageaccount.blob.core.windows.net) | |
| options | nullable record | Optional | null | ระเบียนที่เก็บตัวเลือกการตั้งค่า เช่น BlockSize, RequestSize, ConcurrentRequests |
let AccountURL = "https://mystorageaccount.blob.core.windows.net", Blobs = AzureStorage.Blobs(AccountURL) in Blobslet
AccountURL = "https://mystorageaccount.blob.core.windows.net",
Blobs = AzureStorage.Blobs(AccountURL)
in
Blobs
ตารางนำทางแสดงคอนเทนเนอร์ทั้งหมดในบัญชี Azure Storage
let AccountURL = "https://mystorageaccount.blob.core.windows.net", Options = [BlockSize = 8 * 1024 * 1024, ConcurrentRequests = 32], Blobs = AzureStorage.Blobs(…let
AccountURL = "https://mystorageaccount.blob.core.windows.net",
Options = [BlockSize = 8 * 1024 * 1024, ConcurrentRequests = 32],
Blobs = AzureStorage.Blobs(AccountURL, Options)
in
Blobs
ตารางที่ดึงมาด้วยการตั้งค่าที่ปรับแต่งแล้ว (ใช้ 8 MB blocks และ 32 requests ขนานกัน)
let AccountURL = "https://mystorageaccount.blob.core.windows.net", Options = [RequestSize = 2 * 1024 * 1024, ConcurrentRequests = 8], Blobs = AzureStorage.Blobs…let
AccountURL = "https://mystorageaccount.blob.core.windows.net",
Options = [RequestSize = 2 * 1024 * 1024, ConcurrentRequests = 8],
Blobs = AzureStorage.Blobs(AccountURL, Options)
in
Blobs
ตารางที่ดึงมาด้วยขนาด request ที่เล็กลง (2 MB) เพื่อประหยัดหน่วยความจำ
ส่งกลับ Table ที่เป็นตารางนำทาง โดยแต่ละแถวแสดงถึงคอนเทนเนอร์หนึ่ง และมีลิงก์ไปยัง blobs ในคอนเทนเนอร์นั้น
คุณต้องใช้ URL ของบัญชี Azure Storage เท่านั้น Power Query จะจัดการการตรวจสอบสิทธิ์ผ่าน Azure AD หรือ connection settings
ไม่มีข้อจำกัดในตัวเอง แต่ต้องคำนึงถึงการใช้หน่วยความจำ (Memory = ConcurrentRequests × RequestSize) และข้อจำกัดของ Azure Storage API
ได้ เนื่องจากใช้ Blob Storage API ที่เป็นพื้นฐานของทั้ง Azure Blob Storage และ Azure Data Lake Storage
RequestSize คือขนาดของคำขอ HTTP เดี่ยว ส่วน BlockSize คือจำนวนข้อมูลที่เก็บไว้ก่อนส่งต่อให้ผู้บริโภค BlockSize ควรมากกว่าหรือเท่ากับ RequestSize
AzureStorage.Blobs(account, options) ใช้เชื่อมต่อกับบัญชี Azure Storage และดึงข้อมูลเกี่ยวกับ blobs ทั้งหมดในคอนเทนเนอร์ ฟังก์ชันนี้ส่งกลับตารางนำทาง โดยแต่ละแถวแสดงถึงคอนเทนเนอร์หนึ่ง พร้อมลิงก์เพื่อเข้าถึง blobs ในคอนเทนเนอร์นั้น
ที่เจ๋งของฟังก์ชันนี้คือการปรับแต่นประสิทธิภาพได้ผ่านตัวเลือก BlockSize, RequestSize และ ConcurrentRequests ซึ่งช่วยให้คุณสามารถควบคุมความเร็วและการใช้หน่วยความจำตามความต้องการของคุณ
ส่วนตัวผมจะใช้ ConcurrentRequests สูงเมื่อต้องการโหลดไฟล์จำนวนมาก แต่ต้องระวังการใช้หน่วยความจำ การตั้งค่าที่สมดุลคือประเด็นสำคัญที่มักมนุษย์ลืมเลย