1
0
mirror of synced 2025-12-21 02:51:29 -05:00
Commit Graph

304 Commits

Author SHA1 Message Date
Edward Gao
33136b8917 Destination Snowflake: Publish for Write VARIANT columns correctly (#70442) 2025-12-08 17:53:49 +00:00
Edward Gao
edd138194a Destination Snowflake: update docs about numbers (#69842) 2025-11-24 19:32:14 +00:00
Francis Genet
b0cd0c6c26 [Snowflake] Truncate vs nullify on out of range for float and integer (#69342)
Co-authored-by: Edward Gao <edward.gao@airbyte.io>
2025-11-24 09:21:47 -08:00
Edward Gao
295accd05b Destinations Clickhouse+Snowflake: Add schema evolution test suite (#69245) 2025-11-13 15:49:22 -08:00
Edward Gao
0448b79439 Destination Snowflake: fix typo (#69285) 2025-11-11 23:01:48 +00:00
Edward Gao
8f7103984b Destination Snowflake: break down ensureSchemaMatches (#69117) 2025-11-11 11:29:46 -08:00
Jonathan Pearlin
28e92e1804 chore: publish connectors (#69226) 2025-11-06 14:59:17 -05:00
Jonathan Pearlin
eacc50aef6 chore: update to latest CDK release (#69200) 2025-11-05 12:43:46 -05:00
Edward Gao
a534ea2751 Destination Snowflake: fix spec (#69153) 2025-11-03 14:52:36 -08:00
Edward Gao
f1cc33727c Destintation Snowflake: improve handling of unrecognized JSON schema (#69147) 2025-11-03 10:01:13 -08:00
Subodh Kant Chaturvedi
47cc1f9c3c fix: upgrade cdk version for snowflake+clickhouse destinations for state message index fix (#69100) 2025-11-03 20:31:56 +05:30
Edward Gao
3f704ca769 Edgao/component upsert tests/connectors (#68186) 2025-10-29 08:53:45 -07:00
Edward Gao
d9b4ba20aa Destination Snowflake: bump to latest cdk (#68683) 2025-10-28 18:23:27 +00:00
Edward Gao
a8eb2855ec Destination snowflake: component tests (#68125) 2025-10-28 17:16:45 +00:00
Jimmy Ma
b7461cf28d chore(destination-snowflake): report permission issues as ConfigError (#68585)
Co-authored-by: Octavia Squidington III <octavia-squidington-iii@users.noreply.github.com>
2025-10-22 10:03:53 -07:00
Jonathan Pearlin
01a3f5c826 fix: ensure non-null schema fields are represented in destination schema (#68516) 2025-10-21 16:46:02 -04:00
Subodh Kant Chaturvedi
9eb70fb5a7 feat: update speed destination connectors to work with new proto format (#67153)
Co-authored-by: Rodi Reich Zilberman <867491+rodireich@users.noreply.github.com>
2025-10-21 23:03:33 +05:30
Edward Gao
2bd1493972 Destination Snowflake: upgrade to latest cdk (#68148)
mechanical changes to get the new interfaces. Presumably if it compiles,
it works.

ended up doing this as a separate PR just to avoid polluting my test
components PR with this stuff
2025-10-16 13:22:40 -07:00
Jonathan Pearlin
3eab227fda fix: revert cache change to fix performance issue (#68106)
## What
* Revert introduction of column cache to formatter to improve
performance

## How
* Restore previous logic

## Review guide
* `SnowflakeRecordFormatter.kt`

## User Impact

## Can this PR be safely reverted and rolled back?
- [X] YES 💚
- [ ] NO 
2025-10-15 11:27:53 -04:00
Jonathan Pearlin
17c86e8eed Cache Airbyte metadata column lookup in formatter (#68096)
## What
* Cache the Airbyte metadata column lookup in the record formatter to
improve performance

## How
* Add cache the formatters
* Restore accidentally deleted test
* Add logging

## Review guide
1. `SnowflakeRecordFormatter.kt`

## Can this PR be safely reverted and rolled back?
- [X] YES 💚
- [ ] NO 
2025-10-15 08:19:57 -04:00
Edward Gao
ac944b6375 Destination Snowflake: fix config migrator edge case; add tests for QUOTED_IDENTIFIERS_IGNORE_CASE (#67721)
closes https://github.com/airbytehq/airbyte-internal-issues/issues/14843

Review each commit separately, they're pretty self-contained.
2025-10-14 15:04:02 +00:00
Edward Gao
6763b2220c Destination Snowflake: avoid case sensitivity in check (#67714)
## What
example sql:
```sql
ALTER SESSION SET QUOTED_IDENTIFIERS_IGNORE_CASE = true;
create table foo (id int);
select count(*) as "total" from foo;
```
the returned result set will have `TOTAL` as the column, rather than
`total`.

## How
just always upcase the `total` column 🤷

## Review guide
<!--
1. `x.py`
2. `y.py`
-->

## User Impact
<!--
* What is the end result perceived by the user?
* If there are negative side effects, please list them. 
-->

## Can this PR be safely reverted and rolled back?
<!--
* If unsure, leave it blank.
-->
- [x] YES 💚
- [ ] NO 
2025-10-13 16:24:30 -07:00
Francis Genet
0f6a500868 [Snowflake] Fix string length char size issue (#67610)
## What

This should fix the `User character length limit (16777216) exceeded by
string` error

## Can this PR be safely reverted and rolled back?
<!--
* If unsure, leave it blank.
-->
- [X] YES 💚
- [ ] NO 
2025-10-10 14:30:33 -07:00
Ryan Br...
170ef86354 Bump cdk for SF and release. (#67599)
## What
Brings SF to the latest CDK

## Notes
We no longer set max concurrent stream to 50 which is a good thing as
that could have lead to massive disk usage. We will now evict if we use
over 1750mb (350mb * 5) of disk, which is much more reasonable.

## User Impact
We won't immediately evict aggregates if over some static number of
interleaved-ness. We secondarily check the size of all active aggregates
and only evict if over the configured size.
2025-10-10 10:17:28 -07:00
Jonathan Pearlin
4f5fbed366 feat: set gzip compression level for snowflake destination csv files (#67590)
## What
* Configuration GZIP compression level for CSV file output of
destination-snowflake

## How
* Expose the ability to set the compression level on the
`GZIPOutputStream`
* Default the level to level 5 (faster/less compression than default
level 6)
* Inline file format into copy command to avoid conflicts when modifying
the file format.

**N.B.** Testing showed about a 12% speed improvement over the current
code. Ideally, we would dial this in to the best tradeoff level for
speed vs compression, possibly even exposing this setting to the user
for advanced cases where more compression is required over speed.

## Review guide
1. `SnowflakeInsertBuffer.kt`

## Can this PR be safely reverted and rolled back?
- [X] YES 💚
- [ ] NO 

---------

Co-authored-by: Edward Gao <edward.gao@airbyte.io>
2025-10-09 14:20:34 -04:00
Edward Gao
bc1142a8c8 Destination Snowflake: do not upcase column name in DROP COLUMN (#67582)
## What
for https://github.com/airbytehq/oncall/issues/9621. Branched from
https://github.com/airbytehq/airbyte/pull/67575. Stop upcasing the
column name before dropping it.

This only really comes into play if either (a) a schema evolution is
interrupted, or (b) the user manually adds a column with lowercase name
to their table. Most schema evolutions are working fine, in spite of
this bug.

## How
The bug is that when we `describe table`, we called
`toSnowflakeCompatibleName()` on the column names. This upcases the
column names. Then when we go to drop the column, the column obviously
doesn't exist, because we modified it incorrectly.

This PR switches to the method which does the quote-escaping, but
doesn't upcase the name.

Tested manually: 
```sql
alter table edgao_test.variant_test add column "x" object;
alter table edgao_test.variant_test add column "y" object;
```
Then run this thing to simulate a sync (the sync will create a table
with column `X`). Without this change, it fails; with this change, it
correctly drops the `x` and `y` columns, and leaves the `X` column
untouched.
```kotlin
    @Test
    fun arst() {
        val stream =
            DestinationStream(
                "edgao_test",
                "variant_test",
                importType = Append,
                schema =
                    ObjectType(
                        properties =
                            linkedMapOf(
                                "x" to FieldType(ObjectType(properties = linkedMapOf()), nullable = true)
                            )
                    ),
                generationId = 42,
                minimumGenerationId = 0,
                syncId = 42,
                namespaceMapper = namespaceMapperForMedium()
            )
        runSync(
            updatedConfig,
            stream,
            listOf(
                InputRecord(
                    stream,
                    """
                    {
                      "x": {"foo": "bar"}
                    }""".trimIndent(),
                    emittedAtMs = 1000,
                    checkpointId = checkpointKeyForMedium()?.checkpointId
                )
            )
        )
    }
```

## Can this PR be safely reverted and rolled back?
<!--
* If unsure, leave it blank.
-->
- [x] YES 💚
- [ ] NO 
2025-10-09 10:02:32 -07:00
Edward Gao
ca74b63cfd Destination Snowflake: revert type changes (#67575)
https://airbytehq-team.slack.com/archives/C0964SCVBBJ/p1759959691768369

compare old behavior:
*
1b36d1d04b/airbyte-integrations/connectors/destination-snowflake/src/main/kotlin/io/airbyte/integrations/destination/snowflake/typing_deduping/SnowflakeSqlGenerator.kt (L60-L74)
*
1b36d1d04b/airbyte-integrations/connectors/destination-snowflake/src/main/kotlin/io/airbyte/integrations/destination/snowflake/SnowflakeDatabaseUtils.kt (L282-L295)

> [!IMPORTANT]
> **Auto-merge enabled.**
> 
> _This PR is set to merge automatically when all requirements are met._

> [!NOTE]
> **Auto-merge may have been disabled. Please check the PR status to
confirm.**
2025-10-09 09:10:36 -07:00
Edward Gao
6de8f8239a Destination Snowflake: ignore backslashes (#67569)
## What
Ignore backslashes in field values

## How
Snowflake defaults to treating `\` as an escape character (...ish.
`\foo,bar` treats it as a normal character, but `foo\,bar` treats it as
an escape)

We're already doing normal CSV escape things, so just tell snowflake to
stop doing this.

## Can this PR be safely reverted and rolled back?
<!--
* If unsure, leave it blank.
-->
- [x] YES 💚
- [ ] NO 
2025-10-08 13:15:19 -07:00
Edward Gao
ff226171f5 Destination Snowflake: increase max open aggregates (#67556)
closes
https://github.com/airbytehq/airbyte-internal-issues/issues/14720.
improve handling when there are many streams, which have heavily
interleaved records

---------

Co-authored-by: Jonathan Pearlin <jonathan@airbyte.io>
Co-authored-by: Francis Genet <francis.genet@airbyte.io>
Co-authored-by: Benoit Moriceau <benoit@airbyte.io>
2025-10-08 10:05:16 -07:00
Edward Gao
173710c173 Destination Snowflake: cache table columns (#67301) 2025-10-07 16:23:00 +00:00
Ryan Br...
7f085f7f5e Rbroughan/remove allocations from snowflake isvalid (#67106) 2025-10-06 18:57:55 +00:00
Francis Genet
2ea4544e68 Snowflake 4.0.0 Direct load release (breaking change) (#66747)
Co-authored-by: Jonathan Pearlin <jonathan@airbyte.io>
Co-authored-by: Benoit Moriceau <benoit@airbyte.io>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Edward Gao <edward.gao@airbyte.io>
2025-10-06 11:26:14 -07:00
Jose Pefaur
87bb65adaa chore: set destination snowflake cdk version to the latest published version (#66753) 2025-09-29 16:29:10 -05:00
Francis Genet
d9fab55736 [Snowflake] Main release branch - RC.1 (#66307)
Co-authored-by: Jonathan Pearlin <jonathan@airbyte.io>
Co-authored-by: Benoit Moriceau <benoit@airbyte.io>
2025-09-26 10:11:00 -07:00
Davin Chia
de993b661a chore: document suboptimal implementation of SHOW/DESCRIBE for Dest Snowflake. (#65582) 2025-08-28 08:59:45 -07:00
Ian Alton
c8cf650229 Added a single source of truth for keypair authentication in Snowflake (#63726)
Co-authored-by: Conall Ó Gribín <167999304+Conall-airbyte@users.noreply.github.com>
2025-08-20 08:06:49 -07:00
Davin Chia
2c573f8e4e chore: preemptively bump certified connectors. (#61588)
Following #61584. Bumping certified connector versions to make sure the version and code commits align. Doing this in 2 parts.

Bump BQ, SF, S3, S3-data-lake.
2025-06-13 17:34:40 +00:00
Davin Chia
acdfd3a55d chore: migrate dest-sf to new base image. (#60328)
Following #60312, migrate Dest SF to new base image for security updates.
2025-05-16 16:36:23 -04:00
Davin Chia
596ab091f2 Correct Dest SF readme. (#59658)
Correct typo.
2025-05-05 14:35:16 -07:00
Davin Chia
eb10b6d7e5 Pull in last set of Security vulnerability for Dest Snowflake. (#59222)
Pull in #59221 into Snowflake.
2025-05-03 03:33:10 +03:00
Davin Chia
6967848e6e Dest Snowflake: Bump CDK version to fix vulnerability. (#59166) 2025-04-30 22:43:04 +03:00
Edward Gao
402d44db70 Destinations Snowflake, Postgres: Upgrade to latest CDK for security patches (#58652) 2025-04-24 16:02:01 -07:00
Ian Alton
01cd16654e 11059 multi-instance, versioned docs (#58095)
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-04-24 02:58:09 +03:00
Conall Ó Gribín
b6392c7cfa Update private key generation steps in snowflake.md (#44896)
replace documented openssl command cipher PBE-SHA1-RC4-128  with aes-256-cbc
2025-03-28 20:45:52 +02:00
devin-ai-integration[bot]
ceaf322225 chore(destination): Upgrade all Java destination connectors to use java-connector-base:2.0.1 (#56355)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: davin@airbyte.io <davin@airbyte.io>
Co-authored-by: Davin Chia <davinchia@gmail.com>
2025-03-24 18:59:36 -04:00
Edward Gao
b51d9a4043 Destinations: extract common documentation about airbyte fields (#53177) 2025-02-10 13:32:14 -08:00
Augustin
26fb6f8062 destination-snowflake: Use airbyte/java-connector-base:2.0.0 (#51503) 2025-01-14 09:14:08 +01:00
Augustin
7ddc6d652e destination-snowflake: Use airbyte/java-connector-base:1.0.0 (#49913)
Co-authored-by: Octavia Squidington III <octavia-squidington-iii@users.noreply.github.com>
2025-01-09 16:18:25 +01:00
Edward Gao
d274445d52 Destination snowflake: upgrade snowflake jdbc driver (#48070) 2024-10-31 15:25:39 -07:00
zeev-finaloop
96429eae38 Destination Snowflake: add snowflake transaction wrapper for rollback support (#46989) 2024-10-31 13:13:31 -07:00