

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Componenti dell'API Review Table
<a name="how-table"></a>

La tua applicazione Apache Flink utilizza l'[API Apache Flink Table](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/tableapi/) per interagire con i dati in un flusso attraverso un modello relazionale. Utilizza l'API Table per accedere ai dati utilizzando origini Table, quindi utilizza le funzioni Table per trasformare e filtrare i dati della tabella. Puoi trasformare e filtrare i dati della tabella utilizzando funzioni API o comandi SQL. 

Questa sezione contiene i seguenti argomenti:
+ [Connettori API per tabelle](how-table-connectors.md): questi componenti spostano i dati tra l'applicazione e origini e destinazioni dati esterne.
+ [Attributi temporali dell'API della tabella](how-table-timeattributes.md): questo argomento descrive il modo in cui il servizio gestito per Apache Flink tiene traccia degli eventi quando viene utilizzata l'API Table.

# Connettori API per tabelle
<a name="how-table-connectors"></a>

Nel modello di programmazione Apache Flink, i connettori sono componenti utilizzati dall'applicazione per leggere o scrivere dati da fonti esterne, come altri AWS servizi.

Con l'API Apache Flink Table, puoi utilizzare i seguenti tipi di connettori:
+ [Sorgenti API per tabelle](#how-table-connectors-source): utilizzi i connettori di origine dell'API Table per creare tabelle all'interno dell'utente `TableEnvironment` utilizzando chiamate API o query SQL.
+ [Table API sink](#how-table-connectors-sink): utilizzi i comandi SQL per scrivere dati di tabella su origini esterne come un argomento Amazon MSK o un bucket Amazon S3.

## Sorgenti API per tabelle
<a name="how-table-connectors-source"></a>

Crei un'origine di tabella da un flusso di dati. Il codice seguente crea una tabella da un argomento di 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);
```

Per ulteriori informazioni sulle sorgenti delle tabelle, consulta [Table & SQL Connectors](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/connectors/table/overview/) nella documentazione di Apache Flink.

## Table API sink
<a name="how-table-connectors-sink"></a>

Per scrivere i dati della tabella in un sink, crea il sink in SQL, quindi esegui il sink basato su SQL sull'oggetto `StreamTableEnvironment`.

Nell'esempio di codice seguente viene mostrato come scrivere dati di tabella su un sink 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");
```

 Puoi utilizzare il parametro `format` per controllare il formato impiegato dal servizio gestito per Apache Flink per scrivere l'output nel sink. Per informazioni sui formati, consulta [Connettori supportati nella documentazione](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/connectors/table/overview/) di Apache Flink.

## Sorgenti e sink definiti dall'utente
<a name="how-table-connectors-userdef"></a>

Puoi utilizzare i connettori Apache Kafka esistenti per inviare dati da e verso altri servizi AWS , come Amazon MSK e Amazon S3. Per interagire con altre origini e destinazioni dati, puoi definire fonti e sink personalizzati. Per ulteriori informazioni, consulta [Sources and Sinks definiti dall'utente](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/sourcessinks/) nella documentazione di Apache Flink.

# Attributi temporali dell'API della tabella
<a name="how-table-timeattributes"></a>

Ogni record in un flusso di dati ha diversi timestamp che definiscono quando si sono verificati gli eventi correlati al record:
+ **Ora evento**: un timestamp definito dall'utente che definisce quando si è verificato l'evento che ha creato il record.
+ **Tempo di acquisizione**: l'ora in cui l'applicazione ha recuperato il record dal flusso di dati.
+ **Tempo di elaborazione**: l'ora in cui l'applicazione ha elaborato il record.

Quando l'API Apache Flink Table crea finestre basate su tempi record, definisci quale di questi timestamp utilizza utilizzando il metodo. `setStreamTimeCharacteristic` 

Per ulteriori informazioni sull'utilizzo dei timestamp con l'API Table, consulta [Time Attributes](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/concepts/time_attributes/) e [Timely Stream Processing](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/concepts/time/) nella documentazione di Apache Flink.