Cortex Analyst用のSemantic Modelを触ってみた
はじめに
こんにちは。電通総研の中村です。
今回はCortex AnalystのためのSemantic Modelを用いて、Text-to-SQLでのデータ分析を行いました。
この記事では、私がsemantic-model-generatorを使用してデータ分析を行った方法を共有します。
Snowflake Cortex Analyst とは
Cortex Analystは、Snowflakeが提供するデータ分析ツールで、特に自然言語処理(NLP)を活用してデータにアクセスすることを可能にします。従来のBIツールでは、複雑なクエリを作成する必要がありましたが、Cortex Analystではユーザーが自然言語で質問を入力するだけで、必要な情報をクエリと共に取得できます。
実施した内容
概要
ジェネレーターアプリをセットアップし、Snowflakeデータからセマンティックモデルを生成します。
セマンティックモデルジェネレーターは、Snowflake Cortex Analystのセマンティックモデルを生成・管理するためのオープンソースツールです。
このツールはStreamlitアプリケーションとして生成され、SnowflakeのStreamlitまたはオープンソースのStreamlitでローカルに起動することができます。
今回はSnowflake上Streamlitにてセマンティックモデルジェネレーターを起動します。
セマンティックファイルジェネレーターのセットアップ
まず、Snowflake-Labsのsemantic-model-generatorリポジトリをクローンしました。
次に、SnowflakeのStreamlitでアプリをデプロイするために、Snowflake CLIのインストールを行います。インストールは次のページから実行します。
インストールが完了後に自身のSnowflakeアカウントとのコネクションを作成します。
そのためにC:\AppData\Local\Snowflakeにあるconfig.tomlファイルから設定を変更が必要です。
[connections.CortexConnection]
account = "ABCDEF-GH12345"
user = ""
password = ""
database = "SNOWFLAKE_SAMPLE_DATA"
schema = "TPCH_SF1"
warehouse = "COMPUTE_WH"
role = ""
Snowflakeアカウントとの接続が完了後に、下記のコマンドをターミナルで実行することでSemantic generatorを起動することができます。
snow sql -f sis_setup/app_setup.sql
snow streamlit get-url SEMANTIC_MODEL_GENERATOR --open --database cortex_analyst_semantics --schema semantic_model_generator
セマンティックモデルの生成
Create a new Semantic Modelを押すことでセマンティックモデルを作成します。
次に下図のようにモデル名、データベース、スキーマ、テーブルを入力を行います。
また、今回のデータはSnowflakeにあるサンプルデータを利用します。
Text-to-SQLでデータ分析を試す
yamlファイルとTextの入力画面が生成されるのでVaildationボタンを押して検証します。
チャットでテーブルの内容を知ることができます。
例として簡単な情報取得を行いました。
まとめ
今回はSemanticModel Generatorを使用して、簡単にCortex Analyst用のSemantic Modelを使用できました。今後は様々なデータセットを用いてCortex Analystの使い方を学んでいきます。
Discussion