SAP ODP 外掛程式可透過 Cloud Data Fusion,將 SAP 應用程式中的大量資料整合至 BigQuery 或其他支援的目標系統。外掛程式具備下列主要功能:
- 使用 SAP ECC、SAP S4/HANA 或 SAP BW 做為來源系統
- 使用 SAP CDC (變更資料擷取) 追蹤及擷取資料來源中的新資料和差異資料
- 使用批次擷取模式
- 支援 SAP 資料來源和 ABAP CDS 檢視畫面做為資料來源
支援的軟體版本
軟體 | 版本 |
---|---|
SAP S4/HANA | SAP S4/HANA 1909 以上版本 |
SAP ECC | SAP ERP6 NW 7.31 SP16 以上版本 |
SAP JCo | SAP JCo 3.0.20 以上版本 |
Cloud Data Fusion | 6.3 以上版本 |
如要進一步瞭解 SAP on Google Cloud,請參閱「SAP on Google Cloud簡介」。
事前準備
設定 SAP ODP 外掛程式使用的下列系統和服務:
- 設定 SAP ERP 系統。這項程序包含下列步驟:
- 安裝 SAP 傳輸檔案。
- 設定必要的 SAP 授權和角色。
- 設定 SAP Java 連接器。
在 Cloud Data Fusion 中部署 ODP 外掛程式。
- 重要事項:請選擇與 Cloud Data Fusion 版本相容的外掛程式版本。
- 如果您升級 Cloud Data Fusion 執行個體或外掛程式的版本,請評估這些變更對管道功能範圍和效能造成的影響。
建立 Cloud Data Fusion 和 SAP 之間的 RFC 連線。
- 確認 Cloud Data Fusion 執行個體與 SAP 伺服器之間已啟用通訊。
- 針對私人執行個體,請設定虛擬私有雲網路對等互連。
- SAP 系統和 Cloud Data Fusion 執行個體必須位於同一個專案。
設定外掛程式
- 前往 Cloud Data Fusion 網頁介面,然後按一下「Studio」。
- 確認已選取「資料管道 - 批次」 (而非「即時」)。
- 在「Source」選單中,按一下「SapODP」。SAP ODP 節點會顯示在管道中。
- 如要設定來源,請前往 SAP ODP 節點,然後按一下「Properties」。
輸入下列屬性。如需完整清單,請參閱「屬性」。
- 輸入 SAP ODP 節點的標籤,例如
SAP ODP tables
。 輸入連線詳細資料。您可以設定新的一次性連線,或現有的可重複使用的連線。
新連結
如要新增一次性 SAP 連線,請按照下列步驟操作:
- 關閉「Use connection」。
在「Connection」專區中,請在下列欄位中輸入 SAP 帳戶的相關資訊:
- 在「Reference name」欄位中,輸入用於識別這個來源的連線名稱。
- 在「SAP 用戶端」欄位中,輸入 SAP 中特定執行個體或環境的用戶端名稱。SAP 管理員可以提供用戶端名稱。
- 在「SAP 語言」欄位中輸入 SAP 登入語言。預設值為 EN (英文)。
選取下列其中一種連線類型。
- 直接 (透過 SAP 應用程式伺服器)。如果您選擇這個預設類型,請在下列欄位中輸入資訊:SAP 應用程式伺服器主機、SAP 系統編號和 SAP 路由器。
- 負載平衡 (透過 SAP Message Server)。如果您選擇這類型,請在下列欄位中輸入資訊:SAP Message Server 主機、SAP Message Server 服務或連接埠號碼、SAP 系統 ID (SID) 和 SAP 登入群組名稱。
在「Context」欄位中,選取所用資料來源的類型。
在「SAP ODP 來源名稱」欄位中,輸入您使用的資料來源名稱。
在「擷取類型」欄位中,選取資料擷取類型。預設值為「Full (all data)」。
提供 SAP 憑證:請 SAP 管理員提供 SAP 登入使用者名稱和密碼。
在「JCo Library Cloud Storage path」欄位中,輸入 Cloud Storage 中 SAP Java Connector (SAP JCo) 路徑,其中包含您上傳的 SAP JCo 程式庫檔案。
如要根據 SAP 的中繼資料產生資料結構,將 SAP 資料類型對應至相應的 Cloud Data Fusion 資料類型,請按一下「取得資料結構」。詳情請參閱「資料類型對應」。
選用步驟:如要最佳化從 SAP 擷取的負載,請在下列欄位中輸入資訊:
- 在「SAP ODP 訂閱者名稱」欄位中,指出要從有效的資料來源擷取資料的訂閱者。
- 使用篩選器選項,即可根據所選條件擷取記錄。
- 您可以在「分割次數」欄位中建立分割區,以便並行擷取資料記錄,進而提升效能。分割數量可能會影響 SAP 工作程序,因此請務必謹慎選取。
- 在「Package size」欄位中,指定在單一 SAP 網路呼叫中要擷取的記錄數量。套件大小會影響效能和可用資源,因此必須謹慎選用。
可重複使用的連線
如要重複使用現有的連線,請按照下列步驟操作:
- 開啟「Use connection」。
- 按一下「瀏覽連線」。
按一下連線名稱。
如果沒有連線,請按照下列步驟建立可重複使用的連線:
- 依序點選「新增連線」>「SapOdp」。
- 在隨即開啟的「Create a SapOdp connection」(建立 SapOdp 連線) 頁面中,輸入連線名稱和說明。
- 在「SAP 用戶端」欄位中,輸入 SAP 中特定執行個體或環境的用戶端名稱。SAP 管理員可以提供用戶端名稱。
- 在「SAP language」欄位中輸入 SAP 登入語言。預設值為 EN (英文)。
選取下列其中一種連線類型。
- 直接 (透過 SAP 應用程式伺服器)。如果您選擇這個預設類型,請在下列欄位中輸入資訊:SAP 應用程式伺服器主機、SAP 系統編號和 SAP 路由器。
- 負載平衡 (透過 SAP Message Server)。如果您選擇這類型,請在下列欄位中輸入資訊:SAP Message Server 主機、SAP Message Server 服務或連接埠號碼、SAP 系統 ID (SID) 和 SAP 登入群組名稱。
在 SAP ODP 來源名稱中,輸入 SAP 的 ODP 資料來源名稱。
提供 SAP 憑證:請 SAP 管理員提供 SAP 登入使用者名稱和「密碼」值。
在「JCo 程式庫 Cloud Storage 路徑」欄位中,輸入 Cloud Storage 中的 SAP Java Connector (SAP JCo) 路徑,其中包含您上傳的 SAP JCo 程式庫檔案。
在「Wait time」(等待時間) 欄位中,輸入下次重試前要等待的時間 (以秒為單位),例如
60
。在「重試次數」欄位中輸入重試次數上限,例如
3
。選用:在「Additional SAP connection properties」欄位中,輸入必須覆寫 SAP JCo 預設值的鍵/值組合。
按一下 [建立]。
- 輸入 SAP ODP 節點的標籤,例如
屬性
屬性 | 已啟用巨集 | 必要屬性 | 說明 |
---|---|---|---|
標籤 | 否 | 是 | 資料管道中的節點名稱。 |
使用連線 | 否 | 否 | 使用可重複使用的連線。如果使用連線,您不需要提供憑證。詳情請參閱「管理連線」。 |
名稱 | 否 | 是 | 可重複使用的連線名稱。 |
SAP 用戶端 | 是 | 是 | SAP 系統中的特定執行個體或環境。 |
SAP 語言 | 是 | 是 | 顯示及處理 SAP 使用者介面和資料的語言。 |
連線類型 | 否 | 是 | SAP 連線類型:直接或負載平衡。 |
SAP 應用程式伺服器主機 | 是 | 否 | 僅限「直接」連線類型,這個主機名稱來自 SAP 應用程式伺服器,可做為 SAP 用戶端 (例如 SAP 網頁介面、網路瀏覽器或行動應用程式) 與底層資料庫之間的中介軟體層。 |
SAP 系統編號 | 是 | 否 | 僅適用於「直接」連線類型,這個編號是指派給每個 SAP 系統的專屬 ID。例如:00 。 |
SAP 路由器 | 是 | 否 | 僅適用於「直接」連線類型,這是 Proxy 伺服器的路由器字串,可為 SAP 系統與外部用戶端或合作夥伴之間的通訊提供安全通道。 |
SAP Message Server 主機 | 是 | 否 | 僅適用於「負載平衡」連線類型,這是主機名稱,可在 SAP 中跨多個應用程式伺服器進行負載平衡。 |
SAP Message Server 服務或通訊埠號碼 | 是 | 否 | 僅限負載平衡連線類型,這是 SAP 訊息伺服器監聽 SAP 客戶端和 SAP 應用程式伺服器傳入連線的網路通訊埠。 |
SAP 系統 ID (SID) | 是 | 否 | 僅適用於負載平衡連線類型,這個 ID 會指派給每個 SAP 系統。 |
SAP 登入群組名稱 | 是 | 否 | 多個 SAP 應用程式伺服器的邏輯群組或設定名稱。預設為 PUBLIC 。 |
物件類型 | 不適用 | 不適用 | 支援的物件類型:資料來源/Extractor 或 ABAP 核心資料服務。 |
SAP ODP 來源名稱 | 是 | 是 | SAP 資料來源或 CDS 檢視名稱 (例如 2LIS_02_ITM )。 |
擷取類型 | 是 | 是 | 外掛程式支援以下兩種資料擷取方式:
|
SAP 登入使用者名稱 | 是 | 是 | SAP 的使用者名稱 建議做法:如果使用者名稱會定期變更,請使用巨集。 |
SAP 登入密碼 | 是 | 是 | SAP 密碼。 建議做法:使用安全巨集。 |
GCP 專案 ID | 是 | 是 | Google Cloud 專案 ID。 |
SAP JCo 程式庫 GCS 路徑 | 是 | 是 | 您上傳 SAP JCo 程式庫檔案的 Cloud Storage 路徑。 |
取得結構定義 | 不適用 | 不適用 | 外掛程式會根據 SAP 的中繼資料產生結構定義,並將 SAP 資料類型對應至相應的 Cloud Data Fusion 資料類型。請參閱「資料類型對應」。 |
SAP ODP 訂閱者名稱 | 是 | 是 | 從有效的 SAP 資料來源或 CDS 檢視畫面擷取資料的 ODP 訂閱者。必須包含下列資訊:
|
等待時間 | 是 | 否 | 這個屬性可讓資料工程師在每次從 Cloud Data Fusion 到 SAP 的網路呼叫後,選擇適當的等待時間。 |
重試次數 | 是 | 否 | 等待網路呼叫完成時的重試次數。 |
篩選器選項 (相等) | 是 | 否 | 欄位必須讀取的值。 篩選器選項是包含中繼資料欄位名稱和值組合的清單。這些屬性會定義從 SAP 資料來源讀取資料時要套用的篩選器條件。系統只會擷取符合條件的記錄。 篩選器鍵對應至結構定義中的欄位。必須是簡單類型 (不是 ARRAY 、RECORD 或 UNION )。使用範例:欄位名稱: MTART 值: FERT |
篩選器選項 (範圍) | 是 | 否 | 欄位必須讀取的值的下限和上限。 篩選器選項是包含中繼資料欄位名稱和值組合的清單。這些屬性會定義從 SAP 資料來源讀取資料時要套用的篩選器條件。系統只會擷取符合條件的記錄。 篩選器鍵對應至結構定義中的欄位。格式為低和高。使用方式範例: 欄位名稱: ERDAT 低值: 2023-11-01 高值: 2023-11-30 |
篩選器選項 (小於等於) | 是 | 否 | 欄位必須小於或等於的值。 篩選器選項是包含中繼資料欄位名稱和值組合的清單。這些屬性會定義從 SAP 資料來源讀取資料時要套用的篩選器條件。系統只會擷取符合條件的記錄。 篩選器鍵會對應至結構定義中的欄位。必須是簡單類型 (不是 ARRAY 、RECORD 或 UNION )。使用範例:欄位名稱: MATNR 值: 10008 |
篩選器選項 (大於等於) | 是 | 否 | 欄位必須大於這個值才能讀取。 篩選器選項是包含中繼資料欄位名稱和值組合的清單。這些屬性會定義從 SAP 資料來源讀取資料時要套用的篩選器條件。系統只會擷取符合條件的記錄。 篩選器鍵會對應至結構定義中的欄位。必須是簡單類型 (不是 ARRAY 、RECORD 或 UNION )。使用範例:欄位名稱: MATNR 值: 10008 |
篩選器選項 (不相等) | 是 | 否 | 定義欄位必須不等於才能讀取的值。 篩選器選項是包含中繼資料欄位名稱和值組合的清單。這些屬性會定義從 SAP 資料來源讀取資料時要套用的篩選器條件。系統只會擷取符合條件的記錄。 篩選器鍵會對應至結構定義中的欄位。必須是簡單類型 (不是 ARRAY 、RECORD 或 UNION )。使用範例:欄位名稱: MTART 值: FERT |
要產生的分割數量 | 是 | 否 | 建立分割區,以便並行擷取記錄。 執行階段引擎會在擷取記錄時建立指定數量的分區 (和 SAP 連線)。 請謹慎調高這個值,因為這會增加與 SAP 的同時連線數量。 建議:為每個管道和同時執行的管道總數規劃 SAP 連線。 如果值為 0 或空白,Cloud Data Fusion 會根據可用的執行緒數量、要擷取的記錄和套件大小,選擇適當的值。 |
套件大小 (以 KB 為單位) | 是 | 否 | 在單一 SAP 網路呼叫中要擷取的記錄數量。這是在每次網路擷取呼叫期間,SAP 在記憶體中緩衝的記錄數量。 設定這項屬性時請小心謹慎。多個資料管道會擷取資料,導致記憶體用量達到最高,進而因 Out of memory 錯誤而失敗。
|
其他 SAP 連線資源屬性 | 是 | 否 | 設定其他 SAP JCo 屬性,以便覆寫 SAP JCo 預設值。舉例來說,設定 jco.destination.pool_capacity = 10 會覆寫預設的連線集區容量。 |
資料類型對應關係
下表列出 SAP 資料類型及其對應的 Cloud Data Fusion 類型。
SAP 資料類型 | ABAP 類型 | SAP description | Cloud Data Fusion 資料類型 |
---|---|---|---|
INT1 (數字) |
b | 1 位元組整數 | 整數 |
INT2 (數字) |
秒 | 2 位元組整數 | 整數 |
INT4 (數字) |
i | 4 位元整數 | 整數 |
INT8 (數字) |
8 | 8 位元整數 | long |
DEC (數字) |
p | BCD 格式的已壓縮數字 (DEC) | decimal |
DF16_DEC 、DF16_RAW (數字) |
a | 十進位浮點 8 個位元組 IEEE 754r | 雙精度值 |
DF34_DEC 、DF34_RAW (數字) |
e | 十進位浮點 16 位元組 IEEE 754r | 雙精度值 |
FLTP (數字) |
f | 二進位浮點數 | 雙精度值 |
CHAR 、LCHR (字元) |
c | 字元字串 | 字串 |
SSTRING 、GEOM_EWKB (字元) |
字串 | 字元字串 | 字串 |
STRING (字元) |
字串 | 字元字串 CLOB | 位元組 |
NUMC 、ACCP (字元) |
n | 數字文字 | 字串 |
RAW 、LRAW (位元組) |
x | 二進位資料 | 位元組 |
RAWSTRING (位元組) |
xstring | 位元組字串 BLOB | 位元組 |
DATS (日期/時間) |
d | 日期 | 日期 |
TIMS (日期/時間) |
t | 時間 | 時間 |
TIMS (日期/時間) |
utcl | Utclong)、時間戳記 | 時間戳記 |
限制
為確保 pipeline 定義和執行正確無誤,請查看下列外掛程式限制:
- 系統不支援超過 50k 的套件大小。
- 不支援差異擷取的資料來源在同步模式下會失敗。
- 在自訂資料來源中,如果未處理套件大小,則管道在大量資料擷取作業中會失敗。
用途
系統支援兩種擷取內容:
- 資料來源或擷取器 (SAPI)
- ODP 上下文 ABAP CDS (ABAP_CDS)
ODP 外掛程式支援下列標準和自訂資料來源,適用於兩種情境:
ODP 資料來源 | 背景資訊 | 完整擷取 | 差異擷取 |
---|---|---|---|
SAP Standard 預先提供 | SAPI | 支援 | 支援 |
自訂 (Z*) | SAPI | 支援 | 支援 |
SAP Standard 預先提供 | ABAP_CDS | 支援 | 支援 |
自訂 (Z*) | ABAP_CDS | 支援 | 支援 |
後續步驟
- 進一步瞭解 Cloud Data Fusion。
- 進一步瞭解 Google Cloud上的 SAP。