Oracle NetSuite エンティティからの読み取り
前提条件
読み取り元の Oracle NetSuite オブジェクト。deposit
または timebill
などのオブジェクト名が必要です。次の表に、サポートされているエンティティを示します。
ソースに対応するエンティティ:
エンティティ | フィルタリング可能 | Order By をサポートする | 制限をサポートする | SELECT * をサポートする | パーティション分割をサポートする |
---|---|---|---|---|---|
Deposit | あり | なし | あり | あり | あり |
Description Item | あり | なし | あり | あり | あり |
Inventory Item | あり | なし | あり | あり | あり |
Item Fulfillment | あり | なし | あり | あり | あり |
Item Group | あり | なし | あり | あり | あり |
Journal Entry | あり | なし | あり | あり | あり |
Non-Inventory Purchase Item | あり | なし | あり | あり | あり |
Non-Inventory Resale Item | あり | なし | あり | あり | あり |
Non-Inventory Sale Item | あり | なし | あり | あり | あり |
Purchase Order | あり | なし | あり | あり | あり |
Subsidiary | あり | なし | あり | あり | あり |
Vendor | あり | なし | あり | あり | あり |
Vendor Bill | あり | なし | あり | あり | あり |
Vendor Return Authorization | あり | なし | あり | あり | あり |
Time Bill | あり | なし | あり | あり | あり |
Customer Payment | あり | なし | あり | あり | あり |
Fulfillment Request | あり | なし | あり | あり | あり |
Item | はい | あり | あり | あり | あり |
Transaction Line | はい | あり | あり | あり | あり |
Transaction Accounting Line | はい | あり | あり | あり | あり |
Custom Record Types (動的) | はい | あり | あり | あり | あり |
例:
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, <, <=, >, >= |
数値 | =, !=, <, <=, >, >= |
ブール値 | =, != |
フィルター式のブール値に期待される入力形式:
エンティティ | ブール「true」値の形式 | ブール「false」値の形式 | 例 |
---|---|---|---|
Item、Transaction Line、Transaction Accounting Line、Custom Record Type の各エンティティ | 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" }