

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
<a name="aws-glue-programming-etl-connect-saphana-home"></a>

Vous pouvez utiliser AWS Glue for 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 stockées via AWS Secrets Manager une connexion AWS Glue SAP HANA.

Pour plus d'informations sur SAP HANA JDBC, consultez [la documentation SAP HANA](https://help.sap.com/docs/SAP_HANA_PLATFORM/0eec0d68141541d1b07893a39944924e/ff15928cf5594d78b841fbbe649f04b4.html).

## Configuration des connexions SAP HANA
<a name="aws-glue-programming-etl-connect-saphana-configure"></a>

Pour vous connecter à SAP HANA depuis AWS Glue, vous devez créer et stocker vos informations d'identification SAP HANA dans un AWS Secrets Manager secret, puis associer ce secret à une connexion SAP HANA AWS Glue. 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 que le trafic ne transite 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](https://help.sap.com/docs/HANA_SMART_DATA_INTEGRATION/7952ef28a6914997abc01745fef1b607/88e2e8bded9e4041ad3ad87dc46c7b55.html?locale=en-US). Selon la configuration de votre réseau, cela peut nécessiter des modifications des règles du groupe de sécurité, du réseau ACLs, 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 AWS Secrets Manager secret](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) dans la AWS Secrets Manager documentation. Après avoir créé le secret, conservez le nom du secret {{secretName}} pour l'étape suivante. 
   + Lorsque vous sélectionnez des **paires clé/valeur**, créez une paire pour la clé `username/USERNAME` contenant la valeur. {{saphanaUsername}}
   + Lorsque vous sélectionnez des **paires clé/valeur**, créez une paire pour la clé `password/PASSWORD` contenant la valeur. {{saphanaPassword}}

1. Dans la console AWS Glue, créez une connexion en suivant les étapes décrites dans[Ajouter une AWS Glue connexion](console-connections.md). Après avoir créé la connexion, conservez le nom de la connexion pour une utilisation future dans AWS Glue. {{connectionName}} 
   + 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.

     SAP HANA JDBC se présente sous la URLs forme `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 **AWS secret**, fournissez{{secretName}}.

Après avoir créé une connexion AWS Glue SAP HANA, vous devez suivre 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{{connectionName}}, fournissez une **connexion réseau supplémentaire**.

## Lecture à partir de tables SAP HANA
<a name="aws-glue-programming-etl-connect-saphana-read"></a>

**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 ». Appelle ça{{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 SQL SELECT 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
<a name="aws-glue-programming-etl-connect-saphana-write"></a>

Cet exemple écrit les informations d'un fichier existant DynamicFrame {{dynamicFrame}} dans SAP HANA. Si le tableau 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 ». Appelle ça{{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
<a name="aws-glue-programming-etl-connect-saphana-reference"></a>
+ `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](https://help.sap.com/docs/SAP_HANA_PLATFORM/4fe29514fd584807ac9f2a04f6754767/20fcf24075191014a89e9dc7b8408b26.html#loio20fcf24075191014a89e9dc7b8408b26__from_clause) 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.