将 Amazon Data Firehose 流传输到亚马逊 S3 中的 Apache Iceberg Tables 处于预览阶段,可能会发生变化。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用发送数据 AWS SDK
你可以使用 Amazon Data Firehose 将数据发送API到 Firehose 流,方法是 AWS
SDK对于 Java 来说
这些示例并非可直接用于生产的代码,因为它们不会检查所有可能的异常,或者不会考虑到所有可能的安全或性能问题。
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 操作中的相关主题。