Snowpipe và Snowpipe Streaming

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

Emily Melhuish

Technical Curriculum Developer, Snowflake

Snowpipe

Tình huống:

  • Sự kiện giao hàng đến liên tục

Giải pháp: Snowpipe

  • Snowpipe nạp dữ liệu từ tệp ngay khi có trong stage.

Ảnh chụp màn hình 2026-05-11 lúc 12:24:14 CH.png

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

Vấn đề với nạp theo lô

  • Tệp đến S3 vài phút một lần suốt ngày
  • COPY INTO theo lịch chạy lúc nửa đêm — trễ 24 giờ
  • Giao hàng trễ chỉ xuất hiện vào ngày hôm sau
  • Snowpipe thu hẹp khoảng trễ
-- Nightly batch: runs at 00:00, data arrives all day
COPY INTO logistics.delivery_events
FROM @harbr_s3_stage/events/
FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');
-- A 9am exception won't appear until tomorrow
Tự động hóa Data Pipeline trong Snowflake

Snowpipe là gì?

  • Bao bọc câu lệnh COPY INTO — cùng cú pháp, cùng định dạng tệp
  • Tự động kích hoạt khi tệp mới đến stage
  • Nạp theo vi lô, thường trong vài phút
  • Serverless — không cần cấp phát warehouse
CREATE PIPE harbr_events_pipe AS
  COPY INTO logistics.delivery_events
  FROM @harbr_s3_stage/events/
  FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');
Tự động hóa Data Pipeline trong Snowflake

Snowpipe hoạt động thế nào

Quy trình Snowpipe

  • AUTO_INGEST — theo sự kiện; lưu trữ đám mây phát thông báo
  • Amazon S3 | Azure Event Grid | GCP Pub/Sub
  • Kích hoạt REST API — gọi endpoint insertFiles hoặc insertReport trực tiếp từ mã điều phối
Tự động hóa Data Pipeline trong Snowflake

Tính phí Snowpipe

Ảnh chụp màn hình 2026-05-11 lúc 12:24:14 CH.png

  • Tính phí theo mức tín dụng cố định/GB tiêu thụ
  • Tệp văn bản: tính theo kích thước chưa nén
  • Tệp nhị phân: tính theo kích thước quan sát được
Tự động hóa Data Pipeline trong Snowflake

Snowpipe Streaming

Snowpipe Snowpipe Streaming
Kích hoạt Tệp đến stage Hàng do ứng dụng ghi
Độ trễ Phút Giây
Trường hợp dùng Nguồn sự kiện dựa trên tệp GPS, IoT, dữ liệu ứng dụng thời gian thực

 

Loại bỏ hoàn toàn ranh giới tệp

  • Ứng dụng ghi hàng trực tiếp qua Streaming Ingest SDK
  • Không tệp, không stage — độ trễ tính bằng giây
# Snowpipe Streaming: application writes rows directly
channel = client.openChannel('GPS_CHANNEL', 'LOGISTICS', 'GPS_EVENTS')
channel.insertRows(rows=[
    {'vehicle_id': 'V001', 'lat': 51.5, 'lng': -0.12, 'ts': now()}
])
Tự động hóa Data Pipeline trong Snowflake

Chọn phương thức nạp phù hợp

Phương thức nạp

Phương thức Khi nào dùng
COPY INTO Nạp theo lô định kỳ: tệp hằng đêm, xuất hằng tuần; chấp nhận độ trễ hàng giờ
Snowpipe Tệp đến liên tục; cần nạp trong vài phút sau khi đến
Snowpipe Streaming Dữ liệu do ứng dụng tạo: GPS, IoT, thị trường tài chính; dữ liệu có trong vài giây
1 * Tài liệu học Snowflake
Tự động hóa Data Pipeline trong Snowflake

Ayo berlatih!

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

Preparing Video For Download...