การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake
Emily Melhuish
Technical Curriculum Developer, Snowflake



เกี่ยวกับ Harbr

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

Internal Stages
External 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' ])
...
รูปแบบกึ่งโครงสร้าง: JSON, Parquet, Avro, ORC และ XML
VARIANT columnอัปเดต format object เพียงครั้งเดียว
SQL
CREATE FILE FORMAT harbr_csv_format
TYPE = 'CSV'
FIELD_DELIMITER = ','
SKIP_HEADER = 1;
โหลดจาก named stage โดยใช้ named file format
COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
| ตัวเลือก ON_ERROR | พฤติกรรม |
|---|---|
ABORT_STATEMENT |
ยกเลิกการโหลดทั้งหมดเมื่อพบข้อผิดพลาดแรก (ค่าเริ่มต้น) |
CONTINUE |
ข้ามแถวที่มีปัญหา โหลดส่วนที่เหลือ |
SKIP_FILE |
ข้ามไฟล์ทั้งหมดหากมีข้อผิดพลาด |
SKIP_FILE_<num> |
ข้ามไฟล์เมื่อจำนวนข้อผิดพลาดเกินที่กำหนด |
SKIP_FILE_<num>% |
ข้ามไฟล์เมื่อสัดส่วนข้อผิดพลาดเกินเกณฑ์ที่กำหนด |
ตรวจสอบโดยไม่โหลดข้อมูล = 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