Stage, Định dạng tệp và COPY INTO

Tự động hóa Data Pipeline trong Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Snowflake vận hành nhiều loại khối lượng công việc

Ảnh chụp màn hình 2026-05-11 lúc 11.52.34 am.png

1 * Tài liệu học Snowflake
Tự động hóa Data Pipeline trong Snowflake

Pipeline ví dụ

 

 

Ảnh chụp màn hình 2026-05-11 lúc 10.48.51 am.png

1 * Tài liệu học Snowflake
Tự động hóa Data Pipeline trong Snowflake

Làm quen với Harbr

Logo giả của Harbr

Giới thiệu Harbr

  • Nền tảng logistics và chuỗi cung ứng toàn cầu
  • Dùng Snowflake để theo dõi lô hàng, tồn kho kho bãi, và hiệu suất giao hàng
  • Nạp dữ liệu từ hệ thống nhà cung cấp ở nhiều khu vực
Tự động hóa Data Pipeline trong Snowflake

Bài toán nạp dữ liệu

Sơ đồ nạp dữ liệu

Stage = vị trí lưu trữ tạm thời

Tự động hóa Data Pipeline trong Snowflake

Các loại Stage

Hai loại stage

Internal Stages

  • User
    • Khu vực tạm cá nhân cho một người dùng
  • Table
    • Gắn với một bảng cụ thể
  • Named
    • Đối tượng cơ sở dữ liệu được tạo trong schema

External Stage

  • Named
    • Trỏ tới nhà cung cấp đám mây
Tự động hóa Data Pipeline trong Snowflake

Tham số Stage

Directory Table

CREATE STAGE harbr_stage
  DIRECTORY = (ENABLE = TRUE)

Mã hóa Internal Stage

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

Mã hóa External Stage

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

ENCRYPTION = 
([ TYPE = 'AWS_SSE_S3' ]) 

...
Tự động hóa Data Pipeline trong Snowflake

Định dạng tệp

  • Định dạng có cấu trúc: CSV với dấu tách, dòng tiêu đề, quy tắc trích dẫn
  • Bán cấu trúc: JSON, Parquet, Avro, ORC, XML

    • Nạp trực tiếp vào cột VARIANT
    • Định nghĩa quy tắc phân tích một lần, tái sử dụng cho mọi lần nạp
  • Chỉ cần cập nhật đối tượng định dạng một lần

SQL

CREATE FILE FORMAT harbr_csv_format
  TYPE = 'CSV'
  FIELD_DELIMITER = ','
  SKIP_HEADER = 1;
Tự động hóa Data Pipeline trong Snowflake

COPY INTO

Nạp từ named stage bằng named file format

COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
Tự động hóa Data Pipeline trong Snowflake

Xử lý lỗi

Tùy chọn ON_ERROR Hành vi
ABORT_STATEMENT Dừng toàn bộ lần nạp khi gặp lỗi đầu tiên (mặc định)
CONTINUE Bỏ qua dòng lỗi, nạp phần còn lại
SKIP_FILE Bỏ toàn bộ tệp nếu có bất kỳ lỗi nào
SKIP_FILE_<num> Chỉ bỏ tệp nếu lỗi vượt quá số lượng chỉ định
SKIP_FILE_<num>% Chỉ bỏ tệp nếu lỗi vượt quá ngưỡng % chỉ định
Tự động hóa Data Pipeline trong Snowflake

Chế độ xác thực và COPY_HISTORY

Xác thực không nạp = dry run

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

Xem lịch sử nạp

SELECT * FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY(
  TABLE_NAME => 'shipments',
  START_TIME => DATEADD('hour', -24,
    CURRENT_TIMESTAMP())));
Tự động hóa Data Pipeline trong Snowflake

Ayo berlatih!

Tự động hóa Data Pipeline trong Snowflake

Preparing Video For Download...