

# Lectura desde entidades de Google Analytics 4
<a name="googleanalytics-reading-from-entities"></a>

 **Requisitos previos** 
+  Un objeto de Google Analytics 4 desde el cual le gustaría leer. Consulte la tabla de entidades compatibles que aparece a continuación para comprobar las entidades disponibles. 

 **Entidades compatibles** 


| Entidad | Se puede filtrar | Admite límite | Admite Ordenar por | Admite Seleccionar \$1 | Admite Partición | 
| --- | --- | --- | --- | --- | --- | 
| Informe en tiempo real | Sí | Sí | Sí | Sí | No | 
| Informe principal | Sí | Sí | Sí | Sí | Sí | 

 **Ejemplo** 

```
googleAnalytics4_read = glueContext.create_dynamic_frame.from_options(
    connection_type="GoogleAnalytics4",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v1beta"
    }
```

 **Detalles de entidades y campos de Google Analytics 4** 


| Entidad | Campo | Tipo de datos | Operadores admitidos | 
| --- | --- | --- | --- | 
| Informe principal | Campos dinámicos |  |  | 
| Informe principal | Campos de dimensiones | Cadena | LIKE, = | 
| Informe principal | Campos de dimensiones | Date | LIKE, = | 
| Informe principal | Campos métricos | Cadena | >, <, >=, <=, = BETWEEN | 
| Informe principal | Dimensiones personalizadas y campos métricos personalizados | Cadena | N/D | 
| Informe en tiempo real | AppVersion | Cadena | LIKE, = | 
| Informe en tiempo real | audienceId | Cadena | LIKE, = | 
| Informe en tiempo real | audienceName | Cadena | LIKE, = | 
| Informe en tiempo real | ciudad | Cadena | LIKE, = | 
| Informe en tiempo real | cityId | Cadena | LIKE, = | 
| Informe en tiempo real | país | Cadena | LIKE, = | 
| Informe en tiempo real | countryId | Cadena | LIKE, = | 
| Informe en tiempo real | deviceCategory | Cadena | LIKE, = | 
| Informe en tiempo real | eventName | Cadena | LIKE, = | 
| Informe en tiempo real | minutesAgo | Cadena | LIKE, = | 
| Informe en tiempo real | platform | Cadena | LIKE, = | 
| Informe en tiempo real | streamId | Cadena | LIKE, = | 
| Informe en tiempo real | streamName | Cadena | LIKE, = | 
| Informe en tiempo real | unifiedScreenName | Cadena | LIKE, = | 
| Informe en tiempo real | activeUsers | Cadena | >, <, >=, <=, = BETWEEN | 
| Informe en tiempo real | conversions | Cadena | >, <, >=, <=, = BETWEEN | 
| Informe en tiempo real | eventCount | Cadena | >, <, >=, <=, = BETWEEN | 
| Informe en tiempo real | screenPageViews | Cadena | >, <, >=, <=, = BETWEEN | 

 **Consultas de partición** 

1.  **Partición basada en filtros** 

    Puede proporcionar las opciones adicionales de Spark `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` y `NUM_PARTITIONS` si quiere usar 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 usará para particionar la consulta. 
   +  `LOWER_BOUND`: un valor de límite inferior inclusivo del campo de partición elegido. 

      Para la fecha, aceptamos el formato de fecha de Spark que se usa en las consultas de Spark SQL. Ejemplos de valores válidos: `"2024-02-06"`. 
   +  `UPPER_BOUND`: un valor límite superior exclusivo del campo de partición elegido. 
   +  `NUM_PARTITIONS`: el número de particiones. 

    **Ejemplo** 

   ```
   googleAnalytics4_read = glueContext.create_dynamic_frame.from_options(
       connection_type="GoogleAnalytics4",
       connection_options={
           "connectionName": "connectionName",
           "ENTITY_NAME": "entityName",
           "API_VERSION": "v1beta",
           "PARTITION_FIELD": "date"
           "LOWER_BOUND": "2022-01-01"
           "UPPER_BOUND": "2024-01-02"
           "NUM_PARTITIONS": "10"
       }
   ```

1.  **Partición basada en registros** 

    Puede proporcionar las opciones adicionales de Spark `NUM_PARTITIONS` si quiere usar 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. 
   +  `NUM_PARTITIONS`: el número de particiones. 

    **Ejemplo** 

   ```
   googleAnalytics4_read = glueContext.create_dynamic_frame.from_options(
       connection_type="GoogleAnalytics4",
       connection_options={
           "connectionName": "connectionName",
           "ENTITY_NAME": "entityName",
           "API_VERSION": "v1beta",
           "NUM_PARTITIONS": "10"
       }
   ```