本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
完全載入
對於非 ODP (營運資料佈建) 系統,完整載入涉及從來源系統擷取整個資料集,並將其載入目標系統。由於非 ODP 系統本質上不支援進階資料擷取機制,例如差異,因此程序非常簡單,但可能會根據資料大小而耗費大量資源。
增量負載
對於不支援 ODP (營運資料佈建) 的系統或實體,可透過實作以時間戳記為基礎的機制來追蹤和擷取變更,手動管理增量資料傳輸。
時間戳記型增量傳輸
對於未啟用 ODP 的實體 (或未使用 ENABLE_CDC 旗標的已啟用 ODP 的實體),我們可以在連接器中使用filteringExpression
選項來指出要擷取資料的datetime
間隔。此方法依賴資料中的時間戳記欄位,代表上次建立/修改每個記錄的時間。
範例
擷取在 2024-01-01T00:00:00.000 之後變更的記錄
sapodata_df = glueContext.create_dynamic_frame.from_options(
connection_type="SAPOData",
connection_options={
"connectionName": "connectionName",
"ENTITY_NAME": "entityName",
"filteringExpression": "LastChangeDateTime >= 2024-01-01T00:00:00.000"
}, transformation_ctx=key)
注意:在此範例中, LastChangeDateTime
是 欄位,代表上次修改每個記錄的時間。實際欄位名稱可能會因您的特定 SAP OData 實體而有所不同。
若要在後續執行中取得新的資料子集,您可以使用filteringExpression
新的時間戳記更新 。一般而言,這是先前擷取資料的時間戳記值上限。
範例
max_timestamp = get_max_timestamp(sapodata_df) # Function to get the max timestamp from the previous run
next_filtering_expression = f"LastChangeDateTime > {max_timestamp}"
# Use this next_filtering_expression in your next run
在下一節中,我們將提供自動化方法來管理這些以時間戳記為基礎的增量傳輸,無需在執行之間手動更新篩選表達式。