簡體   English   中英

比較一個postgres和db2表

[英]compare a postgres and db2 table

通常我會用一個簡單的工會解決這個問題。 但是這個有我 我有一張表復制到兩個不同的數據庫引擎。 在postgres中一份,在帶有DB2的AS / 400上一份。

我需要提出一個使用postgres表的例程,並將每個記錄的字段中的數據與DB2表進行比較,並將不同的記錄記錄在postgres表中以進行報告。

當前系統遵循此模型

    load postgres data into recordset prs
for each record in prs {
  search for record in db2
  compare record
  if diff, log
}

這正常工作。 這個問題,看到大約500,000條記錄需要大約3個小時才能觸發我們的VPN中的錯誤,該錯誤會導致連接中斷。 當然,您必須重新開始,重新設計例程比修復VPN錯誤更快。

我在考慮一個例程,該例程將db2數據帶入臨時表中,然后執行聯合查詢,但是我在創建和刪除表時遇到了安全問題。

我能想到的最現實的方法是將db2數據作為記錄集加載,然后將其加載到具有db id號的鍵的hashmap中,然后循環postgres數據,但這確實會占用我的內存資源。 但它仍然是蠻力技術。 你們能想到更優雅的解決方案嗎?

編輯-抱歉,該表年初有350萬條記錄,因此內存解決方案變得不切實際。 有任何想法嗎?

我將嘗試將主鍵划分為多個范圍,以使每個作業的大小易於管理(並在觸發VPN錯誤所需的時間內)。

使用這些范圍,打開2個記錄集,每個表1個,同時迭代兩個比較記錄(有點像合並排序,但現在用於2個源之間的差異)。 這應該比查詢另一個表來查找記錄要快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM