PythonでSQLクエリを柔軟かつ効果的に管理する方法 でもあげたが、SQLの結果をPythonの世界にどう統合するかはいろいろなやり方がある。
Snowflake Notebooksはそこの設計がよくできているなと感動したので、メモ。
Snowflake notebook は、
- Markdown
- SQL
- Python の三つのセルが使えるが、例えば、
select
id,
name
from
users
とSQLを書き、このcell の名前が cell1
だとする。
cell1
のSQLを実行後、Pythonのcell でto_pandas()1 関数を利用して、以下のようにコードを書くと
df = cell1.to_pandas()
cell1
のSQLの結果がdataframe として扱える!
これは、Notebookの cell
ごとに、SQLとPythonの関心を分離できるかつ、見た目もすっきりするのでほうと感心した設計だ。
例えば、SQLのcellを複数作っておいて、柔軟に参照するcellを切り替えていけば便利だ。
昔GCPであったNotebookのサービスを思い出したが、あれはbqのマジックコマンドが使えるというだけだったので、こっちのがよく考えられてるね