Lou*_*uis 3 aws-cloudformation amazon-kinesis-firehose
我们通过 Kinesis Stream 处理数据(记录)到 Kinesis Firehose,然后将数据输出到 S3 存储桶中的文件。
然而,目前,所有记录都位于输出文件中的同一行,但我们希望将每个记录分开,以便它们位于自己的行上。
而不是类似的东西:
Store1, 100, Broccoli
Store1, 101, Avocado
Store1, 102, Apple
Run Code Online (Sandbox Code Playgroud)
目前看起来像:
Store1, 100, BroccoliStore1, 101, AvocadoStore1, 102, Apple
Run Code Online (Sandbox Code Playgroud)
这是我们的 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}"
Run Code Online (Sandbox Code Playgroud)
我们如何添加行分隔符以使记录显示在自己的行上?
谁在为您的运动流提供数据,应该在末尾添加“\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);
Run Code Online (Sandbox Code Playgroud)
参见来源。
| 归档时间: |
|
| 查看次数: |
3602 次 |
| 最近记录: |