圖片來源:郭耀仁 from DATAINPOINT
按下訂閱鈕透過電子郵件收到我的文章🎉
這篇文章不談程式與資料分析的技巧,想要寫一些關於近日將教材挪移至 JupyterHub 環境的緣由,我主要教學的語言是 Python、R 與 SQL,先前這三個語言我有各自的設置:Python 是以 Google Colab 作為環境、R 是以 RStudio 作為環境而 SQL 是以 MySQL Workbench 與 MySQL on AWS RDS 作為環境;其中除了 Google Colab 與 Jupyter 相似度高,另外兩者都差距甚遠,究竟有什麼動機讓我想要遷移呢?
緣起
想法的出發點是,我希望在面對學生的時候,可以都將他們視作在一個技能軌跡(Skill Track)上的某個站點,而不是從單一課堂的瀏覽角度;如果講得單純一些,我想要從「教 Python」、「教 R」、「教 SQL」調整為「教資料分析的工具」,會需要一個可以同時連接 Python、R 與 SQL 的環境,並且要滿足下列幾個需求:
能夠一鍵啟動,讓學生不需要建置和安裝環境。
能夠附帶檔案與資料夾。
具備終端機與文字編輯器。
具備可擴充性。
關於 JupyterHub
JupyterHub 是 Jupyter 伺服器的多人版本,她將原本在個人電腦上運行的筆記本伺服器功能延伸給了一組使用者,讓這一組使用者可以使用伺服器所設定好的環境、計算能力與資料集等,只需要開啟瀏覽器並使用被授權的帳號登入即可,不需要在自己的個人電腦中進行環境安裝或維護。
深深吸引我的成果
令人驚豔的 JupyterHub 完全滿足了我的需求, 我將 R 改以 R Notebook 與 RStudio 作為環境、將 SQL 改以 sqlite 與 pandas 作為環境,全部都挪移到 JupyterHub 之上;運用容器技術,學生啟動伺服器的時候就會前往 DockerHub 拉下指定的映像檔,只要有網路跟瀏覽器即可。
圖片來源:Jupyter Docker Stacks
透過 nbgitpuller 的技術,能夠在學生啟動伺服器時將 GitHub Repository 最新的分支同步,如此就能夠在練習、作業或考試中附帶資料夾與檔案,這一點對於教授資料分析來說相當重要。
圖片來源:nbgitpuller
而具備終端機跟文字編輯器的部分能夠讓學生更加暸解「如何與電腦溝通」、「如何執行一支程式」或者「如何觀看套件與資料的原始樣貌」,藉此提升學習成效。
圖片來源:郭耀仁 from DATAINPOINT
最後,不管是在單一個映像檔中新增核心(Kernels)或者新增 Docker 映像檔,JupyterHub 提供了完美的可擴充性,這也使得目前雖然是教 Python、R 與 SQL,但是也提供了整合 Julia、Scala、C++ 與 JavaScript 教學的潛力。
圖片來源:郭耀仁 from DATAINPOINT
如果希望多寫哪些題材,留言和我說👇