View a markdown version of this page

OData 服務 (非 ODP 來源) - AWS Glue

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

OData 服務 (非 ODP 來源)

完整載入

對於非 ODP (營運資料佈建) 系統,完整載入涉及從來源系統擷取整個資料集,並將其載入目標系統。由於非 ODP 系統本質上不支援 deltas 等進階資料擷取機制,因此程序非常簡單,但可能會耗費大量資源,具體取決於資料大小。

增量載入

對於不支援 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

在下一節中,我們將提供自動化方法來管理這些時間戳記型增量傳輸,無需在執行之間手動更新篩選表達式。