Snowflakeにおけるデータパイプラインの自動化
Emily Melhuish
Technical Curriculum Developer, Snowflake
ユースケース:
解決策:Snowpipe

COPY INTOを実行 — 最大24時間の遅延-- 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
COPY INTO文をラップ — 同じ構文・ファイル形式CREATE PIPE harbr_events_pipe AS
COPY INTO logistics.delivery_events
FROM @harbr_s3_stage/events/
FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');

AUTO_INGEST — イベント駆動;クラウドストレージが通知を発行insertFilesまたはinsertReportエンドポイントを直接呼び出し
| Snowpipe | Snowpipe Streaming | |
|---|---|---|
| トリガー | ファイルがステージに到着 | アプリケーションが行を書き込む |
| レイテンシ | 分単位 | 秒単位 |
| ユースケース | ファイルベースのイベント | GPS・IoT・リアルタイムデータ |
ファイルの境界を完全に排除
# 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()}
])

| 方法 | 適切なタイミング |
|---|---|
| COPY INTO | 定期バッチ — 夜間ファイル、週次エクスポート、数時間のレイテンシが許容できる場合 |
| Snowpipe | ファイルの継続的な到着、到着後数分以内のロードが必要な場合 |
| Snowpipe Streaming | アプリ生成データ — GPS・IoT・金融市場 — 秒単位でデータが必要な場合 |
Snowflakeにおけるデータパイプラインの自動化