Snowflakeにおけるデータパイプラインの自動化
Emily Melhuish
Technical Curriculum Developer, Snowflake



Harbrについて

ステージ = 一時的なストレージの場所

内部ステージ
外部ステージ
ディレクトリテーブル
CREATE STAGE harbr_stage
DIRECTORY = (ENABLE = TRUE)
内部ステージの暗号化
ENCRYPTION = (TYPE = SNOWFLAKE_FULL)
ENCRYPTION = (TYPE = SNOWFLAKE_SSE)
外部ステージの暗号化
ENCRYPTION =
([ TYPE = 'AWS_CSE' ] MASTER_KEY = '')
ENCRYPTION =
([ TYPE = 'AWS_SSE_S3' ])
...
半構造化形式:JSON、Parquet、Avro、ORC、XML
VARIANT 列に直接読み込み可能フォーマットオブジェクトを一度更新するだけで反映
SQL
CREATE FILE FORMAT harbr_csv_format
TYPE = 'CSV'
FIELD_DELIMITER = ','
SKIP_HEADER = 1;
名前付きステージと名前付きファイル形式を使った読み込み
COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
| ON_ERROR オプション | 動作 |
|---|---|
ABORT_STATEMENT |
最初のエラーで読み込み全体を中止 (デフォルト) |
CONTINUE |
不正な行をスキップし、残りを読み込む |
SKIP_FILE |
エラーを含むファイル全体をスキップ |
SKIP_FILE_<num> |
エラー数が指定件数を超えた場合のみスキップ |
SKIP_FILE_<num>% |
エラー率が指定の閾値を超えた場合のみスキップ |
読み込まずに検証 = ドライラン
COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
VALIDATION_MODE = RETURN_ERRORS;
読み込み履歴の確認
SELECT * FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY(
TABLE_NAME => 'shipments',
START_TIME => DATEADD('hour', -24,
CURRENT_TIMESTAMP())));
Snowflakeにおけるデータパイプラインの自動化