

# Google Analytics 4 엔터티에서 읽기
<a name="googleanalytics-reading-from-entities"></a>

 **사전 조건** 
+  읽으려는 Google Analytics 4 객체. 사용 가능한 엔터티를 확인하려면 아래 지원되는 엔터티 테이블을 참조하세요.

 **지원되는 엔터티** 


| 개체 | 필터링 가능 | 제한 지원 | 정렬 기준 지원 | Select \* 지원 | 분할 지원 | 
| --- | --- | --- | --- | --- | --- | 
| 실시간 보고서 | 예 | 예 | 예 | 예 | 아니요 | 
| 코어 보고서 | 예 | 예 | 예 | 예 | 예 | 

 **예제** 

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

 **Google Analytics 4 엔터티 및 필드 세부 정보** 


| 개체 | 필드 | 데이터 형식 | 지원되는 연산자 | 
| --- | --- | --- | --- | 
| 코어 보고서 | 동적 필드 |  |  | 
| 코어 보고서 | 차원 필드 | String | LIKE, = | 
| 코어 보고서 | 차원 필드 | 날짜 | LIKE, = | 
| 코어 보고서 | 지표 필드 | String | >, <, >=, <=, = BETWEEN | 
| 코어 보고서 | 사용자 지정 차원 및 사용자 지정 지표 필드 | String | NA | 
| 실시간 보고서 | appVersion | String | LIKE, = | 
| 실시간 보고서 | audienceId | String | LIKE, = | 
| 실시간 보고서 | audienceName | String | LIKE, = | 
| 실시간 보고서 | city | String | LIKE, = | 
| 실시간 보고서 | cityId | String | LIKE, = | 
| 실시간 보고서 | country | String | LIKE, = | 
| 실시간 보고서 | countryId | String | LIKE, = | 
| 실시간 보고서 | deviceCategory | String | LIKE, = | 
| 실시간 보고서 | eventName | String | LIKE, = | 
| 실시간 보고서 | minutesAgo | String | LIKE, = | 
| 실시간 보고서 | platform | String | LIKE, = | 
| 실시간 보고서 | streamId | String | LIKE, = | 
| 실시간 보고서 | streamName | String | LIKE, = | 
| 실시간 보고서 | unifiedScreenName | String | LIKE, = | 
| 실시간 보고서 | activeUsers | String | >, <, >=, <=, = BETWEEN | 
| 실시간 보고서 | conversions | String | >, <, >=, <=, = BETWEEN | 
| 실시간 보고서 | eventCount | String | >, <, >=, <=, = BETWEEN | 
| 실시간 보고서 | screenPageViews | String | >, <, >=, <=, = BETWEEN | 

 **분할 쿼리** 

1.  **필터 기반 분할** 

    Spark에서 동시성을 활용하려는 경우 추가 Spark 옵션(`PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND`, `NUM_PARTITIONS`)을 제공할 수 있습니다. 이러한 파라미터를 사용하면 Spark 태스크에서 동시에 실행할 수 있는 `NUM_PARTITIONS`개의 하위 쿼리로 원본 쿼리가 분할됩니다.
   +  `PARTITION_FIELD`: 쿼리 분할에 사용할 필드의 이름입니다.
   +  `LOWER_BOUND`: 선택한 파티션 필드의 하한 값(경계 포함).

      날짜의 경우 Spark SQL 쿼리에 사용된 Spark 날짜 형식을 허용합니다. 유효한 값의 예제: `"2024-02-06"`.
   +  `UPPER_BOUND`: 선택한 파티션 필드의 상한 값(경계 제외).
   +  `NUM_PARTITIONS`: 파티션 수.

    **예제** 

   ```
   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.  **레코드 기반 분할** 

    Spark에서 동시성을 활용하려는 경우 추가 Spark 옵션(`NUM_PARTITIONS`)을 제공할 수 있습니다. 이러한 파라미터를 사용하면 Spark 태스크에서 동시에 실행할 수 있는 `NUM_PARTITIONS`개의 하위 쿼리로 원본 쿼리가 분할됩니다.
   +  `NUM_PARTITIONS`: 파티션 수.

    **예제** 

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