从 Domo 实体中读取内容
先决条件
要从中读取内容的 Domo 对象。您会用到“数据集”或“数据权限策略”等对象名称。下表显示支持的实体。
源支持的实体:
实体 | 可以筛选 | 支持限制 | 支持排序依据 | 支持 Select * | 支持分区 |
---|---|---|---|---|---|
数据集 | 支持 | 是 | 是 | 是 | 是 |
数据权限策略 | 否 | 否 | 否 | 是 | 否 |
示例:
Domo_read = glueContext.create_dynamic_frame.from_options( connection_type="domo", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "dataset", "API_VERSION": "v1" }
Domo 实体和字段详细信息
具有静态元数据的实体:
实体 | 字段 | 数据类型 | 支持的运算符 |
---|---|---|---|
数据权限策略 | id | 长整型 | 不适用 |
type | 字符串 | 不适用 | |
名称 | 字符串 | 不适用 | |
filters | 列表 | 不适用 | |
用户 | 列表 | 不适用 | |
virtualUsers | 列表 | 不适用 | |
groups | 列表 | 不适用 |
对于以下实体,Domo 提供用于动态获取元数据的端点,以便在实体的数据类型级别捕获运算符支持。
实体 | 数据类型 | 支持的运算符 |
---|---|---|
数据集 | 整数 | =, !=, <, >, >=, <= |
长整型 | =, !=, <, >, >=, <= | |
字符串 | =, !=, CONTAINS | |
日期 | =, >, >=, <, <=, BETWEEN | |
日期时间 | =, >, >=, <, <=, BETWEEN | |
布尔值 | =, != | |
双精度 | =, !=, <, >, >=, <= | |
列表 | 不适用 | |
结构体 | 不适用 |
对查询进行分区
基于字段的分区
如果您想在 Spark 中利用并发,可以提供其他 Spark 选项:PARTITION_FIELD
、LOWER_BOUND
、UPPER_BOUND
和 NUM_PARTITIONS
。使用这些参数,原始查询将被拆分为 NUM_PARTITIONS
个子查询,这些子查询可以由 Spark 任务同时执行。
PARTITION_FIELD
:用于对查询进行分区的字段的名称。LOWER_BOUND
:所选分区字段的包含下限值。对于日期时间字段,我们接受 ISO 格式的值。
有效值示例:
"2023-01-15T11:18:39.205Z"
对于“日期”字段,我们接受 ISO 格式的值。
有效值示例:
"2023-01-15"
UPPER_BOUND
:所选分区字段的排除上限值。有效值示例:
"2023-02-15T11:18:39.205Z"
NUM_PARTITIONS
:分区的数量。
基于实体的分区字段支持详细信息如下表中所示:
实体名称 | 分区字段 | 数据类型 |
---|---|---|
数据集 | 任何基于日期/时间的字段 [动态元数据] | 日期时间 |
任何基于日期的字段 [动态元数据] | 日期 |
示例:
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
。使用此参数,原始查询将被拆分为 NUM_PARTITIONS
个子查询,这些子查询可以由 Spark 任务同时执行。
在基于记录的分区中,从 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" }