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

Fix iceberg full refresh#247 #252

Merged
merged 87 commits into from
Dec 14, 2023

Conversation

sanga8
Copy link
Contributor

@sanga8 sanga8 commented Oct 30, 2023

Resolves #247

Description

Fixing full refresh with iceberg issue.

In the incremental.sql file, it was first checking if the relation was iceberg, instead of checking for full refresh.
See athena connector implementation for reference.

We fix it by modifying the order of the condition, we first check if the user has used the full refresh flag (i.e. -f or --full-refresh).

To check if the user used the flag, we use the dbt core macro should_full_refresh() instead of the currently implemented full_refresh_mode variable. Since we don't need the full_refresh_mode variable anymore, we remove this variable from the code.

Once the full refresh condition is True, we check if it is an iceberg materialization. If yes, we first delete the table using glue__drop_relation macro in adapters.sql. Then, we write the table with the iceberg_write function, that will re-create the table from scratch since it does not exist anymore.

TLDR:

  • We modify the order of condition by first checking if full refresh is enabled instead of if iceberg.
  • We check if full refresh is enabled with a dbt-core macro instead of custom implementation.
  • If full refresh and iceberg, then we delete the table.
  • We re-write the table using iceberg write.

Checklist

  • I have signed the CLA
  • I have run this code in development and it appears to resolve the stated issue
  • This PR includes tests, or tests are not required/relevant for this PR
  • I have updated the CHANGELOG.md and added information about my change to the "dbt-glue next" section.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Vincent.PAUWELS and others added 30 commits October 30, 2023 15:22
Bumps [dbt-tests-adapter](https://github.com/dbt-labs/dbt-core) from 1.6.6 to 1.6.7.
- [Release notes](https://github.com/dbt-labs/dbt-core/releases)
- [Changelog](https://github.com/dbt-labs/dbt-core/blob/v1.6.7/CHANGELOG.md)
- [Commits](dbt-labs/dbt-core@v1.6.6...v1.6.7)

---
updated-dependencies:
- dependency-name: dbt-tests-adapter
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…t-tests-adapter-1.6.7

Bump dbt-tests-adapter from 1.6.6 to 1.6.7
Bumps [dbt-tests-adapter](https://github.com/dbt-labs/dbt-core) from 1.6.7 to 1.7.0.
- [Release notes](https://github.com/dbt-labs/dbt-core/releases)
- [Changelog](https://github.com/dbt-labs/dbt-core/blob/v1.7.0/CHANGELOG.md)
- [Commits](dbt-labs/dbt-core@v1.6.7...v1.7.0)

---
updated-dependencies:
- dependency-name: dbt-tests-adapter
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…t-tests-adapter-1.7.0

Bump dbt-tests-adapter from 1.6.7 to 1.7.0
Bumps [dbt-tests-adapter](https://github.com/dbt-labs/dbt-core) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/dbt-labs/dbt-core/releases)
- [Changelog](https://github.com/dbt-labs/dbt-core/blob/v1.7.1/CHANGELOG.md)
- [Commits](dbt-labs/dbt-core@v1.7.0...v1.7.1)

---
updated-dependencies:
- dependency-name: dbt-tests-adapter
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [black](https://github.com/psf/black) from 23.10.1 to 23.11.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](psf/black@23.10.1...23.11.0)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
menuetb and others added 10 commits November 10, 2023 11:33
moomindani and others added 16 commits November 13, 2023 12:30
…l/adapter (aws-samples#275)

* Migrated test_single_functional.py from test_docs.py, and from test_basic_functional_test.py to test_snapshot.py

* Separated database names

* Separated database names
Bumps [mypy](https://github.com/python/mypy) from 1.6.1 to 1.7.0.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](python/mypy@v1.6.1...v1.7.0)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [moto](https://github.com/getmoto/moto) to permit the latest version.
- [Release notes](https://github.com/getmoto/moto/releases)
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md)
- [Commits](getmoto/moto@4.2.7...4.2.8)

---
updated-dependencies:
- dependency-name: moto
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Reorganizing commits

* Added TestSnapshotTimestampGlue

* Added TestDocsGenReferencesGlue

* fix TestTableMatGlue and TestValidateConnectionGlue

* Skip TestBaseCachingGlue

Also this fixes the execution error

---------

Co-authored-by: menuetb <83284881+menuetb@users.noreply.github.com>
Co-authored-by: Akira Ajisaka <akiraaj@amazon.com>
* Fix integ test for GitHub actions

* Separated database in test_docs.py

* Separated database in test_snapshot.py

* Run integ tests for a database with random name

* Removed unneeded test

* Moving unique_schema, profiles_config_update, and cleanup to conftest.py

* More refactor

* No need to update proifile_config. Remove

* Now that we are using different schema for each class, need to cleanup after the test

* Update test_docs.py and test_snapshot.py as well

* Create separate conftest.py for integration tests

* Use helper method as possible

---------

Co-authored-by: Akira Ajisaka <akiraaj@amazon.com>
@menuetb menuetb added the enable-functional-tests This label enable functional tests label Nov 22, 2023
@menuetb menuetb merged commit fbd53bb into aws-samples:main Dec 14, 2023
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enable-functional-tests This label enable functional tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

dbt --full-refresh not working with iceberg incremental model
6 participants