はじめに
この記事では,インターネット接続がないプライベート環境(AWS PrivateLink環境など)でSnowflake Cortex Analystを動作させる方法について説明する.
元記事「Streamlit in Snowflake(SiS) でsemantic-model-generator とcortex-analyst と動作させる方法」では,インターネット接続が前提となっていたが,セキュリティ要件により外部接続が制限された環境での実装方法を紹介する.
大まかな流れは元記事と同じであるが,SnowflakeからGitHubを直接参照しない点が異なる.
プライベート環境での課題
通常のCortex Analystの実装では以下の外部リソースへのアクセスが必要であるが,プライベート環境では制限される:
- 外部リポジトリ(GitHub等)との連携
- Snowflakeの公開エンドポイント
- CDNからの静的リソース
環境構成
前提条件
- AWS PrivateLink経由でSnowflakeに接続
- 必要なファイルを事前にローカル環境に配置済み
必要なファイル構成
project/
├── semantic-model-generator-main-local/
└── sfguide-getting-started-with-cortex-analyst-main-local/
セットアップ手順
1. リポジトリのファイルの準備
プライベート環境用に準備されたリポジトリをクローンまたはダウンロードする:
# ローカル環境またはプライベートGitサーバーから取得
git clone <your-private-repo>/semantic-model-generator-main-local
git clone <your-private-repo>/sfguide-getting-started-with-cortex-analyst-main-local
または,以下からローカル環境にファイルを直接ダウンロードし,該当環境にファイル移送してもよい:
- https://github.com/mshdtksk/semantic-model-generator-main-local
- https://github.com/mshdtksk/sfguide-getting-started-with-cortex-analyst-main-local
2. セマンティックモデルの生成(テーブルのメタ情報を作成する処理の実装)
セマンティックモデル(テーブルのメタ情報を作成する処理)を実装する.
2-1. 初期SQLの実行
semantic-model-generator-main-local
内のファイルを使用する.
- SnowparkのSQLシートで以下のSQLを実行する
-
[YOUR_STREAM_DATABASE]
を構築環境に合わせて任意の値に置換する
実行ファイル: sissetup_snowsightgit_local_1.sql
2-2. ファイルのアップロード
semantic-model-generator-main-localのファイルをSnowflakeの内部ステージにアップロードする.
ディレクトリ内のファイルは一度にアップロードできないため,ディレクトリ単位でフォルダーパスを指定してアップロードする必要がある.
2-3. セットアップSQLの実行
SnowparkのSQLシートで以下のSQLを実行する:
実行ファイル: sissetup_snowsightgit_local_2.sql
[YOUR_STREAM_DATABASE]
を構築環境に合わせて置換する.
3. セマンティックモデル(テーブルのメタ情報)の作成
元記事のテーブルのメタ情報を作成する処理と同様の手順のため割愛する.
4. Cortex Analystアプリケーションの起動
sfguide-getting-started-with-cortex-analyst-main-local
内のファイルを使用する.
4-1. Snowflakeオブジェクトの作成
SnowparkのSQLシートで以下のSQLを実行する:
実行ファイル: create_snowflake_objects_local.sql
[YOUR_STREAM_DATABASE]
を構築環境に合わせて置換する.
4-2. Streamlit権限の付与
作成したデータベースに対し,Streamlitの権限を付与する:
4-3. Streamlitアプリケーションの実行
SnowparkのStreamlitシートで以下のコードを実行する:
実行ファイル: cortex_analyst_sis_demo_app_local.py
重要: 25,26行目を先ほど作成したセマンティックモデルのyamlファイルパスに修正する必要がある.
まとめ
プライベート環境でのCortex Analystの構築方法について紹介した.
この構成により,厳格なセキュリティ要件が求められる企業環境でも,Snowflake Cortex Analystの自然言語データ分析機能を安全に活用することが可能である.