Lesen aus HubSpot-Entitäten
Voraussetzung
Ein HubSpot-Objekt, aus dem gelesen werden soll. Sie benötigen den Objektnamen wie Kontakt oder Aufgabe. Die folgenden Tabellen zeigen die unterstützten Entitäten für die synchrone Quelle.
Unterstützte Entitäten für synchrone Quelle
| Entität | API-Version | Kann gefiltert werden | Unterstützt Limit | Unterstützt „Sortieren nach“ | Unterstützt „* auswählen“ | Unterstützt Partitionierung |
|---|---|---|---|---|---|---|
| Kampagnen | v1 | Nein | Ja | Nein | Ja | Nein |
| Unternehmen | v3 | Ja | Ja | Ja | Ja | Ja |
| Kontakte | v3 | Ja | Ja | Ja | Ja | Ja |
| Kontaktlisten | v1 | Nein | Ja | Nein | Ja | Nein |
| Angebote | v3 | Ja | Ja | Ja | Ja | Ja |
| CRM-Pipeline (Angebots-Pipelines) | v1 | Nein | Nein | Nein | Ja | Nein |
| E-Mail-Ereignisse | v1 | Nein | Ja | Nein | Ja | Nein |
| Calls | v3 | Ja | Ja | Ja | Ja | Ja |
| Hinweise | v3 | Ja | Ja | Ja | Ja | Ja |
| E-Mails | v3 | Ja | Ja | Ja | Ja | Ja |
| Meetings | v3 | Ja | Ja | Ja | Ja | Ja |
| Aufgaben | v3 | Ja | Ja | Ja | Ja | Ja |
| Briefe | v3 | Ja | Ja | Ja | Ja | Ja |
| Benutzerdefinierte Objekte | v3 | Ja | Ja | Ja | Ja | Ja |
| Formulare | v2 | Nein | Nein | Nein | Ja | Nein |
| Eigentümer | v3 | Nein | Ja | Nein | Ja | Nein |
| Produkte | v3 | Ja | Ja | Ja | Ja | Ja |
| Tickets | v3 | Ja | Ja | Ja | Ja | Ja |
| Workflows | v3 | Nein | Nein | Nein | Ja | Nein |
| Zuordnungen | v4 | Ja | Nein | Nein | Ja | Nein |
| Bezeichnung für Zuordnungen | v4 | Nein | Nein | Nein | Ja | Nein |
Beispiel:
hubspot_read = glueContext.create_dynamic_frame.from_options( connection_type="hubspot", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "contact", "API_VERSION": "v3" }
Unterstützte Entitäten für asynchrone Quelle
| Entität | API-Version | Kann gefiltert werden | Unterstützt Limit | Unterstützt „Sortieren nach“ | Unterstützt „* auswählen“ | Unterstützt Partitionierung |
|---|---|---|---|---|---|---|
| Unternehmen | v3 | Ja | Nein | Ja | Ja | Nein |
| Kontakte | v3 | Ja | Nein | Ja | Ja | Nein |
| Angebote | v3 | Ja | Nein | Ja | Ja | Nein |
| Calls | v3 | Ja | Nein | Ja | Ja | Nein |
| Hinweise | v3 | Ja | Nein | Ja | Ja | Nein |
| E-Mails | v3 | Ja | Nein | Ja | Ja | Nein |
| Meetings | v3 | Ja | Nein | Ja | Ja | Nein |
| Aufgaben | v3 | Ja | Nein | Ja | Ja | Nein |
| Briefe | v3 | Ja | Nein | Ja | Ja | Nein |
| Benutzerdefinierte Objekte | v3 | Ja | Nein | Ja | Ja | Nein |
| Produkte | v3 | Ja | Nein | Ja | Ja | Nein |
| Tickets | v3 | Ja | Nein | Ja | Ja | Nein |
Beispiel:
hubspot_read = glueContext.create_dynamic_frame.from_options( connection_type="hubspot", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "contact", "API_VERSION": "v3", "TRANSFER_MODE": "ASYNC" }
Angaben zur HubSpot-Entität und zum Feld:
HubSpot-API v4:
| Entität | API-Version | Feld | Datentyp | Unterstützte Operatoren |
|---|---|---|---|---|
| Zuordnungsbezeichnung | v4 | Kategorie | String | N/A |
| typeId | Ganzzahl | N/A | ||
| Bezeichnung | String | N/A | ||
| Zuordnungen | from | Struct | N/A | |
| id | String | "=" | ||
| to | Auflisten | N/A |
Anmerkung
Für das Associations-Objekt müssen Sie, um Zuordnungen zwischen zwei Objekten abzurufen, bei der Erstellung eines AWS Glue-Auftrags die „from Id” (die ID des ersten Objekts) über einen obligatorischen Filter angeben. Wenn Sie in diesem Fall Zuordnungen für mehrere from-IDs abrufen möchten, müssen Sie in der where-Klausel mehrere IDs angeben. Beispiel: Um Associations für die Kontakt-IDs „1“ und „151“ abzurufen, müssen Sie einen Filter als where id=1 AND id=151 angeben.
HubSpot-API v3:
| Entität | Feld | Datentyp | Unterstützte Operatoren |
|---|---|---|---|
| Eigentümer | firstName | String | N/A |
| lastName | String | N/A | |
| createdAt | DateTime | N/A | |
| archived | Boolesch | N/A | |
| Teams | Auflisten | N/A | |
| id | String | N/A | |
| userId | Ganzzahl | N/A | |
| String | N/A | ||
| updatedAt | DateTime | N/A | |
| Workflow | Name | String | N/A |
| id | Ganzzahl | N/A | |
| Typ | String | N/A | |
| aktiviert | Boolesch | N/A | |
| insertedAt | Long | N/A | |
| updatedAt | Long | N/A | |
| contactListIds | Struct | N/A | |
| personaTagIds | Auflisten | N/A |
Für die folgenden Entitäten stellt HubSpot Endpunkte zum dynamischen Abrufen von Metadaten bereit, sodass die Operatorunterstützung auf Datentypebene für jede Entität erfasst wird.
Anmerkung
DML_STATUS ist ein virtuelles Feld, das jedem Datensatz zur Laufzeit hinzugefügt wird, um den Status (ERSTELLT/AKTUALISIERT) im synchronen Modus zu bestimmen. Der CONTAINS/LIKE-Operator wird im asynchronen Modus nicht unterstützt.
| Entität | Datentyp | Unterstützte Operatoren |
|---|---|---|
| Kontakt | Ganzzahl | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| Datum | N/A | |
| DateTime | "between" | |
| Boolesch | "=" | |
| Auflisten | N/A | |
| Struct | N/A | |
| Unternehmen | Ganzzahl | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| Datum | N/A | |
| DateTime | "between" | |
| Boolesch | "=" | |
| Auflisten | N/A | |
| Struct | N/A | |
| Angebot | Ganzzahl | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| Datum | N/A | |
| DateTime | "between" | |
| Boolesch | "=" | |
| Auflisten | N/A | |
| Struct | N/A | |
| Ticket | Ganzzahl | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| Datum | N/A | |
| DateTime | "between" | |
| Boolesch | "=" | |
| Auflisten | N/A | |
| Struct | N/A | |
| Produkt | Ganzzahl | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| Datum | N/A | |
| DateTime | "between" | |
| Boolesch | "=" | |
| Auflisten | N/A | |
| Struct | N/A | |
| Benutzerdefiniertes Objekt | Ganzzahl | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| Datum | N/A | |
| DateTime | "between" | |
| Boolesch | "=" | |
| Auflisten | N/A | |
| Struct | N/A | |
| Rufen Sie | Ganzzahl | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| Datum | N/A | |
| DateTime | "between" | |
| Boolesch | "=" | |
| Auflisten | N/A | |
| Struct | N/A | |
| Ganzzahl | "=, !=, <, >, >=, <=" | |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| Datum | N/A | |
| DateTime | "between" | |
| Boolesch | "=" | |
| Auflisten | N/A | |
| Struct | N/A | |
| Meeting | Ganzzahl | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| Datum | N/A | |
| DateTime | "between" | |
| Boolesch | "=" | |
| Auflisten | N/A | |
| Struct | N/A | |
| Hinweis | Ganzzahl | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| Datum | N/A | |
| DateTime | "between" | |
| Boolesch | "=" | |
| Auflisten | N/A | |
| Struct | N/A | |
| Aufgabe | Ganzzahl | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| Datum | N/A | |
| DateTime | "between" | |
| Boolesch | "=" | |
| Auflisten | N/A | |
| Struct | N/A | |
| Brief | Ganzzahl | "=, !=, <, >, >=, <=" |
| Long | "=, !=, <, >, >=, <=" | |
| String | "=, !=, LIKE" | |
| Datum | N/A | |
| DateTime | "between" | |
| Boolesch | "=" | |
| Auflisten | N/A | |
| Struct | N/A |
HubSpot-API v2:
| Entität | Feld | Datentyp | Unterstützte Operatoren |
|---|---|---|---|
| Formular | portalId | Ganzzahl | N/A |
| guid | String | N/A | |
| Name | String | N/A | |
| Methode | String | N/A | |
| cssClass | String | N/A | |
| redirect | String | N/A | |
| submitText | String | N/A | |
| notifyRecipients | String | N/A | |
| createdAt | Long | N/A | |
| updatedAt | Long | N/A | |
| ignoreCurrentValues | Boolesch | N/A | |
| deletable | Boolesch | N/A | |
| inlineMessage | Boolesch | N/A | |
| captchaEnabled | Boolesch | N/A | |
| cloneable | Boolesch | N/A | |
| formFieldGroups | Auflisten | N/A | |
| editable | Boolesch | N/A | |
| deletedAt | Ganzzahl | N/A | |
| themeName | String | N/A | |
| parentId | Ganzzahl | N/A | |
| style | String | N/A | |
| isPublished | Boolesch | N/A | |
| publishAt | Ganzzahl | N/A | |
| unpublishAt | Ganzzahl | N/A | |
| publishedAt | Ganzzahl | N/A | |
| kickbackEmailWorkflowId | String | N/A | |
| kickbackEmailsJson | Ganzzahl | N/A | |
| customUid | String | N/A | |
| createMarketableContact | Boolesch | N/A | |
| editVersion | Ganzzahl | N/A | |
| thankYouMessageJson | String | N/A | |
| themeColor | String | N/A | |
| alwaysCreateNewCompany | Boolesch | N/A | |
| internalUpdatedAt | Long | N/A | |
| businessUnitId | Ganzzahl | N/A | |
| portableKey | String | N/A | |
| paymentSessionTemplateIds | Auflisten | N/A | |
| selectedExternalOptions | Auflisten | N/A |
HubSpot-API v1:
| Entität | Feld | Datentyp | Unterstützte Operatoren |
|---|---|---|---|
| Kampagne | id | Ganzzahl | N/A |
| appId | Ganzzahl | N/A | |
| appName | String | N/A | |
| lastUpdatedTime | Long | N/A | |
| Contact_List | dynamisch | Boolesch | N/A |
| Name | String | N/A | |
| portalId | Ganzzahl | N/A | |
| createdAt | Long | N/A | |
| listId | Ganzzahl | N/A | |
| updatedAt | Long | N/A | |
| ListType | String | N/A | |
| -Filter | Auflisten | N/A | |
| authorId | Ganzzahl | N/A | |
| metaData | Struct | N/A | |
| archived | Boolesch | N/A | |
| ilsFilterBranch | String | N/A | |
| filterIds | Auflisten | N/A | |
| limitExempt | Boolesch | N/A | |
| internal | Boolesch | N/A | |
| readOnly | Boolesch | N/A | |
| parentId | Ganzzahl | N/A | |
| Email_Event | id | String | N/A |
| Typ | String | N/A | |
| Empfänger | String | N/A | |
| portalId | Ganzzahl | N/A | |
| appId | Ganzzahl | N/A | |
| appName | String | N/A | |
| emailCampaignId | Long | N/A | |
| attempt | Ganzzahl | N/A | |
| created | Long | N/A | |
| sentBy | Struct | N/A | |
| smtpId | String | N/A | |
| response | String | N/A | |
| subject | String | N/A | |
| cc | Auflisten | N/A | |
| bcc | Auflisten | N/A | |
| replyTo | Auflisten | N/A | |
| from | String | N/A | |
| dropReason | String | N/A | |
| dropMessage | String | N/A | |
| Browser | Struct | N/A | |
| userAgent | String | N/A | |
| duration | Long | N/A | |
| location | Struct | N/A | |
| filteredEvent | Boolesch | N/A | |
| deviceType | String | N/A | |
| suppressedReason | String | N/A | |
| suppressedMessage | String | N/A | |
| CRM_Pipeline | pipelineId | String | N/A |
| createdAt | Long | N/A | |
| updatedAt | Long | N/A | |
| objectType | String | N/A | |
| Bezeichnung | String | N/A | |
| displayOrder | Ganzzahl | N/A | |
| aktiv | Boolesch | N/A | |
| Stufen | Auflisten | N/A | |
| objectTypeId | String | N/A | |
| default | Boolesch | N/A |
Partitionieren von Abfragen
Sie können die zusätzlichen Spark-Optionen PARTITION_FIELD, LOWER_BOUND, UPPER_BOUND und NUM_PARTITIONS angeben, wenn Sie Parallelität in Spark nutzen möchten. Mit diesen Parametern wird die ursprüngliche Abfrage in NUM_PARTITIONS Unterabfragen aufgeteilt, die von Spark-Aufgaben gleichzeitig ausgeführt werden können.
PARTITION_FIELD: der Name des Feldes, das zur Partitionierung der Abfrage verwendet werden soll.LOWER_BOUND: ein inklusiver Untergrenzwert des ausgewählten Partitionsfelds.Für das DateTime-Feld akzeptieren wir den Wert im ISO-Format.
Beispiele für gültigen Wert:
“2024-01-01T10:00:00.115Z"UPPER_BOUND: ein exklusiver Obergrenzwert des ausgewählten Partitionsfelds.NUM_PARTITIONS: die Anzahl der Partitionen.
In der folgenden Tabelle sind Details zur Unterstützung der Partitionierung von Entitäten beschrieben:
| Entity-Name | Partitionieren von Feldern | Datentyp |
|---|---|---|
| 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 | |
| Fahrkarte | 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 | |
| Aufruf | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| hs_object_id | Long | |
| createdate, hs_lastmodifieddate | DateTime | |
| meeting | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| note | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| Aufgabe | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime | |
| postal_mail | hs_object_id | Long |
| createdate, hs_lastmodifieddate | DateTime |
Beispiel:
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" }