HubSpot 엔터티에서 읽기
사전 조건
읽으려는 HubSpot 객체. 객체 이름(예: 연락처 또는 태스크)이 필요합니다. 다음 표에는 동기화 소스에 대해 지원되는 엔터티가 나와 있습니다.
동기화 소스에 대해 지원되는 엔터티
| 개체 | API 버전 | 필터링 가능 | 제한 지원 | 정렬 기준 지원 | Select * 지원 | 분할 지원 |
|---|---|---|---|---|---|---|
| Campaigns | v1 | 아니요 | 예 | 아니요 | 예 | 아니요 |
| 회사 | v3 | 예 | 예 | 예 | 예 | 예 |
| Contacts | v3 | 예 | 예 | 예 | 예 | 예 |
| 연락처 목록 | v1 | 아니요 | 예 | 아니요 | 예 | 아니요 |
| 거래 | v3 | 예 | 예 | 예 | 예 | 예 |
| CRM 파이프라인(거래 파이프라인) | v1 | 아니요 | 아니요 | 아니요 | 예 | 아니요 |
| 이메일 이벤트 | v1 | 아니요 | 예 | 아니요 | 예 | 아니요 |
| 호출 | v3 | 예 | 예 | 예 | 예 | 예 |
| Notes | v3 | 예 | 예 | 예 | 예 | 예 |
| 이메일 | v3 | 예 | 예 | 예 | 예 | 예 |
| 회의 | v3 | 예 | 예 | 예 | 예 | 예 |
| 업무 | v3 | 예 | 예 | 예 | 예 | 예 |
| 우편 | v3 | 예 | 예 | 예 | 예 | 예 |
| 사용자 지정 객체 | v3 | 예 | 예 | 예 | 예 | 예 |
| 양식 | v2 | 아니요 | 아니요 | 아니요 | 예 | 아니요 |
| 소유자 | v3 | 아니요 | 예 | 아니요 | 예 | 아니요 |
| Products | 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 버전 | 필터링 가능 | 제한 지원 | 정렬 기준 지원 | Select * 지원 | 분할 지원 |
|---|---|---|---|---|---|---|
| Companies | v3 | 예 | 아니요 | 예 | 예 | 아니요 |
| Contacts | v3 | 예 | 아니요 | 예 | 예 | 아니요 |
| 거래 | v3 | 예 | 아니요 | 예 | 예 | 아니요 |
| 호출 | v3 | 예 | 아니요 | 예 | 예 | 아니요 |
| Notes | v3 | 예 | 아니요 | 예 | 예 | 아니요 |
| Emails | v3 | 예 | 아니요 | 예 | 예 | 아니요 |
| 회의 | v3 | 예 | 아니요 | 예 | 예 | 아니요 |
| 업무 | v3 | 예 | 아니요 | 예 | 예 | 아니요 |
| 우편 | v3 | 예 | 아니요 | 예 | 예 | 아니요 |
| 사용자 지정 객체 | v3 | 예 | 아니요 | 예 | 예 | 아니요 |
| Products | v3 | 예 | 아니요 | 예 | 예 | 아니요 |
| Tickets | 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 | String | 해당 사항 없음 |
| typeId | Integer | N/A | ||
| 레이블 | String | 해당 사항 없음 | ||
| Associations | from | Struct | N/A | |
| id | String | "=" | ||
| 아래로 변경합니다. | 나열 | N/A |
참고
Associations 객체의 경우 두 객체 사이의 연결을 가져오려면 AWS Glue 작업을 생성하는 동안 필수 필터를 통해 'from Id'(첫 번째 객체의 ID)를 제공해야 합니다. 이 경우 여러 ID에 대한 연결을 가져오려면 where 절에서 여러 ID를 제공해야 합니다. 예: 연락처 ID '1' 및 '151'에 대한 Associations를 가져오는 경우 필터를 where id=1 AND id=151로 제공해야 합니다.
HubSpot API v3:
| 개체 | 필드 | 데이터 유형 | 지원되는 연산자 |
|---|---|---|---|
| 소유자 | firstName | String | 해당 사항 없음 |
| lastName | String | 해당 사항 없음 | |
| createdAt | DateTime | N/A | |
| archived | 불 | N/A | |
| teams | 나열 | N/A | |
| id | String | 해당 사항 없음 | |
| userId | Integer | N/A | |
| 이메일 | String | 해당 사항 없음 | |
| updatedAt | DateTime | N/A | |
| 워크플로 | name | String | 해당 사항 없음 |
| id | Integer | N/A | |
| type | String | 해당 사항 없음 | |
| 활성화 | 불 | N/A | |
| insertedAt | Long | N/A | |
| updatedAt | Long | N/A | |
| contactListIds | Struct | N/A | |
| personaTagIds | 나열 | N/A |
다음 엔터티에 대해 HubSpot에서는 메타데이터를 동적으로 가져도록 엔드포인트를 제공하므로 운영자 지원이 각 엔터티의 데이터 유형 수준에서 캡처됩니다.
참고
DML_STATUS는 동기화 모드에서 런타임 시 모든 레코드에 추가된 가상 필드로, 해당 상태를 결정합니다(CREATED/UPDATED). CONTAINS/LIKE 연산자는 비동기 모드에서 지원되지 않습니다.
| 개체 | 데이터 유형 | 지원되는 연산자 |
|---|---|---|
| Contact | Integer | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| 날짜 | N/A | |
| DateTime | "between" | |
| 불 | "=" | |
| 나열 | N/A | |
| Struct | N/A | |
| Company | Integer | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| 날짜 | N/A | |
| DateTime | "between" | |
| 불 | "=" | |
| 나열 | N/A | |
| Struct | N/A | |
| 거래 | Integer | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| 날짜 | N/A | |
| DateTime | "between" | |
| 불 | "=" | |
| 나열 | N/A | |
| Struct | N/A | |
| 티켓 | Integer | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| 날짜 | N/A | |
| DateTime | "between" | |
| 불 | "=" | |
| 나열 | N/A | |
| Struct | N/A | |
| Product | Integer | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| 날짜 | N/A | |
| DateTime | "between" | |
| 불 | "=" | |
| 나열 | N/A | |
| Struct | N/A | |
| 사용자 지정 객체 | Integer | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| 날짜 | N/A | |
| DateTime | "between" | |
| 불 | "=" | |
| 나열 | N/A | |
| Struct | N/A | |
| Call | Integer | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| 날짜 | N/A | |
| DateTime | "between" | |
| 불 | "=" | |
| 나열 | N/A | |
| Struct | N/A | |
| 이메일 | Integer | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| 날짜 | N/A | |
| DateTime | "between" | |
| 불 | "=" | |
| 나열 | N/A | |
| Struct | N/A | |
| 회의 | Integer | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| 날짜 | N/A | |
| DateTime | "between" | |
| 불 | "=" | |
| 나열 | N/A | |
| Struct | N/A | |
| Note | Integer | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| 날짜 | N/A | |
| DateTime | "between" | |
| 불 | "=" | |
| 나열 | N/A | |
| Struct | N/A | |
| Task | Integer | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| 날짜 | N/A | |
| DateTime | "between" | |
| 불 | "=" | |
| 나열 | N/A | |
| Struct | N/A | |
| 우편 | Integer | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| 날짜 | N/A | |
| DateTime | "between" | |
| 불 | "=" | |
| 나열 | N/A | |
| Struct | N/A |
HubSpot API v2:
| 개체 | 필드 | 데이터 유형 | 지원되는 연산자 |
|---|---|---|---|
| 양식 | portalId | Integer | N/A |
| guid | String | 해당 사항 없음 | |
| name | String | 해당 사항 없음 | |
| method | String | 해당 사항 없음 | |
| cssClass | String | 해당 사항 없음 | |
| 리디렉션 | String | 해당 사항 없음 | |
| submitText | String | 해당 사항 없음 | |
| notifyRecipients | String | 해당 사항 없음 | |
| createdAt | Long | N/A | |
| updatedAt | Long | N/A | |
| ignoreCurrentValues | 불 | N/A | |
| deletable | 불 | N/A | |
| inlineMessage | 불 | N/A | |
| captchaEnabled | 불 | N/A | |
| cloneable | 불 | N/A | |
| formFieldGroups | 나열 | N/A | |
| editable | 불 | N/A | |
| deletedAt | Integer | N/A | |
| themeName | String | 해당 사항 없음 | |
| parentId | Integer | N/A | |
| style | String | 해당 사항 없음 | |
| isPublished | 불 | N/A | |
| publishAt | Integer | N/A | |
| unpublishAt | Integer | N/A | |
| publishedAt | Integer | N/A | |
| kickbackEmailWorkflowId | String | 해당 사항 없음 | |
| kickbackEmailsJson | Integer | N/A | |
| customUid | String | 해당 사항 없음 | |
| createMarketableContact | 불 | N/A | |
| editVersion | Integer | N/A | |
| thankYouMessageJson | String | 해당 사항 없음 | |
| themeColor | String | 해당 사항 없음 | |
| alwaysCreateNewCompany | 불 | N/A | |
| internalUpdatedAt | Long | N/A | |
| businessUnitId | Integer | N/A | |
| portableKey | String | 해당 사항 없음 | |
| paymentSessionTemplateIds | 나열 | N/A | |
| selectedExternalOptions | 나열 | N/A |
HubSpot API v1:
| 개체 | 필드 | 데이터 유형 | 지원되는 연산자 |
|---|---|---|---|
| 캠페인 | id | Integer | N/A |
| appId | Integer | N/A | |
| appName | String | 해당 사항 없음 | |
| lastUpdatedTime | Long | N/A | |
| Contact_List | dynamic | 불 | N/A |
| name | String | 해당 사항 없음 | |
| portalId | Integer | N/A | |
| createdAt | Long | N/A | |
| listId | Integer | N/A | |
| updatedAt | Long | N/A | |
| ListType | String | 해당 사항 없음 | |
| filters | 나열 | N/A | |
| authorId | Integer | N/A | |
| metaData | Struct | N/A | |
| archived | 불 | N/A | |
| ilsFilterBranch | String | 해당 사항 없음 | |
| filterIds | 나열 | N/A | |
| limitExempt | 불 | N/A | |
| internal | 불 | N/A | |
| readOnly | 불 | N/A | |
| parentId | Integer | N/A | |
| Email_Event | id | String | 해당 사항 없음 |
| type | String | 해당 사항 없음 | |
| 수신자 | String | 해당 사항 없음 | |
| portalId | Integer | N/A | |
| appId | Integer | N/A | |
| appName | String | 해당 사항 없음 | |
| emailCampaignId | Long | N/A | |
| attempt | Integer | N/A | |
| created | Long | N/A | |
| sentBy | Struct | N/A | |
| smtpId | String | 해당 사항 없음 | |
| 응답 | String | 해당 사항 없음 | |
| subject | String | 해당 사항 없음 | |
| cc | 나열 | N/A | |
| bcc | 나열 | N/A | |
| replyTo | 나열 | N/A | |
| from | String | 해당 사항 없음 | |
| dropReason | String | 해당 사항 없음 | |
| dropMessage | String | 해당 사항 없음 | |
| 브라우저 | Struct | N/A | |
| userAgent | String | 해당 사항 없음 | |
| 기간 | Long | N/A | |
| location | Struct | N/A | |
| filteredEvent | 불 | N/A | |
| deviceType | String | 해당 사항 없음 | |
| suppressedReason | String | 해당 사항 없음 | |
| suppressedMessage | String | 해당 사항 없음 | |
| CRM_Pipeline | pipelineId | String | 해당 사항 없음 |
| createdAt | Long | N/A | |
| updatedAt | Long | N/A | |
| objectType | String | 해당 사항 없음 | |
| 레이블 | String | 해당 사항 없음 | |
| displayOrder | Integer | N/A | |
| 활성화 | 불 | N/A | |
| 스테이지 | 나열 | N/A | |
| objectTypeId | String | 해당 사항 없음 | |
| 기본값 | 불 | N/A |
쿼리 파티셔닝
Spark에서 동시성을 활용하려는 경우 추가 Spark 옵션(PARTITION_FIELD, LOWER_BOUND, UPPER_BOUND, NUM_PARTITIONS)을 제공할 수 있습니다. 이러한 파라미터를 사용하면 Spark 작업에서 동시에 실행할 수 있는 NUM_PARTITIONS개의 하위 쿼리로 원래 쿼리가 분할됩니다.
PARTITION_FIELD: 쿼리 분할에 사용할 필드의 이름입니다.LOWER_BOUND: 선택한 파티션 필드의 하한 값(경계 포함).DateTime 필드의 경우 ISO 형식의 값이 허용됩니다.
유효한 값의 예제:
“2024-01-01T10:00:00.115Z"UPPER_BOUND: 선택한 파티션 필드의 상한 값(경계 제외).NUM_PARTITIONS: 파티션 수.
다음 표에서는 엔터티 분할 필드 지원 세부 정보를 설명합니다.
| 엔터티 이름 | 분할 필드 | 데이터 유형 |
|---|---|---|
| contact | hs_object_id | Long |
| createdate, lastmodifieddate | DateTime | |
| company | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| deal | hs_object_id | Long |
| createdate, hs_createdate, hs_lastmodifieddate | DateTime | |
| ticket | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| product | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| custom_object | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| call | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| 이메일 | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| 회의 | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| note | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| task | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| postal_mail | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime |
예시:
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" }