Pré-requisito
Um objeto do Oracle do qual você deseja ler. Você precisará do nome do objeto, como deposit
ou timebill
. A tabela a seguir mostra as entidades compatíveis.
Entidades compatíveis quanto à origem:
Entidade | Pode ser filtrada | Oferece suporte a Ordenar por | Oferece suporte a limite | Oferece suporte a SELECIONAR * | Oferece suporte a particionamento |
---|---|---|---|---|---|
Depósito | Sim | Não | Sim | Sim | Sim |
Item de descrição | Sim | Não | Sim | Sim | Sim |
Item de inventário | Sim | Não | Sim | Sim | Sim |
Atendimento do item | Sim | Não | Sim | Sim | Sim |
Grupo de itens | Sim | Não | Sim | Sim | Sim |
Lançamento no diário | Sim | Não | Sim | Sim | Sim |
Item de compra que não é de estoque | Sim | Não | Sim | Sim | Sim |
Item de revenda que não é de estoque | Sim | Não | Sim | Sim | Sim |
Item de venda que não é de estoque | Sim | Não | Sim | Sim | Sim |
Ordem de compra | Sim | Não | Sim | Sim | Sim |
Subsidiária | Sim | Não | Sim | Sim | Sim |
Vendor | Sim | Não | Sim | Sim | Sim |
Fatura do fornecedor | Sim | Não | Sim | Sim | Sim |
Autorização de devolução ao fornecedor | Sim | Não | Sim | Sim | Sim |
Faturamento com prazo | Sim | Não | Sim | Sim | Sim |
Pagamento do cliente | Sim | Não | Sim | Sim | Sim |
Solicitação de atendimento | Sim | Não | Sim | Sim | Sim |
Exemplo:
netsuiteerp_read = glueContext.create_dynamic_frame.from_options(
connection_type="netsuiteerp",
connection_options={
"connectionName": "connectionName",
"ENTITY_NAME": "deposit",
"API_VERSION": "v1"
}
)
Detalhes das entidades e dos campos do Oracle NetSuite:
O Oracle NetSuite carrega dinamicamente os campos disponíveis na entidade selecionada. Dependendo do tipo de dados de campo, ele é compatível com os operadores de filtro a seguir.
Tipos de dados de campo | Operadores de filtro compatíveis |
---|---|
String | LIKE, =, != |
Data | BETWEEN, =, <, <=, >, >= |
DateTime | BETWEEN, <, <=, >, >= |
Numérico | =, !=, <, <=, >, >= |
Booleano | =, != |
Consultas de particionamento
Particionamento com base em campo
O conector do Oracle NetSuite tem metadados dinâmicos para que os campos compatíveis com particionamento com base em campo sejam escolhidos dinamicamente. O particionamento baseado em campo é compatível nos campos com o tipo de dados Integer, BigInteger, Date ou DateTime.
É possível fornecer as opções adicionais do Spark PARTITION_FIELD
, LOWER_BOUND
, UPPER_BOUND
e NUM_PARTITIONS
se quiser utilizar a simultaneidade no Spark. Com esses parâmetros, a consulta original seria dividida em NUM_PARTITIONS
subconsultas, que poderiam ser executadas pelas tarefas do Spark simultaneamente.
PARTITION_FIELD
: o nome do campo a ser usado para particionar a consulta.LOWER_BOUND
: um valor limite inferior inclusivo do campo de partição escolhido.Para o campo de carimbo de data e hora, aceitamos o formato de carimbo de data e hora do Spark usado nas consultas SQL do Spark.
Exemplos de valores válidos:
"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
: um valor limite superior exclusivo do campo de partição escolhido.NUM_PARTITIONS
: o número de partições.
Exemplo:
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"
}
Particionamento com base em registros
Você pode fornecer a opção adicional NUM_PARTITIONS
do Spark se quiser utilizar a simultaneidade no Spark. Com esse parâmetro, a consulta original seria dividida em NUM_PARTITIONS
subconsultas, que poderiam ser executadas pelas tarefas do Spark simultaneamente.
No particionamento com base em registros, o número total de registros presentes é consultado na API do Oracle NetSuite e dividido pelo número de NUM_PARTITIONS
fornecido. O número resultante de registros, em seguida, é obtido simultaneamente por cada subconsulta.
NUM_PARTITIONS
: o número de partições.
Exemplo:
netsuiteerp_read = glueContext.create_dynamic_frame.from_options(
connection_type="netsuiteerp",
connection_options={
"connectionName": "connectionName",
"ENTITY_NAME": "deposit",
"API_VERSION": "v1",
"NUM_PARTITIONS": "3"
}