能應付變化的資料格式

在專案進行中,我們需要決定資料格式。 一開始,我們採用json作為資料的傳輸格式。主因是我們串接的SSP也都是使用json作為資料交換的格式,另一個主因則是我們的服務是使用nodejs架設的,後端串接mongodb。這樣的架構下,選擇json作為儲存資料的格式是非常自然的。 另一方面,json使用起來非常的自由,當我們需要任何新的資訊時,可以直接變更資料。但是隨著專案的成長,這樣的自由也帶來了維護的挑戰。等到之後,我想再向讀者分享我的看法。這裡我先分享使用json做資料格式的心得。 由於公司指派支援的工程師很忙,所以我不期待能夠建構一個Hadoop/Spark Cluster來進行資料分析,而是以節省工程能量的方式做分析。 在以下的內文中,我拿Smaato的範例資料為例做解釋。 讀者想練習的話, »

Linux command line tool + pipe 學習筆記之二:平行運算

上一篇:Linux command line tool + pipe 學習筆記之一:讓R 加入pipe的一環中,雖然提到了pipe就會自動用多個Process來平行跑每一個pipe的步驟的檔案,但有時候這還是不夠快。尤其是當我在pipe中混用了R或nodejs的程序時,最後效能都卡在這些笨重的直譯式語言工具。 我在開發RTB系統時,遇到的情境是,必須要用nodejs(這是工程師用來開發RTB伺服器的工具)來將JSON物件轉換成sparse vector。舉例來說,我可能收到一系列如下的request: {"user_id":"1","website_id" »

Linux command line tool + pipe 學習筆記之一:讓R 加入pipe的一環

最近我在幫General Mobile Corporation開發RTB系統。為了要處理有點大量,又沒有太大量的資料,與其直接用貴鬆鬆的AWS EMR(Elastic Map Reduce)去跑Apache Spark, 我選擇用基本的pipe與一些精巧的小程式,搭配nodejs與R來達成整理資料的目的。 動機則來自於很久以前讀過的文章:Command-line tools can be 235x faster than your Hadoop cluster以及過去自己維護過HDFS Cluster的經驗。 »