こんにちは、三村です。
Snowflake NativeApp がパブリックプレビューになりましたね。
Snowflake NativeAppとは、自分で作成したプログラムをパッケージ化して、他のアカウントで実行できるアプリケーションです。
今回から3回に分けて、Snowflake NativeApp のパッケージ化の方法をご説明します。
以下の仕様を満たしたアプリを作成する前提です。
・プロバイダ側のテーブルを参照する。
・上記のテーブルはコンシューマからは見えない。
・コンシューマ側のテーブルにレコード追加する。
第1回では、Snowflake NativeApp の流れをご説明いたします。まずは概念図をご覧ください。
上記概念図の番号ごとにご説明いたします。
① アプリケーションパッケージを作成する。名前は例としてPODB_PKG。
② 上記アプリケーションパッケージ内に、スキーマを作成する。名前は例として PODB_SCHEMA。
CREATE SCHEMA PODB_SCHEMA;
③ 上記スキーマ内に、名前付きステージを作成する。名前は例として PODB_STAGE。
④ アプリケーションパッケージ内に、プログラムが参照するプロバイダ側の情報を置くスキーマを作成する。
このスキーマは コンシューマに見せない。名前は例として SHARED_SCHEMA。
CREATE SCHEMA SHARED_SCHEMA;
⑤ 上記スキーマに、プログラムが参照するプロバイダ側のテーブルのViewを作成する。
CREATE OR REPLACE VIEW VIEW_PODB AS SELECT * FROM PRODB.PROSCHEMA.PROTBL;
⑥ 名前付きステージの中に、プログラム一式を格納する。
ディレクトリを作成し、それ配下にプログラム一式を格納する。ディレクトリの名前は例として V1。
プログラムはパッチ番号で履歴管理される。一番初めはパッチ0。
※第2回でここの箇所を詳しくご説明いたします。
⑦ アプリケーションパッケージにバージョンを追加する。
そしてデフォルトのパッチ番号を設定する。
ALTER APPLICATION PACKAGE PODB_PKG SET DEFAULT RELEASE DIRECTIVE VERSION = “V1” PATCH = 0;
⑧ SHARED_SCHEMA の使用権限をアプリケーションパッケージに共有する。
⑨ プロバイダ側のプログラムが参照するテーブルが所属するデータベースの参照権限をアプリケーションパッケージに共有する。
⑩ VIEW_PODBの参照権限をアプリケーションパッケージに共有する。
⑪ リストを作って、Publishする。
⑫ コンシューマ側で取り込み、走らせる。
※こちらは第3回でご説明いたします。
第2回へつづく。