0. 前提チェック(最初にやると安全)
SHOW CURRENT CATALOG;
SHOW CURRENT DATABASE;
-- 必要なら切替
USE CATALOG <catalog_name>;
USE <database_name>;
-
カタログ/データベースの指し先を間違えると、
SHOW TABLES
の結果やDROP
の対象が意図せず変わります。毎回確認が安心。
1. ALTER(既存オブジェクトの変更)
できること
- ALTER TABLE: 既存テーブルのプロパティ変更、(環境によっては)リネーム 等
- ALTER MODEL: AIモデルのリネーム、モデルオプション変更
例
-- テーブル名の変更(サポートされる環境)
ALTER TABLE orders_raw RENAME TO orders_raw_v2;
-- モデル名の変更(概念例)
ALTER MODEL sentiment_model RENAME TO sentiment_model_v2;
メモ:変更できるプロパティはカタログ/コネクタに依存します。実運用前にドキュメントで可否を必ず確認。
2. CREATE(新規登録)
できること
- CREATE TABLE: テーブルをカタログへ登録
- CREATE FUNCTION: UDFを登録(現在のDBに紐づく)
- CREATE MODEL: AIモデルを作成
例
-- Confluent Cloudの典型例(概念)
CREATE TABLE orders_raw (
ordertime BIGINT,
ordertime_ltz AS TO_TIMESTAMP_LTZ(ordertime, 3),
orderid INT,
itemid STRING,
orderunits DOUBLE,
WATERMARK FOR ordertime_ltz AS ordertime_ltz - INTERVAL '5' SECOND
) WITH (
'connector' = 'confluent',
'kafka.topic' = 'orders_raw',
'value.format' = 'json',
'scan.startup.mode' = 'earliest-offset'
);
-- UDF 登録(クラス名は環境依存のため例示のみ)
-- CREATE FUNCTION my_upper AS 'com.example.udf.MyUpper';
-- モデル作成(概念例:実際のオプションは環境の提供値に合わせる)
-- CREATE MODEL sentiment_model WITH ('provider'='xxx','task'='text-classification');
3. DESCRIBE(定義/プロパティの確認)
DESCRIBE orders_raw; -- テーブルのスキーマ/プロパティ
DESCRIBE sentiment_model; -- モデルの詳細(提供環境に依存)
DESCRIBE my_upper; -- UDFの情報
変更前後の確認や、引き継ぎドキュメント化の第一歩に便利。
4. DROP(削除)
できること
- DROP MODEL / DROP TABLE / DROP VIEW
例
DROP TABLE IF EXISTS orders_raw_v2;
DROP VIEW IF EXISTS recent_orders;
DROP MODEL IF EXISTS sentiment_model_v2;
取り消しは基本不可。対象カタログ/DBを USE で再確認してから実行。
5. EXPLAIN(実行計画の確認)
EXPLAIN
SELECT itemid, COUNT(*) AS cnt
FROM orders_raw
GROUP BY itemid;
- 実行せずに 最適化結果・物理計画 を把握可能。性能調査やレビューで重宝。
6. RESET(シェル設定のリセット)
RESET; -- すべてデフォルトへ
-- RESET 'some.key'; -- 個別キーだけ既定値へ戻す(サポート状況は環境による)
- 試行錯誤で設定が散らかったときの“元に戻す”ボタン。
7. SET(シェル設定の変更/一覧)
SET; -- 現在の設定一覧(表示)
-- 例:値の設定(キーは環境やバージョンで異なる)
SET 'pipeline.default-parallelism' = '2';
- そのセッション/クエリの動作に関わる設定を変更。値は環境がサポートするキーのみ有効。
8. SHOW(一覧系コマンド)
よく使う順で並べます。
SHOW JOBS; -- 現在のカタログにある全Statementの状態
SHOW TABLES; -- 現在DBのテーブル一覧
SHOW FUNCTIONS; -- 関数一覧
SHOW DATABASES; -- カタログ内のDB一覧
SHOW CATALOGS; -- 利用可能なカタログ一覧
SHOW MODELS; -- 登録済みAIモデル一覧
SHOW CURRENT CATALOG; -- 今いるカタログ
SHOW CURRENT DATABASE; -- 今いるDB
SHOW CREATE TABLE orders_raw; -- テーブル定義の詳細
SHOW CREATE MODEL sentiment_model; -- モデル定義の詳細(提供環境に依存)
運用では SHOW JOBS でStatementの生存確認、SHOW CREATE TABLE で定義差分確認が鉄板。
9. USE(カタログ/DBの切替)
USE CATALOG my_catalog;
USE my_database;
-
切替は事故防止の基本動作。各種
SHOW
と組み合わせて常に現在地を明確に。
10. ミニ演習(5分)
- 現在地確認:
SHOW CURRENT CATALOG; SHOW CURRENT DATABASE;
- 作成:
CREATE TABLE orders_raw ...
- 可視化:
DESCRIBE orders_raw; SHOW CREATE TABLE orders_raw;
- 計画確認:
EXPLAIN SELECT * FROM orders_raw LIMIT 10;
- リネーム:
ALTER TABLE orders_raw RENAME TO orders_raw_v2;
- 削除:
DROP TABLE orders_raw_v2;
(本当に不要なら)
11. つまずきポイント集
- DDLはデータを変えない:結果が変わらないのは正常(スキーマやプロパティが変わるだけ)
-
現在地の勘違い:
USE
の切替忘れで別DBを操作 →SHOW CURRENT ...
を癖に -
プロパティの可否:
ALTER/CREATE ... WITH (...)
のキーは コネクタ/環境依存。公式仕様を確認 -
DROPの不可逆性:実行前に
SHOW CREATE ...
でバックアップ代わりに定義を控える
12. 公式ドキュメント(参考)
- Statements Overview(Flink SQL in Confluent Cloud)
https://docs.confluent.io/cloud/current/flink/reference/statements/overview.html
おわりに
本ノート2では、DDLの全体像と最小実例を一気に掴めるよう整理しました。
次は ノート3(DML:INSERT/UPSERT/DELETE などの実践) に進むと、実データを動かすフェーズへスムーズに移行できます。