แชร์ผ่าน


ส่งข้อมูลไปยังคลังสินค้าของคุณโดยใช้คําสั่ง 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)

สร้างตาราง

ก่อนที่คุณจะใช้คําสั่งคัดลอก คุณต้องสร้างตารางปลายทางก่อน เมื่อต้องสร้างตารางปลายทางสําหรับตัวอย่างนี้ ใช้ขั้นตอนต่อไปนี้:

  1. ในพื้นที่ทํางาน Microsoft Fabric ของคุณ ค้นหาและเปิดคลังสินค้าของคุณ

  2. สลับไปยังแท็บ หน้าแรก และเลือก คิวรี SQL ใหม่

    ภาพหน้าจอของส่วนบนสุดของพื้นที่ทํางานของผู้ใช้ที่แสดงปุ่มคิวรี SQL ใหม่

  3. เมื่อต้องการสร้างตารางที่ใช้เป็นปลายทางในบทช่วยสอนนี้ ให้เรียกใช้โค้ดต่อไปนี้:

    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];

ถ้าคุณเรียกใช้ทั้งสองตัวอย่างโดยไม่ลบแถวในระหว่างทํางาน คุณจะเห็นผลลัพธ์ของคิวรีนี้ที่มีแถวเป็นสองเท่า ในขณะที่ใช้งานได้สําหรับการนําเข้าข้อมูลในกรณีนี้ ให้พิจารณาลบแถวทั้งหมดและการนําเข้าข้อมูลเพียงครั้งเดียวถ้าคุณกําลังจะทดลองกับข้อมูลนี้เพิ่มเติม