Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kinesis connector #476

Closed
wants to merge 1 commit into from
Closed

Conversation

ankitdixit
Copy link
Member

No description provided.

@cla-bot cla-bot bot added the cla-signed label Mar 14, 2019
@findepi findepi mentioned this pull request Mar 14, 2019
@findepi findepi changed the title Adding kinesis connector Kinesis connector Mar 14, 2019
@ankitdixit
Copy link
Member Author

@martint @findepi Can you guys please review it or point me to people who could?

@findepi
Copy link
Member

findepi commented Mar 18, 2019

@ankitdixit i'd love to review this, but i don't have enough bandwidth now. 😞

Copy link
Member

@martint martint left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some high level comments from a quick scan of the code.

presto-kinesis/README.md Outdated Show resolved Hide resolved
presto-kinesis/README.md Outdated Show resolved Hide resolved
presto-kinesis/README.md Outdated Show resolved Hide resolved
presto-kinesis/README.md Outdated Show resolved Hide resolved
presto-kinesis/pom.xml Outdated Show resolved Hide resolved
Copy link
Member

@electrum electrum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some initial comments

presto-kinesis/pom.xml Show resolved Hide resolved
presto-kinesis/pom.xml Outdated Show resolved Hide resolved
presto-kinesis/pom.xml Outdated Show resolved Hide resolved
presto-kinesis/pom.xml Show resolved Hide resolved
presto-kinesis/pom.xml Outdated Show resolved Hide resolved
@takezoe
Copy link
Member

takezoe commented Mar 22, 2019

Is it acceptable to include KCL (amazon-kinesis-client)? KCL is licensed under Amazon Software License and its compatibility with Apache License had been argued in some other open source projects.

Probably it's OK if the connector will be distributed as source code and users build by themselves.

@ankitdixit
Copy link
Member Author

@martint @electrum I have addressed comments, please have a look again.

@dain
Copy link
Member

dain commented Apr 3, 2019

@takezoe and @ankitdixit: We looked over the license, and it seems ok for a connector. We will need to update the NOTICE file, the README file, and we will add a banner in the docs for this connector to let users know the license has additional restrictions. We will handle theses changes, so you don't need to do anything extra for this.

@ankitdixit
Copy link
Member Author

@dain @electrum Can you please go through this PR again and let me know the next set of comments

Copy link
Member

@dain dain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build is failing due to the old version number in the new presto-kinesis/pom.xml file. Can you update that an resubmit so that Travis runs?

Also, I just skimmed over the code, and I think you missed a bunch of comments from @electrum.

presto-kinesis/pom.xml Outdated Show resolved Hide resolved
pom.xml Outdated Show resolved Hide resolved
@dain dain requested review from electrum and martint April 9, 2019 20:48
@ankitdixit
Copy link
Member Author

@martint @electrum I have addressed missed comments, can you guys please check this again

@ankitdixit
Copy link
Member Author

@electrum @martint ping

Copy link
Member

@martint martint left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some more comments.

BTW, did you forget to push some updates or is github getting confused with the merge commits? It doesn't seem to be showing updates based on earlier review comments.

Can you rebase on top of master and get rid of the merge commits to see if that fixes it?

@ankitdixit
Copy link
Member Author

@martint @dain @electrum Sorry for the delayed response, I was traveling.
I have addressed the comments

@ankitdixit ankitdixit closed this May 8, 2019
@ankitdixit ankitdixit reopened this May 8, 2019
@ankitdixit
Copy link
Member Author

@electrum @martint Please have a look at this PR again

@ankitdixit ankitdixit force-pushed the prestosql-kinesis branch from 4efa077 to 848dafd Compare May 22, 2019 05:05
Copy link
Member

@martint martint left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ankitdixit, it looks like some comments that are marked as resolved are still not addressed. Did some changes get lost when you squashed the commits?

return iterFromTimestamp;
}

@Config("kinesis.iter-from-timestamp")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This still has the old name. Can you update?

return iterOffsetSeconds;
}

@Config("kinesis.iter-offset-seconds")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here.

@ankitdixit ankitdixit force-pushed the prestosql-kinesis branch from 848dafd to fa6b9b0 Compare May 27, 2019 06:26
@ankitdixit
Copy link
Member Author

@ankitdixit, it looks like some comments that are marked as resolved are still not addressed. Did some changes get lost when you squashed the commits?

Yes, seems i missed them while squashing, fixed now.

@dain dain requested review from martint and electrum June 1, 2019 02:03
@ankitdixit ankitdixit force-pushed the prestosql-kinesis branch from 35b4465 to 3fd0c3e Compare June 3, 2019 05:13
Copy link
Member

@electrum electrum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still reviewing, but some initial comments

presto-kinesis/README.md Outdated Show resolved Hide resolved
presto-kinesis/README.md Outdated Show resolved Hide resolved
presto-kinesis/README.md Outdated Show resolved Hide resolved
presto-kinesis/README.md Outdated Show resolved Hide resolved
presto-kinesis/README.md Outdated Show resolved Hide resolved
@ankitdixit ankitdixit force-pushed the prestosql-kinesis branch 5 times, most recently from 9c9019d to 5a7baf5 Compare June 27, 2019 09:35
@kokosing
Copy link
Member

kokosing commented Aug 7, 2019

@ankitdixit Have you managed to address all comments you got?

@ankitdixit ankitdixit force-pushed the prestosql-kinesis branch 3 times, most recently from 6be40c2 to bfedeb9 Compare August 16, 2019 11:18
@ankitdixit
Copy link
Member Author

ankitdixit commented Aug 16, 2019

@martint @electrum @kokosing I have gone through all the conversations and have tried to resolve all the comments
Here are 3 reccomendations which I have not incorporated yet with reasons:

  • Using latest SDK version :
    Using latest version causes exceptions like: com.amazonaws.services.kinesis.model.InvalidArgumentException: The timestampInMillis parameter cannot be greater than the currentTimestampInMillis. timestampInMillis: 1565614647413000, currentTimestampInMillis: 1565701047548 (Service: AmazonKinesis; Status Code: 400; Error Code: InvalidArgumentException; Request ID: fdd2d515-614a-01d7-a81e-60e2343526fb)

  • And because of old version removing System.setProperty("com.amazonaws.sdk.disableCbor", "true”); causes: com.amazonaws.AmazonClientException: Unable to marshall request to JSON: com.fasterxml.jackson.dataformat.cbor.CBORGenerator.getOutputContext()Lcom/fasterxml/jackson/core/json/JsonWriteContext;
    Kinesis connector #476 (comment)
    KinesisColumnHandle implements DecoderColumnHandle, hence the getters still need to return String (for example), we can clean this up separately changing decoder module interfaces (common across redshift, kinesis and kafka).

  • In KinesisPlugin, still exposing a method to expose ClientProvider as tests in TestRecordAccess.java needs access to ClientProvider to add data to stream from within the test.
    I could not come up with a better way to write tests there.

Copy link
Member

@martint martint left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some additional comments. Also, it looks like you missed some comments from @electrum.

@ankitdixit ankitdixit force-pushed the prestosql-kinesis branch 2 times, most recently from 7118f81 to 4e044aa Compare September 9, 2019 18:00
Copy link
Member

@martint martint left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a bunch of minor stylistic comments. For anything else, let's create a separate issue to track them and we can tackle them after we merge this first version.

The only issues I've found that we should address before merging are:

  • the "statefulness" of ConnectorFactory, which can cause problems when the connector is instantiated multiple times. If you'd like to chat about this more, please ping me on Slack.
  • some errors are being swallowed, which cause result in silent and subtle issues.

@ankitdixit ankitdixit force-pushed the prestosql-kinesis branch 3 times, most recently from 674026c to 10dfef1 Compare September 24, 2019 10:59
@martint
Copy link
Member

martint commented Sep 24, 2019

Made a couple of minor adjustments and merged it. Thanks!

@martint martint closed this Sep 24, 2019
@martint martint added this to the 320 milestone Sep 24, 2019
@martint martint mentioned this pull request Sep 24, 2019
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

8 participants