Meta 怎麼將 Jupyter Notebook 變成可自動排程

大家都知道 Jupyter Notebook 非常好用,很適合用來開發 prototype 、跑數據分析、視覺化圖表等用途, Meta 也很仰賴 Jupyter Notebook 做數據分析、視覺化圖表等工作,而且很多要定期手動執行產出報告(有認真做數據監控的公司都會有日報、週報、月報、季報等等),如果這些負責人忘記手動執行,就會有沒數據可看的問題。

p.s. 要定期手動執行的原因是, Jupyter Notebook 先天不是為了 data pipeline 用途而開發,所以自然不會有自動排程的功能

要解決這個問題,想當然應該是用 Apache Airflow 等系統執行就好,但是這些寫好的 Notebooks 如果要改成用 Apache Airflow 或者其他系統執行,其實也是一個成本。

所以 Meta 想了一個方法,結合幾個內部系統做了一項內部工具,把 Jupyter Notebooks 變成可自動排程執行,這之間當然也有些隱私安全考量,畢竟數據被撈回去在員工電腦,也是增添一些資料外洩風險,如果弄成內部工具,除了可以監管這些 Jupyter Notebooks 之外,也可以把資料控制在安全係數比較高的守備範圍內。

Meta 的做法:

  1. 執行 Jupyter Notebook 之前,自動把該 notebook 需要的資料倒出來存成 CSV 檔案丟到暫時的伺服器(這步可以避免資料庫機敏連線資訊外洩

  2. 第 1 步的資料會被載入到 Jupyter Notebook 之中,所以 Jupyter Notebook 根本不需要透過網路存取資料就可以執行資料處理的工作

  3. 最後的數據一樣輸出為 CSV 檔案,一樣透過內部工具上傳到資料倉儲(資料也不會暫存在員工電腦

  4. 回收所有過程產生的檔案以及暫時伺服器(完美滅口,沒有機會外洩原始資料

看完覺得這做法還蠻值得參考的,不過我總覺得硬要把 Jupyter Notebook 變成自動排程這件事,最後會變成另一種很畸形的產物,不過哪間公司沒畸形產物呢⋯⋯😄

原文 Scheduling Jupyter Notebooks at Meta

對抗久坐職業傷害

研究指出每天增加 2 小時坐著的時間,會增加大腸癌、心臟疾病、肺癌的風險,也造成肩頸、腰背疼痛等常見問題。

然而對抗這些問題,卻只需要工作時定期休息跟伸展身體即可!

你想輕鬆改變現狀嗎?試試看我們的 PomodoRoll 番茄鐘吧! PomodoRoll 番茄鐘會根據你所設定的專注時間,定期建議你 1 項辦公族適用的伸展運動,幫助你打敗久坐所帶來的傷害!

追蹤新知

看完這篇文章了嗎?還意猶未盡的話,追蹤粉絲專頁吧!

我們每天至少分享 1 篇文章/新聞或者實用的軟體/工具,讓你輕鬆增廣見聞提升專業能力!如果你喜歡我們的文章,或是想了解更多特定主題的教學,歡迎到我們的粉絲專頁按讚、留言讓我們知道。你的鼓勵,是我們的原力!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!