目次
Table of Contents
外部テーブル(External Table)
Snowflakeにデータを物理コピーせず、外部ストレージ(Amazon S3、Google Cloud Storage、Azure Blobなど)上のファイルをそのままSQLで参照できる仕組み。
特徴:
- データをSnowflake内部にロードせずに分析可能
- 対応フォーマット:Parquet、ORC、Avro、JSON、CSV など
- メタデータをSnowflakeカタログに登録し、クエリ時に外部データへアクセス
ユースケース:
「とりあえずS3の生データをそのまま分析したい」「全部コピーする前にスキーマを確認したい」場合に便利。コスト削減にもつながる。
Snowpipe(スノーパイプ)
Snowflakeのサーバーレスな継続データ取込(Continuous Data Ingestion)機能。
特徴:
- 外部ストレージにファイルが到着すると自動検知し、ほぼリアルタイムでテーブルに取り込む
- イベント通知(S3イベント、GCP Pub/Sub、Azure Event Gridなど)やスケジューラ経由で実行可能
- サーバーレスなのでインフラ管理不要。利用分だけ課金。
ユースケース:
「ログがS3に吐き出されるたびに自動でSnowflakeに取り込んで分析できる」など。従来のバッチロードよりも即時性が高い。
Snowflake Streams(ストリーム)
テーブルの変更履歴(INSERT/UPDATE/DELETE)を追跡する仕組み。CDC(Change Data Capture)のSnowflake版。
特徴:
- テーブルに対する変更内容を「ストリームオブジェクト」として保持
- ストリームを参照すると差分だけ取得可能
- タスク(後述)と組み合わせて自動処理に活用できる
ユースケース:
「最新データだけを取り込む」「変更分だけ別テーブルに反映」など増分処理を効率化。
Snowflake Tasks(タスク)
スケジュールや依存関係に基づきSQLやストアドプロシージャを自動実行できる機能。AirflowやDagsterに近いが、Snowflake内部でネイティブに実行可能。
ユースケース:
- 毎日午前3時に集計処理を自動実行
- ストリームと連携し、変更が入ったら差分ロード → 集計テーブル更新、といったパイプラインを構築
Snowflake Openflow(スノーフレーク・オープンフロー)
Snowflake Openflow は、Snowflake が提供する統合データパイプライン基盤の機能/サービスで、あらゆる種類のデータソースとデスティネーションをつなぎ、構造化・半構造化・非構造化データ、バッチ/ストリーミングデータなどを扱えるようにしたものです。Apache NiFiをベースとし、Snowflakeの管理・セキュリティ・モニタリング等を強化したマネージドサービスです。