View a markdown version of this page

从 Oracle NetSuite 实体中读取 - AWS Glue

从 Oracle NetSuite 实体中读取

先决条件

您要从中读取内容的 Oracle NetSuite 对象。您将需要 deposit 或 timebill 等对象名称。下表显示支持的实体。

源支持的实体:

实体 可以筛选 支持排序依据 支持限制 支持 SELECT * 支持分区
定金 是 否 是 是 是
商品描述 是 否 是 是 是
库存商品 是 否 是 是 是
商品履行 是 否 是 是 是
商品组 是 否 是 是 是
日记账条目 是 否 是 是 是
非库存采购商品 是 否 是 是 是
非库存转售商品 是 否 是 是 是
非库存销售商品 是 否 是 是 是
采购订单 是 否 是 是 是
子公司 是 否 是 是 是
Vendor 是 否 是 是 是
供应商账单 是 否 是 是 是
供应商退货授权 是 否 是 是 是
工时账单 是 否 是 是 是
客户付款 是 否 是 是 是
配送请求 是 否 是 是 是
Item 支持 是 是 是 是
交易明细 支持 是 是 是 是
交易会计明细 支持 是 是 是 是
自定义记录类型(动态) 支持 是 是 是 是

示例:

netsuiteerp_read = glueContext.create_dynamic_frame.from_options( connection_type="netsuiteerp", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "deposit", "API_VERSION": "v1" } )

Oracle NetSuite 实体和字段详细信息:

Oracle NetSuite 会动态加载所选实体下的可用字段。根据字段的数据类型,它支持以下筛选运算符。

字段数据类型 支持的筛选运算符
字符串 LIKE, =, !=
日期 BETWEEN, =, <, <=, >, >=
日期时间 BETWEEN, <, <=, >, >=
数值 =, !=, <, <=, >, >=
布尔值 =, !=

筛选表达式中布尔值的预期输入格式:

实体 布尔值“true”的格式 布尔值“false”的格式 示例
项目、交易明细、交易会计明细和自定义记录类型实体 T 或 t F 或 f isinactive =“T”或 isinactive =“t”
所有其他实体 true false isinactive = true

对查询进行分区

基于字段的分区

Oracle NetSuite 连接器具有动态元数据,因此可以动态选择基于字段的分区所支持的字段。数据类型为整数、大整数、日期或日期时间的字段支持基于字段的分区。

如果您想在 Spark 中利用并发,可以提供其他 Spark 选项:PARTITION_FIELD、LOWER_BOUND、UPPER_BOUND 和 NUM_PARTITIONS。使用这些参数,原始查询将被拆分为 NUM_PARTITIONS 个子查询,这些子查询可以由 Spark 任务同时执行。

  • PARTITION_FIELD:用于对查询进行分区的字段的名称。

  • LOWER_BOUND:所选分区字段的包含下限值。

    对于时间戳字段,我们接受 Spark SQL 查询中使用的 Spark 时间戳格式。

    有效值示例:

    "TIMESTAMP \"1707256978123\"" "TIMESTAMP \"1702600882\"" "TIMESTAMP '2024-02-06T22:00:00:00.000Z'" "TIMESTAMP '2024-02-06T22:00:00:00Z'" "TIMESTAMP '2024-02-06'"
  • UPPER_BOUND:所选分区字段的排除上限值。

  • NUM_PARTITIONS:分区的数量。

示例:

netsuiteerp_read = glueContext.create_dynamic_frame.from_options( connection_type="netsuiteerp", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "deposit", "API_VERSION": "v1", "PARTITION_FIELD": "id", "LOWER_BOUND": "1", "UPPER_BOUND": "10000", "NUM_PARTITIONS": "10" }

基于记录的分区

如果您想在 Spark 中利用并发,可以提供附加 Spark 选项 NUM_PARTITIONS。使用此参数,原始查询将被拆分为 NUM_PARTITIONS 个子查询,这些子查询可以由 Spark 任务同时执行。

在基于记录的分区中,从 Oracle NetSuite API 查询现有的记录总数,将其除以提供的 NUM_PARTITIONS 数字,然后由每个子查询同时提取生成的记录数。

  • NUM_PARTITIONS:分区的数量。

示例:

netsuiteerp_read = glueContext.create_dynamic_frame.from_options( connection_type="netsuiteerp", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "deposit", "API_VERSION": "v1", "NUM_PARTITIONS": "3" }