前回の記事までServerless Frameworkで動くものを作ることに取り組んで、簡単な構成は作れたので一旦Serverless Framework以外のことを勉強したいと思います。
Serverless FrameworkでAPIとか作って画面もVue.jsで作れたらアプリケーションっぽいもの作れそうなイメージが膨らんだりしたのですが、他にもデータ分析周りで勉強したいことがたくさんあるのでバランス取りながら進めていきます。
そして何かSQLの勉強が捗りそうな教材を探したところデータサイエンス100本ノック(構造化データ加工編)というリポジトリがあったのでREADMEから読んでみました。
README読んだだけで内容が素晴らしいのがかなり伝わってきました。
Dockerコマンド一発ですぐに勉強できる環境ができあがりそうだったので早速リポジトリをCloneしてみました。
git clone git@github.com:The-Japan-DataScientist-Society/100knocks-preprocess.git
リポジトリをローカルにCloneできたのでVSCodeで開きました。
次に以下のコマンドでDockerコンテナを立ち上げました。SQLの勉強とは脱線しますが、dockerfileとかdocker-compose.ymlとかも後程しっかり内容読んでみたいと思います。
docker-compose up -d --build
しばらく待つと(だいたい5分ぐらい?)jupyter notebookとpostgresql用のコンテナが作成されました。
jupyter notebook使ってみたいと思いつつインストールして環境がよくわからない状態になるのが嫌でまだ手を出してなかったんですが、Dockerで構築すると楽でとても良いと思いました。
localhost:8888にブラウザからアクセスするとjupyter notebookが開けました。
ポートをどこで指定しているか気になったのでコードを読むとdocker-compose.ymlで以下のようにポートが指定されていました。
notebook: build: context: . dockerfile: dockerfiles/notebook/Dockerfile image: dss-notebook container_name: dss-notebook ports: - "8888:8888"
そして、自分は知らなかったのですが、jupyter notebookmでSQLも実行できるようです。
ためしにドキュメントの通り以下のように実行するとSQLが無事動きました。
これはかなり勉強しやすそうです。ほかの勉強とバランス取りつつ、データサイエンス100本ノックもちょっとずつ進めていきたいと思います。