-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
✨Switch redshift staging to async mode #28619
Conversation
Before Merging a Connector Pull RequestWow! What a great pull request you have here! 🎉 To merge this PR, ensure the following has been done/considered for each connector added or updated:
If the checklist is complete, but the CI check is failing,
|
/legacy-test connector=destination-redshift
Build FailedTest summary info:
|
/legacy-test connector=destination-redshift
|
…into bmoric/async-redshift
…into bmoric/async-redshift
destination-redshift test report (commit
|
Step | Result |
---|---|
Validate airbyte-integrations/connectors/destination-redshift/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
Build connector tar | ❌ |
☁️ View runs for commit in Dagger Cloud
Please note that tests are only run on PR ready for review. Please set your PR to draft mode to not flood the CI engine and upstream service on following commits.
You can run the same pipeline locally on this branch with the airbyte-ci tool with the following command
airbyte-ci connectors --name=destination-redshift test
destination-redshift test report (commit
|
Step | Result |
---|---|
Validate airbyte-integrations/connectors/destination-redshift/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
Build connector tar | ✅ |
Build destination-redshift docker image for platform linux/x86_64 | ✅ |
Build airbyte/normalization-redshift:dev | ✅ |
./gradlew :airbyte-integrations:connectors:destination-redshift:integrationTest | ❌ |
☁️ View runs for commit in Dagger Cloud
Please note that tests are only run on PR ready for review. Please set your PR to draft mode to not flood the CI engine and upstream service on following commits.
You can run the same pipeline locally on this branch with the airbyte-ci tool with the following command
airbyte-ci connectors --name=destination-redshift test
destination-redshift test report (commit
|
Step | Result |
---|---|
Validate airbyte-integrations/connectors/destination-redshift/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
Build connector tar | ✅ |
Build destination-redshift docker image for platform linux/x86_64 | ✅ |
Build airbyte/normalization-redshift:dev | ✅ |
./gradlew :airbyte-integrations:connectors:destination-redshift:integrationTest | ❌ |
☁️ View runs for commit in Dagger Cloud
Please note that tests are only run on PR ready for review. Please set your PR to draft mode to not flood the CI engine and upstream service on following commits.
You can run the same pipeline locally on this branch with the airbyte-ci tool with the following command
airbyte-ci connectors --name=destination-redshift test
destination-redshift test report (commit
|
Step | Result |
---|---|
Validate airbyte-integrations/connectors/destination-redshift/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
Build connector tar | ✅ |
Build destination-redshift docker image for platform linux/x86_64 | ✅ |
Build airbyte/normalization-redshift:dev | ✅ |
./gradlew :airbyte-integrations:connectors:destination-redshift:integrationTest | ❌ |
☁️ View runs for commit in Dagger Cloud
Please note that tests are only run on PR ready for review. Please set your PR to draft mode to not flood the CI engine and upstream service on following commits.
You can run the same pipeline locally on this branch with the airbyte-ci tool with the following command
airbyte-ci connectors --name=destination-redshift test
destination-redshift test report (commit
|
Step | Result |
---|---|
Validate airbyte-integrations/connectors/destination-redshift/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
Build connector tar | ✅ |
Build destination-redshift docker image for platform linux/x86_64 | ✅ |
Build airbyte/normalization-redshift:dev | ✅ |
./gradlew :airbyte-integrations:connectors:destination-redshift:integrationTest | ❌ |
☁️ View runs for commit in Dagger Cloud
Please note that tests are only run on PR ready for review. Please set your PR to draft mode to not flood the CI engine and upstream service on following commits.
You can run the same pipeline locally on this branch with the airbyte-ci tool with the following command
airbyte-ci connectors --name=destination-redshift test
...redshift/src/main/java/io/airbyte/integrations/destination/redshift/RedshiftDestination.java
Outdated
Show resolved
Hide resolved
final JsonNode s3Options = findS3Options(config); | ||
final S3DestinationConfig s3Config = getS3DestinationConfig(s3Options); | ||
final int numberOfFileBuffers = getNumberOfFileBuffers(s3Options); | ||
|
||
if (numberOfFileBuffers > FileBuffer.SOFT_CAP_CONCURRENT_STREAM_IN_BUFFER) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can also get rid of the file buffers option since the Async framework accounts for this. I think we should do so in a follow up PR and patch version bump. @edgao any preference?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If Edward is ok, I can do it after merging this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
followup pr works for me!
...s-destination-jdbc/src/main/java/io/airbyte/integrations/destination/staging/AsyncFlush.java
Outdated
Show resolved
Hide resolved
…a/io/airbyte/integrations/destination/staging/AsyncFlush.java Co-authored-by: Davin Chia <davinchia@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
approving with failing checks because tests are probably just busted on CI. E.g. testIncrementalSyncWithNormalizationDropOneColumn
failed here, but passed locally for benoit.
/approve-and-merge reason="local test works" |
destination-redshift test report (commit
|
Step | Result |
---|---|
Validate airbyte-integrations/connectors/destination-redshift/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
Build connector tar | ✅ |
Build destination-redshift docker image for platform linux/x86_64 | ✅ |
Build airbyte/normalization-redshift:dev | ✅ |
./gradlew :airbyte-integrations:connectors:destination-redshift:integrationTest | ❌ |
☁️ View runs for commit in Dagger Cloud
Please note that tests are only run on PR ready for review. Please set your PR to draft mode to not flood the CI engine and upstream service on following commits.
You can run the same pipeline locally on this branch with the airbyte-ci tool with the following command
airbyte-ci connectors --name=destination-redshift test
destination-redshift test report (commit
|
Step | Result |
---|---|
Validate airbyte-integrations/connectors/destination-redshift/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ❌ |
QA checks | ✅ |
Build connector tar | ✅ |
Build destination-redshift docker image for platform linux/x86_64 | ✅ |
Build airbyte/normalization-redshift:dev | ✅ |
./gradlew :airbyte-integrations:connectors:destination-redshift:integrationTest | ❌ |
☁️ View runs for commit in Dagger Cloud
Please note that tests are only run on PR ready for review. Please set your PR to draft mode to not flood the CI engine and upstream service on following commits.
You can run the same pipeline locally on this branch with the airbyte-ci tool with the following command
airbyte-ci connectors --name=destination-redshift test
* Async snowflake * Use async in destination implenentation * Format * Switch redshif to asyn mode * Remove old unused consumer creation * Add new version * Fix non staging mode * Change switcing to use the get serialized consumer * Automated Commit - Format and Process Resources Changes * Test * Automated Commit - Format and Process Resources Changes * Use method * Test smaller buffer * Test smaller buffer for redshift * Automated Commit - Format and Process Resources Changes * Bigger ratio * Remove snowflake changes * Implement the new interface * Automated Commit - Format and Process Resources Changes * push ratio to 0.8 * Smaller Optimal buffer size * Automated Commit - Format and Process Resources Changes * Bigger buffer * Use a buffer of 10 Mb * Use a buffer of 75 Mb * Test reduce lib thread * Add flags for remote profiler. * Part size to match the async part size * Part size to 100 Mb * restore default * Try with 1 thread * Go back to default * Clean up * Bump version * Restore gradle * Re-add vm capture * Test reduce allowed buffer size * Use all the memory available * only 3 threads for the lib * Automated Commit - Format and Process Resources Changes * test with 1 * Automated Commit - Format and Process Resources Changes * Add local log ling. * Do not use all RAM for heap. * Fix build * Clean up * Clean up * Update airbyte-integrations/bases/bases-destination-jdbc/src/main/java/io/airbyte/integrations/destination/staging/AsyncFlush.java Co-authored-by: Davin Chia <davinchia@gmail.com> * Automated Commit - Format and Process Resources Changes --------- Co-authored-by: Davin Chia <davinchia@gmail.com> Co-authored-by: benmoriceau <benmoriceau@users.noreply.github.com>
What
Switch the redshift staging to the async framework.
How
Use the
createAsync
method instead of thecreate
to get an AirbyteMessage consumer. This Pr also provide the ability to specify a different Optimal flush size for the Async flush. Even if it is not needed to release readshift, it was used for some test and kept into this PR.Recommended reading order
RedshiftStaginS3Destination.java
🚨 User Impact 🚨
Are there any breaking changes? What is the end result perceived by the user?
For connector PRs, use this section to explain which type of semantic versioning bump occurs as a result of the changes. Refer to our Semantic Versioning for Connectors guidelines for more information. Breaking changes to connectors must be documented by an Airbyte engineer (PR author, or reviewer for community PRs) by using the Breaking Change Release Playbook.
If there are breaking changes, please merge this PR with the 🚨🚨 emoji so changelog authors can further highlight this if needed.
Pre-merge Actions
Expand the relevant checklist and delete the others.
New Connector
Community member or Airbyter
./gradlew :airbyte-integrations:connectors:<name>:integrationTest
.0.0.1
Dockerfile
has version0.0.1
README.md
bootstrap.md
. See description and examplesdocs/integrations/<source or destination>/<name>.md
including changelog with an entry for the initial version. See changelog exampledocs/integrations/README.md
Airbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
Updating a connector
Community member or Airbyter
Airbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
Connector Generator
-scaffold
in their name) have been updated with the latest scaffold by running./gradlew :airbyte-integrations:connector-templates:generator:testScaffoldTemplates
then checking in your changes