❓ なぜアップロードが必要か
- 目的:外部ソースからのデータを 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; |
📖 参考ドキュメント