Snowflake

【Snowflake】テーブル定義書を高速で作成する際に役立つクエリ構文

テーブル定義書を作成するのがめんどくさい時、ありますよね!?

本記事ではSnowflakeをお使いの方に向けて、テーブル定義書を作成する際に役立つ、任意のテーブルのカラム一覧を取得するためのクエリ構文をご紹介します!

利用するクエリ構文

DESCRIBE TABLEを用いることでカラム名や型などのカラムにまつわる情報を取得することができます。また、DESCRIBE TABLEの出力をもとに追加で処理を加える際はRESULT SCAN関数を利用します。RESULT SCAN関数を用いることで引数で指定したクエリIDの出力をテーブルのように扱うことができます。引数の部分でLAST_QUERY_ID()と指定することで直近でたたいたクエリのID、すなわちDESCRIBE TABLEの出力をテーブルのよう扱えるようになります。あとはSELECT句で抽出したいカラムを指定することでカラム一覧を抽出することができます。

// "DESCRIBE"は"DESC"で省略可
DESC TABLE {データベース名}.{スキーマ名}.{"テーブル名"};
SELECT
    "name" AS "カラム名",
    "type" AS "型",
    "null?" AS "NULLABLE"
FROM
    table(RESULT_SCAN(LAST_QUERY_ID()))

まとめ

あとは、上記クエリの出力をSpreadSheetやExcelに貼り付け、PKや概要などを記載していくことで高速でテーブル定義書を作成することができます。有料のデータカタログツールを利用するかどうか悩んでいる場合はまずはこのような簡易的な方法で始めてみるのが良さそうです!

mochizuki
データサイエンティスト。筋トレ、温泉、時々スキー。