資料流入Delta Table主要存在近即時增量寫入和批量寫入兩種情境,本文為您介紹高並發近即時增量寫入情境的架構設計。
實際業務資料處理情境中,涉及的資料來源豐富多樣,可能存在資料庫、日誌系統或者其他訊息佇列等系統,為了方便使用者將資料寫入MaxCompute的Delta Table, MaxCompute深度定製開發了開源Flink Connector工具,聯合DataWorksData Integration以及其它資料匯入工具,針對高並發、容錯、事務提交等情境做了定製化的設計及開發最佳化,以滿足延時低、正確性高等要求。
如上圖所示:
資料匯入工具內部會整合MaxCompute資料通道服務Tunnel提供的SDK Client,支援分鐘級高並發寫入資料到Tunnel Server,由它把資料並發寫入到每個Bucket的資料檔案中。
寫入並發度可通過表屬性write.bucket.num來配置,因此寫入速度可水平擴充。資料切分Bucket的優勢可詳細參考表資料格式。
Tunnel SDK提供的資料寫入介面目前支援upsert和delete。
commit介面調用代表原子提交這段時間寫入的資料。
如返回成功就代表寫入資料查詢可見,滿足讀寫快照隔離等級。
如返回失敗,可支援重試,如果不是資料損毀等不可恢複的錯誤,則存在重試成功的可能,不需要重新寫入資料,否則需要重寫資料之後,重新提交Commit。