在網頁上發佈資料視覺化圖表 - 方案評估與技術問題全記錄

閱讀時間約 5 分鐘

前情提要

事情是這樣的,這個網站是用WordPress建置,本來放在GoDaddy虛擬主機上,當時的方案簽了三年,在大約一年半的時候,我決定把網站搬到SiteGround上。為了不讓GoDaddy的主機空轉,剛好我也想做些Side Projects,試著在網站上建立數據儀表板,GoDaddy的主機剛好可以拿來跑自動化程式或是儲存資料。
我在主機、伺服器管理方面並不是專家,但我認為資料的自動化抓取與運算需要花費較高的主機資源,因此把資料運算用的主機和架站用主機分開可能也是好事,避免前者不小心資源超量時,部落格也跟著一起掛掉。
另一個好處是資料備份。拿來做數據儀表板的資料很多都是公開而且免費的數據,就算資料弄丟,只要重新下載就好,因此根本不需要備份,如果有code的話在本機上用GitHub備份就可以了。相反,我的網站資料每天都會自動備份,小心駛得萬年船。

本文主旨

如果要在自己的電腦,也就是所謂的本機端(Local)執行數據儀表板專案,難度還算相當低,但當要把這個專案放到網站上,問題會複雜很多。以下的內容是關於我在初期遇到的種種困難,我找到可行的解決方案,以及我最後定案的方式。
我寫這篇文章的時候,我的數據儀表板專案已經有點頭緒,但還沒有具體的成果,若有新的進度與解法都會更新在這篇文章中,也期待你的意見與回饋。
另外,另然本機這個詞聽起來有點工程宅,但為了方便敘述,以下會繼續稱自己使用的電腦為「本機」,和網站的「主機」是兩個相對的概念。

專案規劃

要開始一個Side Project,你自己一定會有些想法。像我的第一個題目想做農產品市場行情的互動式儀表板,在政府資料開放平台上面有json格式的資料源可以使用,取得歷史資料的方式也很簡單。
雖然我的第一個專案的資料源很容易取得,但我相信第二個、第三個專案一定不會都那麼幸運,一定會遇到一些資料要透過爬蟲才能抓下來。先預設最壞的情況一定會發生,這樣在建立自己的SOP時才能保留足夠的彈性與擴充性,也方便日後其他小專案直接套用。

Python或R

數據分析最知名的程式語言是Python和R,除了數據分析外,也都可以做資料視覺化,網路上的資源和相關套件都算多,這部份可以說是難分軒輊。學習成本方面,我兩者都略懂,所以也不是我的主要考量。最後,在通用性這點上,我毫不猶豫選了Python。
什麼是通用性?首先,如前面提到的,某些時候我們一定會需要寫爬蟲來抓網路上的資料,而爬蟲本來就是Python的強項,R雖然也有相關套件,但網友們的評價似乎都不太優,有些事還是交給專業的來比較好。
其次是使用層面。R通常只會拿來做統計或數據分析,雖然我也聽過有人用R寫貪食蛇或踩地雷,但請不要把才能放在奇怪的地方。相反,Python除了數據分析外,工程師也會拿來寫app或網頁,使用層面更多,潛力無窮。
在以上兩次對決中,Python明顯占了上風,於是我毫無懸念的選了Python,下面的說明也會以Python為主。

你要把作品放在哪裡

我一開始就打算放在自己的網站上,所以這一項完全沒有考慮,但還是特別寫出來,讓大家的思考流程更清析。
如果你要把作品放在網站上,你當然要先有一個網站,要搞定網站管理、主機運作等麻煩事。如果你沒有網站,那可以放慮放在免費或付費空間上。以R來說,你可以上傳到RPubs上,像是我同事製作的COVID-19疫情狀況。Python的部份我沒有找過,但我相信有類似的資源可用。

流量控管

如果你把儀表板放在像RPubs的網路空間中,那你完全不用在乎流量問題,但假使你和我一樣想放在自己的主機上,這點你一定要注意。
某些時候,你使用的資料源檔案可能很大,到幾十MB甚至破百。當使用者瀏覽網頁時,你的檔案有多大,你的主機就必須傳送多大的流量出去,這很可怕。如果哪天你的作品不小心紅了,有大把大把的網友前來朝聖,你的主機流量會先爆掉,然後你會收到主機商的關切信,問你要不要花更多的錢升級方案。如果你擺爛裝死,那你的網站可能會被直接關掉。
啊,你說你的主機方案寫不限流量?那個看看笑笑就好了。
整體來說,我覺得流量問題是這個SOP規劃裡面最麻煩的部份,它也會影響視覺化工具的挑選。

選擇視覺化方案

雖然Python本身視覺化套件可以使用,像是Plotly,但是在流量考量下,我本來預期最理想的方案是Power BI。結果,人算不如天算。

Power BI

Power BI是微軟的視覺化工具,這邊我就不多作介紹。
在我原本的構想中,我打算把Python程式寫好後掛到主機上,讓它每天自動更新,並將資料儲存在主機資料庫中。同時,讓Power BI連線到主機的資料庫,一樣每天自動更新資料源。更新後,Power BI會將資料儲存在微軟的資料庫中,由於每天只更新一次,一個100MB的檔案一個月也才3GB左右,流量完全不是問題。最後,我再用Power BI製作互動式儀表板,並且使用Publish to web(public)功能,以iframe的方式嵌入在網頁中。

為什麼會看到廣告
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
這份難以言喻的成就感是催生這篇文章的主要原因,我想分享在專案規劃與數據分析技術上的經驗,並拆成為三個階段,分別為專案規劃、專案執行與成效評估,執行階段會著墨於程式設計面的分享。 專案規劃階段 定義問題 擬定行動方案
對於資料科學家和數據分析師來說,雖然他們也寫程式,但他們寫程式的習慣和一般認知的工程師不太相同,甚至有些人對於寫code的背景知識明顯不足。或許你會說,「因為現在很多做數據分析的都不是本科系,理論知識當然不會那麼紮實」,我認同這是個可能的原因,但我也認為這不能當成藉口,一個專業工作者本來就應該補足自
由於資料科學家與數據分析部門出現的時間還不長,大家的認知仍有差異,或因為每間公司核心價價、管理哲學不同,導致數據團隊可能會以各種型式存在,常見的型式有三種:獨立部門、隸屬IT(Information Technology,資訊部門)或RD(Research & Development,軟體開發)
雖然數據分析師是新職位,但數據分析或是資料分析的概念一點都不新。公司裡面行之有年的職位,不管是行銷、業務、採購、倉管,每個職位都需要數據,也都需要分析。隨著大數據、資料科學、機器學習、AI等酷炫的新名詞、新技術與新應用出現,所需的知識與技能多到員工爆肝也學不完。
我之所以大膽的把股價預測稱之為「最強」,因為這本身就是一個可以變現的專案,並且可以同時累積數據分析及投資操作經驗,在投資與程式設計同時躍升為顯學的時代,把這兩條學習路徑融合在一起,似乎自然而然,也合情合理。當然,這條路的學習成本非常高,但翻山越嶺之後的美景也同樣讓人心神嚮往。
網路上可以找到許多關於寫作的書或課程,說明為什麼寫作可以培養表達能力與邏輯思考能力,以及培養寫作能力的具體方法。然而,許多人更關心的是,如果我們想以寫作當成事業,是不是可行,需要具備哪些知識,有沒有技術門檻,可能需要多少成本,以及有哪些潛在的收入來源。
這份難以言喻的成就感是催生這篇文章的主要原因,我想分享在專案規劃與數據分析技術上的經驗,並拆成為三個階段,分別為專案規劃、專案執行與成效評估,執行階段會著墨於程式設計面的分享。 專案規劃階段 定義問題 擬定行動方案
對於資料科學家和數據分析師來說,雖然他們也寫程式,但他們寫程式的習慣和一般認知的工程師不太相同,甚至有些人對於寫code的背景知識明顯不足。或許你會說,「因為現在很多做數據分析的都不是本科系,理論知識當然不會那麼紮實」,我認同這是個可能的原因,但我也認為這不能當成藉口,一個專業工作者本來就應該補足自
由於資料科學家與數據分析部門出現的時間還不長,大家的認知仍有差異,或因為每間公司核心價價、管理哲學不同,導致數據團隊可能會以各種型式存在,常見的型式有三種:獨立部門、隸屬IT(Information Technology,資訊部門)或RD(Research & Development,軟體開發)
雖然數據分析師是新職位,但數據分析或是資料分析的概念一點都不新。公司裡面行之有年的職位,不管是行銷、業務、採購、倉管,每個職位都需要數據,也都需要分析。隨著大數據、資料科學、機器學習、AI等酷炫的新名詞、新技術與新應用出現,所需的知識與技能多到員工爆肝也學不完。
我之所以大膽的把股價預測稱之為「最強」,因為這本身就是一個可以變現的專案,並且可以同時累積數據分析及投資操作經驗,在投資與程式設計同時躍升為顯學的時代,把這兩條學習路徑融合在一起,似乎自然而然,也合情合理。當然,這條路的學習成本非常高,但翻山越嶺之後的美景也同樣讓人心神嚮往。
網路上可以找到許多關於寫作的書或課程,說明為什麼寫作可以培養表達能力與邏輯思考能力,以及培養寫作能力的具體方法。然而,許多人更關心的是,如果我們想以寫作當成事業,是不是可行,需要具備哪些知識,有沒有技術門檻,可能需要多少成本,以及有哪些潛在的收入來源。
你可能也想看
Google News 追蹤
你是否曾使用Python進行網上爬蟲、撈取資料、分析,並將結果存進雲端資料庫? 你知道這一切可以全部發生在Google Drive裡嗎?而且,全部都是免費的!
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
自架網站的優點包括完全控制網站的設計和功能,自定義擴展和調整空間,無需依賴第三方平台;此外,網站擁有者可以選擇最佳的安全措施和SEO策略,提升網站的安全性和可見性。 然而,自架網站的缺點是需要技術知識和時間成本,設置和維護較為複雜,初期投入費用較高,且若缺乏技術支持,可能會遇到技術問題難以解決。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
實體主機差異 對於大多數線上業務而言,主機選擇可能是成功與否的分水嶺。但你有沒有真正了解過VPS與傳統虛擬和實體主機的關鍵區別?為什麼VPS會成為高效能和靈活性的代名詞,被這麼多人選擇呢?在這篇文章裡,我們會帶著你深入探討VPS,幫你選擇一個真正適合你的理想主機!
Thumbnail
為甚麼不用免費平台? 雖然使用免費平台不用付費,但是有很多限制,例如:廣告無法移除、沒有擴充功能,須另外付費,流量只屬於平台。 wordpress是目前最多人在使用的一套開源軟體,根本不需任何技術背景就能開始,外掛和佈景主題資源很多,按照網站主題挑選適合的佈景主題, 假設是部落格網站,Astra
Thumbnail
建置平台 前一陣子,有人問我是否要找尋合適的平台或自主建置平台,讓自己的文章能夠有更大的能見度。我覺得這是個很好的想法,所以也考慮要自己建立平台。但細想了一下,我覺得建置網站沒有必要,因為我現在的幾個平台就已經足夠我使用,也達到我想要分享內心世界的想法的目的。反而是,我應該思考如何用好平台,讓平台
如果你正在考慮架設網站,那麼你可能已經聽說過WordPress網站。在現今這個時代,超過40%的網站都是使用WordPress製作的。相比之下,使用客製化手寫網站的企業就少得多。那麼,WordPress真的好用嗎?手寫網站又有哪些優點呢?在本文中,我們將比較這兩種架站方式,分析它們各自的優缺點,並引
Thumbnail
在數位時代,擁有自己的網站至關重要。然而,高昂的網站開發和維護成本可能是一大挑戰。本文介紹了幾個免費框架軟體,如WordPress,Joomla,Drupal,Wix和Blogger,讓您輕鬆建立和管理自己的網站。
Thumbnail
本篇,以我的個人的經驗! 個人的經驗! 個人的經驗!,簡單說明一下組織中機房管理遇到的一些事情(這方面我非專業,請參考看看),做點經驗分享。 雖然,本文是用「機房」這個概念作為重點來闡述,但是,請注意,若您的單位(辦公室)中,也是有主機伺服器的(就是【資產種類】欄位寫 電腦應用程式 ),您也應該要
你是否曾使用Python進行網上爬蟲、撈取資料、分析,並將結果存進雲端資料庫? 你知道這一切可以全部發生在Google Drive裡嗎?而且,全部都是免費的!
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
自架網站的優點包括完全控制網站的設計和功能,自定義擴展和調整空間,無需依賴第三方平台;此外,網站擁有者可以選擇最佳的安全措施和SEO策略,提升網站的安全性和可見性。 然而,自架網站的缺點是需要技術知識和時間成本,設置和維護較為複雜,初期投入費用較高,且若缺乏技術支持,可能會遇到技術問題難以解決。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
實體主機差異 對於大多數線上業務而言,主機選擇可能是成功與否的分水嶺。但你有沒有真正了解過VPS與傳統虛擬和實體主機的關鍵區別?為什麼VPS會成為高效能和靈活性的代名詞,被這麼多人選擇呢?在這篇文章裡,我們會帶著你深入探討VPS,幫你選擇一個真正適合你的理想主機!
Thumbnail
為甚麼不用免費平台? 雖然使用免費平台不用付費,但是有很多限制,例如:廣告無法移除、沒有擴充功能,須另外付費,流量只屬於平台。 wordpress是目前最多人在使用的一套開源軟體,根本不需任何技術背景就能開始,外掛和佈景主題資源很多,按照網站主題挑選適合的佈景主題, 假設是部落格網站,Astra
Thumbnail
建置平台 前一陣子,有人問我是否要找尋合適的平台或自主建置平台,讓自己的文章能夠有更大的能見度。我覺得這是個很好的想法,所以也考慮要自己建立平台。但細想了一下,我覺得建置網站沒有必要,因為我現在的幾個平台就已經足夠我使用,也達到我想要分享內心世界的想法的目的。反而是,我應該思考如何用好平台,讓平台
如果你正在考慮架設網站,那麼你可能已經聽說過WordPress網站。在現今這個時代,超過40%的網站都是使用WordPress製作的。相比之下,使用客製化手寫網站的企業就少得多。那麼,WordPress真的好用嗎?手寫網站又有哪些優點呢?在本文中,我們將比較這兩種架站方式,分析它們各自的優缺點,並引
Thumbnail
在數位時代,擁有自己的網站至關重要。然而,高昂的網站開發和維護成本可能是一大挑戰。本文介紹了幾個免費框架軟體,如WordPress,Joomla,Drupal,Wix和Blogger,讓您輕鬆建立和管理自己的網站。
Thumbnail
本篇,以我的個人的經驗! 個人的經驗! 個人的經驗!,簡單說明一下組織中機房管理遇到的一些事情(這方面我非專業,請參考看看),做點經驗分享。 雖然,本文是用「機房」這個概念作為重點來闡述,但是,請注意,若您的單位(辦公室)中,也是有主機伺服器的(就是【資產種類】欄位寫 電腦應用程式 ),您也應該要