使用 AWS SDK 发送数据 - Amazon Data Firehose

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 AWS SDK 发送数据

您可以使用 Amazon Data Firehose API 通过适用于 Java.NETNode.jsPythonRuby 的AWS SDK 将数据发送到 Firehose 流。如果您不了解 Amazon Data Firehose,请花点时间熟悉 什么是 Amazon Data Firehose? 中介绍的概念和术语。有关更多信息,请参阅开始使用 Amazon Web Services 开发

这些示例并非可直接用于生产的代码,因为它们不会检查所有可能的异常,或者不会考虑到所有可能的安全或性能问题。

Amazon Data Firehose API 提供了两种用于向你的 Firehose 直播发送数据的操作:和。PutRecordPutRecordBatch PutRecord()在一个呼叫中发送一条数据记录,并且PutRecordBatch()可以在一个呼叫中发送多条数据记录。

使用单次写入操作 PutRecord

写入数据时,只需要 Firehose 流名称和字节缓冲区(<=1000 KB)。由于 Amazon Data Firehose 在将文件加载到 Amazon S3 之前会批量处理多条记录,因此可能需要添加记录分隔符。要以一次一条记录的方式向 Firehose 流写入数据,请使用以下代码:

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);

有关更多代码上下文,请参阅 AWS SDK 中包含的示例代码。有关请求和响应语法的信息,请参阅 Firehose API Operations 中的相关主题。

使用 Batch 写入操作 PutRecordBatch

写入数据时,只需要 Firehose 流名称和记录列表。由于 Amazon Data Firehose 在将文件加载到 Amazon S3 之前会批量处理多条记录,因此可能需要添加记录分隔符。要以批量方式向 Firehose 流写入数据记录,请使用以下代码:

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();

有关更多代码上下文,请参阅 AWS SDK 中包含的示例代码。有关请求和响应语法的信息,请参阅 Firehose API Operations 中的相关主题。