【關於工程團隊】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...
這幾天講的主軸是 Replication (數據複製),如果你的資料不會變動,做到 Replication 很簡單,只要把資料複製到別的節點就好了,搞定! 但資...
其實今天的很多系統都是 數據密集型 應用系統,也就是 數據量大、複雜、且速度快, 有別 10 幾年前的 計算密集型,CPU 時脈才是系統的瓶頸。 現在的數據密集...
接續 Day 14 Thrift and Protocol Buffers 再來要講的 binary encoding 工具就是 Apache Thrift...
Rebalancing Partitions 每經過一段時間,資料庫可能會因為以下幾件事情改變: 為了想提高查詢的吞吐量,所以你加了 CPU。 資料的大小增加...
剛開始學習程式的時候,對我來說最讓我感到挫折的就是環境安裝的問題。由於許多背景知識的不足,以及系統版本和程式版本非常的複雜,總是需要花上許多時間跟精力進行安裝及...
延續 (Day 25) Detecting Concurrent Writes Dynamo-style 資料庫允許多個 client 同時寫同一個 key...
續 Day 6。 強列建議閱讀本文之前要先去看 Day 4 - Snapshot Isolation。 3. 序列化快照隔離 SSI (Serializab...
前面花了不少篇幅在討論資料產品的開發,接下來將花一些篇幅討論資料產品的治理方式。 在做資料產品治理時,有一個很重要的觀念「將資料當作資產」。如果前面介紹過的,資...
分散式 transaction 和共識 (Distributed Transactions and Consensus) 共識是分散式計算中重要的基礎問題,目標...
續 Day 3 Snapshot Isolation 和 Repeatable read 先來看個 read committed 等級的隔離下會發生的靈異現...