概要
TDV Server上のテーブルやビューをSnowflakeにキャッシュする方法について説明します。
本記事では、完全更新モードでキャッシュを行います。
検証環境
| 製品 | OS | バージョン |
|---|---|---|
| TDV Server | Red Hat Enterprise Linux 9 |
8.8.1 |
| TDV Studio | Windows 10 |
キャッシュターゲット(Snowflake)
キャッシュターゲットであるSnowflakeに外部キャッシュデータベースとしてTDV Serverに追加するデータベースを事前に準備しておきます。
本記事では、TDV_CACHE_DBデータベースとその配下にCACHE_SYSTEMスキーマとCACHED_DATAスキーマを準備します。
各スキーマの使用目的は以下のとおりです。
CACHE_SYSTEMスキーマ |
TDV Serverが使用するキャッシュ管理用テーブルの格納先 |
CACHED_DATAスキーマ |
実データがキャッシュされるキャッシュテーブルの格納先 |
キャッシュターゲット追加
TDV ServerにキャッシュターゲットをSnowflakeデータソースとして追加します。
接続方法については以下の記事に詳細が記載されています。
Snowflakeへの接続方法 ― キーペア認証
このときに、CACHE_SYSTEMスキーマとCACHED_DATAスキーマをイントロスペクトし、メタデータとして登録しておきます。
スキーマにテーブルが存在しない場合は、イントロスペクト対象のリソースとして選択できないため、各スキーマには事前にダミーテーブルを作成しておく必要があります。
イントロスペクト後にスキーマのメタデータが取得された後は、ダミーテーブルはTDV Server上のメタデータ、Snowflake側の物理テーブルいずれも削除して問題ありません。
ステータステーブル・追跡テーブル作成
TDV Serverがキャッシュを管理するために使用するステータステーブルと追跡テーブルを以下の手順に従って作成します。
- 先ほど追加したSnowflakeデータソース(ドラム缶アイコン)を開き、構成タブにあるキャッシュのステータステーブルおよび追跡テーブルのステータステーブルフィールド右端の参照ボタンをクリックします。
-
次のキャッシュテーブルを選択 ステータステーブルウィンドウが表示されますので、
CACHE_SYSTEMスキーマを選択し、テーブルの作成フィールドにcache_statusが入力されていることを確認したうえで作成ボタンをクリックします。 - DDL: ステータステーブルウィンドウが表示されますので、実行ボタンをクリックし、ウィンドウ内に記述されているステータステーブル作成用DDLを実行します。
- DDLが正常に実行されたことを確認します。
ステータステーブル作成用DDLが正常に実行されると、TDV Studioのリソースツリーにcache_statusテーブルが表示されます。
同じ流れで追跡テーブル(cache_tracking)も作成します。
SnowsightでTDV_CACHE_DB.CACHE_SYSTEMスキーマを確認し、cache_statusテーブルとcache_trackingテーブルが作成されていることを確認します。
キャッシュ設定
サンプルデータソース(CSVファイルのsample.csv)に対し、キャッシュ設定を行います。
本記事では、データソースに対してキャッシュを設定しますが、作成したビューに対してもキャッシュを設定することができます。
キャッシュ設定画面の有効化
sample.csvを開き、キャッシュタブに移動し、キャッシュの作成をクリックします。
ストレージ設定
キャッシュ設定画面が表示されますので、ストレージ欄に各種項目を以下のとおり設定し、一度保存します。
| 項目 | 内容 |
|---|---|
| デフォルトキャッシュデータベースを使用 | ✓をはずす |
| 自動(ファイルキャッシュ) / 単一テーブル / 複数テーブル | 複数テーブルを選択 |
| データソース | キャッシュターゲットとして登録したSnowflakeデータソース(ドラム缶アイコン)を設定 |
| テーブルを自動作成 / キャッシュのテーブルを選択 | テーブルを自動作成を選択 |
| テーブルカタログ | キャッシュターゲットとして登録したSnowflakeデータソースのカタログ(Snowflake側のデータベースに相当) |
| テーブルスキーマ | テーブルカタログに設定したカタログ直下のスキーマ(Snowflake側のスキーマに相当) |
| テーブルプレフィックス | 任意の接頭辞(例:sample)を入力この後作成されるキャッシュテーブル名に使用 |
| キャッシュテーブルの数 | 作成するキャッシュテーブルの件数 3を推奨 |
キャッシュテーブル作成
キャッシュテーブルの作成ボタンをクリックすると、DDL: キャッシュウィンドウが表示されますので、実行ボタンをクリックします。
ウィンドウ内に記述されているキャッシュテーブル作成用DDLが実行され、DDLが正常に実行されたことを確認します。
キャッシュテーブル作成用DDLが正常に実行されると、TDV Studioのリソースツリーにプレフィックスがsampleである3件のテーブルが表示されます。
SnowsightでもTDV_CACHE_DB.CACHED_DATAスキーマを確認し、3件のキャッシュテーブルが作成されていることを確認します。
有効に✓を入れてキャッシュを有効化し、保存します。
キャッシュ更新
今すぐ更新ボタンをクリックし、キャッシュを更新します。
キャッシュテーブルへのデータロードが正常に完了し、ステータスがUPになったことを確認します。
動作確認
サンプルデータソース(CSVファイルのsample.csv)のコンテンツを表示します。
このときに表示されるデータはSnowflakeのキャッシュテーブルにロードされたデータです。
キャッシュテーブルにデータがロードされていることを確認します。
初回更新のため、1番目のキャッシュテーブルであるsample0にデータがロードされています。
先ほど確認したsample.csvのコンテンツとして表示されたデータも、このsample0にクエリを実行することで取得されています。
SnowsightでもTDV_CACHE_DB.CACHED_DATA.sample0テーブルを確認し、データがロードされていることを確認します。
ステータステーブル・追跡テーブル確認
SnowsightでTDV_CACHE_DB.CACHE_SYSTEM.cache_statusテーブルとTDV_CACHE_DB.CACHE_SYSTEM.cache_trackingテーブルを確認し、レコードが追加されていることを確認します。