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のマジックコマンドが使えるというだけだったので、こっちのがよく考えられてるね