หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
นําไปใช้กับ:✅ Warehouse ใน Microsoft Fabric
ฟังก์ชัน OPENROWSET ช่วยให้คุณสามารถอ่านเนื้อหาของไฟล์ Parquet หรือ CSV และส่งกลับข้อมูลเป็นชุดของแถว ไฟล์สามารถจัดเก็บไว้ใน Azure Blob Storage, Azure Data Lake Storage หรือ Fabric OneLake
Important
การอ่านไฟล์จากที่เก็บข้อมูล Fabric OneLake โดยใช้ฟังก์ชัน OPENROWSET อยู่ในการแสดงตัวอย่าง
คุณสามารถใช้คุณลักษณะนี้เพื่อตรวจสอบเนื้อหาของไฟล์ก่อนที่จะโหลดลงในตารางคลังข้อมูลของคุณ ด้วย OPENROWSET คุณสามารถสํารวจไฟล์ที่คุณนําเข้าไปยัง Fabric Warehouse ของคุณทําความเข้าใจคอลัมน์ที่คุณกําลังนําเข้าและกําหนดประเภทของคอลัมน์ได้อย่างง่ายดาย
เมื่อคุณทําความเข้าใจข้อมูลของคุณ คุณสามารถสร้างตารางที่จะใช้ในการจัดเก็บเนื้อหาไฟล์ที่นําเข้าได้
เรียกดูไฟล์ Parquet โดยใช้ฟังก์ชัน OPENROWSET
ในตัวอย่างแรก เราตรวจสอบข้อมูลจากแหล่งที่มาของ Parquet
ใช้โค้ดต่อไปนี้เพื่ออ่านข้อมูลตัวอย่างจากไฟล์โดยใช้ฟังก์ชัน OPENROWSET(BULK) กับแหล่งที่มา Parquet:
SELECT TOP 10 *
FROM OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet') AS data
เนื่องจากข้อมูลนี้จะพร้อมใช้งานแบบสาธารณะและไม่จําเป็นต้องมีการรับรองความถูกต้อง คุณสามารถคัดลอกคิวรีนี้ไปยังคลังสินค้า Fabric ของคุณและดําเนินการได้โดยไม่มีการเปลี่ยนแปลงใด ๆ
ไม่จําเป็นต้องมีรายละเอียดการรับรองความถูกต้อง
คุณไม่จําเป็นต้องระบุตัวเลือก FORMAT เนื่องจากฟังก์ชัน OPENROWSET สันนิษฐานว่าคุณกําลังอ่านรูปแบบ Parquet ตามนามสกุลไฟล์ .parquet ใน URI
เรียกดูไฟล์ CSV โดยใช้ฟังก์ชัน OPENROWSET
ในตัวอย่างที่สอง เราตรวจสอบข้อมูลจากไฟล์ CSV ใช้โค้ดต่อไปนี้เพื่ออ่านข้อมูลตัวอย่างจากไฟล์ CSV โดยใช้ฟังก์ชัน OPENROWSET(BULK):
SELECT TOP 10 *
FROM OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv') AS data
เนื่องจากข้อมูลนี้จะพร้อมใช้งานแบบสาธารณะและไม่จําเป็นต้องมีการรับรองความถูกต้อง คุณสามารถคัดลอกคิวรีนี้ไปยังคลังสินค้า Fabric ของคุณและดําเนินการได้โดยไม่มีการเปลี่ยนแปลงใด ๆ ไม่จําเป็นต้องมีรายละเอียดการรับรองความถูกต้อง
คุณไม่จําเป็นต้องระบุ FORMAT ตัวเลือก เนื่องจากฟังก์ชันจะ OPENROWSET ถือว่าคุณกําลังอ่าน CSV รูปแบบตาม .csv นามสกุลไฟล์ใน URI
Note
ในผลลัพธ์ คุณอาจสังเกตเห็นว่าแถวแรกในไฟล์นี้มีชื่อคอลัมน์แทนข้อมูล ในกรณีนี้ คุณจะต้องปรับเปลี่ยนคิวรีโดยใช้ตัวเลือก HEADER_ROW เพื่อข้ามแถวและใช้เฉพาะสําหรับชื่อคอลัมน์เท่านั้น นี่คือส่วนหนึ่งของกระบวนการสํารวจข้อมูล ขณะที่คุณค่อยๆ ปรับไฟล์จนกว่าจะตรงกับข้อมูลพื้นฐาน
เรียกดูไฟล์ JSONL โดยใช้ฟังก์ชัน OPENROWSET
ฟังก์ชันนี้ OPENROWSET(BULK) ช่วยให้คุณสามารถเรียกดูไฟล์ JSON ในรูปแบบที่คั่นด้วยบรรทัด:
SELECT TOP 10 *
FROM OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.jsonl') AS data
หากไฟล์มีข้อความที่คั่นด้วยบรรทัดโดยที่แต่ละบรรทัดแสดงถึงเอกสาร JSON ที่ถูกต้อง สามารถใช้ฟังก์ชันเพื่อ OPENROWSET อ่านได้โดยตรง
คุณไม่จําเป็นต้องระบุ FORMAT ตัวเลือกอย่างชัดเจน จะ OPENROWSET อนุมานรูปแบบ JSONL โดยอัตโนมัติตามนามสกุลไฟล์ทั่วไป เช่น .jsonl, หรือ .ldjsonใน .ndjson URI อย่างไรก็ตาม หากคุณใช้นามสกุลไฟล์อื่นสําหรับรูปแบบนี้ คุณต้องระบุ FORMAT = 'jsonl' เพื่อให้แน่ใจว่ามีการแยกวิเคราะห์ที่ถูกต้อง
อ่านไฟล์ใน Fabric OneLake
ฟังก์ชันนี้ OPENROWSET(BULK) ช่วยให้คุณสามารถอ่านไฟล์ที่จัดเก็บไว้ใน Fabric OneLake หากไฟล์ของคุณถูกเก็บไว้ในส่วนไฟล์ของเลคเฮาส์คุณสามารถอ่านไฟล์นี้ได้โดยใช้ไวยากรณ์การกรอกข้อมูล:
SELECT TOP 10 *
FROM OPENROWSET(BULK 'https://onelake.dfs.fabric.microsoft.com/<workspaceId>/<lakehouseId>/Files/latest/bing_covid-19_data.jsonl') AS data
แทนที่ <workspaceId> และ ด้วย <lakehouseId> GUID พื้นที่ทํางานและเลคเฮาส์ที่คุณสามารถพบได้ใน URI พื้นที่ทํางาน Fabric ตรวจสอบให้แน่ใจว่าคุณกําลังอ้างอิงไฟล์ในส่วน /Files ของเลคเฮาส์
Important
การอ่านไฟล์จากที่เก็บข้อมูล Fabric OneLake โดยใช้ฟังก์ชัน OPENROWSET อยู่ในการแสดงตัวอย่าง ดูข้อจํากัดที่ใช้ได้กับทั้งและCOPY INTOOPENROWSET(BULK)
อ่านไฟล์ข้อความแบบกําหนดเอง
ฟังก์ชันนี้ OPENROWSET(BULK) ช่วยให้คุณสามารถกําหนดตัวเลือกต่างๆ สําหรับการอ่านไฟล์ข้อความที่กําหนดเอง
ตัวอย่างเช่น คุณสามารถระบุค่าสําหรับ ROWTERMINATOR และ FIELDTERMINATOR เพื่อระบุรูปแบบไฟล์พื้นฐาน
select *
from OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv',
FORMAT='CSV',
HEADER_ROW=True,
ROWTERMINATOR='\n',
FIELDTERMINATOR=','
) AS data
ในตัวอย่างนี้ เราระบุอย่างชัดเจนว่าเรากําลังอ่านไฟล์ในรูปแบบ CSV โดยที่แต่ละแถวจะถูกคั่นด้วยบรรทัดใหม่ และแต่ละฟิลด์จะถูกคั่นด้วยเครื่องหมายจุลภาค แถวแรกมีส่วนหัว ซึ่งจะใช้สําหรับชื่อคอลัมน์
สํารวจเมตาดาต้าของคอลัมน์
ด้วยฟังก์ชัน OPENROWSET คุณสามารถดูคอลัมน์ไฟล์และชนิดของไฟล์ได้อย่างง่ายดายโดยการรวมคิวรีที่อ่านข้อมูลตัวอย่างด้วยขั้นตอน sp_describe_first_result_set:
EXEC sp_describe_first_result_set
N'SELECT TOP 0 *
FROM OPENROWSET(BULK ''https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet'') AS data';
ในตัวอย่างนี้ กระบวนงานจะ sp_describe_first_result_set ดําเนินการแบบสอบถามด้วย OPENROWSET ฟังก์ชัน ซึ่งไม่ส่งคืนแถวใดๆ
จากนั้นจะใช้ Schema ของคอลัมน์จากคิวรีภายในนี้และส่งกลับ Schema ของคอลัมน์ซึ่งเป็นผลลัพธ์ของกระบวนการ
คุณสามารถใช้ schema คอลัมน์นี้เพื่อกําหนดโครงสร้างของตารางปลายทางในคําสั่งที่คุณ CREATE TABLE นําเข้าข้อมูลของคุณ
อีกทางเลือกหนึ่ง คุณสามารถใช้ผลลัพธ์เหล่านี้เพื่อระบุชนิดที่แม่นยํายิ่งขึ้นสําหรับผลลัพธ์ของ OPENROWSET ฟังก์ชัน ดังที่แสดงในตัวอย่างต่อไปนี้
ระบุสคีมาของฟังก์ชัน OPENROWSET
ฟังก์ชัน OPENROWSET(BULK) ส่งกลับชนิดคอลัมน์โดยประมาณโดยยึดตามตัวอย่างของข้อมูล
หากตัวอย่างไม่เป็นตัวแทน คุณอาจได้รับประเภทหรือขนาดที่ไม่คาดคิด
ถ้าคุณทราบชนิดคอลัมน์ในไฟล์ของคุณ คุณสามารถกําหนด Schema ของคอลัมน์ได้อย่างชัดเจนโดยใช้ส่วนคําสั่ง WITH:
SELECT TOP 10 *
FROM OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv') AS data
WITH (updated date,
load_time datetime2,
deaths_change smallint,
id int,
confirmed int,
confirmed_change int,
deaths int,
recovered int,
recovered_change int,
latitude float,
longitude float,
iso2 varchar(8000),
iso3 varchar(8000),
country_region varchar(8000),
admin_region_1 varchar(8000),
iso_subdivision varchar(8000),
admin_region_2 varchar(8000)
) AS data;
แทนที่จะคาดเดาชนิดคอลัมน์ ฟังก์ชัน OPENROWSET(BULK) จะกําหนดชนิดที่ระบุไว้ในคําสั่ง WITH อย่างชัดเจน
ด้วยวิธีนี้ คุณสามารถกําหนดชนิดที่แม่นยํามากขึ้น ซึ่งสามารถปรับปรุงประสิทธิภาพของคิวรีของคุณได้
ขั้นตอนถัดไป
หลังจากเสร็จสิ้นการสํารวจและสร้างตารางปลายทางแล้ว คุณสามารถดําเนินการการนําเข้าโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:
- ส่งถ่ายข้อมูลโดยใช้ คําสั่ง COPY
- นําเข้าข้อมูลโดยใช้ไปป์ไลน์