Thep Excel

AzureStorage.Blobsดึงรายชื่อ Azure Blobs จากคอนเทนเนอร์

AzureStorage.Blobs ดึงรายชื่อของ blobs (ไฟล์) ที่มีอยู่ในคอนเทนเนอร์ Azure Storage และสร้างตารางนำทางเพื่อเข้าถึงไฟล์เหล่านั้น

fx
=AzureStorage.Blobs(account, [options]) as table

ความนิยม5/10
ความยาก5/10
ประโยชน์5/10

อัปเดต 12 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
account text URL ของบัญชี Azure Storage (เช่น https://mystorageaccount.blob.core.windows.net)
[options]ไม่บังคับ nullable record null ระเบียนที่เก็บตัวเลือกการตั้งค่า เช่น BlockSize, RequestSize, ConcurrentRequests

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

AzureStorage.Blobs(account, options) ใช้เชื่อมต่อกับบัญชี Azure Storage และดึงข้อมูลเกี่ยวกับ blobs ทั้งหมดในคอนเทนเนอร์ ฟังก์ชันนี้ส่งกลับตารางนำทาง โดยแต่ละแถวแสดงถึงคอนเทนเนอร์หนึ่ง พร้อมลิงก์เพื่อเข้าถึง blobs ในคอนเทนเนอร์นั้น

ที่เจ๋งของฟังก์ชันนี้คือการปรับแต่นประสิทธิภาพได้ผ่านตัวเลือก BlockSize, RequestSize และ ConcurrentRequests ซึ่งช่วยให้คุณสามารถควบคุมความเร็วและการใช้หน่วยความจำตามความต้องการของคุณ

ส่วนตัวผมจะใช้ ConcurrentRequests สูงเมื่อต้องการโหลดไฟล์จำนวนมาก แต่ต้องระวังการใช้หน่วยความจำ การตั้งค่าที่สมดุลคือประเด็นสำคัญที่มักมนุษย์ลืมเลย

Examples

ดึงรายชื่อ Blobs พื้นฐานlet AccountURL = "https://mystorageaccount.blob.core.windows.net", Blobs = AzureStorage.Blobs(AccountURL) in Blobs

ใช้งาน AzureStorage.Blobs กับ URL ของบัญชี Azure Storage โดยใช้ค่าตั้งค่านี้เริ่มต้น

fx
let
AccountURL = "https://mystorageaccount.blob.core.windows.net",
Blobs = AzureStorage.Blobs(AccountURL)
in
Blobs

ผลลัพธ์ตารางนำทางแสดงคอนเทนเนอร์ทั้งหมดในบัญชี Azure Storage
ตั้งค่า BlockSize และ ConcurrentRequestslet AccountURL = "https://mystorageaccount.blob.core.windows.net", Options = [BlockSize = 8 * 1024 * 1024, ConcurrentRequests = 32], Blobs = AzureStorage.Blobs(…

เพิ่มขนาด BlockSize เป็น 8 MB และ ConcurrentRequests เป็น 32 เพื่อดาวน์โหลดเร็วขึ้น แต่ใช้หน่วยความจำมากขึ้น (256 MB)

fx
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 ขนานกัน)
ปรับแต่น RequestSize เพื่อควบคุมหน่วยความจำlet AccountURL = "https://mystorageaccount.blob.core.windows.net", Options = [RequestSize = 2 * 1024 * 1024, ConcurrentRequests = 8], Blobs = AzureStorage.Blobs…

ลดขนาด RequestSize เป็น 2 MB และ ConcurrentRequests เป็น 8 เพื่อควบคุมการใช้หน่วยความจำในสภาพแวดล้อมที่จำกัด

fx
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) เพื่อประหยัดหน่วยความจำ

FAQs

ฟังก์ชันนี้ส่งกลับข้อมูลประเภทไหน+

ส่งกลับ Table ที่เป็นตารางนำทาง โดยแต่ละแถวแสดงถึงคอนเทนเนอร์หนึ่ง และมีลิงก์ไปยัง blobs ในคอนเทนเนอร์นั้น

ฉันต้องมี access token หรือ connection string จากไหน+

คุณต้องใช้ URL ของบัญชี Azure Storage เท่านั้น Power Query จะจัดการการตรวจสอบสิทธิ์ผ่าน Azure AD หรือ connection settings

ConcurrentRequests มีค่าสูงสุดเท่าไหร่+

ไม่มีข้อจำกัดในตัวเอง แต่ต้องคำนึงถึงการใช้หน่วยความจำ (Memory = ConcurrentRequests × RequestSize) และข้อจำกัดของ Azure Storage API

สามารถใช้ฟังก์ชันนี้กับ Azure Data Lake Storage ได้ไหม+

ได้ เนื่องจากใช้ Blob Storage API ที่เป็นพื้นฐานของทั้ง Azure Blob Storage และ Azure Data Lake Storage

BlockSize และ RequestSize ต่างกันอย่างไร+

RequestSize คือขนาดของคำขอ HTTP เดี่ยว ส่วน BlockSize คือจำนวนข้อมูลที่เก็บไว้ก่อนส่งต่อให้ผู้บริโภค BlockSize ควรมากกว่าหรือเท่ากับ RequestSize

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ AzureStorage.Blobs จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้AzureStorage.BlobsAccessing data functions
Accessing data functions (3)
AzureStorage.BlobContents

AzureStorage.BlobContents อ่านเนื้อหาของไฟล์ (blob) จากที่เก็บข้อมูล Azure Storage

AzureStorage.DataLake

AzureStorage.DataLake ดึงข้อมูลจากเสถียร Azure Data Lake Storage (ADLS) โดยส่งคืนตารางนำทางของไฟล์ในระบบไฟล์

AzureStorage.Tables

AzureStorage.Tables ดึงข้อมูลจากตารางใน Azure Table Storage ซึ่งเป็นบริการจัดเก็บข้อมูลแบบ NoSQL

Table functions (2)
Table.ExpandTableColumn

Table.ExpandTableColumn ใช้แตกข้อมูลจากคอลัมน์ที่เป็น nested table ออกมาเป็นคอลัมน์และแถวปกติในตารางหลัก โดยรักษาข้อมูลคอลัมน์อื่นไว้ และทำซ้ำแถวหลักสำหรับแต่ละแถวในตารางซ้อน มักใช้คู่กับ Table.NestedJoin หลัง join ตาราง หรือใช้ขยายข้อมูลจากแหล่งที่มีโครงสร้างแบบ hierarchical เช่น JSON หรือ API

Table.SelectRows

Table.SelectRows เป็นฟังก์ชันสำหรับกรองตาราง (filter table) ใน Power Query โดยใช้ฟังก์ชันเงื่อนไข (condition function) เพื่อตรวจสอบแต่ละแถว ถ้าเงื่อนไขคืนค่า true จะเก็บแถวนั้นไว้ ถ้าเป็น false จะตัดทิ้ง สามารถใช้ keyword 'each' ร่วมกับการอ้างอิงคอลัมน์ด้วย [ColumnName] เพื่อเขียนเงื่อนไขได้สะดวก รองรับการกรองตามตัวเลข ข้อความ วันที่ การตรวจสอบค่า null และเงื่อนไขที่ซับซ้อนด้วย and/or operators ฟังก์ชันนี้รองรับ Query Folding ซึ่งช่วยเพิ่มประสิทธิภาพเมื่อทำงานกับ data source ขนาดใหญ่

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่