資料模型 (Data Model) 是所有軟體開發中最重要的環節,每個資料表示層級要如何向更低層級表達資料項目? 看起來有點饒舌,資料表示層級舉例來看: 應...
接續 Day 13 JSON, XML, CSV 和 Binary Variants (二進制變體) JSON, XML, CSV 都是很廣泛為人知、多人使...
接續 Day 8 SSTables 延續前一天講的 log-structure,其中我們在意的是相同 key 的資料順序要對,如此才能知道哪筆資料是新的嘛,...
接續 Day 15 Avro 最後一個要來談的 binary encoding 方式是 Apache Avro ,閞始於 Hadoop 底下的子專案,它很明...
B-Tree 再來要介紹一個非常常用的 index 結構 B-Tree 和它會用到 storage engine (儲存引擎) page-oriented ,...
接續 Day 5 Graph Data Model 初探 最後要來談談 Graph Data Model,若你軟體的資料關係是大部份一對多,使用 Docum...
接續 Day 4 內容 Relational vs. Document database 這裡有許多可以比較的點,像容錯能力和如何處理並行執行緒,但最主要的...
Transaction Processing or Analytics? 每一個資料庫都能許多種不同型態的資料,如 blog 貼文、遊戲資料、聯絡人資訊等等,應...
接續 Day 11 Column-Oriented Storage 想像一下如果你的 fact table 有上兆筆資料,資料大小是 PB,dimensio...
接續 Day 2 內容 Scalable (可擴充的) 數據系統現在 Reliable 不代表未來也是 Reliable,系統會進步, 這裡討論的 Scal...
接續 Day 6 Triple-Stores and SPARQL 最後要談的就是 Triple-store Graph Model,跟之前講的 Prope...
前面幾天我們談了 Data Model,為你的數據系統挑個合適 Data Model 後,接下來就要談談怎麼儲存與檢索了,資料庫 (database) 就做這...
Everything changes and nothing stands still.—Heraclitus of Ephesus, as quoted b...
接續 Day 14 Thrift and Protocol Buffers 再來要講的 binary encoding 工具就是 Apache Thrift...
接續 Day 16 Writer's schema and Reader's schema 這裡 Avro 把 encoding 跟 decoding 動作...
稻米就算採收,也無法直接食用,需要經過一系列的加工才能送到消費者的手裡。 (圖片來源:富里鄉農會) 這個流程跟加工資料的流程並沒有什麼太大的差異,常見的資料基...
團隊的合作方式從古至今總是不斷的演變當中,雖然工程師的歷史並沒有很長,但是變化卻十分快速。就像是網站工程師一般,過去也沒有這麼細分為前端禍後端,常常每個人都是全...
前幾集我一直用 Spark UI 追著 Job、Stage、task 與 shuffle 跑。這讓我開始注意到另一種很常見、卻不一定一眼看得出的浪費:明明是同一...
上一集,我知道 action 出現後,Spark 才會開始規劃並執行工作。不過「切成 stage」、「分配 task」還是有點抽象;我想親眼看看它們到底長什麼樣...
前幾集我一路追 Spark 的 Job、Stage、task、shuffle 和輸出檔案。當資料寫完後,我平常很自然地會在下一個 job 裡寫下 spark.t...
前言 大家好,我是 Jeffery,我是一名 Junior MLE!我的日常工作總是離不開應用 PySpark 建立與維運 Data ETL pipeline...
上一集,我終於在自己的筆電上啟動了 Spark。不過接著又有一個更貼近日常開發的問題:明明我已經連續寫了好幾個 DataFrame 操作,為什麼總是到 show...
上一集,我用一個簡單的 table 走過整個資料存儲的生態系,了解整體架構的全局樣貌。今天我想要深入了解 Metastore 管理資料表的生命週期,當 Spar...
上一集,我從輸入資料看見:來源有幾個 partition,沒有 shuffle 的 stage 通常就有幾個 task。不過日常寫 DataFrame pipe...
資料處理完成後,Spark 的工作還沒有結束。下游不會讀取「上一個 stage 有幾個 task」,它讀取的是 Parquet 檔案。檔案太小,會多出開檔、me...
上一集我追著 Hive Metastore 看 table name、schema 與 location 如何跨 SparkSession 被重新找到,也看見...
前幾集我已經在筆電上跑起 Spark,也在 Spark UI 裡看過 Job、Stage 和 Task。不過我還是常常把幾個名詞混在一起:Driver、JVM、...
前幾集裡,我已經知道 DataFrame 的 transformation 會先累積,等 action 出現才執行;也在 Spark UI 看過 Job、Sta...
Ep12 讓我理解 Iceberg 如何管理一張 table 的 schema、snapshot 與 data files;這次我想再往下一層追問:同一筆 ev...
記得在學生時期,我因為對於學校的選課網站操作不太習慣,於是便自己寫了一個簡單的爬蟲程式,用來自動抓取課程資訊和教師評價。經整理後,我和朋友合作設計了一個使用者友...