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