Implemente como um aplicativo com estado durável - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink era conhecido como Amazon Kinesis Data Analytics for Apache Flink.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Implemente como um aplicativo com estado durável

Você pode criar seu código e exportá-lo para o Amazon S3. Você pode promover o código que escreveu em sua nota para um aplicativo de processamento de streams em execução contínua. Há dois modos de executar um aplicativo Apache Flink no Managed Service for Apache Flink: com um notebook Studio, você tem a capacidade de desenvolver seu código de forma interativa, visualizar os resultados do seu código em tempo real e visualizá-lo em sua nota. Depois de implantar uma nota para execução no modo de streaming, o Managed Service for Apache Flink cria um aplicativo para você que é executado continuamente, lê dados de suas fontes, grava em seus destinos, mantém o estado do aplicativo de longa duração e escala automaticamente com base no throughput de seus fluxos de origem.

nota

O bucket do S3 para o qual você exporta o código do aplicativo deve estar na mesma região que o notebook Studio.

Você só pode implantar uma nota do seu notebook Studio se ela atender aos seguintes critérios:

  • Os parágrafos devem ser ordenados sequencialmente. Quando você implanta seu aplicativo, todos os parágrafos em uma nota serão executados sequencialmente (left-to-right, top-to-bottom) conforme aparecem na sua nota. Você pode verificar essa ordem escolhendo Executar todos os parágrafos em sua nota.

  • Seu código é uma combinação de Python SQL e/ou Scala e. SQL No momento, não oferecemos suporte para Python e Scala juntos. deploy-as-application

  • Sua nota deve ter apenas os seguintes intérpretes:%flink, %flink.ssql, %flink.pyflink, %flink.ipyflink, %md.

  • O uso do objeto de contexto do Zeppelin não z é suportado. Métodos que não retornam nada farão nada, exceto registrar um aviso. Outros métodos gerarão exceções do Python ou falharão na compilação em Scala.

  • Uma nota deve resultar em uma única tarefa do Apache Flink.

  • Não há suporte para a implantação de notas com formulários dinâmicos como um aplicativo.

  • Os parágrafos %md (Markdown) serão ignorados na implantação como um aplicativo, pois espera-se que contenham documentação legível por humanos que não é adequada para execução como parte do aplicativo resultante.

  • Os parágrafos desativados para execução no Zeppelin serão ignorados na implantação como um aplicativo. Mesmo que um parágrafo desativado use um intérprete incompatível, por exemplo, %flink.ipyflink em uma nota com %flink and %flink.ssql intérpretes, ele será ignorado durante a implantação da nota como um aplicativo e não resultará em erro.

  • Deve haver pelo menos um parágrafo presente com o código-fonte (Flink SQL PyFlink ou Flink Scala) habilitado para execução para que a implantação do aplicativo seja bem-sucedida.

  • Definir o paralelismo na diretiva do intérprete dentro de um parágrafo (por exemplo%flink.ssql(parallelism=32)) será ignorado em aplicativos implantados a partir de uma nota. Em vez disso, você pode atualizar o aplicativo implantado por meio do AWS Management Console, AWS Command Line Interface ou AWS API alterar o paralelismo e/ou ParallelismPer KPU as configurações de acordo com o nível de paralelismo que seu aplicativo exige, ou você pode ativar o escalonamento automático para seu aplicativo implantado.

  • Se você estiver implantando como um aplicativo com estado durável, VPC deverá ter acesso à Internet. Se você VPC não tiver acesso à Internet, consulteImplemente como um aplicativo com estado durável sem acesso à Internet VPC.

Critérios Scala/Python

  • Em seu código Scala ou Python, use o planejador Blink (senv, stenv para Scalas_env; st_env para Python) e não o planejador “Flink” antigo (stenv_2 para Scala, st_env_2 para Python). O projeto Apache Flink recomenda o uso do planejador Blink para casos de uso de produção, e esse é o planejador padrão no Zeppelin e no Flink.

  • Seus parágrafos do Python não devem usar invocações/atribuições de shell usando comandos IPython mágicos como !%timeit ou %conda em notas destinadas a serem implantadas como aplicativos.

  • Você não pode usar classes de casos do Scala como parâmetros de funções passadas para operadores de fluxo de dados de ordem superior, como map e filter. Para obter informações sobre as classes de casos do Scala, consulte a CASECLASSESdocumentação do Scala.

SQLcritérios

  • SELECTDeclarações simples não são permitidas, pois não há nada equivalente à seção de saída de um parágrafo em que os dados possam ser entregues.

  • Em qualquer parágrafo, DDL as declarações (USE,,CREATE,ALTER, DROPSET,RESET) devem preceder as declarações DML (INSERT). Isso ocorre porque DML as declarações em um parágrafo devem ser enviadas juntas como um único trabalho do Flink.

  • Deve haver no máximo um parágrafo DML contendo declarações. Isso porque, para o deploy-as-application recurso, oferecemos suporte apenas ao envio de um único trabalho para o Flink.

Para obter mais informações e um exemplo, consulte Traduzir, redigir e analisar dados de streaming usando SQL funções com o Amazon Managed Service para Apache Flink, Amazon Translate e Amazon Comprehend.