Ohara Stream

A modern ,real-time ,distributed and easy-to-use streaming platform

Follow me on GitHub

Pipeline

The first name which in Ohara Stream you should know is pipeline

企業資訊系統架構中最核心的就是資料流的處理應用,傳統的使用方式中我們會針對特定系統連接獨立的資料來源,並在資料移動的過程中進行各種處理步驟,包含資料清洗、格式轉換及不同的加值或統計運算,進而轉存成可供分析使用的資料集合,這個過程我們稱為ETL(Extract,Tranform和Load)。

傳統ETL通常是以批次運行,這意味著資料是以特定時間範圍內匯聚而成的整包數據型式進行批次處理,在使用上具有一定程度的時間落差,對於需要即時應用或回饋反應的系統而言需要更加迅速的資料反應能力。

在Ohara Stream中我們同樣提供了類似資料流通管道的概念,稱為Pipeline,Ohara Stream pipeline主要採取的是以數據流的形式取代傳統的批次ETL資料處理,透過持續性發送的資料來源接口(Soucre connector)源源不絕的將資料以一筆一筆的方式發布到pipeline的特定資料節點(Topic)中,我們可以為pipeline同時接上數百甚至上千個資料來源接口,在資料流動的過程中我們可以設計不同的資料處理邏輯,當資料流經這些串接起來的流式處理程式(StreamApp)後即會以處理完後的型態轉存在下一個資料節點,隨著業務邏輯的日趨複雜化,一條pipeline可以成長為擁有數千支線管道的超大型企業資料流管道,不同的使用者可以視需求訂閱不同資料節點,即時取得最新且已處理完成的資料。我們也可以替pipeline接上負責匯流數據到外部儲存空間的接口(Sink connector),持續不斷的將流經pipeline的資料最終轉存到各種資料儲存區,例如HDFS、FTP or 各種資料庫。

Alt text

與一般的ETL工具比起來,Ohara Stream pipeline使用上更加彈性,首先Ohara Stream是以分散式系統打造而成,當資料開始流進pipeline之後,不用擔心資料遺失的風險,系統會進行自動備份。另一個特點是資料流動過程中各種streamApp是可以暫停的,當需要更新或抽換處理單一程式時,資料會保留在前一個資料節點,直到程式重新運行後才會繼續進行處理。最後,pipeline流經各資料節點的每一筆資料均具備一定的持久性,這意味著每一個資料節點的資料是可以被追溯、重新使用的。