

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# API-Komponenten von Review Table
<a name="how-table"></a>

Ihre Apache-Flink-Anwendung verwendet die [Apache Flink Table API](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/tableapi/), um mithilfe eines relationalen Modells mit Daten in einem Stream zu interagieren. Sie verwenden die Tabellen-API, um mithilfe von Tabellenquellen auf Daten zuzugreifen, und verwenden dann Tabellenfunktionen, um Tabellendaten zu transformieren und zu filtern. Sie können Tabellendaten entweder mithilfe von API-Funktionen oder SQL-Befehlen transformieren und filtern. 

In diesem Abschnitt werden folgende Themen behandelt:
+ [Tabellen-API-Konnektoren](how-table-connectors.md): Diese Komponenten verschieben Daten zwischen Ihrer Anwendung und externen Datenquellen und -zielen.
+ [Zeitattribute der Tabellen-API](how-table-timeattributes.md): In diesem Thema wird beschrieben, wie Managed Service for Apache Flink Ereignisse verfolgt, wenn die Tabellen-API verwendet wird.

# Tabellen-API-Konnektoren
<a name="how-table-connectors"></a>

Im Apache Flink-Programmiermodell sind Konnektoren Komponenten, die Ihre Anwendung verwendet, um Daten aus externen Quellen, z. B. anderen AWS Diensten, zu lesen oder zu schreiben.

Mit der Apache Flink Table API können Sie die folgenden Arten von Konnektoren verwenden:
+ [Tabellen-API-Quellen](#how-table-connectors-source): Sie verwenden Tabellen-API-Quellkonnektoren, um Tabellen innerhalb Ihrer `TableEnvironment` zu erstellen, indem Sie entweder API-Aufrufe oder SQL-Abfragen verwenden.
+ [Die Tabellen-API sinkt](#how-table-connectors-sink): Sie verwenden SQL-Befehle, um Tabellendaten in externe Quellen wie ein Amazon-MSK-Thema oder einen Amazon-S3-Bucket zu schreiben.

## Tabellen-API-Quellen
<a name="how-table-connectors-source"></a>

Sie erstellen eine Tabellenquelle aus einem Datenstrom. Der folgende Code erstellt eine Tabelle aus einem Amazon-MSK-Thema:

```
//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);
```

Weitere Informationen zu Tabellenquellen finden Sie unter [Table & SQL Connectors](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/connectors/table/overview/) in der Apache Flink-Dokumentation.

## Die Tabellen-API sinkt
<a name="how-table-connectors-sink"></a>

Um Tabellendaten in eine Senke zu schreiben, erstellen Sie die Senke in SQL und führen dann die SQL-basierte Senke für das `StreamTableEnvironment`-Objekt aus.

Das folgende Codebeispiel zeigt, wie Tabellendaten in eine Amazon-S3-Senke geschrieben werden:

```
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");
```

 Sie können den `format`-Parameter verwenden, um zu steuern, welches Format Managed Service für Apache Flink verwendet, um die Ausgabe in die Senke zu schreiben. Informationen zu Formaten finden Sie unter [Unterstützte Konnektoren](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/connectors/table/overview/) in der Apache Flink-Dokumentation.

## Benutzerdefinierte Quellen und Senken
<a name="how-table-connectors-userdef"></a>

Sie können vorhandene Apache-Kafka-Konnektoren verwenden, um Daten zu und von anderen AWS -Services wie Amazon MSK und Amazon S3 zu senden. Für die Interaktion mit anderen Datenquellen und -zielen können Sie Ihre eigenen Quellen und Senken definieren. Weitere Informationen finden Sie unter [Benutzerdefinierte Quellen und Senken in der Apache Flink-Dokumentation](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/sourcessinks/).

# Zeitattribute der Tabellen-API
<a name="how-table-timeattributes"></a>

Jeder Datensatz in einem Datenstrom hat mehrere Zeitstempel, die definieren, wann Ereignisse im Zusammenhang mit dem Datensatz aufgetreten sind:
+ **Ereigniszeit**: Ein benutzerdefinierter Zeitstempel, der definiert, wann das Ereignis eingetreten ist, durch das der Datensatz erstellt wurde.
+ **Erfassungszeit**: Der Zeitpunkt, zu dem Ihre Anwendung den Datensatz aus dem Datenstrom abgerufen hat.
+ **Verarbeitungszeit**: Der Zeitpunkt, zu dem Ihre Anwendung den Datensatz verarbeitet hat.

Wenn die Apache Flink Table-API Fenster auf der Grundlage von Rekordzeiten erstellt, definieren Sie mithilfe der Methode, welche dieser Zeitstempel sie verwendet. `setStreamTimeCharacteristic` 

Weitere Informationen zur Verwendung von Zeitstempeln mit der Tabellen-API finden Sie unter [Time Attributes](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/concepts/time_attributes/) and [Timely Stream Processing](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/concepts/time/) in der Apache Flink-Dokumentation.