本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 Oracle NetSuite 實體中讀取
必要條件
您想要從中讀取的 Oracle NetSuite 物件。您將需要物件名稱,例如 deposit 或 timebill。下表顯示支援的實體。
來源的支援實體:
| 實體 | 可以篩選 | 支援排序依據 | 支援限制 | 支援 SELECT * | 支援分區 |
|---|---|---|---|---|---|
| 訂金 | 是 | 否 | 是 | 是 | 是 |
| 說明項目 | 是 | 否 | 是 | 是 | 是 |
| 庫存項目 | 是 | 否 | 是 | 是 | 是 |
| 項目履行 | 是 | 否 | 是 | 是 | 是 |
| 項目群組 | 是 | 否 | 是 | 是 | 是 |
| 日誌項 | 是 | 否 | 是 | 是 | 是 |
| 非庫存購買項目 | 是 | 否 | 是 | 是 | 是 |
| 非庫存轉售項目 | 是 | 否 | 是 | 是 | 是 |
| 非庫存銷售項目 | 是 | 否 | 是 | 是 | 是 |
| 購買訂單 | 是 | 否 | 是 | 是 | 是 |
| 附屬公司 | 是 | 否 | 是 | 是 | 是 |
| 廠商 | 是 | 否 | 是 | 是 | 是 |
| 廠商帳單 | 是 | 否 | 是 | 是 | 是 |
| 供應商退貨授權 | 是 | 否 | 是 | 是 | 是 |
| 時間帳單 | 是 | 否 | 是 | 是 | 是 |
| 客戶付款 | 是 | 否 | 是 | 是 | 是 |
| 履行請求 | 是 | 否 | 是 | 是 | 是 |
| 項目 | 是 | 是 | 是 | 是 | 是 |
| 交易行 | 是 | 是 | 是 | 是 | 是 |
| 交易會計行 | 是 | 是 | 是 | 是 | 是 |
| 自訂記錄類型 (動態) | 是 | 是 | 是 | 是 | 是 |
範例:
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 會在選取的實體下動態載入可用欄位。視欄位的資料類型而定,其支援下列篩選條件運算子。
| 欄位資料類型 | 支援的篩選條件運算子 |
|---|---|
| String | LIKE, =, != |
| 日期 | BETWEEN, =, <, <=, >, >= |
| DateTime | BETWEEN, <, <=, >, >= |
| 數值 | =, !=, <, <=, >, >= |
| Boolean | =, != |
篩選條件表達式中布林值的預期輸入格式:
| 實體 | 布林值 "true" 值格式 | 布林值 "false" 值格式 | 範例 |
|---|---|---|---|
| 「項目」、「交易行」、「交易會計行」和「自訂記錄類型」實體 | T 或 t | F 或 f | isinactive = "T" 或 isinactive = "t" |
| 所有其他實體 | true | false | isinactive = true |
分區查詢
欄位型分區
Oracle NetSuite 連接器具有動態中繼資料,以便動態選擇欄位型分區的支援欄位。資料類型為 Integer、BigInteger、Date 或 DateTime 的欄位支援欄位型分區。
如果想要在 Spark 中使用並行,可以提供其他 Spark 選項 PARTITION_FIELD、LOWER_BOUND、UPPER_BOUND 和 NUM_PARTITIONS。使用這些參數,原始查詢會分區為可由 Spark 任務並行執行的子查詢的 NUM_PARTITIONS 數目。
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。使用此參數,原始查詢會分區為可由 Spark 任務並行執行的子查詢的 NUM_PARTITIONS 數目。
在記錄型分區中,會從 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" }