Snowpipe และ Snowpipe Streaming

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

Emily Melhuish

Technical Curriculum Developer, Snowflake

Snowpipe

กรณีใช้งาน:

  • เหตุการณ์การจัดส่งเข้ามาอย่างต่อเนื่อง

โซลูชัน: Snowpipe

  • Snowpipe โหลดข้อมูลจากไฟล์ทันทีที่มีใน Stage

ภาพหน้าจอ 2026-05-11 เวลา 12.24.14 น.

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

ปัญหาของการโหลดแบบกลุ่ม

  • ไฟล์เข้า S3 ทุกไม่กี่นาทีตลอดทั้งวัน
  • COPY INTO แบบกำหนดเวลารันเที่ยงคืน — ความหน่วง 24 ชั่วโมง
  • การจัดส่งล่าช้าจะไม่ปรากฏจนถึงวันถัดไป
  • Snowpipe ช่วยลดช่องว่างนี้
-- 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
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

Snowpipe คืออะไร?

  • ครอบ COPY INTO — ไวยากรณ์และรูปแบบไฟล์เดิม
  • ทริกเกอร์อัตโนมัติเมื่อมีไฟล์ใหม่ใน Stage
  • โหลดเป็น Micro-batch โดยทั่วไปภายในไม่กี่นาที
  • Serverless — ไม่ต้องจัดเตรียม Warehouse
CREATE PIPE harbr_events_pipe AS
  COPY INTO logistics.delivery_events
  FROM @harbr_s3_stage/events/
  FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

Snowpipe ทำงานอย่างไร

ขั้นตอนการทำงานของ Snowpipe

  • AUTO_INGEST — ขับเคลื่อนด้วยเหตุการณ์ คลาวด์สตอเรจส่งการแจ้งเตือน
  • Amazon S3 | Azure Event Grid | GCP Pub/Sub
  • REST API Trigger — เรียกใช้ endpoint insertFiles หรือ insertReport โดยตรงจากโค้ด Orchestration
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

การเรียกเก็บค่าบริการ Snowpipe

ภาพหน้าจอ 2026-05-11 เวลา 12.24.14 น.

  • คิดค่าบริการตามเครดิตคงที่ต่อ GB ที่ใช้งาน
  • ไฟล์ข้อความ: คิดจากขนาดก่อนบีบอัด
  • ไฟล์ไบนารี: คิดจากขนาดจริงที่ตรวจพบ
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

Snowpipe Streaming

Snowpipe Snowpipe Streaming
ทริกเกอร์ ไฟล์ถึง Stage แถวที่เขียนโดยแอปพลิเคชัน
ความหน่วง นาที วินาที
กรณีใช้งาน ข้อมูลเชิงเหตุการณ์จากไฟล์ GPS, IoT, ข้อมูลแอปแบบเรียลไทม์

 

ขจัดขอบเขตของไฟล์ทั้งหมด

  • เขียนแถวโดยตรงจากแอปพลิเคชันผ่าน Streaming Ingest SDK
  • ไม่มีไฟล์ ไม่มี Stage — ความหน่วงเพียง ไม่กี่วินาที
# 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()}
])
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

เลือกวิธีนำเข้าข้อมูลที่เหมาะสม

วิธีการนำเข้าข้อมูล

วิธีการ เมื่อใดควรใช้
COPY INTO โหลดแบบกลุ่มตามกำหนด เช่น ไฟล์รายคืน รายสัปดาห์ ยอมรับความหน่วงหลายชั่วโมง
Snowpipe ไฟล์เข้ามาต่อเนื่อง ต้องการโหลดภายในไม่กี่นาทีหลังรับไฟล์
Snowpipe Streaming ข้อมูลจากแอปพลิเคชัน เช่น GPS, IoT, ตลาดการเงิน — ข้อมูลพร้อมใช้ภายในวินาที
1 * Snowflake Learning Resource
การทำให้ Data Pipeline เป็นอัตโนมัติใน Snowflake

ฝึกปฏิบัติกันเลย!

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

Preparing Video For Download...