Stages, รูปแบบไฟล์ และ COPY INTO

การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Snowflake รองรับงานหลากหลายประเภท

Screenshot 2026-05-11 at 11.52.34 am.png

1 * Snowflake Learning Material
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

ตัวอย่าง pipeline

 

 

Screenshot 2026-05-11 at 10.48.51 am.png

1 * Snowflake Learning Material
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

แนะนำ Harbr

โลโก้สมมติของ Harbr

เกี่ยวกับ Harbr

  • แพลตฟอร์มโลจิสติกส์และซัพพลายเชนระดับโลก
  • ใช้ Snowflake ในการติดตามการจัดส่ง คลังสินค้า และประสิทธิภาพการส่งมอบ
  • รับข้อมูลจากระบบซัพพลายเออร์หลายภูมิภาค
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

ปัญหาในการโหลดข้อมูล

แผนภาพการโหลดข้อมูล

Stage = พื้นที่จัดเก็บชั่วคราว

การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

ประเภทของ Stage

ประเภท Stage สองแบบ

Internal Stages

  • User
    • พื้นที่ staging ส่วนตัวสำหรับผู้ใช้คนเดียว
  • Table
    • ผูกกับตารางเฉพาะ
  • Named
    • อ็อบเจกต์ฐานข้อมูลที่สร้างในสคีมา

External Stage

  • Named
    • ชี้ไปยัง cloud provider
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

พารามิเตอร์ของ Stage

Directory Table

CREATE STAGE harbr_stage
  DIRECTORY = (ENABLE = TRUE)

การเข้ารหัส Internal Stage

ENCRYPTION = (TYPE = SNOWFLAKE_FULL)
ENCRYPTION = (TYPE = SNOWFLAKE_SSE)

การเข้ารหัส External Stage

ENCRYPTION = 
([ TYPE = 'AWS_CSE' ] MASTER_KEY = '') 

ENCRYPTION = 
([ TYPE = 'AWS_SSE_S3' ]) 

...
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

รูปแบบไฟล์

  • รูปแบบโครงสร้าง: CSV พร้อมตัวคั่น แถวส่วนหัว และกฎการใส่เครื่องหมายคำพูด
  • รูปแบบกึ่งโครงสร้าง: JSON, Parquet, Avro, ORC และ XML

    • โหลดโดยตรงลงใน VARIANT column
    • กำหนดกฎการแยกวิเคราะห์ครั้งเดียว นำไปใช้ซ้ำได้
  • อัปเดต format object เพียงครั้งเดียว

SQL

CREATE FILE FORMAT harbr_csv_format
  TYPE = 'CSV'
  FIELD_DELIMITER = ','
  SKIP_HEADER = 1;
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

COPY INTO

โหลดจาก named stage โดยใช้ named file format

COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

การจัดการข้อผิดพลาด

ตัวเลือก ON_ERROR พฤติกรรม
ABORT_STATEMENT ยกเลิกการโหลดทั้งหมดเมื่อพบข้อผิดพลาดแรก (ค่าเริ่มต้น)
CONTINUE ข้ามแถวที่มีปัญหา โหลดส่วนที่เหลือ
SKIP_FILE ข้ามไฟล์ทั้งหมดหากมีข้อผิดพลาด
SKIP_FILE_<num> ข้ามไฟล์เมื่อจำนวนข้อผิดพลาดเกินที่กำหนด
SKIP_FILE_<num>% ข้ามไฟล์เมื่อสัดส่วนข้อผิดพลาดเกินเกณฑ์ที่กำหนด
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

Validation mode และ COPY_HISTORY

ตรวจสอบโดยไม่โหลดข้อมูล = dry run

COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
VALIDATION_MODE = RETURN_ERRORS;

ตรวจสอบประวัติการโหลด

SELECT * FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY(
  TABLE_NAME => 'shipments',
  START_TIME => DATEADD('hour', -24,
    CURRENT_TIMESTAMP())));
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

มาฝึกกันเลย!

การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

Preparing Video For Download...