หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ใช้ OneLake table read API เพื่ออ่านแถวจากตาราง Delta Lake หรือ Apache Iceberg ใน OneLake
หากต้องการอ่านข้อมูลตาราง ให้ส่งคําขอหนึ่งครั้งเพื่อเริ่มเซสชันการอ่าน API จะส่งคืนสตรีมผลลัพธ์อิสระหนึ่งชุดหรือมากกว่าตามขนาดของข้อมูลที่ต้องการส่งคืน แอปพลิเคชันของคุณสามารถดาวน์โหลดสตรีมเหล่านี้พร้อมกัน ซึ่งช่วยให้อ่านข้อมูลตารางจํานวนมากได้รวดเร็วขึ้น หลังจากดาวน์โหลดสตรีมแล้ว ให้ประมวลผลชุดบันทึก Apache Arrow ของพวกเขาเพื่อประกอบผลลัพธ์ที่สมบูรณ์
API จะอ่านตารางจากจุดเวลาที่สอดคล้องกัน ดังนั้นทุกสตรีมผลลัพธ์จะมีข้อมูลจาก snapshot เดียวกัน แม้ว่าตารางจะเปลี่ยนแปลงระหว่างการอ่าน นอกจากนี้ยังบังคับใช้การอนุญาต OneLake, ความปลอดภัยระดับแถว (RLS) และความปลอดภัยระดับคอลัมน์ (CLS) สําหรับผู้โทรที่ได้รับการยืนยันตัวตน ซึ่งหมายความว่าแอปพลิเคชันของคุณจะได้รับเฉพาะแถวและคอลัมน์ที่ผู้โทรได้รับอนุญาตให้เข้าถึง โดยไม่ต้องทําซ้ําการควบคุมความปลอดภัยเหล่านี้ในโค้ดของตัวเอง
Important
API การอ่านตารางของ OneLake กําลังอยู่ในโหมดพรีวิวสาธารณะ ฟีเจอร์และลักษณะการทํางานอาจเปลี่ยนแปลงก่อนการวางจําหน่ายทั่วไป
ข้อกําหนดเบื้องต้น
- ดําเนินการตามข้อกําหนดเบื้องต้นของ shared table API และขั้นตอนการตรวจสอบสิทธิ์
- ไคลเอนต์ HTTP ที่สามารถประมวลผลสตรีม IPC ของ Apache Arrow โดยไม่ต้องบัฟเฟอร์การตอบกลับทั้งหมด
1. ส่งคําขอสําหรับแถวตาราง
ส่ง POST คําขอไปยังเส้นทางของ /read ตารางเพื่อเริ่มเซสชันอ่าน
สร้าง URL คําขอโดยแทนที่ตัวแทนด้วยตัวระบุสําหรับพื้นที่ทํางาน รายการ สคีมา และตารางที่คุณต้องการอ่าน
POST <TableReadBaseUrl>/v1.0/workspaces/<WorkspaceID>/items/<ItemID>/schemas/<SchemaName>/tables/<TableName>/read Authorization: Bearer <BearerToken>รวมตัวเลือกการอ่านที่แอปพลิเคชันของคุณต้องการไว้ในคําขอ ใช้ตัวเลือกเพื่อ
columnsระบุคอลัมน์ที่ต้องการคืนค่าบันทึกตัวระบุสตรีมที่ไม่โปร่งใสทั้งหมดจากการตอบกลับที่สําเร็จ ผลลัพธ์ขนาดใหญ่อาจถูกแบ่งออกเป็นหลายสตรีม คุณต้องดึงทุกสตรีมเพื่อรับทุกแถว
การตอบกลับจะเริ่มเซสชันการอ่านผ่าน snapshot ที่สอดคล้องกันของเวอร์ชันตารางที่จําเป็นสําหรับคําขอของคุณ ทุกสตรีมจากการตอบสนองนี้ใช้สแนปช็อตเดียวกัน
2. ดาวน์โหลดทุกสตรีมผลลัพธ์
ใช้แต่ละตัวระบุสตรีมจากการตอบกลับเพื่อดึงส่วนที่เกี่ยวข้องของผลลัพธ์การอ่านตาราง
เซสชันอ่านจะหมดอายุหลังจาก 60 นาที ดึงสตรีมทุกสตรีมก่อนที่เซสชันจะหมดอายุ หากคุณหยุดหลังจากดึงข้อมูลเพียงบางส่วน คุณจะไม่ได้รับผลลัพธ์ที่สมบูรณ์
สําหรับแต่ละตัวระบุสตรีมในคําตอบการจัดสรร ให้ส่งคําขอที่ผ่านการตรวจสอบ
GETสิทธิ์GET <TableReadBaseUrl>/v1.0/workspaces/<WorkspaceID>/items/<ItemID>/schemas/<SchemaName>/tables/<TableName>/readStream/<StreamID> Authorization: Bearer <BearerToken>เปิดตัวการตอบสนองด้วยเครื่องอ่านสตรีม Apache Arrow IPC
ประมวลผลชุดบันทึกเมื่อมาถึง การสตรีมชุดงานจะช่วยหลีกเลี่ยงการโหลดผลลัพธ์ทั้งหมดลงในหน่วยความจํา
ทําซ้ําคําขอสําหรับตัวระบุสตรีมทุกตัวและรวมผลลัพธ์ตามโมเดลการประมวลผลของแอปพลิเคชันของคุณ
แต่ละ /readStream การตอบกลับเป็นสตรีม IPC ของ Apache Arrow ที่เป็นอิสระ ใช้ไลบรารี Apache Arrow สําหรับภาษาแอปพลิเคชันของคุณเพื่ออ่านชุดบันทึกจากแต่ละคําตอบ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบสตรีม โปรดดูที่ การเรียงลําดับและการสื่อสารระหว่างกระบวนการ (IPC)
เนื้อหาการตอบกลับประกอบด้วยข้อมูลสตรีม IPC ของ Apache Arrow ดิบ รวมถึงข้อมูลสคีมาที่จําเป็นสําหรับการตีความชุดบันทึก อย่าพึ่งพาลําดับแถว หรือคิดว่าตําแหน่งของสตรีมในคําตอบเป็นตัวกําหนดตําแหน่งของมันในผลลัพธ์ทั้งหมด
ทําความเข้าใจความปลอดภัยของ OneLake สําหรับ API อ่านตาราง
API นี้บังคับใช้ความปลอดภัยของ OneLake โดยใช้ตัวตนที่โทเค็นแบร์ของคุณแทน:
- หากคุณไม่มีสิทธิ์ในการดูตาราง บริการจะส่งคืนการตอบกลับที่ไม่พบ
- หากความปลอดภัยระดับแถว (RLS) กรองทุกแถวที่คุณสามารถดูได้ คําขอจะสําเร็จแต่จะคืนค่าการตอบกลับแบบลูกศรว่างเปล่า
- หากคุณใช้การฉายภาพคอลัมน์แบบสัญลักษณ์แทน การตอบกลับจะรวมเฉพาะคอลัมน์ที่ความปลอดภัยระดับคอลัมน์ (CLS) อนุญาตให้คุณดูเท่านั้น
- หากคุณร้องขอคอลัมน์ที่ไม่สามารถดูได้โดยตรง บริการจะส่งคืนการตอบกลับที่ไม่พบ
เนื่องจากตารางและคอลัมน์ที่ไม่ได้รับอนุญาตจะส่งคืนคําตอบที่ไม่พบ อย่าใช้การตอบกลับที่ไม่พบเพื่อกําหนดว่ามีทรัพยากรหรือไม่
ข้อควรพิจารณาและข้อจำกัด
- API การอ่านตารางไม่รองรับทางลัดข้ามภูมิภาค
- คุณถูกเรียกเก็บเงินสําหรับการผ่าตัด
POST /readการดึงข้อมูลโดยใช้ จะไม่/readStreamทําให้เกิดเหตุการณ์การเรียกเก็บเงินแบบอ่านตารางแยกต่างหาก สําหรับข้อมูลเพิ่มเติม ดูที่ การใช้ API อ่านตาราง