-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Destination snowflake 1s1t: it works now #29174
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,
|
...ination-snowflake/src/test-integration/resources/dat/sync1_expectedrecords_dedup_final.jsonl
Show resolved
Hide resolved
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.
"use_1s1t_format": { | ||
"type": "boolean", | ||
"description": "(Beta) Use <a href=\"https://github.com/airbytehq/airbyte/issues/26028\" target=\"_blank\">Destinations V2</a>. Contact Airbyte Support to participate in the beta program.", | ||
"title": "Use Destinations V2 (Early Access)", | ||
"order": 10 | ||
}, | ||
"raw_data_schema": { | ||
"type": "string", | ||
"description": "(Beta) The schema to write raw tables into", | ||
"title": "Destinations V2 Raw Table Schema (Early Access)", | ||
"order": 11 |
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.
cc @Hesperide - we are going right into early-access for all users, no private beta thi time around
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
return nameTransformer.applyDefaultCase(String.join(".", | ||
nameTransformer.convertStreamName(namespace), | ||
nameTransformer.convertStreamName(streamName))); | ||
if (use1s1t) { |
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.
Is something that only applies to 1s1t?
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.
yep. this prevents snowflake from uppercasing the schema/table name, which is a breaking change relative to current behavior.
// TODO | ||
return new StreamId(namespace, name, rawNamespaceOverride, StreamId.concatenateRawTableName(namespace, name), namespace, name); | ||
} | ||
|
||
@Override | ||
public ColumnId buildColumnId(String name) { | ||
public ColumnId buildColumnId(final String name) { | ||
// TODO |
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.
what's TODO?
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.
nothing 🤦 I'm sure we'll get some beta users reporting weird character handling, but in my current testing this seems to work fine. I'll remove the comments.
@@ -174,14 +174,28 @@ private String extractAndCast(final ColumnId column, final AirbyteType airbyteTy | |||
return new StringSubstitutor(Map.of("column_name", column.originalName())).replace( | |||
""" | |||
CASE | |||
WHEN NOT ("_airbyte_data":"${column_name}"::TEXT REGEXP '\\\\d{1,2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(Z|[+\\\\-]\\\\d{1,2}:\\\\d{2})') | |||
WHEN NOT ("_airbyte_data":"${column_name}"::TEXT REGEXP '\\\\d{1,2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(Z|[+\\\\-]\\\\d{1,2}(:?\\\\d{2})?)') |
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.
nit: whenever I have a gnarly regex like this I like to add a comment with an example or two of what it is supposed to match
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.
good call, added comments for this
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.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
|
Step | Result |
---|---|
Validate airbyte-integrations/connectors/destination-teradata/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
Build connector tar | ✅ |
Build destination-teradata docker image for platform linux/x86_64 | ✅ |
./gradlew :airbyte-integrations:connectors:destination-teradata: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-teradata test
|
Step | Result |
---|---|
Validate airbyte-integrations/connectors/destination-snowflake/metadata.yaml | ✅ |
Connector version semver check | ✅ |
Connector version increment check | ✅ |
QA checks | ✅ |
Build connector tar | ✅ |
Build destination-snowflake docker image for platform linux/x86_64 | ✅ |
Build airbyte/normalization-snowflake:dev | ✅ |
./gradlew :airbyte-integrations:connectors:destination-snowflake: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-snowflake test
|
Step | Result |
---|---|
Validate airbyte-integrations/connectors/destination-bigquery/metadata.yaml | ✅ |
Connector version semver check | ✅ |
QA checks | ✅ |
Build connector tar | ✅ |
Build destination-bigquery docker image for platform linux/x86_64 | ✅ |
Build airbyte/normalization:dev | ✅ |
./gradlew :airbyte-integrations:connectors:destination-bigquery: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-bigquery test
* disable 1s1t in gcs/s3 mode * derp * quote things in many places * fix timestamp format...? * delete unused tests * more expectedrecord timestamp fixes * implement dumpFinalTable * fix bug * bugfix in schema change detection * add schema change detection tests * fix schema change detection * add spec options * logistics * add timestamp format test * and snowflake * accept raw schema override * fix test handling * fix unit test * Automated Commit - Format and Process Resources Changes * typo * forgot to fix this * ... I had uncommitted changes * resolve TODOs * add regex examples * correctly drop check table in check connection * also bump teradata >.> --------- Co-authored-by: edgao <edgao@users.noreply.github.com>
#29188 needs to merge first, to fix the
incrementalDedupDefaultNamespace
test. All other tests are passing.T+D expected records have non-UTC timezone in airbyte_extracted_at because of #29199. This also happens with old, non-1s1t syncs.
This PR is a grabbag of bugfixes:
check
returns failure for 1s1t + gcs/s3 stagingAbstractSnowflakeTypingDedupingTest#dumpFinalTable
+/-08
and+/-0800
timezone offsets in snowflakeI ran a faker -> snowflake sync locally. Try out
select * from "edgao_1s1t"."users" limit 10;
andselect * from "edgao_default_raw_schema"."edgao_1s1t_raw__stream_users" limit 10;
on our test instance!