

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.

# Composants de l'API Review Table
<a name="how-table"></a>

Votre application Apache Flink utilise l’[API de table Apache Flink](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/tableapi/) pour interagir avec les données d’un flux à l’aide d’un modèle relationnel. Vous utilisez l’API de table pour accéder aux données à l’aide des sources de table, puis vous utilisez les fonctions de table pour transformer et filtrer les données de table. Vous pouvez transformer et filtrer les données de table à l’aide de fonctions d’API ou de commandes SQL. 

Cette section contient les rubriques suivantes :
+ [Connecteurs d'API de table](how-table-connectors.md) : ces composants déplacent les données entre votre application et les sources de données et destinations externes.
+ [Attributs temporels de l'API Table](how-table-timeattributes.md) : cette rubrique décrit comment le service géré pour Apache Flink suit les événements lors de l’utilisation de l’API de table.

# Connecteurs d'API de table
<a name="how-table-connectors"></a>

Dans le modèle de programmation Apache Flink, les connecteurs sont des composants que votre application utilise pour lire ou écrire des données provenant de sources externes, telles que d'autres AWS services.

Avec l’API de table Apache Flink, vous pouvez utiliser les types de connecteurs suivants :
+ [Sources d'API du tableau](#how-table-connectors-source) : vous utilisez les connecteurs source de l’API de table pour créer des tables dans votre `TableEnvironment` à l’aide d’appels d’API ou de requêtes SQL.
+ [Réservoirs d'API de table](#how-table-connectors-sink) : vous utilisez des commandes SQL pour écrire des données de table dans des sources externes telles qu’une rubrique Amazon MSK ou un compartiment Amazon S3.

## Sources d'API du tableau
<a name="how-table-connectors-source"></a>

Vous créez une source de table à partir d’un flux de données. Le code suivant crée une table à partir d’une rubrique Amazon MSK :

```
//create the table
    final FlinkKafkaConsumer<StockRecord> consumer = new FlinkKafkaConsumer<StockRecord>(kafkaTopic, new KafkaEventDeserializationSchema(), kafkaProperties);
    consumer.setStartFromEarliest();
    //Obtain stream
    DataStream<StockRecord> events = env.addSource(consumer);

    Table table = streamTableEnvironment.fromDataStream(events);
```

Pour plus d'informations sur les sources de tables, consultez la section [Connecteurs de table et SQL](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/connectors/table/overview/) dans la documentation d'Apache Flink.

## Réservoirs d'API de table
<a name="how-table-connectors-sink"></a>

Pour écrire des données de table dans un récepteur, vous créez le récepteur en SQL, puis vous exécutez le récepteur basé sur SQL sur l’objet `StreamTableEnvironment`.

L’exemple de code suivant illustre comment écrire des données de table sur un récepteur Amazon S3 :

```
final String s3Sink = "CREATE TABLE sink_table (" +
    "event_time TIMESTAMP," +
    "ticker STRING," +
    "price DOUBLE," +
    "dt STRING," +
    "hr STRING" +
    ")" +
    " PARTITIONED BY (ticker,dt,hr)" +
    " WITH" +
    "(" +
    " 'connector' = 'filesystem'," +
    " 'path' = '" + s3Path + "'," +
    " 'format' = 'json'" +
    ") ";

    //send to s3
    streamTableEnvironment.executeSql(s3Sink);
    filteredTable.executeInsert("sink_table");
```

 Vous pouvez utiliser le paramètre `format` pour contrôler le format utilisé par le service géré pour Apache Flink pour écrire la sortie sur le récepteur. Pour plus d'informations sur les formats, consultez la section [Connecteurs pris en charge](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/connectors/table/overview/) dans la documentation d'Apache Flink.

## Sources et récepteurs définis par l'utilisateur
<a name="how-table-connectors-userdef"></a>

Vous pouvez utiliser les connecteurs Apache Kafka existants pour envoyer des données vers et depuis d’autres services AWS , tels qu’Amazon MSK et Amazon S3. Pour interagir avec d’autres sources de données et destinations, vous pouvez définir vos propres sources et récepteurs. Pour plus d'informations, consultez la section [Sources et récepteurs définis par l'utilisateur dans](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/sourcessinks/) la documentation d'Apache Flink.

# Attributs temporels de l'API Table
<a name="how-table-timeattributes"></a>

Chaque enregistrement d’un flux de données possède plusieurs horodatages qui définissent le moment où les événements liés à l’enregistrement se sont produits :
+ **Heure de l’événement** : horodatage défini par l’utilisateur qui définit le moment où l’événement à l’origine de l’enregistrement s’est produit.
+ **Heure d’ingestion** : heure à laquelle votre application a extrait l’enregistrement du flux de données.
+ **Heure de traitement** : heure à laquelle votre demande a traité l’enregistrement.

Lorsque l'API Apache Flink Table crée des fenêtres basées sur des temps records, vous définissez lequel de ces horodatages elle utilise à l'aide de la méthode. `setStreamTimeCharacteristic` 

Pour plus d'informations sur l'utilisation des horodatages avec l'API Table, consultez la section [Attributs temporels](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/concepts/time_attributes/) et [traitement des flux en temps opportun](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/concepts/time/) dans la documentation d'Apache Flink.