ตัวอย่างที่ 1: Buffer รายการตัวเลขเป็น Binary
=Binary.Buffer(Binary.FromList({0, 1, 2, 3, 4, 5}))
#binary({0, 1, 2, 3, 4, 5})
แปลงข้อมูล Binary เป็นเวอร์ชัน Stable ที่มีคุณสมบัติแน่นอน
Binary.Buffer สร้างเวอร์ชัน Stable ของข้อมูล Binary ในหน่วยความจำ ข้อมูล Binary ที่ Buffered จะมีคุณสมบัติตายตัว ได้แก่ ความยาวคงที่และลำดับ Bytes สม่ำเสมอ ใช้เมื่อต้องการความเชื่อถือได้ของข้อมูล
=Binary.Buffer(binary as nullable binary) as nullable binary
=Binary.Buffer(binary as nullable binary) as nullable binary
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| binary | binary | Yes | ค่า Binary (nullable) ที่ต้องการ Buffer เพื่อให้มีคุณสมบัติแน่นอน |
Buffer ข้อมูล Binary ก่อนการดำเนินการที่ต้องการลำดับ Bytes และความยาวที่คาดเดาได้
สร้างเวอร์ชัน Stable ของ Binary ก่อนแปลงเป็น Text หรือรูปแบบอื่น
Buffer ข้อมูล Binary ที่โหลดแบบ Lazy เพื่อให้เกิดการ Materialize และปฏิบัติแบบสม่ำเสมอ
=Binary.Buffer(Binary.FromList({0, 1, 2, 3, 4, 5}))
#binary({0, 1, 2, 3, 4, 5})
let
TextData = "Hello",
BinaryData = Binary.FromText(TextData),
BufferedData = Binary.Buffer(BinaryData),
Length = Binary.Length(BufferedData)
in
Length
5
let
Source = Binary.FromText("PowerQuery"),
Buffered = Binary.Buffer(Source),
FirstFiveBytes = Binary.Range(Buffered, 0, 5)
in
FirstFiveBytes
#binary({80, 111, 119, 101, 114})
Stable หมายความว่า Binary มีคุณสมบัติตายตัว ได้แก่ ความยาวคงที่และลำดับ Bytes สม่ำเสมอ สำคัญเมื่อ Binary มาจาก Stream หรือข้อมูลที่ Generate แบบ Dynamic ซึ่งอาจให้ผลต่างกันในแต่ละครั้ง
ใช้เมื่อมี Binary ที่อาจเป็น Lazy-evaluated (เช่น Stream หรือข้อมูล Dynamic) และต้องใช้ในการดำเนินการหลายอย่าง เพื่อให้ได้ผลลัพธ์สม่ำเสมอ
Buffer จะนำ Binary ขึ้นมา Memory ทั้งหมด ถ้า Binary ใหญ่มากจะใช้ Memory มาก แต่ถ้าต้องใช้ Binary หลายครั้งมักจะเร็วขึ้นเพราะไม่ต้อง Recompute
Binary.Buffer จะคืนค่า null ถ้า Input เป็น null รักษาพฤติกรรม null propagation ของ Power Query
ฟังก์ชัน Binary.Buffer ใน Power Query ใช้สำหรับสร้างเวอร์ชันเสถียร (Stable) ของค่า Binary ใน memory ค่า Binary ที่ผ่าน Buffer จะมีคุณสมบัติที่แน่นอน คือ ความยาวคงที่และลำดับ Bytes ที่สม่ำเสมอ เหมาะสำหรับการดำเนินการที่ต้องการพฤติกรรม Binary ที่สามารถคาดเดาได้