Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Leitura de entidades do SAP OData

Modo de foco
Leitura de entidades do SAP OData - AWS Glue

Pré-requisito

Um objeto do SAP OData do qual você deseja ler. Você precisará do nome do objeto/EntitySet, por exemplo, /sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder.

Exemplo:

sapodata_read = glueContext.create_dynamic_frame.from_options( connection_type="SAPOData", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "entityName" }, transformation_ctx=key)

Detalhes das entidades e dos campos do SAP OData:

Entidade Tipo de dados Operadores compatíveis
Tabelas (entidades dinâmicas) String =, !=, >, >=, <, <=, BETWEEN, LIKE
Inteiro =, !=, >, >=, <, <=, BETWEEN, LIKE
Longo =, !=, >, >=, <, <=, BETWEEN, LIKE
Double =, !=, >, >=, <, <=, BETWEEN, LIKE
Data =, !=, >, >=, <, <=, BETWEEN, LIKE
DateTime =, !=, >, >=, <, <=, BETWEEN, LIKE
Booleano =, !=
struct =, !=, >, >=, <, <=, BETWEEN, LIKE

Consultas de particionamento

Particionamento com base em campo:

É 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. Os campos Integer, Date e DateTime oferecem suporte ao particionamento com base em campo no conector do SAP OData.

  • 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.

    No campo Data e hora, aceitamos o formato de carimbo de data/hora do Spark usado em consultas SQL do Spark.

    Exemplos de valores válidos:

    "2000-01-01T00:00:00.000Z"
  • UPPER_BOUND: um valor limite superior exclusivo do campo de partição escolhido.

  • NUM_PARTITIONS: o número de partições.

  • PARTITION_BY: o tipo de particionamento a ser executado. “FIELD” deve ser passado no caso de particionamento com base em campo.

Exemplo:

sapodata= glueContext.create_dynamic_frame.from_options( connection_type="sapodata", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "/sap/opu/odata/sap/SEPM_HCM_SCENARIO_SRV/EmployeeSet", "PARTITION_FIELD": "validStartDate" "LOWER_BOUND": "2000-01-01T00:00:00.000Z" "UPPER_BOUND": "2020-01-01T00:00:00.000Z" "NUM_PARTITIONS": "10", "PARTITION_BY": "FIELD" }, transformation_ctx=key)

Particionamento com base em registros:

A consulta original seria dividida em NUM_PARTITIONS subconsultas, que poderiam ser executadas pelas tarefas do Spark simultaneamente.

O particionamento com base em registros só é compatível para entidades não ODP, pois a paginação em entidades ODP é compatível por meio do próximo token/ignorar token.

  • PARTITION_BY: o tipo de particionamento a ser executado. “COUNT” deve ser passado no caso de particionamento com base em registros.

sapodata= glueContext.create_dynamic_frame.from_options( connection_type="sapodata", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "/sap/opu/odata/sap/SEPM_HCM_SCENARIO_SRV/EmployeeSet", "NUM_PARTITIONS": "10", "PARTITION_BY": "COUNT" }, transformation_ctx=key)
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.