

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

 **Pré-requisitos** 
+  Um objeto do Google Analytics 4 do qual você deseja ler. Consulte a tabela de entidades compatíveis abaixo para verificar as entidades disponíveis. 

 **Entidades compatíveis** 


| Entidade | Pode ser filtrada | Oferece suporte a limite | Oferece suporte a Ordenar por | Oferece suporte a Selecionar \$1 | Oferece suporte a particionamento | 
| --- | --- | --- | --- | --- | --- | 
| Relatório em tempo real | Sim | Sim | Sim | Sim | Não | 
| Relatório principal | Sim | Sim | Sim | Sim | Sim | 

 **Exemplo** 

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

 **Detalhes de entidades e campos do Google Analytics 4** 


| Entidade | Campo | Tipo de dado | Operadores com suporte | 
| --- | --- | --- | --- | 
| Relatório principal | Campos dinâmicos |  |  | 
| Relatório principal | Campos de dimensão | String | LIKE, = | 
| Relatório principal | Campos de dimensão | Data | LIKE, = | 
| Relatório principal | Campos de métricas | String | >, <, >=, <=, = BETWEEN | 
| Relatório principal | Dimensão personalizada e campos de métricas personalizados | String | NA | 
| Relatório em tempo real | appVersion | String | LIKE, = | 
| Relatório em tempo real | audienceId | String | LIKE, = | 
| Relatório em tempo real | audienceName | String | LIKE, = | 
| Relatório em tempo real | city | String | LIKE, = | 
| Relatório em tempo real | cityId | String | LIKE, = | 
| Relatório em tempo real | country | String | LIKE, = | 
| Relatório em tempo real | countryId | String | LIKE, = | 
| Relatório em tempo real | deviceCategory | String | LIKE, = | 
| Relatório em tempo real | eventName | String | LIKE, = | 
| Relatório em tempo real | minutesAgo | String | LIKE, = | 
| Relatório em tempo real | platform | String | LIKE, = | 
| Relatório em tempo real | streamId | String | LIKE, = | 
| Relatório em tempo real | streamName | String | LIKE, = | 
| Relatório em tempo real | unifiedScreenName | String | LIKE, = | 
| Relatório em tempo real | activeUsers | String | >, <, >=, <=, = BETWEEN | 
| Relatório em tempo real | conversões | String | >, <, >=, <=, = BETWEEN | 
| Relatório em tempo real | eventCount | String | >, <, >=, <=, = BETWEEN | 
| Relatório em tempo real | screenPageViews | String | >, <, >=, <=, = BETWEEN | 

 **Particionamento de consultas** 

1.  **Particionamento baseado em filtros** 

    Podem ser fornecidas as opções adicionais do Spark `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` e `NUM_PARTITIONS` se você quiser utilizar a simultaneidade no Spark. Com esses parâmetros, a consulta original seria dividida em `NUM_PARTITIONS` subconsultas, que poderiam ser executadas pelas tarefas do Spark simultaneamente. 
   +  `PARTITION_FIELD`: o nome do campo a ser usado para particionar a consulta. 
   +  `LOWER_BOUND`: um valor limite inferior inclusivo do campo de partição escolhido. 

      Na data, aceitamos o formato de data do Spark usado em consultas SQL do Spark. Exemplo de valores válidos: `"2024-02-06"`. 
   +  `UPPER_BOUND`: um valor limite superior exclusivo do campo de partição escolhido. 
   +  `NUM_PARTITIONS`: número de partições. 

    **Exemplo** 

   ```
   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.  **Partição com base em registros** 

    Opções adicionais `NUM_PARTITIONS` do Spark poderão ser fornecidas caso você deseje utilizar a simultaneidade no Spark. Com esses parâmetros, a consulta original seria dividida em `NUM_PARTITIONS` subconsultas, que poderiam ser executadas pelas tarefas do Spark simultaneamente. 
   +  `NUM_PARTITIONS`: número de partições. 

    **Exemplo** 

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