

# Lectura desde entidades de HubSpot
<a name="hubspot-reading-from-entities"></a>

**Requisito previo**

Un objeto de HubSpot desde el cual le gustaría leer. Necesitará el nombre del objeto, como contacto o tarea. En la siguiente tabla se muestran las entidades admitidas para el origen sincrónico.

## Entidades admitidas para el origen sincrónico
<a name="sync-table"></a>


| Entidad | Versión de la API | Se puede filtrar | Admite límite | Admite Ordenar por | Admite Seleccionar \$1 | Admite particiones | 
| --- | --- | --- | --- | --- | --- | --- | 
| Campañas | v1 | No | Sí | No | Sí | No | 
| Empresas | v3 | Sí | Sí | Sí | Sí | Sí | 
| Contactos | v3 | Sí | Sí | Sí | Sí | Sí | 
| Listas de contactos | v1 | No | Sí | No | Sí | No | 
| Acuerdos | v3 | Sí | Sí | Sí | Sí | Sí | 
| Canalización de CRM (Canalizaciones de acuerdos) | v1 | No | No | No | Sí | No | 
| Eventos de correo electrónico | v1 | No | Sí | No | Sí | No | 
| Calls | v3 | Sí | Sí | Sí | Sí | Sí | 
| Notas | v3 | Sí | Sí | Sí | Sí | Sí | 
| Correos electrónicos | v3 | Sí | Sí | Sí | Sí | Sí | 
| Reuniones | v3 | Sí | Sí | Sí | Sí | Sí | 
| Tareas | v3 | Sí | Sí | Sí | Sí | Sí | 
| Correos | v3 | Sí | Sí | Sí | Sí | Sí | 
| Objetos personalizados | v3 | Sí | Sí | Sí | Sí | Sí | 
| Formularios | v2 | No | No | No | Sí | No | 
| Propietarios | v3 | No | Sí | No | Sí | No | 
| Productos | v3 | Sí | Sí | Sí | Sí | Sí | 
| Tickets | v3 | Sí | Sí | Sí | Sí | Sí | 
| Flujos de trabajo | v3 | No | No | No | Sí | No | 
| Associations | v4 | Sí | No | No | Sí | No | 
| Etiquetas de asociaciones | v4 | No | No | No | Sí | No | 

**Ejemplo:**

```
hubspot_read = glueContext.create_dynamic_frame.from_options(
    connection_type="hubspot",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "contact",
        "API_VERSION": "v3"
    }
```

## Entidades compatibles para el origen asincrónico
<a name="async-table"></a>


| Entidad | Versión de la API | Se puede filtrar | Admite límite | Admite Ordenar por | Admite Seleccionar \$1 | Admite particiones | 
| --- | --- | --- | --- | --- | --- | --- | 
| Empresas | v3 | Sí | No | Sí | Sí | No | 
| Contactos | v3 | Sí | No | Sí | Sí | No | 
| Acuerdos | v3 | Sí | No | Sí | Sí | No | 
| Calls | v3 | Sí | No | Sí | Sí | No | 
| Notas | v3 | Sí | No | Sí | Sí | No | 
| Correos electrónicos | v3 | Sí | No | Sí | Sí | No | 
| Reuniones | v3 | Sí | No | Sí | Sí | No | 
| Tareas | v3 | Sí | No | Sí | Sí | No | 
| Correos | v3 | Sí | No | Sí | Sí | No | 
| Objetos personalizados | v3 | Sí | No | Sí | Sí | No | 
| Productos | v3 | Sí | No | Sí | Sí | No | 
| Tickets | v3 | Sí | No | Sí | Sí | No | 

**Ejemplo:**

```
hubspot_read = glueContext.create_dynamic_frame.from_options(
    connection_type="hubspot",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "contact",
        "API_VERSION": "v3",
        "TRANSFER_MODE": "ASYNC"
    }
```

**Detalles de la entidad y el campo de HubSpot**:

**API de HubSpot v4**: 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/hubspot-reading-from-entities.html)

**nota**  
En el caso del objeto `Associations`, para buscar asociaciones entre dos objetos, es necesario proporcionar el “ID de origen” (el ID del primer objeto) mediante un filtro obligatorio al crear un trabajo de AWS Glue. En ese caso, si quiere buscar asociaciones para varios ID de origen, tiene que proporcionar varios ID en la cláusula `where`. Por ejemplo: para buscar `Associations` de los ID de contacto “1” y “151”, debe proporcionar un filtro como `where id=1 AND id=151`.

**API de HubSpot v3**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/hubspot-reading-from-entities.html)

Para las siguientes entidades, HubSpot proporciona puntos de conexión para obtener los metadatos de forma dinámica, de modo que la compatibilidad del operador se capture en el nivel del tipo de datos de cada entidad.

**nota**  
`DML_STATUS` es un campo virtual que se agrega a cada registro en tiempo de ejecución para determinar su estado (CREADO/ACTUALIZADO) en el modo sincrónico. El operador `CONTAINS/LIKE` no es compatible con el modo asíncrono.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/hubspot-reading-from-entities.html)

**API de HubSpot v2**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/hubspot-reading-from-entities.html)

**API de HubSpot v1**:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/hubspot-reading-from-entities.html)

## Consultas de particionamiento
<a name="hubspot-reading-partitioning-queries"></a>

Puede proporcionar las opciones adicionales de Spark `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` y `NUM_PARTITIONS` si quiere utilizar la simultaneidad en Spark. Con estos parámetros, la consulta original se dividiría en un número `NUM_PARTITIONS` de subconsultas que las tareas de Spark pueden ejecutar simultáneamente.
+ `PARTITION_FIELD`: el nombre del campo que se utilizará para particionar la consulta.
+ `LOWER_BOUND`: un valor de límite inferior **inclusivo** del campo de partición elegido.

  Para el campo DateTime, aceptamos el valor en formato ISO.

  Ejemplos de valor válido:

  ```
  “2024-01-01T10:00:00.115Z" 
  ```
+ `UPPER_BOUND`: un valor límite superior **exclusivo** del campo de partición elegido.
+ `NUM_PARTITIONS`: el número de particiones.

En la tabla siguiente, se describen los detalles de compatibilidad de campos de particiones de entidades:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/hubspot-reading-from-entities.html)

Ejemplo:

```
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"
    }
```