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

将 Amazon Data Firehose 流传输到亚马逊 S3 中的 Apache Iceberg Tables 处于预览阶段,可能会发生变化。

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

使用发送数据 AWS SDK

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

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

Amazon Data Fire API hose 提供了两种向你的 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 操作中的相关主题。

使用批量写入操作 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 操作中的相关主题。