

# Google Analytics 4 エンティティからの読み取り
<a name="googleanalytics-reading-from-entities"></a>

 **前提条件** 
+  読み取り元の Google Analytics 4 オブジェクト。使用可能なエンティティを確認するには、以下のサポートされているエンティティの表を参照してください。

 **サポートされているエンティティ** 


| エンティティ | フィルタリング可能 | 制限をサポートする | Order By をサポートする | Select \$1 をサポートする | パーティショニングをサポートする | 
| --- | --- | --- | --- | --- | --- | 
| リアルタイムレポート | はい | あり | あり | あり | なし | 
| コアレポート | はい | あり | あり | あり | あり | 

 **例** 

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

 **Google Analytics 4 エンティティとフィールドの詳細** 


| エンティティ | フィールド | データタイプ | サポートされている演算子 | 
| --- | --- | --- | --- | 
| コアレポート | 動的フィールド |  |  | 
| コアレポート | ディメンションフィールド | 文字列 | LIKE, = | 
| コアレポート | ディメンションフィールド | 日付 | LIKE, = | 
| コアレポート | メトリクスフィールド | 文字列 | >, <, >=, <=, = BETWEEN | 
| コアレポート | カスタムディメンションフィールドとカスタムメトリクスフィールド | 文字列 | NA | 
| リアルタイムレポート | appVersion | 文字列 | LIKE, = | 
| リアルタイムレポート | audienceId | 文字列 | LIKE, = | 
| リアルタイムレポート | audienceName | 文字列 | LIKE, = | 
| リアルタイムレポート | city | 文字列 | LIKE, = | 
| リアルタイムレポート | cityId | 文字列 | LIKE, = | 
| リアルタイムレポート | country | 文字列 | LIKE, = | 
| リアルタイムレポート | countryId | 文字列 | LIKE, = | 
| リアルタイムレポート | deviceCategory | 文字列 | LIKE, = | 
| リアルタイムレポート | eventName | 文字列 | LIKE, = | 
| リアルタイムレポート | minutesAgo | 文字列 | LIKE, = | 
| リアルタイムレポート | platform | 文字列 | LIKE, = | 
| リアルタイムレポート | streamId | 文字列 | LIKE, = | 
| リアルタイムレポート | streamName | 文字列 | LIKE, = | 
| リアルタイムレポート | unifiedScreenName | 文字列 | LIKE, = | 
| リアルタイムレポート | activeUsers | 文字列 | >, <, >=, <=, = BETWEEN | 
| リアルタイムレポート | conversions | 文字列 | >, <, >=, <=, = BETWEEN | 
| リアルタイムレポート | eventCount | 文字列 | >, <, >=, <=, = BETWEEN | 
| リアルタイムレポート | screenPageViews | 文字列 | >, <, >=, <=, = 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"
       }
   ```