Conexões do SAP HANA - AWS Glue

Conexões do SAP HANA

O AWS Glue para Spark pode ser usado para ler e escrever em tabelas no SAP HANA no AWS Glue 4.0 e versões posteriores. Você pode definir o que ler no SAP HANA com uma consulta SQL. Conecte-se ao SAP HANA usando credenciais JDBC armazenadas no AWS Secrets Manager via conexão AWS Glue SAP HANA.

Para obter mais informações sobre o JDBC do SAP HANA, consulte a Documentação do SAP HANA.

Configurar conexões do SAP HANA

Para se conectar ao SAP HANA via AWS Glue, será necessário criar e armazenar suas credenciais do SAP HANA em um segredo do AWS Secrets Manager e, em seguida, associar esse segredo a uma conexão ao AWS Glue do SAP HANA. Você precisará configurar a conectividade de rede entre seu serviço SAP HANA e o AWS Glue.

Para se conectar ao SAP HANA, talvez seja necessário atender a alguns pré-requisitos:

  • Se o seu serviço SAP HANA estiver em uma Amazon VPC, configure a Amazon VPC para permitir que seu trabalho do AWS Glue se comunique com o serviço SAP HANA sem que o tráfego passe pela Internet pública.

    Na Amazon VPC, identifique ou crie uma VPC, uma Sub-rede e um Grupo de segurança que o AWS Glue usará durante a execução do trabalho. Além disso, você precisa garantir que a Amazon VPC esteja configurada para permitir o tráfego de rede entre seu endpoint SAP HANA e esse local. Seu trabalho precisará estabelecer uma conexão TCP com a porta JDBC do SAP HANA. Para obter mais informações sobre as portas do SAP HANA, consulte a Documentação do SAP HANA. Com base no layout da rede, isso pode exigir alterações em regras do grupo de segurança, ACLs de rede, gateways de NAT e conexões de emparelhamento.

  • Não há pré-requisitos adicionais quando seu endpoint do SAP HANA está acessível pela Internet.

Para configurar uma conexão com o SAP HANA:
  1. No AWS Secrets Manager, crie um segredo usando suas credenciais do SAP HANA. Para criar um segredo no Secrets Manager, siga o tutorial disponível em Criar uma AWS Secrets Manager segredo na documentação do AWS Secrets Manager. Depois de criar o segredo, guarde o nome secreto, SecretName, para a próxima etapa.

    • Ao selecionar Pares chave/valor, crie um par para a chave user com o valor saphanaUsername.

    • Ao selecionar Pares chave/valor, crie um par para a chave password com o valor saphanaPassword.

  2. No console do AWS Glue, crie uma conexão seguindo as etapas em Adicionar uma conexão do AWS Glue. Depois de criar a conexão, guarde o nome da conexão, connectionName, para uso futuro no AWS Glue.

    • Ao selecionar um Tipo de conexão, selecione SAP HANA.

    • Ao fornecer o URL do SAP HANA, forneça o URL da sua instância.

      Os URLs JDBC do SAP HANA estão no formato jdbc:sap://saphanaHostname:saphanaPort/?databaseName=saphanaDBname,ParameterName=ParameterValue

      O AWS Glue requer os seguintes parâmetros de URL do JDBC:

      • databaseName: um banco de dados padrão no SAP HANA ao qual se conectar.

    • Ao selecionar um Segredo da AWS, forneça o secretName.

Depois de criar uma conexão AWS Glue SAP HANA, siga estas etapas antes de executar seu trabalho do AWS Glue:

  • Conceda ao perfil do IAM associada ao seu trabalho do AWS Glue permissão para ler secretName.

  • Na configuração do trabalho do AWS Glue, forneça connectionName como uma conexão de rede adicional.

Ler de tabelas do SAP HANA

Pré-requisitos:

  • Uma tabela do SAP HANA da qual você deseja ler. Você precisará de informações de identificação para a tabela.

    Uma tabela pode ser especificada com um nome de tabela e um nome de esquema do SAP HANA, no formulário schemaName.tableName. O nome do esquema e o separador "." não serão necessários se a tabela estiver no esquema padrão, "público". Chame isso de tableIdentifier. Observe que o banco de dados é fornecido como um parâmetro de URL do JDBC em connectionName.

  • Uma conexão AWS Glue SAP HANA configurada para fornecer informações de autenticação. Conclua as etapas do procedimento anterior, Para configurar uma conexão com o SAP HANA para configurar suas informações de autenticação. Você precisará do nome da conexão AWS Glue, ConnectionName.

Por exemplo:

saphana_read_table = glueContext.create_dynamic_frame.from_options( connection_type="saphana", connection_options={ "connectionName": "connectionName", "dbtable": "tableIdentifier", } )

Você também pode fornecer uma consulta SQL SELECT para filtrar os resultados retornados ao seu DynamicFrame. Você precisará configurar query.

Por exemplo:

saphana_read_query = glueContext.create_dynamic_frame.from_options( connection_type="saphana", connection_options={ "connectionName": "connectionName", "query": "query" } )

Escrever em tabelas do SAP HANA

Este exemplo escreve informações de um DynamicFrame existente, dynamicFrame, no SAP HANA. Se a tabela já contiver informações, o AWS Glue irá gerar um erro.

Pré-requisitos:

  • Uma tabela do SAP HANA na qual você gostaria de escrever.

    Uma tabela pode ser especificada com um nome de tabela e um nome de esquema do SAP HANA, no formulário schemaName.tableName. O nome do esquema e o separador "." não serão necessários se a tabela estiver no esquema padrão, "público". Chame isso de tableIdentifier. Observe que o banco de dados é fornecido como um parâmetro de URL do JDBC em connectionName.

  • Informações de autenticação do SAP HANA. Conclua as etapas do procedimento anterior, Para configurar uma conexão com o SAP HANA para configurar suas informações de autenticação. Você precisará do nome da conexão AWS Glue, ConnectionName.

Por exemplo:

options = { "connectionName": "connectionName", "dbtable": 'tableIdentifier' } saphana_write = glueContext.write_dynamic_frame.from_options( frame=dynamicFrame, connection_type="saphana", connection_options=options )

Referência de opções de conexão do SAP HANA

  • connectionName — Obrigatório. Usado para leitura/gravação. O nome de uma conexão do AWS Glue SAP HANA configurada para fornecer informações de autenticação e rede ao seu método de conexão.

  • databaseName: usado para leitura/gravação. Valores válidos: nomes de bancos de dados no SAP HANA. O nome do banco de dados ao qual se conectar.

  • dbtable: necessário para escrever, obrigatório para leitura, a menos que query seja fornecido. Usado para leitura/gravação. Valores válidos: conteúdo de uma cláusula SQL FROM do SAP HANA. Identifica uma tabela no SAP HANA à qual se conectar. Você também pode fornecer outro SQL além do nome de uma tabela, como uma subconsulta. Para obter mais informações, consulte a cláusula From na documentação do SAP HANA.

  • query - Usado para leitura. Uma consulta SQL SELECT do SAP HANA que define o que deve ser recuperado na leitura do SAP HANA.