データサイエンス100本ノックで勉強(1)環境構築

前回の記事までServerless Frameworkで動くものを作ることに取り組んで、簡単な構成は作れたので一旦Serverless Framework以外のことを勉強したいと思います。
Serverless FrameworkでAPIとか作って画面もVue.jsで作れたらアプリケーションっぽいもの作れそうなイメージが膨らんだりしたのですが、他にもデータ分析周りで勉強したいことがたくさんあるのでバランス取りながら進めていきます。

そして何かSQLの勉強が捗りそうな教材を探したところデータサイエンス100本ノック(構造化データ加工編)というリポジトリがあったのでREADMEから読んでみました。

github.com

README読んだだけで内容が素晴らしいのがかなり伝わってきました。
Dockerコマンド一発ですぐに勉強できる環境ができあがりそうだったので早速リポジトリをCloneしてみました。

git clone git@github.com:The-Japan-DataScientist-Society/100knocks-preprocess.git

リポジトリをローカルにCloneできたのでVSCodeで開きました。
f:id:JunpeiNakasone:20220121064401p:plain

次に以下のコマンドでDockerコンテナを立ち上げました。SQLの勉強とは脱線しますが、dockerfileとかdocker-compose.ymlとかも後程しっかり内容読んでみたいと思います。

 docker-compose up -d --build

しばらく待つと(だいたい5分ぐらい?)jupyter notebookとpostgresql用のコンテナが作成されました。
jupyter notebook使ってみたいと思いつつインストールして環境がよくわからない状態になるのが嫌でまだ手を出してなかったんですが、Dockerで構築すると楽でとても良いと思いました。

localhost:8888にブラウザからアクセスするとjupyter notebookが開けました。
f:id:JunpeiNakasone:20220121064942p:plain

ポートをどこで指定しているか気になったのでコードを読むとdocker-compose.ymlで以下のようにポートが指定されていました。

  notebook:
    build:
      context: .
      dockerfile: dockerfiles/notebook/Dockerfile
    image: dss-notebook
    container_name: dss-notebook
    ports:
      - "8888:8888"

そして、自分は知らなかったのですが、jupyter notebookmでSQLも実行できるようです。

ためしにドキュメントの通り以下のように実行するとSQLが無事動きました。
f:id:JunpeiNakasone:20220121065237p:plain

これはかなり勉強しやすそうです。ほかの勉強とバランス取りつつ、データサイエンス100本ノックもちょっとずつ進めていきたいと思います。