OData サービス (ODP 非対応ソース) - AWS Glue

OData サービス (ODP 非対応ソース)

フルロード

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

次のセクションでは、これらのタイムスタンプベースの増分転送を管理するための自動化されたアプローチを提供し、実行間でフィルタリング式を手動で更新する必要がなくなります。