Connexions SAP HANA - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Connexions SAP HANA

Vous pouvez utiliser AWS Glue pour Spark pour lire et écrire dans des tables dans SAP HANA dans AWS Glue 4.0 et versions ultérieures. Vous pouvez définir ce qu'il faut lire dans SAP HANA à l'aide d'une requête SQL. Vous vous connectez à SAP HANA à l'aide des informations d'identification JDBC enregistrées dans AWS Secrets Manager via une connexion AWS Glue SAP HANA.

Pour plus d'informations sur SAP HANA JDBC, consultez la documentation SAP HANA.

Configuration des connexions SAP HANA

Pour vous connecter à SAP HANA depuis AWS Glue, vous devez créer et stocker vos informations d’identification SAP HANA dans un secret AWS Secrets Manager, puis associer ce secret à une connexion AWS Glue SAP HANA. Vous devrez configurer la connectivité réseau entre votre service SAP HANA et AWS Glue.

Pour vous connecter à SAP HANA, vous aurez peut-être besoin de certaines conditions préalables :

  • Si votre service SAP HANA se trouve dans un Amazon VPC, configurez Amazon VPC pour permettre à votre tâche AWS Glue de communiquer avec le service SAP HANA sans passer par l'Internet public.

    Dans Amazon VPC, identifiez ou créez un VPC, un sous-réseau et un groupe de sécurité que AWS Glue utilisera lors de l'exécution de la tâche. En outre, vous devez vous assurer qu'Amazon VPC est configuré pour autoriser le trafic réseau entre votre point de terminaison SAP HANA et cet emplacement. Votre tâche devra établir une connexion TCP avec votre port JDBC SAP HANA. Pour plus d'informations sur les ports SAP HANA, consultez la documentation SAP HANA. Selon la configuration de votre réseau, cela peut nécessiter des modifications des règles du groupe de sécurité, des ACL réseau, des passerelles NAT et des connexions d'appairage.

  • Il n'y a aucune condition préalable supplémentaire si votre point de terminaison SAP HANA est accessible sur Internet.

Pour configurer une connexion à SAP HANA :
  1. Dans AWS Secrets Manager, créez un secret à l'aide de vos informations d'identification SAP HANA. Pour créer un secret dans Secrets Manager, suivez le didacticiel disponible dans la section Créer un secret AWS Secrets Manager dans la documentation AWS Secrets Manager. Après avoir créé le secret, conservez le nom du secret, secretName, pour l'étape suivante.

    • Lorsque vous sélectionnez Paires clé/valeur, créez une paire pour la clé user avec la valeur saphanaUsername.

    • Lorsque vous sélectionnez Paires clé/valeur, créez une paire pour la clé password avec la valeur saphanaPassword.

  2. Dans la console AWS Glue, créez une connexion en suivant les étapes décrites dans Ajout d'une connexion AWS Glue. Après avoir créé la connexion, conservez le nom de la connexion, connectionName, pour une utilisation ultérieure dans AWS Glue.

    • Lorsque vous sélectionnez un type de connexion, sélectionnez SAP HANA.

    • Lorsque vous fournissez l'URL SAP HANA, indiquez l'URL de votre instance.

      Les URL JDBC de SAP HANA sont au format jdbc:sap://saphanaHostname:saphanaPort/?databaseName=saphanaDBname,ParameterName=ParameterValue

      AWS Glue nécessite les paramètres d'URL JDBC suivants :

      • databaseName – une base de données par défaut dans SAP HANA à laquelle se connecter.

    • Lorsque vous sélectionnez un Secret AWS, fournissez secretName.

Après avoir créé une connexion AWS Glue SAP HANA, vous devez effectuer les étapes suivantes avant d'exécuter votre tâche AWS Glue :

  • Accordez au rôle IAM associé à votre tâche AWS Glue l'autorisation de lire secretName.

  • Dans la configuration de votre tâche AWS Glue, indiquez connectionName en tant que connexion réseau supplémentaire.

Lecture à partir de tables SAP HANA

Prérequis :

  • Une table SAP HANA à partir de laquelle vous souhaitez lire. Vous aurez besoin des informations d'identification de la table.

    Une table peut être spécifiée avec un nom de table SAP HANA et un nom de schéma, sous forme de schemaName.tableName. Le nom du schéma et le séparateur « . » ne sont pas obligatoires si la table se trouve dans le schéma par défaut, « public ». Appelez ce tableIdentifier. Notez que la base de données est fournie sous forme de paramètre d'URL JDBC dans connectionName.

  • Une connexion AWS Glue SAP HANA configurée pour fournir des informations d'authentification. Suivez les étapes de la procédure précédente Pour configurer une connexion à SAP HANA afin de configurer vos informations d'authentification. Vous aurez besoin du nom de la connexion AWS Glue, connectionName.

Par exemple :

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

Vous pouvez également fournir une requête SELECT SQL pour filtrer les résultats renvoyés à votre DynamicFrame. Vous devrez configurer query.

Par exemple :

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

Écrire dans des tables SAP HANA

Cet exemple écrit des informations à partir d'un DynamicFrame existant, dynamicFrame, dans SAP HANA. Si la table contient déjà des informations, AWS Glue génère une erreur.

Prérequis :

  • Une table SAP HANA dans laquelle vous souhaitez écrire.

    Une table peut être spécifiée avec un nom de table SAP HANA et un nom de schéma, sous forme de schemaName.tableName. Le nom du schéma et le séparateur « . » ne sont pas obligatoires si la table se trouve dans le schéma par défaut, « public ». Appelez ce tableIdentifier. Notez que la base de données est fournie sous forme de paramètre d'URL JDBC dans connectionName.

  • Informations d'authentification SAP HANA. Suivez les étapes de la procédure précédente Pour configurer une connexion à SAP HANA afin de configurer vos informations d'authentification. Vous aurez besoin du nom de la connexion AWS Glue, connectionName.

Par exemple :

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

Référence des options de connexion de SAP HANA

  • connectionName — Obligatoire. Utilisé pour la lecture/l'écriture. Nom d’une connexion AWS Glue SAP HANA configurée pour fournir des informations d'authentification et de mise en réseau à votre méthode de connexion.

  • databaseName : utilisé pour la lecture/l'écriture. Valeurs valides : noms des bases de données dans SAP HANA. Nom de base de données à laquelle se connecter.

  • dbtable — obligatoire pour l'écriture, obligatoire pour la lecture à moins qu'une query ne soit fournie. Utilisé pour la lecture/l'écriture. Valeurs valides : contenu d'une clause SAP HANA SQL FROM. Identifie une table dans SAP HANA à laquelle se connecter. Vous pouvez également fournir un SQL autre qu'un nom de table, comme une sous-requête. Pour plus d'informations, consultez la clause From dans la documentation SAP HANA.

  • query : utilisé pour la lecture. Une requête SAP HANA SQL SELECT définissant ce qui doit être récupéré lors de la lecture à partir de SAP HANA.