Domo エンティティからの読み取り
前提条件
読み取り元の Domo オブジェクト。Data Set や Data Permission Policies などのオブジェクト名が必要です。次の表に、サポートされているエンティティを示します。
ソースに対応するエンティティ:
| エンティティ | フィルタリング可能 | 制限をサポートする | Order By をサポートする | Select * をサポートする | パーティション分割をサポートする |
|---|---|---|---|---|---|
| データセット | はい | あり | あり | あり | あり |
| Data Permission Policies | なし | なし | なし | あり | なし |
例:
Domo_read = glueContext.create_dynamic_frame.from_options( connection_type="domo", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "dataset", "API_VERSION": "v1" }
Domo エンティティとフィールドの詳細
静的メタデータを持つエンティティ:
| エンティティ | フィールド | データ型 | サポートされている演算子 |
|---|---|---|---|
| Data Permission Policies | id | Long | 該当なし |
| type | 文字列 | 該当なし | |
| 名前 | 文字列 | 該当なし | |
| フィルター | リスト | 該当なし | |
| ユーザー | リスト | 該当なし | |
| virtualUsers | リスト | 該当なし | |
| グループ | リスト | 該当なし |
次のエンティティについて、Domo はメタデータを動的に取得するエンドポイントを提供するため、演算子のサポートはエンティティのデータ型レベルでキャプチャされます。
| エンティティ | データ型 | サポートされている演算子 |
|---|---|---|
| データセット | 整数 | =, !=, <, >, >=, <= |
| Long | =, !=, <, >, >=, <= | |
| 文字列 | =、!=、CONTAINS | |
| 日付 | =、>、>=、<、<=、BETWEEN | |
| DateTime | =、>、>=、<、<=、BETWEEN | |
| ブール値 | =, != | |
| 倍精度 | =, !=, <, >, >=, <= | |
| リスト | 該当なし | |
| Struct | 該当なし |
パーティショニングクエリ
フィールドベースのパーティション分割
Spark で同時実行を使用する場合は、追加の Spark オプション PARTITION_FIELD、LOWER_BOUND、UPPER_BOUND、および NUM_PARTITIONS を指定できます。これらのパラメータを使用すると、元のクエリは Spark タスクで同時に実行できるサブクエリの NUM_PARTITIONS の数に分割されます。
PARTITION_FIELD: クエリのパーティション化に使用するフィールドの名前。LOWER_BOUND: 選択したパーティションフィールドの包括的な下限値。DateTime フィールドでは、ISO 形式の値を受け入れます。
有効な値の例:
"2023-01-15T11:18:39.205Z"Date フィールドでは、ISO 形式の値を受け入れます。
有効な値の例:
"2023-01-15"UPPER_BOUND: 選択したパーティションフィールドの排他的上限値。有効な値の例:
"2023-02-15T11:18:39.205Z"NUM_PARTITIONS: パーティション数。
エンティティごとのパーティション分割フィールドのサポートの詳細は、次の表にまとめられています。
| エンティティ名 | パーティション分割フィールド | データ型 |
|---|---|---|
| データセット | 任意の日付/時刻ベースのフィールド [動的メタデータ] | DateTime |
| 任意の日付ベースのフィールド [動的メタデータ] | 日付 |
例:
Domo_read = glueContext.create_dynamic_frame.from_options( connection_type="domo", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "dataset", "API_VERSION": "v1", "PARTITION_FIELD": "permissionTime" "LOWER_BOUND": "2023-01-15T11:18:39.205Z" "UPPER_BOUND": "2023-02-15T11:18:39.205Z" "NUM_PARTITIONS": "2" }
レコードベースのパーティション分割
Spark で並行処理を使用する場合は、追加の Spark オプション NUM_PARTITIONS を指定できます。これらのパラメータを使用すると、元のクエリは Spark タスクで同時に実行できるサブクエリの NUM_PARTITIONS の数に分割されます。
レコードベースのパーティショニングでは、存在するレコードの合計数が Domo からクエリされ、指定された NUM_PARTITIONS 数で割られます。その後、結果のレコード数は、各サブクエリによって同時に取得されます。
例:
Domo_read = glueContext.create_dynamic_frame.from_options( connection_type="domo", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "dataset", "API_VERSION": "v1", "NUM_PARTITIONS": "2" }