Oracle ODI 12c之多表聯合查詢以及定時任務設定

weixin_34377065發表於2018-02-26

本文介紹如何通過ODI進行多表聯合查詢並設定定時任務。準備工作如下:

  • 準備物理方案和邏輯方案;
  • 建立模型並通過“逆向工程”同步方案;
  • 建立專案(根據實際情況建立或者使用現有的);
  • 確保源表和目標表都有主鍵存在。
    以上內容的前三點可以參考我部落格中的相關文章。

    一、Preparing

    1.1 源SQL語句

    SELECT a.ID,
       a.ORG_ID,
       a.NAME_ID,
       a.EVR_ID,
       a.PACKAGE_ARCH_ID,
       a.PACKAGE_GROUP,
       a.RPM_VERSION,
       a.DESCRIPTION,
       a.SUMMARY,
       a.PACKAGE_SIZE,
       a.PAYLOAD_SIZE,
       a.INSTALLED_SIZE,
       a.BUILD_HOST,
       a.BUILD_TIME,
       a.SOURCE_RPM_ID,
       a.CHECKSUM_ID,
       a.VENDOR,
       a.PAYLOAD_FORMAT,
       a.COMPAT,
       a.PATH,
       a.HEADER_SIG,
       a.COPYRIGHT,
       a.COOKIE,
       a.LAST_MODIFIED,
       a.CREATED,
       a.MODIFIED,
       a.HEADER_START,
       a.HEADER_END
    FROM rhnpackage a LEFT JOIN web_customer b ON a.org_id = b.ID
    WHERE a.name_id > 5 AND a.package_group = 4;

    1.2 建立對映

  • 拖動模型源資料庫中的相關表到對映框;
  • 在對映框中插入元件欄裡的聯接以及過濾,根據SQL設定相關連線;
  • 推動模型目標資料庫中的相關表到對映框,並設定相關連線。如下圖所示:
    Oracle ODI 12c之多表聯合查詢以及定時任務設定

    1.2.1 設定聯接

    在對映的邏輯結構裡,點選連線圖示,在Condition中,輸入“Join Condition”和“Join Type”,點選儲存。如下圖所示:
    Oracle ODI 12c之多表聯合查詢以及定時任務設定

    1.2.2 設定過濾

    在對映的邏輯結構裡,點選過濾圖示,在Condition中,輸入“Filter Condition”,點選儲存。如下圖所示:
    Oracle ODI 12c之多表聯合查詢以及定時任務設定

    1.2.3 設定目標表整合型別

    在對映的邏輯結構裡,點選目標表,設定“Target”的“Integration Type”為“Incremental Update”,點選儲存。如下圖所示:
    Oracle ODI 12c之多表聯合查詢以及定時任務設定

    1.2.4 設定目標組的知識模組

    在對映的物理結構裡,設定AP的知識模組為“LKM SQL to SQL(Built-In).GLOBAL”,點選儲存。如下圖所示:
    Oracle ODI 12c之多表聯合查詢以及定時任務設定
    在射的物理結構裡,設定目標表的知識模組為“IKM Oracle Incremental Update”,點選儲存。如下圖所示:
    Oracle ODI 12c之多表聯合查詢以及定時任務設定

    1.3 驗證對映

    點選下圖中的“√”進行驗證,如下圖所示:
    Oracle ODI 12c之多表聯合查詢以及定時任務設定

    二、Scheduling

    2.1 生成場景

    右擊“對映名稱”,選擇“ Generate Scenario...”,如下圖所示:
    Oracle ODI 12c之多表聯合查詢以及定時任務設定
    場景名稱和版本號自定義,如下圖所示:
    Oracle ODI 12c之多表聯合查詢以及定時任務設定

    2.2 定時任務設定

    展開場景,右擊Scheduling,選擇“New Scheduling”,根據實際情況定義自動排程時間。這裡是每天下午的16:00開始執行。如下圖:
    Oracle ODI 12c之多表聯合查詢以及定時任務設定
    最後,更新下agent的排程資訊,即可檢視到即將執行的作業資訊,如下圖所示:
    Oracle ODI 12c之多表聯合查詢以及定時任務設定

相關文章