从 Domo 实体中读取内容 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

从 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_FIELDLOWER_BOUNDUPPER_BOUNDNUM_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" }