はじめに
以下の記事の続きです。
■Part 1
■Part 2
■Part 3
このシリーズの制約
執筆(記事のたたきを含む)やまとめに生成AIは利用しません。
ただし、筆者が内容を理解するために生成AIを用いることがあります。
(まぁ普段から執筆に生成AIを使っていませんが……)
免責事項
本記事は執筆時点での情報をもとにまとめています。
そのため、読者の方が閲覧されるタイミングでは内容が変更されている可能性があります。
記事の内容と公式ドキュメントの記載に差異がある場合、または解釈にずれがある場合は、公式ドキュメントの記載を正とします。
今回読むドキュメント
【対象】
Get started for users
- Data lifecycle
※ドキュメント中に登場するSQLの詳細については本記事では割愛します
データライフサイクルの概要
Snowflakeでは、データの操作や削除、管理に至るまで、データのライフサイクル全体で標準的なSQL操作をサポートしています。
ライフサイクル図
Snowflake内のデータはすべて論理的なテーブルとして表現されます。
Snowflake内のデータのほとんどは、標準SQLインターフェースを通じてクエリや変更を行うことができます。

(引用:https://docs.snowflake.com/ja/user-guide/data-lifecycle#lifecycle-diagram)
データの整理
データはデータベース > スキーマ > テーブルで整理をすることができます。
Snowflakeでは、作成できるデータベースの数やデータベース内のスキーマの数、スキーマ内のテーブルの数に制限はありません。
データに関する制限のがないというだけで、各機能単位で扱えるオブジェクト数に制限がないということではありません。
それぞれのオブジェクトの作成はSnowsightからでも可能です。
オブジェクトの変更を行う場合は、DDLを記述してを実行します。
| SQL | 処理概要 |
|---|---|
| CREATE DATABASE | データベースを作成する |
| ALTER DATABASE | 作成済みのデータベースを変更する |
| CREATE SCHEMA | スキーマを作成する |
| ALTER SCHEMA | 作成済みのスキーマを変更する |
| CREATE TABLE | テーブルを作成する |
| ALTER TABLE | 作成済みのテーブルを変更する |
データを保存する
データはテーブルに直接挿入することができます。
また、フォーマットされた外部のファイル(構造化データor半構造化データ)はSnowflakeのテーブルにロードすることができます。
ロードはSnowflakeが提供するDMLを使用します。
| SQL | 処理概要 |
|---|---|
| INSERT | データを直接テーブルに挿入する |
| COPY INTO | ステージに配置されたデータをテーブルに挿入する |
クエリデータ
データをテーブルに格納した後は、SELECT文を使ってデータを照合することができます。
データを扱う
Snowflakeでは、標準的なDML操作が可能です。
テーブルに格納されたデータに対して、クローン操作をサポートするDDL操作や、DML操作やなど行うことができます。
| SQL | 処理概要 |
|---|---|
| UPDATE | テーブル内の指定された行を新しい値で更新する |
| MERGE | 2番目に指定されたテーブルorサブクエリで取得したデータに基づいて1番目に指定したテーブルのデータを更新(挿入、更新、削除)する |
| DELETE | テーブル内の行を削除する |
| CREATE <New Object Name> CLONE | クローン元のオブジェクトをクローンして新しいオブジェクトを作成する |
データを削除する
DMLのDELETE文以外にもテーブル全体をクリアしたり、テーブル自体をドロップしたりすることができます。
テーブル以外にもスキーマやデータベース全体のドロップも可能です。
| SQL | 処理概要 |
|---|---|
| TRUNCATE TABLE | テーブルの全ての行とデータのロード履歴(メタデータ)をすべて削除する |
| DROP TABLE | テーブルを削除する、ロード履歴(メタデータ)は保持する |
| DROP SCHEMA | スキーマを削除する |
| DROP DATABASE | データベースを削除する |
おわりに
今回はSnowflake内のデータライフサイクルについてのドキュメントを確認しました。
ここには表現されていないテーブルの種類や、外部との連携など今後登場してくるため、このドキュメントとの違いも含めて押さえていきたいと思います。