Implementazione come applicazione con stato durevole - Servizio gestito per Apache Flink

Il servizio gestito da Amazon per Apache Flink era precedentemente noto come Analisi dei dati Amazon Kinesis per Apache Flink.

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à.

Implementazione come applicazione con stato durevole

Puoi creare il codice ed esportarlo in Amazon S3. Puoi promuovere il codice che hai scritto nella nota in un'applicazione di elaborazione di flussi in esecuzione continua. Esistono due modalità per eseguire un'applicazione Apache Flink nel servizio gestito per Apache Flink: con un notebook Studio, hai la possibilità di sviluppare il codice in modo interattivo, visualizzarne i risultati in tempo reale e visualizzarlo all'interno della nota. Dopo aver implementato una nota per l'esecuzione in modalità streaming, il servizio gestito per Apache Flink crea un'applicazione che viene eseguita continuamente, legge i dati dalle origini, scrive nelle destinazioni, mantiene lo stato dell'applicazione a lungo termine e viene automaticamente dimensionato in base al throughput dei flussi di origine.

Nota

Il bucket S3 in cui si esporta il codice dell'applicazione deve trovarsi nella stessa regione del notebook Studio.

È possibile implementare una nota dal notebook Studio solo se soddisfa i seguenti criteri:

  • I paragrafi devono essere ordinati in sequenza. Quando distribuisci l'applicazione, tutti i paragrafi all'interno di una nota verranno eseguiti in sequenza (left-to-right, top-to-bottom) così come appaiono nella nota. È possibile controllare questo ordine selezionando Esegui tutti i paragrafi nella nota.

  • Il tuo codice è una combinazione di Python ed SQL o di Scala ed SQL. Al momento non supportiamo Python e Scala insieme per. deploy-as-application

  • La nota dovrebbe avere solo i seguenti interpreti: %flink, %flink.ssql, %flink.pyflink, %flink.ipyflink, %md.

  • L'uso dell'oggetto z del contesto Zeppelin non è supportato. I metodi che non restituiscono nulla si limiteranno a registrare un avviso. Altri metodi genereranno eccezioni in Python o non riusciranno a compilare in Scala.

  • Una nota deve generare un singolo processo Apache Flink.

  • Le note con i moduli dinamici non sono supportate per l'implementazione come applicazione.

  • I paragrafi %md (Markdown) verranno ignorati durante l'implementazione come applicazione, poiché si prevede che contengano documentazione leggibile dall'uomo che non è adatta all'esecuzione come parte dell'applicazione risultante.

  • I paragrafi disabilitati per l'esecuzione in Zeppelin verranno ignorati durante l'implementazione come applicazione. Anche se un paragrafo disabilitato utilizza un interprete incompatibile, ad esempio %flink.ipyflink in una nota con %flink and %flink.ssql interpreti, verrà ignorato durante l'utilizzo della nota come applicazione e non genererà alcun errore.

  • Affinché la distribuzione dell'applicazione abbia successo, deve essere presente almeno un paragrafo con il codice sorgente (Flink SQL PyFlink o Flink Scala) abilitato per l'esecuzione.

  • L'impostazione del parallelismo nella direttiva dell'interprete all'interno di un paragrafo (ad esempio %flink.ssql(parallelism=32)) verrà ignorata nelle applicazioni implementate da una nota. È invece possibile aggiornare l'applicazione distribuita tramite l' AWS API AWS Command Line Interface o per modificare le AWS Management Console impostazioni di parallelismo e/o ParallelismPer KPU in base al livello di parallelismo richiesto dall'applicazione, oppure è possibile abilitare la scalabilità automatica per l'applicazione distribuita.

  • Se stai implementando come applicazione con stato durevole, il VPC deve avere accesso a Internet. Se il VPC non dispone di accesso a Internet, consulta Implementazione come applicazione con stato durevole in un VPC senza accesso a Internet.

Criteri Scala/Python

  • Nel tuo codice Scala o Python, usa il pianificatore Blink (senv, stenv per Scala; s_env, per st_env Python) e non il vecchio pianificatore "Flink" (stenv_2 per Scala, st_env_2 per Python). Il progetto Apache Flink consiglia l'utilizzo del pianificatore Blink per i casi d'uso in produzione, e questo è il pianificatore predefinito in Zeppelin e Flink.

  • I tuoi paragrafi in Python non devono utilizzare invocazioni/assegnazioni di shell utilizzando ! o comandi magici IPython come %timeit o %conda nelle note pensate per essere implementate come applicazioni.

  • Non è possibile utilizzare le classi di casi Scala come parametri di funzioni passate a operatori di flusso di dati di ordine superiore come map e filter. Per informazioni sulle classi di casi di Scala, consulta CLASSI DI CASI nella documentazione di Scala.

Criteri SQL

  • Le istruzioni SELECT semplici non sono consentite, in quanto non esiste nulla di equivalente alla sezione di output di un paragrafo in cui è possibile fornire i dati.

  • In ogni paragrafo, le istruzioni DDL (USE, CREATE, ALTER, DROP, SET, RESET) devono precedere le istruzioni DML (INSERT). Questo perché le istruzioni DML contenute in un paragrafo devono essere inviate insieme come un unico processo Flink.

  • Dovrebbe esserci al massimo un paragrafo contenente istruzioni DML. Questo perché, per questa deploy-as-application funzionalità, supportiamo solo l'invio di un singolo lavoro a Flink.

Per ulteriori informazioni e un esempio, consulta Traduzione, redazione e analisi dei dati di streaming utilizzando le funzioni SQL con il servizio gestito da Amazon per Apache Flink, Amazon Translate e Amazon Comprehend.