gpt4 book ai didi

aws-cloudformation - 如何在 CloudFormation 中的 AWS Kinesis 中添加行分隔符?

转载 作者:行者123 更新时间:2023-12-04 02:00:08 25 4
gpt4 key购买 nike

我们正在通过 Kinesis Stream 处理数据(记录)到 Kinesis Firehose,然后将数据输出到 S3 存储桶中的文件。

但是目前,所有记录都位于输出文件中的同一行,但我们希望将每个记录分开,以便它们位于自己的行上。

而不是类似:

Store1, 100, Broccoli
Store1, 101, Avocado
Store1, 102, Apple

目前看起来像:

Store1, 100, BroccoliStore1, 101, AvocadoStore1, 102, Apple

这是我们的 CloudFormation 模板:

Resources:
MyBucket:
Type: AWS::S3::Bucket

MyStream:
Type: AWS::Kinesis::Stream
Properties:
Name: my-stream
RetentionPeriodHours: 24
ShardCount: 5

MyFirehose:
Type: AWS::KinesisFirehose::DeliveryStream
Properties:
DeliveryStreamName: my-firehose
DeliveryStreamType: KinesisStreamAsSource
KinesisStreamSourceConfiguration:
KinesisStreamARN:
Fn::Sub: "${MyStream.Arn}"
RoleARN:
Fn::Sub: "${MyRole.Arn}"
S3DestinationConfiguration:
BufferingHints:
IntervalInSeconds: 60
SizeInMBs: 50
CompressionFormat: UNCOMPRESSED
Prefix: concessions/
BucketARN:
Fn::Sub: "${MyBucket.Arn}"
RoleARN:
Fn::Sub: "${MyRole.Arn}"

如何添加行分隔符以使记录显示在自己的行上?

最佳答案

谁在为您的运动流提供数据,应在末尾添加“\n”。请参阅下面的 Java 示例:

PutRecordRequest putRecordRequest = new PutRecordRequest(); 
putRecordRequest.setFirehoseName("incoming-stream");

String data = "some data" + "\n"; // add \n as a record separator
Record record = new Record();
record.setData(ByteBuffer.wrap(data.getBytes(StandardCharsets.UTF_8)));

putRecordRequest.setRecord(record);
firehoseClient.putRecord(putRecordRequest);

参见source.

关于aws-cloudformation - 如何在 CloudFormation 中的 AWS Kinesis 中添加行分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47875398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com