從 Salesforce 中讀取 - AWS Glue

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

從 Salesforce 中讀取

必要條件

您想要從中讀取的 Salesforce Object。將需要物件名稱,例如 AccountCaseOpportunity

範例

salesforce_read = glueContext.create_dynamic_frame.from_options( connection_type="salesforce", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "Account", "API_VERSION": "v60.0" } )

分區查詢

如果想要在 Spark 中使用並行,可以提供其他 Spark 選項 PARTITION_FIELDLOWER_BOUNDUPPER_BOUNDNUM_PARTITIONS。使用這些參數,原始查詢會分區為可由 Spark 任務並行執行的子查詢的 NUM_PARTITIONS 數目。

  • PARTITION_FIELD:用來分區查詢的欄位名稱。

  • LOWER_BOUND:所選分區欄位的包含下限值。

    對於「日期」或「時間戳記」欄位,連接器接受 Spark SQL 查詢中使用的 Spark 時間戳記格式。

    有效值的範例:

    "TIMESTAMP \"1707256978123\"" "TIMESTAMP '2018-01-01 00:00:00.000 UTC'" "TIMESTAMP \"2018-01-01 00:00:00 Pacific/Tahiti\"" "TIMESTAMP \"2018-01-01 00:00:00\"" "TIMESTAMP \"-123456789\" Pacific/Tahiti" "TIMESTAMP \"1702600882\""
  • UPPER_BOUND:所選分區欄位的唯一上限值。

  • NUM_PARTITIONS:分區數目。

  • TRANSFER_MODE:支援兩種模式:SYNCASYNC。預設值為 SYNC。設為 ASYNC 時,將使用 Bulk API 2.0 查詢來處理。

範例:

salesforce_read = glueContext.create_dynamic_frame.from_options( connection_type="salesforce", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "Account", "API_VERSION": "v60.0", "PARTITION_FIELD": "SystemModstamp", "LOWER_BOUND": "TIMESTAMP '2021-01-01 00:00:00 Pacific/Tahiti'", "UPPER_BOUND": "TIMESTAMP '2023-01-10 00:00:00 Pacific/Tahiti'", "NUM_PARTITIONS": "10", "TRANSFER_MODE": "ASYNC" } )

FILTER_PREDICATE 選項

FILTER_PREDICATE:其是可選參數。此選項用於查詢篩選條件。

FILTER_PREDICATE 的範例:

Case 1: FILTER_PREDICATE with single criterion Examples: LastModifiedDate >= TIMESTAMP '2025-04-01 00:00:00 Pacific/Tahiti' LastModifiedDate <= TIMESTAMP "2025-04-01 00:00:00" LastModifiedDate >= TIMESTAMP '2018-01-01 00:00:00.000 UTC' LastModifiedDate <= TIMESTAMP "-123456789 Pacific/Tahiti" LastModifiedDate <= TIMESTAMP "1702600882" Case 2: FILTER_PREDICATE with multiple criteria Examples: LastModifiedDate >= TIMESTAMP '2025-04-01 00:00:00 Pacific/Tahiti' AND Id = "0012w00001CotGiAAJ" LastModifiedDate >= TIMESTAMP "1702600882" AND Id = "001gL000002i26MQAQ" Case 3: FILTER_PREDICATE single criterion with LIMIT Examples: LastModifiedDate >= TIMESTAMP "1702600882" LIMIT 2 Case 4: FILTER_PREDICATE with LIMIT Examples: LIMIT 2