前提条件
読み取り元の 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 | はい | いいえ | はい | はい | はい |
発注書 | はい | いいえ | はい | はい | はい |
Subsidiary | はい | いいえ | はい | はい | はい |
Vendor | はい | いいえ | はい | はい | はい |
Vendor Bill | はい | いいえ | はい | はい | はい |
Vendor Return Authorization | はい | いいえ | はい | はい | はい |
Time Bill | はい | いいえ | はい | はい | はい |
Customer Payment | はい | いいえ | はい | はい | はい |
Fulfillment Request | はい | いいえ | はい | はい | はい |
例:
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, =, <, <=, >, >= |
DateTime | BETWEEN, <, <=, >, >= |
数値 | =, !=, <, <=, >, >= |
ブール値 | =, != |
パーティショニングクエリ
フィールドベースのパーティション分割
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
: パーティション数。
例:
oracle-netsuite_read = glueContext.create_dynamic_frame.from_options(
connection_type="oracle-netsuite",
connection_options={
"connectionName": "connectionName",
"ENTITY_NAME": "company",
"API_VERSION": "v3",
"PARTITION_FIELD": "hs_object_id"
"LOWER_BOUND": "50"
"UPPER_BOUND": "16726619290"
"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"
}