从 HubSpot 实体中读取
先决条件
您要从中读取内容的 HubSpot 对象。您将需要联系人或任务等对象名称。下表显示了同步源支持的实体。
同步源支持的实体
实体 | API 版本 | 可以筛选 | 支持限制 | 支持排序依据 | 支持选择* | 支持分区 |
---|---|---|---|---|---|---|
市场活动 | v1 | 否 | 是 | 否 | 是 | 否 |
公司 | v3 | 支持 | 是 | 是 | 是 | 是 |
联系人 | v3 | 支持 | 是 | 是 | 是 | 是 |
联系人列表 | v1 | 否 | 是 | 否 | 是 | 否 |
交易 | v3 | 支持 | 是 | 是 | 是 | 是 |
CRM 管道(交易管道) | v1 | 否 | 否 | 否 | 是 | 否 |
电子邮件事件 | v1 | 否 | 是 | 否 | 是 | 否 |
Calls | v3 | 支持 | 是 | 是 | 是 | 是 |
备注 | v3 | 支持 | 是 | 是 | 是 | 是 |
电子邮件 | v3 | 支持 | 是 | 是 | 是 | 是 |
会议 | v3 | 支持 | 是 | 是 | 是 | 是 |
任务 | v3 | 支持 | 是 | 是 | 是 | 是 |
邮政邮件 | v3 | 支持 | 是 | 是 | 是 | 是 |
自定义对象 | v3 | 支持 | 是 | 是 | 是 | 是 |
表单 | v2 | 否 | 否 | 否 | 是 | 否 |
所有者 | v3 | 否 | 是 | 否 | 是 | 否 |
产品 | v3 | 支持 | 是 | 是 | 是 | 是 |
工单 | v3 | 支持 | 是 | 是 | 是 | 是 |
工作流 | v3 | 否 | 否 | 否 | 是 | 否 |
Associations | v4 | 是 | 否 | 否 | 是 | 否 |
关联标签 | v4 | 否 | 否 | 否 | 是 | 否 |
示例:
hubspot_read = glueContext.create_dynamic_frame.from_options( connection_type="hubspot", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "contact", "API_VERSION": "v3" }
异步源支持的实体
实体 | API 版本 | 可以筛选 | 支持限制 | 支持排序依据 | 支持选择* | 支持分区 |
---|---|---|---|---|---|---|
公司 | v3 | 是 | 否 | 是 | 是 | 否 |
联系人 | v3 | 是 | 否 | 是 | 是 | 否 |
交易 | v3 | 是 | 否 | 是 | 是 | 否 |
Calls | v3 | 是 | 否 | 是 | 是 | 否 |
备注 | v3 | 是 | 否 | 是 | 是 | 否 |
电子邮件 | v3 | 是 | 否 | 是 | 是 | 否 |
会议 | v3 | 是 | 否 | 是 | 是 | 否 |
任务 | v3 | 是 | 否 | 是 | 是 | 否 |
邮政邮件 | v3 | 是 | 否 | 是 | 是 | 否 |
自定义对象 | v3 | 是 | 否 | 是 | 是 | 否 |
产品 | v3 | 是 | 否 | 是 | 是 | 否 |
工单 | v3 | 是 | 否 | 是 | 是 | 否 |
示例:
hubspot_read = glueContext.create_dynamic_frame.from_options( connection_type="hubspot", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "contact", "API_VERSION": "v3", "TRANSFER_MODE": "ASYNC" }
HubSpot 实体和字段详细信息:
HubSpot API v4:
实体 | API 版本 | 字段 | 数据类型 | 支持的运算符 |
---|---|---|---|---|
关联标签 | v4 | category | 字符串 | 不适用 |
typeId | 整数 | 不适用 | ||
label | 字符串 | 不适用 | ||
Associations | from | 结构体 | 不适用 | |
id | 字符串 | "=" | ||
到 | 列表 | 不适用 |
注意
对于 Associations
对象,要获取两个对象之间的关联,您需要在创建 Amazon Glue 作业时通过强制筛选器提供“from Id”(第一个对象的 ID)。在这种情况下,如果要获取多个 from ID 的关联,则必须在 where
子句中提供多个 ID。例如:要获取联系人 ID“1”和“151”的 Associations
,您需要提供筛选器 where id=1 AND id=151
。
HubSpot API v3:
实体 | 字段 | 数据类型 | 支持的运算符 |
---|---|---|---|
所有者 | firstName | 字符串 | 不适用 |
lastName | 字符串 | 不适用 | |
createdAt | 日期时间 | 不适用 | |
archived | 布尔值 | 不适用 | |
teams | 列表 | 不适用 | |
id | 字符串 | 不适用 | |
userId | 整数 | 不适用 | |
电子邮件 | 字符串 | 不适用 | |
updatedAt | 日期时间 | 不适用 | |
工作流 | 名称 | 字符串 | 不适用 |
id | 整数 | 不适用 | |
type | 字符串 | 不适用 | |
已启用 | 布尔值 | 不适用 | |
insertedAt | 长整型 | 不适用 | |
updatedAt | 长整型 | 不适用 | |
contactListIds | 结构体 | 不适用 | |
personaTagIds | 列表 | 不适用 |
对于以下实体,HubSpot 提供用于动态获取元数据的端点,以便在每个实体的数据类型级别捕获运算符支持。
注意
DML_STATUS
是在运行时添加到每条记录上的虚拟字段,用于在同步模式下确定字段状态(CREATED/UPDATED)。异步模式下不支持 CONTAINS/LIKE
运算符。
实体 | 数据类型 | 支持的运算符 |
---|---|---|
联系人 | 整数 | "=, !=, <, >, >=, <=" |
长整型 | "=, !=, <, >, >=, <=" | |
字符串 | "=, !=, LIKE" | |
日期 | 不适用 | |
日期时间 | "between" | |
布尔值 | "=" | |
列表 | 不适用 | |
结构体 | 不适用 | |
公司 | 整数 | "=, !=, <, >, >=, <=" |
长整型 | "=, !=, <, >, >=, <=" | |
字符串 | "=, !=, LIKE" | |
日期 | 不适用 | |
日期时间 | "between" | |
布尔值 | "=" | |
列表 | 不适用 | |
结构体 | 不适用 | |
交易 | 整数 | "=, !=, <, >, >=, <=" |
长整型 | "=, !=, <, >, >=, <=" | |
字符串 | "=, !=, LIKE" | |
日期 | 不适用 | |
日期时间 | "between" | |
布尔值 | "=" | |
列表 | 不适用 | |
结构体 | 不适用 | |
工单 | 整数 | "=, !=, <, >, >=, <=" |
长整型 | "=, !=, <, >, >=, <=" | |
字符串 | "=, !=, LIKE" | |
日期 | 不适用 | |
日期时间 | "between" | |
布尔值 | "=" | |
列表 | 不适用 | |
结构体 | 不适用 | |
产品 | 整数 | "=, !=, <, >, >=, <=" |
长整型 | "=, !=, <, >, >=, <=" | |
字符串 | "=, !=, LIKE" | |
日期 | 不适用 | |
日期时间 | "between" | |
布尔值 | "=" | |
列表 | 不适用 | |
结构体 | 不适用 | |
自定义对象 | 整数 | "=, !=, <, >, >=, <=" |
长整型 | "=, !=, <, >, >=, <=" | |
字符串 | "=, !=, LIKE" | |
日期 | 不适用 | |
日期时间 | "between" | |
布尔值 | "=" | |
列表 | 不适用 | |
结构体 | 不适用 | |
Call | 整数 | "=, !=, <, >, >=, <=" |
长整型 | "=, !=, <, >, >=, <=" | |
字符串 | "=, !=, LIKE" | |
日期 | 不适用 | |
日期时间 | "between" | |
布尔值 | "=" | |
列表 | 不适用 | |
结构体 | 不适用 | |
电子邮件 | 整数 | "=, !=, <, >, >=, <=" |
长整型 | "=, !=, <, >, >=, <=" | |
字符串 | "=, !=, LIKE" | |
日期 | 不适用 | |
日期时间 | "between" | |
布尔值 | "=" | |
列表 | 不适用 | |
结构体 | 不适用 | |
会议 | 整数 | "=, !=, <, >, >=, <=" |
长整型 | "=, !=, <, >, >=, <=" | |
字符串 | "=, !=, LIKE" | |
日期 | 不适用 | |
日期时间 | "between" | |
布尔值 | "=" | |
列表 | 不适用 | |
结构体 | 不适用 | |
注意 | 整数 | "=, !=, <, >, >=, <=" |
长整型 | "=, !=, <, >, >=, <=" | |
字符串 | "=, !=, LIKE" | |
日期 | 不适用 | |
日期时间 | "between" | |
布尔值 | "=" | |
列表 | 不适用 | |
结构体 | 不适用 | |
Task | 整数 | "=, !=, <, >, >=, <=" |
长整型 | "=, !=, <, >, >=, <=" | |
字符串 | "=, !=, LIKE" | |
日期 | 不适用 | |
日期时间 | "between" | |
布尔值 | "=" | |
列表 | 不适用 | |
结构体 | 不适用 | |
邮政邮件 | 整数 | "=, !=, <, >, >=, <=" |
长整型 | "=, !=, <, >, >=, <=" | |
字符串 | "=, !=, LIKE" | |
日期 | 不适用 | |
日期时间 | "between" | |
布尔值 | "=" | |
列表 | 不适用 | |
结构体 | 不适用 |
HubSpot API v2:
实体 | 字段 | 数据类型 | 支持的运算符 |
---|---|---|---|
表单 | portalId | 整数 | 不适用 |
guid | 字符串 | 不适用 | |
名称 | 字符串 | 不适用 | |
method | 字符串 | 不适用 | |
cssClass | 字符串 | 不适用 | |
重定向 | 字符串 | 不适用 | |
submitText | 字符串 | 不适用 | |
notifyRecipients | 字符串 | 不适用 | |
createdAt | 长整型 | 不适用 | |
updatedAt | 长整型 | 不适用 | |
ignoreCurrentValues | 布尔值 | 不适用 | |
deletable | 布尔值 | 不适用 | |
inlineMessage | 布尔值 | 不适用 | |
captchaEnabled | 布尔值 | 不适用 | |
cloneable | 布尔值 | 不适用 | |
formFieldGroups | 列表 | 不适用 | |
editable | 布尔值 | 不适用 | |
deletedAt | 整数 | 不适用 | |
themeName | 字符串 | 不适用 | |
parentId | 整数 | 不适用 | |
style | 字符串 | 不适用 | |
isPublished | 布尔值 | 不适用 | |
publishAt | 整数 | 不适用 | |
unpublishAt | 整数 | 不适用 | |
publishedAt | 整数 | 不适用 | |
kickbackEmailWorkflowId | 字符串 | 不适用 | |
kickbackEmailsJson | 整数 | 不适用 | |
customUid | 字符串 | 不适用 | |
createMarketableContact | 布尔值 | 不适用 | |
editVersion | 整数 | 不适用 | |
thankYouMessageJson | 字符串 | 不适用 | |
themeColor | 字符串 | 不适用 | |
alwaysCreateNewCompany | 布尔值 | 不适用 | |
internalUpdatedAt | 长整型 | 不适用 | |
businessUnitId | 整数 | 不适用 | |
portableKey | 字符串 | 不适用 | |
paymentSessionTemplateIds | 列表 | 不适用 | |
selectedExternalOptions | 列表 | 不适用 |
HubSpot API v1:
实体 | 字段 | 数据类型 | 支持的运算符 |
---|---|---|---|
活动 | id | 整数 | 不适用 |
appId | 整数 | 不适用 | |
appName | 字符串 | 不适用 | |
lastUpdatedTime | 长整型 | 不适用 | |
Contact_List | dynamic | 布尔值 | 不适用 |
名称 | 字符串 | 不适用 | |
portalId | 整数 | 不适用 | |
createdAt | 长整型 | 不适用 | |
listId | 整数 | 不适用 | |
updatedAt | 长整型 | 不适用 | |
ListType | 字符串 | 不适用 | |
filters | 列表 | 不适用 | |
authorId | 整数 | 不适用 | |
metaData | 结构体 | 不适用 | |
archived | 布尔值 | 不适用 | |
ilsFilterBranch | 字符串 | 不适用 | |
filterIds | 列表 | 不适用 | |
limitExempt | 布尔值 | 不适用 | |
内部 | 布尔值 | 不适用 | |
readOnly | 布尔值 | 不适用 | |
parentId | 整数 | 不适用 | |
Email_Event | id | 字符串 | 不适用 |
type | 字符串 | 不适用 | |
recipient | 字符串 | 不适用 | |
portalId | 整数 | 不适用 | |
appId | 整数 | 不适用 | |
appName | 字符串 | 不适用 | |
emailCampaignId | 长整型 | 不适用 | |
attempt | 整数 | 不适用 | |
created | 长整型 | 不适用 | |
sentBy | 结构体 | 不适用 | |
smtpId | 字符串 | 不适用 | |
响应 | 字符串 | 不适用 | |
subject | 字符串 | 不适用 | |
cc | 列表 | 不适用 | |
bcc | 列表 | 不适用 | |
replyTo | 列表 | 不适用 | |
from | 字符串 | 不适用 | |
dropReason | 字符串 | 不适用 | |
dropMessage | 字符串 | 不适用 | |
浏览器 | 结构体 | 不适用 | |
userAgent | 字符串 | 不适用 | |
duration | 长整型 | 不适用 | |
location | 结构体 | 不适用 | |
filteredEvent | 布尔值 | 不适用 | |
deviceType | 字符串 | 不适用 | |
suppressedReason | 字符串 | 不适用 | |
suppressedMessage | 字符串 | 不适用 | |
CRM_Pipeline | pipelineId | 字符串 | 不适用 |
createdAt | 长整型 | 不适用 | |
updatedAt | 长整型 | 不适用 | |
objectType | 字符串 | 不适用 | |
label | 字符串 | 不适用 | |
displayOrder | 整数 | 不适用 | |
active | 布尔值 | 不适用 | |
阶段 | 列表 | 不适用 | |
objectTypeId | 字符串 | 不适用 | |
默认值 | 布尔值 | 不适用 |
对查询进行分区
如果您想在 Spark 中利用并发,可以提供其他 Spark 选项:PARTITION_FIELD
、LOWER_BOUND
、UPPER_BOUND
和 NUM_PARTITIONS
。使用这些参数,原始查询将被拆分为 NUM_PARTITIONS
个子查询,这些子查询可以由 Spark 任务同时执行。
PARTITION_FIELD
:用于对查询进行分区的字段的名称。LOWER_BOUND
:所选分区字段的包含下限值。对于日期时间字段,我们接受 ISO 格式的值。
有效值示例:
“2024-01-01T10:00:00.115Z"
UPPER_BOUND
:所选分区字段的排除上限值。NUM_PARTITIONS
:分区的数量。
下表描述实体分区字段支持详细信息:
实体名称 | 分区字段 | 数据类型 |
---|---|---|
contact | hs_object_id | 长整型 |
createdate, lastmodifieddate | 日期时间 | |
company | hs_object_id | 长整型 |
createdate, hs_lastmodifieddate | 日期时间 | |
deal | hs_object_id | 长整型 |
createdate, hs_createdate, hs_lastmodifieddate | 日期时间 | |
ticket | hs_object_id | 长整型 |
createdate, hs_lastmodifieddate | 日期时间 | |
产品 | hs_object_id | 长整型 |
createdate, hs_lastmodifieddate | 日期时间 | |
custom_object | hs_object_id | 长整型 |
createdate, hs_lastmodifieddate | 日期时间 | |
call | hs_object_id | 长整型 |
createdate, hs_lastmodifieddate | 日期时间 | |
电子邮件 | hs_object_id | 长整型 |
createdate, hs_lastmodifieddate | 日期时间 | |
会议 | hs_object_id | 长整型 |
createdate, hs_lastmodifieddate | 日期时间 | |
note | hs_object_id | 长整型 |
createdate, hs_lastmodifieddate | 日期时间 | |
task | hs_object_id | 长整型 |
createdate, hs_lastmodifieddate | 日期时间 | |
postal_mail | hs_object_id | 长整型 |
createdate, hs_lastmodifieddate | 日期时间 |
示例:
hubspot_read = glueContext.create_dynamic_frame.from_options( connection_type="hubspot", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "company", "API_VERSION": "v3", "PARTITION_FIELD": "hs_object_id" "LOWER_BOUND": "50" "UPPER_BOUND": "16726619290" "NUM_PARTITIONS": "10" }