Lettura da entità Oracle NetSuite - AWS Glue

Lettura da entità Oracle NetSuite

Prerequisito

Un oggetto Oracle NetSuite da cui si desidera leggere. È necessario il nome dell'oggetto, come deposit o timebill. Nella tabella seguente sono illustrate le entità supportate.

Entità supportate come origine:

Entità Può essere filtrato Supporta Ordina per Supporta Limite Supporta SELEZIONA * Supporta il partizionamento
Deposito No
Descrizione articolo No
Articolo di inventario No
Evasione dell'articolo No
Gruppo di articoli No
Registrazione nel diario No
Articolo di acquisto non in inventario No
Articolo di rivendita non in inventario No
Articolo di vendita non in inventario No
Ordine di acquisto No
Affiliata No
Vendor No
Fattura fornitore No
Autorizzazione per il reso al fornitore No
Ora di fatturazione No
Pagamento cliente No
Richiesta di evasione No
Elemento
Linea di transazione
Linea di contabilità di transazione
Tipi di record personalizzati (dinamici)

Esempio:

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

Dettagli di entità e campo di Oracle NetSuite:

Oracle NetSuite carica dinamicamente i campi disponibili nell'entità selezionata. A seconda del tipo di dati di campo, supporta i seguenti operatori di filtro.

Tipo di dati dei campi Operatori di filtro supportati
Stringa LIKE, =, !=
Data BETWEEN, =, <, <=, >, >=
DateTime BETWEEN, <, <=, >, >=
Numerico =, !=, <, <=, >, >=
Booleano =, !=

Formato di input previsto per i valori booleani in Espressione filtro:

Entità Formato di valore booleano “true” Formato di valore booleano “false” Esempio
Entità Articolo, Linea di transazione, Linea di contabilità di transazione e Tipo di record personalizzato T o t F o f isinactive = “T” oppure isinactive = “t”
Tutte le altre entità true false isinactive = true

Query di partizionamento

Partizionamento basato sul campo

Il connettore Oracle NetSuite dispone di metadati dinamici in modo tale che i campi supportati per il partizionamento basato sul campo vengano scelti dinamicamente. Il partizionamento basato sul campo è supportato nei campi con il tipo di dati Integer, BigInteger, Date o DateTime.

È possibile fornire le opzioni Spark aggiuntive PARTITION_FIELD, LOWER_BOUND, UPPER_BOUND e NUM_PARTITIONS se si desidera utilizzare la simultaneità in Spark. Con questi parametri, la query originale viene suddivisa in NUM_PARTITIONS query secondarie che possono essere eseguite contemporaneamente dalle attività Spark.

  • PARTITION_FIELD: il nome del campo da utilizzare per partizionare la query.

  • LOWER_BOUND: un valore limite inferiore inclusivo del campo di partizione scelto.

    Per il campo timestamp, accettiamo il formato di timestamp Spark utilizzato nelle query SQL di Spark.

    Esempi di valori validi:

    "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: un valore limite superiore esclusivo del campo di partizione scelto.

  • NUM_PARTITIONS: il numero di partizioni.

Esempio:

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

Partizionamento basato su record

È possibile fornire l'opzione Spark aggiuntiva NUM_PARTITIONS se si desidera utilizzare la simultaneità in Spark. Con questo parametro, la query originale viene suddivisa in NUM_PARTITIONS query secondarie che possono essere eseguite contemporaneamente dalle attività Spark.

Nel partizionamento basato su record, il numero totale di record presenti viene interrogato dall'API di Oracle NetSuite e diviso per il numero NUM_PARTITIONS fornito, il numero di record risultante viene quindi recuperato contemporaneamente da ciascuna sottoquery.

  • NUM_PARTITIONS: il numero di partizioni.

Esempio:

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