Gravar no Kinesis Data Firehose usando AWS SDK
Você pode usar a API do Amazon Kinesis Data Firehose para enviar dados para um fluxo de entrega do Kinesis Data Firehose usando o AWS SDK para Java
Esses exemplos não representam um código pronto para produção, pois não verificam todas as exceções possíveis nem abrangem todas as considerações de segurança ou de performance possíveis.
A API do Kinesis Data Firehose oferece duas operações para envio de dados ao fluxo de entrega: PutRecord e PutRecordBatch. O PutRecord()
envia um registro de dados em uma única chamada e o PutRecordBatch()
pode enviar vários registros de dados em uma única chamada.
Tópicos
Operações de gravação única usando PutRecord
A inserção de dados só exige apenas o nome e um buffer de bytes (<=1000 KB) do Kinesis Data Firehose. Como o Kinesis Data Firehose coloca vários registros em lotes antes de carregar o arquivo no Amazon S3, talvez você queira adicionar um separador de registro. Para colocar dados em um registro por vez em um fluxo de entrega, use o código a seguir:
PutRecordRequest putRecordRequest = new PutRecordRequest(); putRecordRequest.setDeliveryStreamName(deliveryStreamName); String data = line + "\n"; Record record = new Record().withData(ByteBuffer.wrap(data.getBytes())); putRecordRequest.setRecord(record); // Put record into the DeliveryStream firehoseClient.putRecord(putRecordRequest);
Para obter mais contexto de código, consulte o exemplo de código incluído no AWS SDK. Para obter informações sobre a sintaxe de solicitação e de resposta, consulte o tópico relevante em Operações de API do Amazon Kinesis Data Firehose.
Operações de gravação em lote usando PutRecordBatch
A inserção de dados só exige o nome do fluxo de entrega e uma lista de registros do Kinesis Data Firehose. Como o Kinesis Data Firehose coloca vários registros em lotes antes de carregar o arquivo no Amazon S3, talvez você queira adicionar um separador de registro. Para colocar registros de dados em lotes em um fluxo de entrega, use o código a seguir:
PutRecordBatchRequest putRecordBatchRequest = new PutRecordBatchRequest(); putRecordBatchRequest.setDeliveryStreamName(deliveryStreamName); putRecordBatchRequest.setRecords(recordList); // Put Record Batch records. Max No.Of Records we can put in a // single put record batch request is 500 firehoseClient.putRecordBatch(putRecordBatchRequest); recordList.clear();
Para obter mais contexto de código, consulte o exemplo de código incluído no AWS SDK. Para obter informações sobre a sintaxe de solicitação e de resposta, consulte o tópico relevante em Operações de API do Amazon Kinesis Data Firehose.