Snowflakeの新UI「Snowsight」でロード履歴を可視化してみた

2021.07.05

こんにちは!エノカワです。

Snowflakeの新しいUI「Snowsight」がプレビュー機能で公開されています。

Snowsightではグラフとダッシュボードを使用して、データの可視化をすることができますが、
今回はデータそのものの可視化ではなく、データのロード履歴の可視化を試してみました。

Snowsightの簡単な利用方法などについてはこちらの記事にも記載しています。

準備

サンプルデータベースSNOWFLAKE_SAMPLE_DATATPCH_SF1.ORDERSを利用します。

TPCH_SF1.ORDERSのデータを別のテーブルにロードし、その履歴を可視化してみましょう。

Snowsightのワークシート上で、以下のクエリを実行していきます。

ウェアハウス作成

検証で使用するウェアハウスDEMO_WHを作成します。

create or replace warehouse DEMO_WH with
  WAREHOUSE_SIZE = 'XSMALL'
  WAREHOUSE_TYPE = 'STANDARD'
  AUTO_SUSPEND = 600
  AUTO_RESUME = TRUE
  MIN_CLUSTER_COUNT = 1
  MAX_CLUSTER_COUNT = 2
  SCALING_POLICY = 'STANDARD'
;
use warehouse DEMO_WH;

データベース作成

検証で使用するデータベースDEMO_DBを作成します。

create or replace database DEMO_DB;
use DEMO_DB;

テーブル作成

検証で使用するテーブルORDERS_REPORTを作成します。
テーブルの構造はTPCH_SF1.ORDERSと同じです。

create or replace table ORDERS_REPORT like SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.ORDERS;

データのアンロード

TPCH_SF1.ORDERSからデータをアンロードします。
アンロード先は作成したORDERS_REPORTのテーブルステージにします。

copy into @%ORDERS_REPORT
  from SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.ORDERS
  file_format = (type = CSV compression = 'GZIP');

データのロード

ORDERS_REPORTのテーブルステージからデータをロードします。
次のステップでは、このロード履歴を可視化します。

copy into @%ORDERS_REPORT
  from SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.ORDERS
  file_format = (type = CSV compression = 'GZIP');

ロード履歴の可視化

それではORDERS_REPORTテーブルのロード履歴を可視化してみましょう。

COPY_HISTORYテーブル関数

ロード履歴を取得するために、COPY_HISTORYテーブル関数を使用します。

引数にテーブル名と対象期間を指定すると、ロード履歴をクエリすることができます。

グラフの表示

COPY_HISTORYテーブル関数を使用して、
ORDERS_REPORTテーブルの直近1時間のロード履歴をクエリしてみましょう。

ワークシート上で、以下のクエリを実行します。

select * from table(information_schema.copy_history(
    table_name=>'ORDERS_REPORT',
    start_time=> dateadd(hours, -1, current_timestamp())));

5個のファイルのロード履歴が取得できました。

Chartタブをクリックして、表示を切り替えてみましょう。

表示が横棒グラフに切り替わりました!

グラフの調整

画面右のDataセクションを見てみましょう。

ファイルごとの行数が可視化されていることが分かります。

データの並びがバーサイズの大きい順になっていますね。
ファイルの名前の順に変更してみましょう。

  • 「Order bars by」を変更
    • Bar size -> FILE_NAME

ついでに、並びも昇順に変えてみましょう。

  • 「Order direction」を変更
    • Descending -> Ascending

データの並びがファイルの名前で昇順に変わりました!  

軸ラベルを表示することもできます。

  • 「Label X-Axis」「Label Y-Axis」のチェックボックスをチェック

表示するデータを増やしてみましょう。
ファイルサイズのデータを追加してみます。

  • Dataの「Add column」から「FILE_SIZE」を選択

黄色バーでデータが追加されました!

まとめ

以上、データのロード履歴の可視化を試してみました。

COPY_HISTORYテーブル関数のクエリ結果から簡単にロード履歴を可視化することができました。

クエリ結果からワンクリックでグラフ表示に切り替えられるので、
ワークシート上で作業途中にデータの状態や履歴を可視化して確認するのに便利そうですね。

次回はクエリの履歴の可視化にチャレンジしてみたいと思います。

参考