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
🐛 Fixing rounding of numeric values for async destinations #31083
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,
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Ignored Deployment
|
bef8169
to
27ac2ba
Compare
27ac2ba
to
89475c9
Compare
features = ['db-destinations'] | ||
useLocalCdk = false | ||
useLocalCdk = true |
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.
Please CMIIW, my understanding of the steps are:
- Wait for PR approval
- Slash publish the CDK
- Toggle this line (and the same for the other 2 dests) back to false
- Merge the PR like usual
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.
looks right to me!
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
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.
master cdk is already on 0.1.5 so you'll need to fix that conflict :(
we should keep an eye on this dashboard in case this causes a noticeable drop? but I'm not expecting anything egregious -
features = ['db-destinations'] | ||
useLocalCdk = false | ||
useLocalCdk = true |
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.
looks right to me!
@@ -17,7 +17,7 @@ class CdkImportTest { | |||
*/ | |||
@Test | |||
void cdkVersionShouldMatch() { | |||
assertEquals("0.1.4", CDKConstants.VERSION.replace("-SNAPSHOT", "")); | |||
assertEquals("0.1.5", CDKConstants.VERSION.replace("-SNAPSHOT", "")); |
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.
@aaronsteers can we delete this test class? looks like it was something for cdk dev work
3c7bc10
to
645070c
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
destination-redshift test report (commit
|
Step | Result |
---|---|
Build connector tar | ✅ |
Build destination-redshift docker image for platform(s) linux/x86_64 | ✅ |
Java Connector Unit Tests | ✅ |
Build airbyte/normalization-redshift:dev | ✅ |
Java Connector Integration Tests | ✅ |
Validate metadata for destination-redshift | ✅ |
Connector version semver check | ✅ |
QA checks | ✅ |
☁️ 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-snowflake test report (commit
|
Step | Result |
---|---|
Build connector tar | ✅ |
Build destination-snowflake docker image for platform(s) linux/x86_64 | ✅ |
Java Connector Unit Tests | ✅ |
Java Connector Integration Tests | ✅ |
Validate metadata for destination-snowflake | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
☁️ 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-snowflake test
destination-bigquery test report (commit
|
Step | Result |
---|---|
Build connector tar | ✅ |
Build destination-bigquery docker image for platform(s) linux/x86_64 | ✅ |
Java Connector Unit Tests | ✅ |
Java Connector Integration Tests | ✅ |
Validate metadata for destination-bigquery | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
☁️ 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-bigquery test
/publish-java-cdk
|
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
destination-redshift test report (commit
|
Step | Result |
---|---|
Build connector tar | ✅ |
Build destination-redshift docker image for platform(s) linux/x86_64 | ✅ |
Java Connector Unit Tests | ✅ |
Build airbyte/normalization-redshift:dev | ✅ |
Java Connector Integration Tests | ✅ |
Validate metadata for destination-redshift | ✅ |
Connector version semver check | ✅ |
QA checks | ✅ |
☁️ 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-bigquery test report (commit
|
Step | Result |
---|---|
Build connector tar | ✅ |
Build destination-bigquery docker image for platform(s) linux/x86_64 | ✅ |
Java Connector Unit Tests | ✅ |
Java Connector Integration Tests | ✅ |
Validate metadata for destination-bigquery | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
☁️ 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-bigquery test
destination-snowflake test report (commit
|
Step | Result |
---|---|
Build connector tar | ✅ |
Build destination-snowflake docker image for platform(s) linux/x86_64 | ✅ |
Java Connector Unit Tests | ✅ |
Java Connector Integration Tests | ✅ |
Validate metadata for destination-snowflake | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
☁️ 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-snowflake test
For #28940:
The order (1) and (2) are merged doesn't matter. But both of them need to be merged before the problem is fixed (for async destinations).
Problem
Previously, numeric values with many digits after the decimal point (ex:
1884518522.1684267241
) would get truncated in the_airbyte_data
column in the raw table (ex:1.884518522168427e+09
). We should preserve full values in the raw table (after which numeric-typed columns may have precision restrictions per destination, ex: Snowflake has ~15 digits of precision so1884518522.16843
).Solution
Deserialize the Airbyte record message string with
DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS
to preserve all the decimals.Testing
Tested with source Postgres to destination Snowflake. See old raw table, new raw table, and final table.
Reading
The main change is in
AsyncStreamConsumer.java
andJsons.java
, with an added unit test inAsyncStreamConsumerTest.java
.