ส่งข้อมูลไปยังคลังสินค้าของคุณโดยใช้คําสั่ง COPY
นําไปใช้กับ:✅ Warehouse ใน Microsoft Fabric
คําสั่ง COPY เป็นวิธีหลักในการนําเข้าข้อมูลลงในตาราง Warehouse คัดลอก ดําเนินการนําเข้าข้อมูลปริมาณงานสูงจากบัญชีที่จัดเก็บข้อมูล Azure ภายนอก ด้วยความยืดหยุ่นในการกําหนดค่าตัวเลือกรูปแบบไฟล์ต้นทาง ตําแหน่งสําหรับจัดเก็บแถวที่ถูกปฏิเสธ ข้ามแถวส่วนหัว และตัวเลือกอื่น ๆ
บทช่วยสอนนี้แสดงตัวอย่างการนําเข้าข้อมูลสําหรับตาราง Warehouse โดยใช้คําสั่ง T-SQL COPY
ใช้ข้อมูลตัวอย่าง Bing COVID-19 จากชุดข้อมูล Azure Open สําหรับรายละเอียดเกี่ยวกับข้อมูลนี้ รวมถึง Schema และสิทธิ์การใช้งาน โปรดดู Bing COVID-19
หมายเหตุ
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคําสั่ง T-SQL COPY รวมถึงตัวอย่างเพิ่มเติมและไวยากรณ์แบบเต็ม โปรดดู คัดลอก (Transact-SQL)
สร้างตาราง
ก่อนที่คุณจะใช้คําสั่งคัดลอก คุณต้องสร้างตารางปลายทางก่อน เมื่อต้องสร้างตารางปลายทางสําหรับตัวอย่างนี้ ใช้ขั้นตอนต่อไปนี้:
ในพื้นที่ทํางาน Microsoft Fabric ของคุณ ค้นหาและเปิดคลังสินค้าของคุณ
สลับไปยังแท็บ หน้าแรก และเลือก คิวรี SQL ใหม่
เมื่อต้องการสร้างตารางที่ใช้เป็นปลายทางในบทช่วยสอนนี้ ให้เรียกใช้โค้ดต่อไปนี้:
CREATE TABLE [dbo].[bing_covid-19_data] ( [id] [int] NULL, [updated] [date] NULL, [confirmed] [int] NULL, [confirmed_change] [int] NULL, [deaths] [int] NULL, [deaths_change] [int] NULL, [recovered] [int] NULL, [recovered_change] [int] NULL, [latitude] [float] NULL, [longitude] [float] NULL, [iso2] [varchar](8000) NULL, [iso3] [varchar](8000) NULL, [country_region] [varchar](8000) NULL, [admin_region_1] [varchar](8000) NULL, [iso_subdivision] [varchar](8000) NULL, [admin_region_2] [varchar](8000) NULL, [load_time] [datetime2](6) NULL );
ข้อมูล Ingest Parquet โดยใช้คําสั่ง COPY
ในตัวอย่างแรก เราโหลดข้อมูลโดยใช้แหล่งข้อมูล Parquet เนื่องจากข้อมูลนี้จะพร้อมใช้งานแบบสาธารณะและไม่จําเป็นต้องมีการรับรองความถูกต้อง คุณสามารถคัดลอกข้อมูลนี้ได้อย่างง่ายดายโดยการระบุต้นทางและปลายทาง ไม่จําเป็นต้องมีรายละเอียดการรับรองความถูกต้อง คุณจะต้องระบุอาร์กิวเมนต์ FILE_TYPE
เท่านั้น
ใช้โค้ดต่อไปนี้เพื่อเรียกใช้คําสั่ง COPY กับแหล่งที่มา Parquet:
COPY INTO [dbo].[bing_covid-19_data]
FROM 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet'
WITH (
FILE_TYPE = 'PARQUET'
);
การนําเข้าข้อมูล CSV โดยใช้คําสั่ง COPY และข้ามแถวส่วนหัว
เป็นเรื่องปกติสําหรับไฟล์ค่า (CSV) ที่คั่นด้วยเครื่องหมายจุลภาคเพื่อให้มีแถวส่วนหัวที่มีชื่อคอลัมน์ที่แสดงตารางในไฟล์ CSV คําสั่ง COPY สามารถคัดลอกข้อมูลจากไฟล์ CSV และข้ามอย่างน้อยหนึ่งแถวจากส่วนหัวของไฟล์ต้นทาง
หากคุณเรียกใช้ตัวอย่างก่อนหน้านี้เพื่อโหลดข้อมูลจาก Parquet ให้พิจารณาการลบข้อมูลทั้งหมดออกจากตารางของคุณ:
DELETE FROM [dbo].[bing_covid-19_data];
หากต้องการโหลดข้อมูลจากไฟล์ CSV ที่ข้ามแถวส่วนหัว ให้ใช้โค้ดต่อไปนี้:
COPY INTO [dbo].[bing_covid-19_data]
FROM 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv'
WITH (
FILE_TYPE = 'CSV',
FIRSTROW = 2
);
ตรวจสอบผลลัพธ์
คําสั่ง COPY เสร็จสมบูรณ์โดยการนําเข้าแถว 4,766,736 แถวลงในตารางใหม่ของคุณ คุณสามารถยืนยันการเรียกใช้การดําเนินการได้สําเร็จโดยการเรียกใช้คิวรีที่แสดงจํานวนแถวทั้งหมดในตารางของคุณ:
SELECT COUNT(*) FROM [dbo].[bing_covid-19_data];
ถ้าคุณเรียกใช้ทั้งสองตัวอย่างโดยไม่ลบแถวในระหว่างทํางาน คุณจะเห็นผลลัพธ์ของคิวรีนี้ที่มีแถวเป็นสองเท่า ในขณะที่ใช้งานได้สําหรับการนําเข้าข้อมูลในกรณีนี้ ให้พิจารณาลบแถวทั้งหมดและการนําเข้าข้อมูลเพียงครั้งเดียวถ้าคุณกําลังจะทดลองกับข้อมูลนี้เพิ่มเติม