feat(kinesisfirehose): support dynamic partitioning #35903
feat(kinesisfirehose): support dynamic partitioning #35903mergify[bot] merged 28 commits intoaws:mainfrom
Conversation
362de35 to
a892113
Compare
|
|
||||||||||||||
|
|
||||||||||||||
kumvprat
left a comment
There was a problem hiding this comment.
@Tietew Thank you for the contribution and extensive testing of this(based on you finding undocumented defaults)
I have added a few inline comments.
If you still see the same undocumented defaults being enforced do inform me and I can check if there is documentation update needed(or maybe these defaults are not being enforced anymore)
|
I will try to dissect this a bit : #35903 (comment) Thanks a lot for digging deep to find the behaviour for all these edge cases. My opinion : Just the formatting could be a bit better to put the message across My questions :
|
kumvprat
left a comment
There was a problem hiding this comment.
Added a couple of comments for the new changes
| * @see https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html#prefix-rules | ||
| */ | ||
| function validateOutputPrefix(prefix?: string, errorOutputPrefix?: string) { | ||
| const ERROR_OUTPUT_TYPE = '!{firehose:error-output-type}'; |
There was a problem hiding this comment.
Should we define it outside this method so that users can use this when generating their prefix strings ?
| import type { DataProcessorBindOptions, IDataProcessor } from '../processor'; | ||
| import type { DynamicPartitioningProps } from '../s3-bucket'; | ||
|
|
||
| export const PARTKEY_QUERY = 'partitionKeyFromQuery'; |
There was a problem hiding this comment.
Any reason to not go for a verbose name like PARTITION_KEY_QUERY and PARTITION_KEY_LAMBDA for variable names ?
Does the cloudformation section represent using sdk or cloudformation sdk or api for getting the information ?I tried a simple CDK app which defines a firehose.DeliveryStream with an escape hatch on The cloudformation seems to informing about deaggregation processor but console seems to be talking about something else ? Console part is about de-aggregation here ?Sorry, my bad. I'll correct it. Is "DataPartitioning" = "Dynamic Partitioning" in cloudformation part ?Seems to be yes. And it seems like data transformation is a hard requirement when enabling dynamic partitioning ?"Processing Configuration is not enabled" means ProcessingConfiguration: {
Enabled: true,
Processors: [
{ Type: 'Lambda', Parameters: [...] }, // Data transformation
{ Type: 'MetadataExtraction', Parameters: [...] }, // Inline parsing
]
}But only from console ? Cloudformation response seems either for something else or unclear? (is this response observed when you use the cloudformation api directly ?)In console, the error message will be shown when:
|
|
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
Merge Queue StatusRule:
This pull request spent 4 seconds in the queue, with no time running CI. ReasonThe pull request can't be updated
HintYou should update or rebase your pull request manually. If you do, this pull request will automatically be requeued once the queue conditions match again. |
Pull request has been modified.
|
@Mergifyio queue |
Merge Queue Status🛑 Queue command has been cancelled |
|
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
|
@Mergifyio requeue |
☑️ This pull request is already queued |
|
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
|
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
|
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
Merge Queue StatusRule:
This pull request spent 1 hour 36 minutes 36 seconds in the queue, including 29 minutes 50 seconds running CI. Required conditions to merge
|
|
Comments on closed issues and PRs are hard for our team to see. |
Issue # (if applicable)
Closes #28740.
Reason for this change
Enables dynamic partitioning with inline parsing or Lambda function.
https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html
Description of changes
dynamicPartitioningprop to configure dynamic partitioningRecordDeAggregationProcessor- multi record deaggregationMetadataExtractionProcessor- configure inline parsingUsage
Describe any new or updated permissions being added
N/A
Description of how you validated changes
Unit tests and integ tests.
The integ tests also assert that records are correctly partitioned by JQ-1.6 or lambda function.
Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license