【關於工程團隊】SHOPLINE 台灣研發團隊有超過百位工程師,分為前後端、測試、數據、雲端維運等團隊,台北辦公室採混合辦公模式,目前 Backend、Fron...
資料模型 (Data Model) 是所有軟體開發中最重要的環節,每個資料表示層級要如何向更低層級表達資料項目? 看起來有點饒舌,資料表示層級舉例來看: 應...
此系列是 資料工程師修煉之路 的後半部份,一樣是 Design Data Intensive Applications 的摘要 + 經驗分享,所有的圖片都是...
介紹一下一般開發 ETL 的流程。每隻 ETL 都可以看作是獨立的程式,有獨立的開發流程。但是不同的 ETL 程式又可以使用類似的系統或架構來幫助開發和管理。...
昨天談到 write skew 和 phantoms ,是 2 種特別難重現的 競爭條件 (race condition) 情況,也就代表無法針對這些情況做測試...
接續 Day 8 SSTables 延續前一天講的 log-structure,其中我們在意的是相同 key 的資料順序要對,如此才能知道哪筆資料是新的嘛,...
接續 Day 13 JSON, XML, CSV 和 Binary Variants (二進制變體) JSON, XML, CSV 都是很廣泛為人知、多人使...
接續 Day 15 Avro 最後一個要來談的 binary encoding 方式是 Apache Avro ,閞始於 Hadoop 底下的子專案,它很明...
前言 1. What is Pyspark ? PySpark 顧名思義,也就是Python 的一個Spark Library,主要是利用Python語法結合S...
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) 就做這...
Day 21 ~ Day 26 我們討論了如何將資料分散到不同節點的 Replication,對那些大型資料集或超大的查詢吞吐量來說,只用 Replicati...
模型當然也有純理論的介紹方法,但實務上是很難單談模型的,今天這篇會介紹過去常用、也滿泛用的不需要使用機器模型的分析手法以及對應的商業需求。 人口描述 (http...
其實今天的很多系統都是 數據密集型 應用系統,也就是 數據量大、複雜、且速度快, 有別 10 幾年前的 計算密集型,CPU 時脈才是系統的瓶頸。 現在的數據密集...
Rebalancing Partitions 每經過一段時間,資料庫可能會因為以下幾件事情改變: 為了想提高查詢的吞吐量,所以你加了 CPU。 資料的大小增加...
接續 Day 14 Thrift and Protocol Buffers 再來要講的 binary encoding 工具就是 Apache Thrift...
這幾天講的主軸是 Replication (數據複製),如果你的資料不會變動,做到 Replication 很簡單,只要把資料複製到別的節點就好了,搞定! 但資...
剛開始學習程式的時候,對我來說最讓我感到挫折的就是環境安裝的問題。由於許多背景知識的不足,以及系統版本和程式版本非常的複雜,總是需要花上許多時間跟精力進行安裝及...
續 Day 6。 強列建議閱讀本文之前要先去看 Day 4 - Snapshot Isolation。 3. 序列化快照隔離 SSI (Serializab...
延續 (Day 25) Detecting Concurrent Writes Dynamo-style 資料庫允許多個 client 同時寫同一個 key...
前面花了不少篇幅在討論資料產品的開發,接下來將花一些篇幅討論資料產品的治理方式。 在做資料產品治理時,有一個很重要的觀念「將資料當作資產」。如果前面介紹過的,資...
續 Day 3 Snapshot Isolation 和 Repeatable read 先來看個 read committed 等級的隔離下會發生的靈異現...
分散式 transaction 和共識 (Distributed Transactions and Consensus) 共識是分散式計算中重要的基礎問題,目標...