หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
สามารถใช้ Microsoft OneLake กับ Snowflake สําหรับจัดเก็บและเข้าถึงตาราง Apache Iceberg ได้
ทําตามคําแนะนํานี้เพื่อใช้ Snowflake บน Azure เพื่อ:
- เขียนตาราง Iceberg โดยตรงไปยัง OneLake
- อ่านตาราง Iceberg เสมือนที่แปลงจากรูปแบบ Delta Lake
Important
คุณลักษณะนี้อยู่ในแสดงตัวอย่าง
ก่อนเริ่มต้นใช้งาน ทําตามขั้นตอนข้อกําหนดเบื้องต้นที่แสดงด้านล่าง
Prerequisite
หากต้องการใช้ Snowflake บน Azure เพื่อเขียนหรืออ่านตาราง Iceberg ด้วย OneLake ข้อมูลประจําตัวของบัญชี Snowflake ของคุณใน Entra ID จําเป็นต้องสามารถสื่อสารกับ Fabric เปิดใช้งานการตั้งค่าระดับผู้เช่า Fabric ที่อนุญาตให้บริการหลักเรียก Fabric API และเรียกใช้ Api ของ OneLake
เขียนตาราง Iceberg ไปยัง OneLake โดยใช้ Snowflake บน Azure
หากคุณใช้ Snowflake บน Azure คุณสามารถเขียนตาราง Iceberg ไปยัง OneLake ได้โดยทําตามขั้นตอนเหล่านี้:
ตรวจสอบให้แน่ใจว่าความจุ Fabric ของคุณอยู่ในตําแหน่ง Azure เดียวกันกับอินสแตนซ์ Snowflake ของคุณ
ระบุตําแหน่งที่ตั้งของความจุ Fabric ที่เชื่อมโยงกับ Fabric lakehouse ของคุณ เปิดการตั้งค่าของพื้นที่ทํางาน Fabric ที่มีเลคเฮ้าส์ของคุณ
ที่มุมล่างซ้ายของ Snowflake บนอินเทอร์เฟซบัญชี Azure ให้ตรวจสอบภูมิภาค Azure ของบัญชี Snowflake
หากภูมิภาคเหล่านี้แตกต่างกัน คุณจําเป็นต้องใช้ความจุ Fabric ที่แตกต่างกันในภูมิภาคเดียวกันกับบัญชี Snowflake ของคุณ
เปิดเมนูสําหรับพื้นที่ไฟล์ของ lakehouse ของคุณ เลือกคุณสมบัติ และคัดลอก URL (เส้นทาง HTTPS) ของโฟลเดอร์นั้น
ระบุ ID ผู้เช่า Fabric ของคุณ เลือกโปรไฟล์ผู้ใช้ของคุณที่มุมบนขวาของ Fabric UI และวางเมาส์เหนือฟองข้อมูลถัดจากชื่อผู้เช่าของคุณ คัดลอก ID ผู้เช่า
ใน Snowflake ให้ตั้งค่าของคุณ
EXTERNAL VOLUMEโดยใช้เส้นทางไปยังFilesโฟลเดอร์ในเลคเฮ้าส์ของคุณ ข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าไดรฟ์ข้อมูลภายนอกของ Snowflake สามารถดูได้ที่นี่Note
Snowflake จําเป็นต้องใช้โครงร่าง URL เป็น
azure://ดังนั้นโปรดตรวจสอบให้แน่ใจว่าได้เปลี่ยนเส้นทางจากhttps://เป็นazure://CREATE OR REPLACE EXTERNAL VOLUME onelake_write_exvol STORAGE_LOCATIONS = ( ( NAME = 'onelake_write_exvol' STORAGE_PROVIDER = 'AZURE' STORAGE_BASE_URL = 'azure://<path_to_lakehouse>/Files/icebergtables' AZURE_TENANT_ID = '<Tenant_ID>' ) );ในตัวอย่างนี้ ตารางใด ๆ ที่สร้างขึ้นโดยใช้ไดรฟ์ข้อมูลภายนอกนี้จะถูกจัดเก็บไว้ใน Fabric lakehouse ภายใน
Files/icebergtablesโฟลเดอร์ตอนนี้ไดรฟ์ข้อมูลภายนอกของคุณถูกสร้างขึ้นแล้ว ให้เรียกใช้คําสั่งต่อไปนี้เพื่อเรียกใช้ URL ความยินยอมและชื่อของแอปพลิเคชันที่ Snowflake ใช้เขียนไปยัง OneLake แอปพลิเคชันนี้ใช้โดยไดรฟ์ข้อมูลภายนอกใด ๆ ในบัญชี Snowflake ของคุณ
DESC EXTERNAL VOLUME onelake_write_exvol;ผลลัพธ์ของคําสั่งนี้ส่งกลับ
AZURE_CONSENT_URLคุณสมบัติ และAZURE_MULTI_TENANT_APP_NAMEจดบันทึกค่าทั้งสองไว้ ชื่อแอปแบบหลายผู้เช่า Azure มีลักษณะเหมือน<name>_<number>แต่คุณจําเป็นต้องจับภาพ<name>ส่วนเท่านั้นเปิด URL ความยินยอม จากขั้นตอนก่อนหน้าในแท็บเบราว์เซอร์ใหม่ ถ้าคุณยังไม่ได้ดําเนินการนี้ก่อนหน้านี้ หากคุณต้องการดําเนินการต่อ ให้ยินยอมตามสิทธิ์แอปพลิเคชันที่จําเป็น หากได้รับพร้อมท์ ระบบอาจนําคุณไปยังเว็บไซต์ Snowflake หลัก
กลับไปใน Fabric เปิดพื้นที่ทํางานของคุณและเลือกจัดการการเข้าถึง จากนั้นเพิ่มบุคคลหรือกลุ่ม อนุญาตให้แอปพลิเคชันที่ใช้โดยไดรฟ์ข้อมูล Snowflake ภายนอกของคุณ มีสิทธิ์ที่จําเป็นในการเขียนข้อมูลไปยัง lakehouses ในพื้นที่ทํางานของคุณ เราขอแนะนําให้มอบ บทบาทผู้ สนับสนุน
ย้อนกลับไปที่ Snowflake ใช้ไดรฟ์ข้อมูลภายนอกใหม่ของคุณเพื่อสร้างตาราง Iceberg
CREATE OR REPLACE ICEBERG TABLE MYDATABASE.PUBLIC.Inventory ( InventoryId int, ItemName STRING ) EXTERNAL_VOLUME = 'onelake_write_exvol' CATALOG = 'SNOWFLAKE' BASE_LOCATION = 'Inventory/';หลังจากเรียกใช้คําสั่งนี้ โฟลเดอร์ตาราง Iceberg ใหม่ที่ชื่อว่า Inventory จะถูกสร้างขึ้นภายในเส้นทางโฟลเดอร์ที่กําหนดในไดรฟ์ข้อมูลภายนอก
เพิ่มข้อมูลลงในตาราง Iceberg ของคุณ
INSERT INTO MYDATABASE.PUBLIC.Inventory VALUES (123456,'Amatriciana');สุดท้าย ในพื้นที่ ตาราง ของเลคเฮ้าส์ เดียวกัน คุณสามารถสร้างทางลัด OneLake ไปยังตาราง Iceberg ของคุณได้ ผ่านทางลัดนั้น ตาราง Iceberg ของคุณจะปรากฏเป็นตาราง Delta Lake สําหรับการใช้งานในปริมาณงาน Fabric
อ่านตาราง Iceberg เสมือนจริงจาก OneLake โดยใช้ Snowflake บน Azure
หากต้องการใช้ Snowflake บน Azure เพื่ออ่านตาราง Iceberg เสมือนตามตาราง Delta Lake ใน Fabric ให้ทําตามขั้นตอนเหล่านี้
ทําตามคําแนะนําเพื่อยืนยันว่าตาราง Delta Lake ของคุณถูกแปลงเป็น Iceberg เรียบร้อยแล้ว และจดบันทึกเส้นทางไปยังรายการข้อมูลที่ประกอบด้วยตารางของคุณ รวมถึงไฟล์ล่าสุด
*.metadata.jsonของตารางของคุณระบุ ID ผู้เช่า Fabric ของคุณ เลือกโปรไฟล์ผู้ใช้ของคุณที่มุมบนขวาของ Fabric UI และวางเมาส์เหนือฟองข้อมูลถัดจากชื่อผู้เช่าของคุณ คัดลอก ID ผู้เช่า
ใน Snowflake ให้ตั้งค่าของคุณ
EXTERNAL VOLUMEโดยใช้เส้นทางไปยังTablesโฟลเดอร์ของรายการข้อมูลที่ประกอบด้วยตารางของคุณ ข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าไดรฟ์ข้อมูลภายนอกของ Snowflake สามารถดูได้ที่นี่CREATE OR REPLACE EXTERNAL VOLUME onelake_read_exvol STORAGE_LOCATIONS = ( ( NAME = 'onelake_read_exvol' STORAGE_PROVIDER = 'AZURE' STORAGE_BASE_URL = 'azure://<path_to_data_item>/Tables/' AZURE_TENANT_ID = '<Tenant_ID>' ) ) ALLOW_WRITES = false;Note
Snowflake ต้องเป็นแบบแผน
azure://URL ดังนั้นอย่าลืมเปลี่ยนhttps://เป็นazure://แทนที่
<path_to_data_item>ด้วยเส้นทางไปยังรายการข้อมูลของคุณ เช่นhttps://onelake.dfs.fabric.microsoft.com/83896315-c5ba-4777-8d1c-e4ab3a7016bc/a95f62fa-2826-49f8-b561-a163ba537828ตอนนี้ไดรฟ์ข้อมูลภายนอกของคุณถูกสร้างขึ้นแล้ว ให้เรียกใช้คําสั่งต่อไปนี้เพื่อเรียกใช้ URL ความยินยอมและชื่อของแอปพลิเคชันที่ Snowflake ใช้เขียนไปยัง OneLake แอปพลิเคชันนี้ใช้โดยไดรฟ์ข้อมูลภายนอกใด ๆ ในบัญชี Snowflake ของคุณ
DESC EXTERNAL VOLUME onelake_read_exvol;ผลลัพธ์ของคําสั่งนี้ส่งกลับ
AZURE_CONSENT_URLคุณสมบัติ และAZURE_MULTI_TENANT_APP_NAMEจดบันทึกค่าทั้งสองไว้ ชื่อแอปแบบหลายผู้เช่า Azure มีลักษณะเหมือน<name>_<number>แต่คุณจําเป็นต้องจับภาพ<name>ส่วนเท่านั้นเปิด URL ความยินยอม จากขั้นตอนก่อนหน้าในแท็บเบราว์เซอร์ใหม่ ถ้าคุณยังไม่ได้ดําเนินการนี้ก่อนหน้านี้ หากคุณต้องการดําเนินการต่อ ให้ยินยอมตามสิทธิ์แอปพลิเคชันที่จําเป็น หากได้รับพร้อมท์ ระบบอาจนําคุณไปยังเว็บไซต์ Snowflake หลัก
กลับไปใน Fabric เปิดพื้นที่ทํางานของคุณและเลือกจัดการการเข้าถึง จากนั้นเพิ่มบุคคลหรือกลุ่ม อนุญาตให้แอปพลิเคชันที่ใช้โดยไดรฟ์ข้อมูลภายนอกของ Snowflake ของคุณ มีสิทธิ์ที่จําเป็นในการอ่านข้อมูลจากรายการข้อมูลในพื้นที่ทํางานของคุณ
Tip
คุณอาจเลือกที่จะให้สิทธิ์ที่ระดับรายการข้อมูลถ้าคุณต้องการ เรียนรู้เพิ่มเติมเกี่ยวกับ การเข้าถึงข้อมูล OneLake
สร้างวัตถุใน
CATALOG INTEGRATIONSnowflake ถ้าคุณยังไม่ได้ทําสิ่งนี้ก่อนหน้านี้ การดําเนินการนี้จําเป็นต้องมีโดย Snowflake เพื่ออ้างอิงตาราง Iceberg ที่มีอยู่ในที่เก็บข้อมูลCREATE CATALOG INTEGRATION onelake_catalog_integration CATALOG_SOURCE = OBJECT_STORE TABLE_FORMAT = ICEBERG ENABLED = TRUE;กลับไปใน Snowflake สร้างตาราง Iceberg ที่อ้างอิงไฟล์เมตาดาต้าล่าสุดสําหรับตาราง Iceberg เสมือนใน OneLake
CREATE OR REPLACE ICEBERG TABLE MYDATABASE.PUBLIC.<TABLE_NAME> EXTERNAL_VOLUME = 'onelake_read_exvol' CATALOG = onelake_catalog_integration METADATA_FILE_PATH = '<metadata_file_path>';Note
แทนที่
<TABLE_NAME>ด้วยชื่อตารางของคุณ และ<metadata_file_path>ด้วยเส้นทางไฟล์เมตาดาต้าของตาราง Iceberg ของคุณ เช่นdbo/MyTable/metadata/321.metadata.jsonหลังจากเรียกใช้คําสั่งนี้ ตอนนี้คุณมีการอ้างอิงไปยังตาราง Iceberg เสมือนของคุณที่คุณสามารถคิวรีได้โดยใช้ Snowflake
คิวรีตาราง Iceberg เสมือนของคุณโดยการเรียกใช้คําสั่งต่อไปนี้
SELECT TOP 10 * FROM MYDATABASE.PUBLIC.<TABLE_NAME>;
Troubleshooting
ดู ส่วนการแก้ไขปัญหา และ ข้อจํากัดและข้อควรพิจารณา ของเอกสารประกอบของเราของการจําลองเสมือนรูปแบบตาราง OneLake และการแปลงระหว่าง Delta Lake และรูปแบบตาราง Apache Iceberg