❓ なぜアップロードが必要か
- 目的:外部ソースからのデータを Snowflake に取り込む前に、ステージ(Stage)という一時的な場所にファイルを置く。
- 使用ケース:
- データウェアハウスへのデータロード前準備
- データ検証や再利用
🗃️ ステージ(Stage)の種類
ステージタイプ | 説明 | 例 |
---|
内部ステージ | Snowflake が管理するストレージ領域 | @%table_name (テーブルステージ) |
@my_internal_stage (ユーザ定義ステージ) | | |
外部ステージ | S3 や Azure Blob など外部クラウドストレージ | @my_s3_stage |
🧾 アップロードの基本コマンド:PUT
✅ 書式
PUT file://<local_path>/<file_name> @<internal_stage> [AUTO_COMPRESS=TRUE|FALSE];
✅ 主要オプション
オプション | 説明 |
---|
AUTO_COMPRESS | TRUEなら自動でgzip圧縮される(デフォルトTRUE) |
PARALLEL | 並列でのアップロード数(デフォルトは4) |
OVERWRITE | 既存ファイルがある場合に上書きするか(TRUE/FALSE) |
💻 使用例
PUT file://C:/data/sales.csv @mystage AUTO_COMPRESS=TRUE;
- ローカルPCの
sales.csv
を Snowflake の @mystage
へアップロード
⚠️ 注意点
項目 | 説明 |
---|
SnowSQL 必須 | PUT コマンドは SnowSQL(Snowflake CLI)でのみ実行可能 |
ファイルサイズ制限 | Snowflakeにアップロード可能なファイルサイズには制限がある(例:最大5GB程度) |
拡張子と圧縮形式の注意 | .gz , .csv , .json などが正しく認識されるようにすること |
📚 関連コマンド
コマンド | 目的 | 例 |
---|
PUT | ローカル → ステージ | PUT file://local.csv @stage; |
COPY INTO | ステージ → テーブルへのロード | COPY INTO mytable FROM @stage; |
LIST | ステージ内のファイル一覧 | LIST @stage; |
REMOVE | ステージ内ファイルの削除 | REMOVE @stage/file.csv.gz; |
📖 参考ドキュメント