从 Salesforce 读取 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

从 Salesforce 读取

先决条件

您要从中读取内容的 Salesforce sObject。您将需要 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。使用这些参数,原始查询将被拆分为 NUM_PARTITIONS 个子查询,这些子查询可以由 Spark 任务同时执行。

  • 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 Query 进行处理。

示例:

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