本發明專利技術涉及一種解決數據延遲到達的增量數據同步方法及裝置。本方法包括在進行任務配置時預先選定目標端表中某一字段作為業務增量字段、將業務增量字段與源端表中某一時間類型字段建立映射關系、設定初始時間值、構造目標端業務增量字段最大值查詢條件、以目標端業務增量字段的最大值作為增量起點構造源端數據初始化查詢條件、篩選出本次同步任務源端的增量數據。本方法簡便易行、可靠性高,可有效解決源端數據延遲到達的場景下,增量數據同步過程中的數據丟失問題,利用本方法可實現自動化的異構數據源之間的數據初始化及數據增量采集,減少了人工操作,提升了數據采集效率和準確性。確性。確性。
【技術實現步驟摘要】
一種解決數據延遲到達的增量數據同步方法及裝置
[0001]本專利技術屬于數據同步方法
,尤其涉及一種解決數據延遲到達的增量數據同步方法及裝置。
技術介紹
[0002]在增量數據同步過程中,對于源端數據,可能存在延遲到達的情況。根據圖4所示,傳統的數據同步方案一般是根據一個源端的增量時間字段來構造一個篩選范圍進行源端增量數據獲取,然而,利用此類方案來處理源端數據延遲到達的情況,經常會造成數據丟失等問題。
[0003]針對上述問題,目前尚未提出理想的解決方案。
技術實現思路
[0004]為了解決傳統數據同步方案處理源端數據延遲到達時造成的數據丟失問題,我們提供了一種解決方案。
[0005]本專利技術旨在解決源端數據延遲到達的場景下,增量數據同步過程中數據丟失的問題。本專利技術方法有別于傳統的ETL時間戳方式,傳統的ETL時間戳方式主要通過記錄上一次的最后同步值,并利用該值依據源端表來構建增量數據,而本方案則是在集成任務配置時選定目標端某一個字段作為業務增量字段,在每次同步任務運行前,根據業務增量字段獲取該字段的最大值,在下一次任務運行前,以該最大值通過源端表構建增量數據篩選范圍,從而實現了在源端數據延遲到達的場景下,避免數據丟失的目的。
[0006]具體而言,第一方面,本專利技術提供了一種解決數據延遲到達的增量數據同步方法,所述方法包括:
[0007]S1.在進行任務配置時,預先選定目標端表中某一字段作為業務增量字段;
[0008]S2.將上步選定的業務增量字段與源端表中某一時間類型字段(假設為:updateTime)建立映射關系;
[0009]S3.針對全量初始化同步任務設定初始時間值;
[0010]S4.針對全量初始化同步任務,根據設定的初始時間值構造全量初始化查詢語句,并執行該查詢語句獲取本次需要同步的全量數據;
[0011]S5.在第一次增量數據同步任務運行前,依據目標端業務增量字段,構造目標端查詢語句,并執行該查詢語句獲取此時該業務增量字段在目標端表中的最大值;
[0012]S6.以上步獲取的業務增量字段在目標端表中的最大值作為第一次源端增量數據篩選的起點值,構造源端增量數據查詢語句,并執行該查詢語句獲取本次需要同步的源端增量數據;
[0013]S7.后續增量數據同步過程重復S5及S6的步驟,即可進行增量數據同步采集。
[0014]進一步地,根據本專利技術的一些實施例,本專利技術解決數據延遲到達的增量數據同步方法步驟S3中所述針對全量初始化同步任務設定初始時間值,當未設定初始時間值時,系
統默認初始時間值為當前時間。
[0015]進一步地,根據本專利技術的一些實施例,本專利技術解決數據延遲到達的增量數據同步方法步驟S4中所述針對全量初始化同步任務,根據設定的初始時間值構造全量初始化查詢語句,并執行該查詢語句獲取本次需要同步的全量數據,包括根據源端字段以及初始時間值構造查詢sql,并執行該查詢sql將源端表中updateTime字段中大于和等于初始時間值的數據全量同步到目標端表中。
[0016]進一步地,根據本專利技術的一些實施例,本專利技術解決數據延遲到達的增量數據同步方法中還包括任務運行失敗后的自動補償步驟,包括當增量數據同步任務運行中發生故障導致同步任務運行失敗,當次增量數據未正常寫入目標端,在下一次增量數據同步任務運行時,依舊從上一次增量數據同步任務的增量起點開始讀取源端數據,以實現任務運行失敗后的自動補償。
[0017]進一步地,根據本專利技術的一些實施例,本專利技術解決數據延遲到達的增量數據同步方法中還包括周期觸發步驟,包括在任務配置階段預設任務周期運行的頻次和時間點,并將配置參數提交給任務調度系統,增量數據同步任務正式運行后自動按照預設的頻次和時間點周期性運行。
[0018]第二方面,本專利技術還提供了一種解決數據延遲到達的增量數據同步裝置,所述裝置包括:
[0019]增量字段預設模塊:用于預先選定目標端表中某一字段作為業務增量字段;
[0020]映射關系模塊:用于將業務增量字段與源端表中某一時間類型字段建立映射關系;
[0021]時間值設定模塊:用于設定初始時間值;
[0022]查詢條件設置模塊:用于構造數據全量初始化查詢條件;
[0023]目標端查詢模塊:用于構造目標端業務增量字段最大值查詢語句并執行該數據查詢語句;
[0024]源端查詢模塊:用于構造源端全量數據查詢語句并執行該數據查詢語句;
[0025]增量數據篩選模塊:用于篩選同步任務源端的增量數據。
[0026]進一步地,根據本專利技術的一些實施例,本專利技術解決數據延遲到達的增量數據同步裝置中還包括:
[0027]自動補償模塊:用于當同步任務運行失敗后,在下一次增量數據同步任務運行時,依舊從上一次增量數據同步任務的增量起點開始讀取源端數據,以實現任務運行失敗后的自動補償。
[0028]進一步地,根據本專利技術的一些實施例,本專利技術解決數據延遲到達的增量數據同步裝置中還包括:
[0029]周期觸發模塊:用于預設任務周期運行的頻次和時間點,并將配置參數提交給任務調度系統,增量數據同步任務正式運行后自動按照預設的頻次和時間點周期性運行。
[0030]第三方面,本專利技術還提供了一種計算機可讀存儲介質,所述存儲介質上存儲有計算機程序,所述程序被處理器執行時實現上述的解決數據延遲到達的增量數據同步方法的步驟。
[0031]綜上,本專利技術解決數據延遲到達的增量數據同步方法具有以下特點:
[0032](1)本方法以目標端的業務增量字段的最大值作為源端增量數據篩選的增量起點,可有效解決源端數據延遲到達的場景下,增量數據同步過程中的數據丟失問題。
[0033](2)通過本專利技術方法,不需要借助其他數據采集組件,即可實現自動化的異構數據源之間的數據初始化及數據增量采集,減少了人工操作,提升了數據采集效率和準確性。
[0034](3)本方法架構簡單、簡便易行、可靠性高。
[0035](4)本方法中引入了任務失敗后的自動補償機制,當任務運行失敗后,在下一次任務運行時自動進行補償,全程不需要人工介入,也不用保存任務過程中的相關狀態,提高了任務運行的準確性。
附圖說明
[0036]為了更清楚地說明本專利技術實施例技術方案,下面對實施例描述中需要使用的附圖作簡要介紹。顯而易見,下面描述中的附圖僅是本專利技術中記載的一些實施例,而不是全部實施例,對于本領域技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0037]圖1為本專利技術解決數據延遲到達的增量數據同步方法實施流程示意圖。
[0038]圖2為本專利技術解決數據延遲到達的增量數據同步方法設計架構示意圖。
[0039]圖3為本專利技術解決數據延遲到達的增量數據同步裝置組成結構示意圖。
[0040]圖4為數據正常入庫和數據延遲入庫的對比示意圖,
[0041]說明:數據正常入庫本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種解決數據延遲到達的增量數據同步方法,其特征在于,所述方法包括:S1.在進行任務配置時,預先選定目標端表中某一字段作為業務增量字段;S2.將上步選定的業務增量字段與源端表中某一時間類型字段建立映射關系;S3.針對全量初始化同步任務設定初始時間值;S4.針對全量初始化同步任務,根據設定的初始時間值構造全量初始化查詢語句,并執行該查詢語句獲取本次需要同步的全量數據;S5.在第一次增量數據同步任務運行前,根據目標端業務增量字段構造目標端查詢語句,并執行該查詢語句獲取此時該業務增量字段在目標端表中的最大值;S6.以上步獲取的業務增量字段在目標端表中的最大值作為第一次源端增量數據篩選的起點值,構造源端增量數據查詢語句,并執行該查詢語句獲取本次需要同步的源端增量數據;S7.后續增量數據同步過程重復S5及S6的步驟,即可進行增量數據同步采集。2.根據權利要求1所述的解決數據延遲到達的增量數據同步方法,其特征在于,步驟S3中所述針對全量初始化同步任務設定初始時間值,當未設定初始時間值時,系統默認初始時間值為當前時間。3.根據權利要求1所述的解決數據延遲到達的增量數據同步方法,其特征在于,步驟S4中所述針對全量初始化同步任務,根據設定的初始時間值構造全量初始化查詢語句,并執行該查詢語句獲取本次需要同步的全量數據,包括根據源端字段以及初始時間值構造查詢sql,并執行該查詢sql將源端表中相應的時間類型字段中大于和等于初始時間值的數據全量同步到目標端表中。4.根據權利要求1所述的解決數據延遲到達的增量數據同步方法,其特征在于,所述增量數據同步方法中還包括任務運行失敗后的自動補償步驟,包括當增量數據同步任務運行中發生故障導致同步任務運行失敗,當次增量數據未正常寫入目標端,在下一次增量數據同步任務運行時,依舊從上一次增...
【專利技術屬性】
技術研發人員:彭壯,戴博文,吳夢佳,
申請(專利權)人:中電云數智科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。