Adicione fontes de dados de streaming ao Managed Service for Apache Flink - 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á.

Adicione fontes de dados de streaming ao Managed Service for Apache Flink

O Apache Flink fornece conectores para leitura de arquivos, soquetes, coleções e fontes personalizadas. No código do seu aplicativo, você usa uma fonte do Apache Flink para receber dados de um fluxo. Esta seção descreve as fontes disponíveis para os serviços da Amazon

Use streams de dados do Kinesis

A fonte FlinkKinesisConsumer fornece dados de transmissão para seu aplicativo a partir de um fluxo de dados da Amazon Kinesis.

Criar uma FlinkKinesisConsumer

O exemplo de código a seguir demonstra como criar um FlinkKinesisConsumer:

Properties inputProperties = new Properties(); inputProperties.setProperty(ConsumerConfigConstants.AWS_REGION, region); inputProperties.setProperty(ConsumerConfigConstants.STREAM_INITIAL_POSITION, "LATEST"); DataStream<string> input = env.addSource(new FlinkKinesisConsumer<>(inputStreamName, new SimpleStringSchema(), inputProperties));

Para obter mais informações sobre como usar uma FlinkKinesisConsumer, consulte Baixe e examine o código Java de streaming do Apache Flink.

Crie um FlinkKinesisConsumer que use um EFO consumidor

FlinkKinesisConsumer Agora é compatível com Enhanced Fan-Out () EFO.

Se um consumidor do Kinesis usaEFO, o serviço Kinesis Data Streams fornece sua própria largura de banda dedicada, em vez de fazer com que o consumidor compartilhe a largura de banda fixa do stream com os outros consumidores que estão lendo o stream.

Para obter mais informações sobre como usar EFO com o consumidor Kinesis, consulte FLIP-128: Enhanced Fan Out for AWS Kinesis Consumers.

Você habilita o EFO consumidor definindo os seguintes parâmetros no consumidor Kinesis:

  • RECORD_ PUBLISHER _TYPE: defina esse parâmetro EFOpara que seu aplicativo use um EFO consumidor para acessar os dados do Kinesis Data Stream.

  • EFO_ CONSUMER _NAME: defina esse parâmetro como um valor de string exclusivo entre os consumidores desse fluxo. A reutilização de um nome de consumidor no mesmo Kinesis Data Stream fará com que o consumidor anterior que usava esse nome seja excluído.

Para configurar um FlinkKinesisConsumer para usarEFO, adicione os seguintes parâmetros ao consumidor:

consumerConfig.putIfAbsent(RECORD_PUBLISHER_TYPE, "EFO"); consumerConfig.putIfAbsent(EFO_CONSUMER_NAME, "basic-efo-flink-app");

Para obter um exemplo de um serviço gerenciado para o aplicativo Apache Flink que usa um EFO consumidor, consulte. Consumidor EFO

Use a Amazon MSK

A KafkaSource fonte fornece dados de streaming para seu aplicativo a partir de um MSK tópico da Amazon.

Criar uma KafkaSource

O exemplo de código a seguir demonstra como criar um KafkaSource:

KafkaSource<String> source = KafkaSource.<String>builder() .setBootstrapServers(brokers) .setTopics("input-topic") .setGroupId("my-group") .setStartingOffsets(OffsetsInitializer.earliest()) .setValueOnlyDeserializer(new SimpleStringSchema()) .build(); env.fromSource(source, WatermarkStrategy.noWatermarks(), "Kafka Source");

Para obter mais informações sobre como usar uma KafkaSource, consulte Replicação do MSK.