Amazon Kinesis Data Firehose
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 AWS 开发工具包对 Kinesis Data Firehose 进行写入操作

您可以借助适用于 Java 的 AWS 开发工具包适用于 .NET 的 AWS 开发工具包适用于 Node.js 的 AWS 开发工具包适用于 Python 的 AWS 开发工具包适用于 Ruby 的 AWS 开发工具包使用 Amazon Kinesis Data Firehose API 向 Kinesis Data Firehose 传输流 发送数据。如果您不熟悉 Kinesis Data Firehose,请花点时间熟悉一下什么是 Amazon Kinesis Data Firehose?中介绍的概念和术语。有关更多信息,请参阅开始使用 Amazon Web Services 开发

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

Kinesis Data Firehose API 提供两种向传输流发送数据的操作:PutRecordPutRecordBatchPutRecord() 可在一次调用中发送一条数据记录;PutRecordBatch() 可在一次调用中发送多条数据记录。

使用 PutRecord 执行单一写入操作

写入数据时,只需提供 Kinesis Data Firehose 传输流 名称和字节缓冲区 (<=1000 KB)。Kinesis Data Firehose 将多条记录组合到一起,然后将文件加载到 Amazon S3 中。因此,您需要添加记录分隔符。要以一次一条记录的方式向传输流写入数据,请使用以下代码:

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 开发工具包中包含的示例代码。有关请求和响应语法的信息,请参阅Amazon Kinesis Data Firehose API 操作中的相关主题。

使用 PutRecordBatch 执行批量写入操作

写入数据时,只需提供 Kinesis Data Firehose 传输流 名称和记录列表。Kinesis Data Firehose 将多条记录组合到一起,然后将文件加载到 Amazon S3 中。因此,您需要添加记录分隔符。要以批量方式向传输流写入数据记录,请使用以下代码:

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 开发工具包中包含的示例代码。有关请求和响应语法的信息,请参阅Amazon Kinesis Data Firehose API 操作中的相关主题。