Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

このLTの意味合い Tableau大陸 Snowflake大陸 Streamlit半島

Slide 3

Slide 3 text

Streamlit in Snowflake とは

Slide 4

Slide 4 text

このLTの意味合い Tableau大陸 Snowflake大陸 Streamlit半島 Tableau歴10年 2021-2023 Tableau Visionary 2024/09 SnowPro Core取得

Slide 5

Slide 5 text

おさえておくとスムーズに Streamlitを利用できそうなこと。 完璧でなく、なんとなくの理解 で大丈夫。 まずは、知らないで大丈夫。 作るアプリの内容によっては 必要になりますが、ニーズが あった場合に、調べて理解して いくと良さそう。 このスライド内での色分け (すべて、私の主観です。) 当面、知らないでよさそう。 商業本としても発刊されています!山口 歩夢さん (著) また、大変多くのサイトを参考にさせて頂きました。 お礼申しあげます。(下記、抜粋) Streamlit in Snowflakeでパッケージを導入してみよう Snowflakeの料金をなるべくわかりやすく説明するチャレンジ Streamlit in Snowflake (SiS) で自然言語によるデータ分析をしてみる Streamlit in Snowflakeのちょっとここがイケていない Pandasのよく使われる処理をSnowparkにマッピングしてみた PandasとSnowpark for pythonの対応表 参考にさせて頂いた書籍、Webサイト Streamlit入門 Python で学ぶデータ可視化& アプリ開発ガイド (技術書店)

Slide 6

Slide 6 text

SQLについて 一般的SQL(クエリ) SELECT FROM JOIN WHERE GROUP BY HAVING ORDER BY LIMIT データ定義SQL DDL(Data Definition Language) CREATE, ALTER, DROP, USE データ操作だけでなく、 Snowpipe、Stream, Task, Time TravelといったSnowflakeの機 能の操作にも使われます。 Snowflake特有SQL AT | BEFORE CHANGES Cortex LLM function (SQL) SnowflakeのLLM(Cortex)を利用する SQL関数 COMPLETE, SENTIMENT, SUMMARIZE, TRANSLATEなど SQL演算子(クエリ) + - * / % AND , NOT , OR UNION, IN データ操作SQL DML(Data Manipulation Language) INSERT、UPDATE , DELETE COPY INTO、(PUT、GET) Snowflake全体として、Snowflake内での操作、設定などを全てSQLベースで出来るように整ってい る。SQLに慣れ親しむSnowflakeエンジニアには、とても過ごし易い環境になっていると思われます。 初心者が乗り込むと「それってSQLなの?知らないな~覚えるのきりがない。」としり込みするか もしれません。でも、Streamlit利用開始に知っておくべきSQLは、ごく一部だと思います。 SELECT SNOWFLAKE.CORTEX.COMPLETE(… などと利用 なお、達人のSQLは ASによる別名、 サブクエリなどが駆使されている

Slide 7

Slide 7 text

Pythonについて Python基本 リスト 辞書 for文 if文 def 宣言 from import as (ライブラリ導入方法) 基本ライブラリ Pandas Numpy Snowflakeライブラリ (Snowflake Python API ライブラリ) Cortexライブラリ ( PythonでのCortex関数) from snowflake.cortex import Complete, Sentiment, Summarize, Translate などとimport 可視化ライブラリ matplotlib.pyplot seaborn plotly express plotly graph object 他 機械学習ライブラリ scipy scikit-learn (sklearn) Streamlit ライブラリ アプリ作成開始時に、 自動的に import streamlit as st で導入されている。 レイアウト、UI、グラ フ表示などStreamlit アプリそのもの形作る ライブラリ サンプルでst.で始まる もの見たらこれ データ操作や確認で利用する。 Web検索/AIに聞くで、調べな がら使えればオッケー! Streamlitライブラリのみでも 可視化は出来るが、可視化ラ イブラリを利用すると、でき る事が増える。 豊富なAI(機械学習)ライブ ラリの利用もStreamlitの魅力 の一つ。一般的BIツールと違 うところのひとつ。 アプリ作成開始時に、自動的に入るコード from snowflake.snowpark.context import get_active_session session = get_active_session() でsessionが取得されている。一種の、おまじない。 その後、session.table もしくは session.sql で DataFrameを取得する流れ。 *Snowflake内で高速に実行可能なPandas「Modin Pandas」については割愛しています。 Snowpark (Snowpark for python) Sessionの利用 データフレーム操作

Slide 8

Slide 8 text

Snowflakeライブラリ (Snowflake Python API ライブラリ) Snowpark (Snowpark for python) Sessionの利用 データフレーム操作 pandas と snowparkの関係 可視化ライブラリ matplotlib.pyplot seaborn plotly express Streamlitライブラリ st.bar_chart st.line_chart ・ ・ st.pyplot st.plotly_chart 基本ライブラリ Pandas Numpy この両者は、DataFrame(データのテーブル)の操作 という観点で、同じようなことが出来る。 Pandasに慣れてる人にとっては、Pandasで行った方が 楽に感じます。ただし、ビッグデータの処理はSnowpark による処理の方が高速です。 可視化ライブラリと Streamlitライブラリの関係 可視化ライブラリのグラフを表示させるコマンドが Streamlit ライブラリ内にある。 DataFrame取得時 に to_pandas() をつけると、 Pandas DataFrameになる *Snowflake内で高速に実行可能なPandas「Modin Pandas」については割愛しています。

Slide 9

Slide 9 text

Snowflakeのこと Data Databases Schema Table View Project Worksheets Notebooks Streamlit SQLやPythonを 実行させるところ Snowsight 実際に利用するデータ テーブルがここに SQLとPythonの2種類 SQL Worksheetで、SQL試したりできる。 SQLとPythonのセルがある。 SQLセルの結果を、Pythonセルに渡せる。 SQLもPythonも利用できる。 SQLはsession.sqlで実行する。

Slide 10

Slide 10 text

ロールベースのアクセス制御(RBAC): アクセス権限がロールに割り当てられ、ロールは ユーザーに割り当てられる。 が基本。 権限について USER USER USER USER USER USER 全てのUSER ログイン時にど れかのロールに なっているはず。 私の場合は 「Streamlit Creator」という カスタムロール です。 ロールによって、出来る事 や見えるものが違う。管理 の人と話が通じるように、 このような体系であること を知っていれば良さそう。

Slide 11

Slide 11 text

仮想ウェアハウス サーバーレス 課金体系について コンピューティング ストレージ データ転送 クラウドサービス Streamlit実行は主にこれ 難しい事は気にせず、ポイントをお さえると ・小さいWarehouseを使う ・使わないときは、画面閉じる (Streamlit画面を開いていると、実行してい なくても、一定時間はWarehouseが稼働して しまう。Minimum5分に設定可能。Notebook やWorksheetを併用してアプリ作成進めると 良いのかもしれません。詳細調査中) Cortexには別にモデル使用料金もあ る。利用ルールは管理者と相談しま しょう。 Snowflakeには、 いくつの課金体系がある。

Slide 12

Slide 12 text

コンテンツ サイドバー アプリ全体へ のフィルター マルチページ コントロール (ページ切り替 え)など 常に表示させ ておきたいも のなど コンテンツ 入力、フィルター など 入力、フィルター など タイトル、使い方、注意点 汎用的なアプリレイアウト(データ分析可視化アプリの例) ・ ・ コンテンツ

Slide 13

Slide 13 text

import streamlit as st from snowflake.snowpark.context import get_active_session session = get_active_session() def宣言 例 df = session.table(“TABLEAU_SAMPLE”).to_pandas() or df = session.sql(“select * from TABLEAU_SAMPLE” ) .to_pandas() 利用ライブラリ Import タイトル・前提記載など サイドバー によるフィルターなど データ取得 データ分析処理など 可視化など アプリ画面内での フィルターなど 補足 下記、session.tableとsession.sqlを、50倍に膨らませたTableau Sample Superstore Dataで比較検証した。(キャッシュを無効にして検証) ① df=session.table(“X50_SAMPLE”).to_pandas().head(1) ② df=session.sql(“SELECT * FROM X50_SAMPLE LIMIT 1”) 結果、②の方がクエリにかかる時間が短かった。 一般的Codeの流れ(例) to_pandas()は、DataFrameをpandasで扱う場合につける

Slide 14

Slide 14 text

Streamlitの編集画面で 簡単に、TableやView のName(パスのような もの)を入力できます。 これは覚えておくと便 利! ピン留も可能です。 上部にピン留 Nameを編集画面に挿入 したり、コピーしたり できる 例 Streamlit編集画面 編集画面での便利機能

Slide 15

Slide 15 text

各Pythonライブラリ利用には、 パッケージの設定が必要です。 つい、忘れて実行しErrorでがちです。 例 Streamlit編集画面での設定 ここで検索 Pythonライブラリ利用時に必要なこと

Slide 16

Slide 16 text

SQL SQL (DDL、 DML) CREATE, INSERT他 Cortex SQL Python 基本 Snowp ark Python Pandas 他ライ ブラリ Cortex Python Streamlit Python SQL Worksheet 〇 〇 〇 ー ー ー ー ー Python Worksheet (UDF作成用) Snowpark Python session.sql で実行 Snowpark Python session.sql で実行 Snowpark Python session.sql で実行 〇 〇 〇 〇 文字表示やグラフ実行 可能。レイアウトやUI 系は何も起きない Notebook SQLセル 〇 〇 〇 ー ー ー ー ー Notebook Pythonセル Snowpark Python session.sql で実行 Snowpark Python session.sql で実行 Snowpark Python session.sql で実行 〇 〇 〇 〇 文字表示やグラフ実行 可能。レイアウトやUI 系は何も起きない Streamlit Snowpark Python session.sql で実行 Snowpark Python session.sql で実行 Snowpark Python session.sql で実行 〇 〇 〇 〇 〇 作動状況調査中 作動状況調査中 Notebook内で 結果を受け渡せる どこで何が実行できるか?

Slide 17

Slide 17 text

SQL SQL (DDL、 DML) CREATE, INSERT他 Cortex SQL Python 基本 Snowp ark Python Pandas 他ライ ブラリ Cortex Python Streamlit Python SQL Worksheet 〇 〇 〇 ー ー ー ー ー Python Worksheet (UDF作成用) Snowpark Python session.sql で実行 Snowpark Python session.sql で実行 Snowpark Python session.sql で実行 〇 〇 〇 〇 文字表示やグラフ実行 可能。レイアウトやUI 系は何も起きない Notebook SQLセル 〇 〇 〇 ー ー ー ー ー Notebook Pythonセル Snowpark Python session.sql で実行 Snowpark Python session.sql で実行 Snowpark Python session.sql で実行 〇 〇 〇 〇 文字表示やグラフ実行 可能。レイアウトやUI 系は何も起きない Streamlit Snowpark Python session.sql で実行 Snowpark Python session.sq lで実行 Snowpark Python session.sql で実行 〇 〇 〇 〇 〇 どこで何が実行できるか?当面、使う可能性があるのはこの辺り Notebook内で 結果を受け渡せる

Slide 18

Slide 18 text

まとめチェックシート Powered by Streamlit in Snowflake

Slide 19

Slide 19 text

No content