Apache Doris資料匯入最佳實踐

我們在使用Doris資料匯入的時候,一般都是程式接入的方式,這樣可以保證資料會定期的被載入到Doris中,下面給出集中最佳實踐。

Apache Doris資料匯入最佳實踐

選擇合適的匯入方式:根據資料來源所在位置選擇匯入方式。例如:如果原始資料存放在 HDFS 上,則使用 Broker load 匯入。

確定匯入方式的協議:如果選擇了 Broker load 匯入方式,則外部系統需要能使用 MySQL 協議定期提交和檢視匯入作業。

確定匯入方式的型別:匯入方式為同步或非同步。比如 Broker load 為非同步匯入方式,則外部系統在提交建立匯入後,必須呼叫檢視匯入命令,根據檢視匯入命令的結果來判斷匯入是否成功。

制定 Label 生成策略:Label 生成策略需滿足,每一批次資料唯一且固定的原則。這樣 Doris 就可以保證 At-Most-Once。

程式自身保證 At-Least-Once:外部系統需要保證自身的 At-Least-Once,這樣就可以保證匯入流程的 Exactly-Once。

如果是ODBC外部資料來源或者Doris內部資料加工,這種建議採用INSERT INTO tbl SELECT …,然後可以透過外部任務排程器(比如:DolphinScheduler),定時的對匯入及資料加工任務進行排程執行。

如果你要實時的從外部Kafka資料來源中讀取資料並載入到Doris中,這種建議使用Routine Load,需要注意的是如果資料是JSON格式資料(JSON資料不支援巢狀),這種你也可以使用Stream load方式來完成資料匯入。如果資料量比較大,可以藉助以Flink或者Spark叢集對資料進行做一些預處理,然後透過Stream Load方式匯入到Doris中,大大提高資料匯入效率。

Stream load 是一個同步的匯入方式,使用者透過傳送 HTTP 協議傳送請求將本地檔案或資料流匯入到 Doris 中。Stream load 同步執行匯入並返回匯入結果。使用者可直接透過請求的返回訊息判斷本次匯入是否成功。Stream load 主要適用於匯入本地檔案,或透過程式匯入資料流中的資料。

Apache Doris資料匯入最佳實踐