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

Source DuckDB: ✨ Add MotherDuck support πŸ¦†πŸ¦† #29428

Merged
merged 55 commits into from
Sep 19, 2023

Conversation

aaronsteers
Copy link
Collaborator

@aaronsteers aaronsteers commented Aug 15, 2023

Open in GitHub Codespaces

☝️ Click here to dev/test this in the browser.

What

  1. Adds a DevContainer config specific to the DuckDB Destination.
  2. Add a Poetry config to ensure proper Python environment isolation.
  3. Adds support for motherduck (md:) database paths.

How

  • Loosens restriction that would otherwise require /local/ paths, allowing md: and motherduck: paths.
  • Add a motherduck_api_key config options which allows users to securely pass their API token from the motherduck service.
  • Adds a poetry config to ensure proper library versions.
  • Adds a devcontainer to streamline testing and dev for the DuckDB destination.

🚨 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

  • Community member? Grant edit access to maintainers (instructions)
  • Unit & integration tests added and passing. Community members, please provide proof of success locally e.g: screenshot or copy-paste unit, integration, and acceptance test output. To run acceptance tests for a Python connector, follow instructions in the README. For java connectors run ./gradlew :airbyte-integrations:connectors:<name>:integrationTest.
  • Connector version is set to 0.0.1
    • Dockerfile has version 0.0.1
  • Documentation updated
    • Connector's README.md
    • Connector's bootstrap.md. See description and examples
    • docs/integrations/<source or destination>/<name>.md including changelog with an entry for the initial version. See changelog example
    • docs/integrations/README.md

Airbyter

If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.

  • Create a non-forked branch based on this PR and test the below items on it
  • Build is successful
  • If new credentials are required for use in CI, add them to GSM. Instructions.
Updating a connector

Community member or Airbyter

  • Grant edit access to maintainers (instructions)
  • Unit & integration tests added

Airbyter

If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.

  • Create a non-forked branch based on this PR and test the below items on it
  • Build is successful
  • If new credentials are required for use in CI, add them to GSM. Instructions.
Connector Generator
  • Issue acceptance criteria met
  • PR name follows PR naming conventions
  • If adding a new generator, add it to the list of scaffold modules being tested
  • The generator test modules (all connectors with -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
  • Documentation which references the generator is updated as needed

@octavia-squidington-iii octavia-squidington-iii added area/connectors Connector related issues area/documentation Improvements or additions to documentation connectors/destination/duckdb labels Aug 15, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Aug 15, 2023

Before Merging a Connector Pull Request

Wow! 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:

  • PR name follows PR naming conventions
  • Breaking changes are considered. If a Breaking Change is being introduced, ensure an Airbyte engineer has created a Breaking Change Plan.
  • Connector version has been incremented in the Dockerfile and metadata.yaml according to our Semantic Versioning for Connectors guidelines
  • You've updated the connector's metadata.yaml file any other relevant changes, including a breakingChanges entry for major version bumps. See metadata.yaml docs
  • Secrets in the connector's spec are annotated with airbyte_secret
  • All documentation files are up to date. (README.md, bootstrap.md, docs.md, etc...)
  • Changelog updated in docs/integrations/<source or destination>/<name>.md with an entry for the new version. See changelog example
  • Migration guide updated in docs/integrations/<source or destination>/<name>-migrations.md with an entry for the new version, if the version is a breaking change. See migration guide example
  • If set, you've ensured the icon is present in the platform-internal repo. (Docs)

If the checklist is complete, but the CI check is failing,

  1. Check for hidden checklists in your PR description

  2. Toggle the github label checklist-action-run on/off to re-run the checklist CI.

@aaronsteers aaronsteers marked this pull request as ready for review August 26, 2023 04:18
@aaronsteers
Copy link
Collaborator Author

Tests are passing locally. I've opened this up for review.

@aaronsteers aaronsteers changed the title feat: (draft) MotherDuck support for destination-duckdb feat(destination-motherduck): Add MotherDuck support Aug 26, 2023
@github-actions
Copy link
Contributor

destination-duckdb test report (commit 8f62a7921c) - ❌

⏲️ Total pipeline duration: 59.91s

Step Result
Validate airbyte-integrations/connectors/destination-duckdb/metadata.yaml βœ…
Connector version semver check βœ…
Connector version increment check βœ…
QA checks ❌
Code format checks ❌
Connector package install ❌

πŸ”— View the logs here

☁️ 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-duckdb test

@github-actions
Copy link
Contributor

destination-duckdb test report (commit 9cb65d97f8) - ❌

⏲️ Total pipeline duration: 44.17s

Step Result
Validate airbyte-integrations/connectors/destination-duckdb/metadata.yaml βœ…
Connector version semver check βœ…
Connector version increment check βœ…
QA checks βœ…
Code format checks ❌
Connector package install ❌

πŸ”— View the logs here

☁️ 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-duckdb test

Co-authored-by: Augustin <augustin@airbyte.io>
@github-actions
Copy link
Contributor

destination-duckdb test report (commit 044fbe8e49) - βœ…

⏲️ Total pipeline duration: 01mn43s

Step Result
Connector package install βœ…
Build destination-duckdb docker image for platform linux/x86_64 βœ…
Unit tests βœ…
Integration tests βœ…
Acceptance tests βœ…
Code format checks βœ…
Validate airbyte-integrations/connectors/destination-duckdb/metadata.yaml βœ…
Connector version semver check βœ…
Connector version increment check βœ…
QA checks βœ…

πŸ”— View the logs here

☁️ 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-duckdb test


This destination is meant to be used on a local workstation and won't work on Kubernetes
This destination is meant to be used on a local workstation or with the MotherDuck service as the destination. Local file-based DBs will not work on Kubernetes or in Airbyte Cloud.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This connector is not enabled in cloud - if I understand correctly that should be part of the PR; if that's the case the enabled flag in the metadata.yaml has to be adjusted

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for calling this out. And yes, we definitely want to enable for Cloud as part of this PR. πŸ‘

docs/integrations/destinations/duckdb.md Show resolved Hide resolved
@github-actions
Copy link
Contributor

destination-duckdb test report (commit 23b21ca35b) - βœ…

⏲️ Total pipeline duration: 02mn47s

Step Result
Connector package install βœ…
Build destination-duckdb docker image for platform linux/x86_64 βœ…
Unit tests βœ…
Integration tests βœ…
Acceptance tests βœ…
Code format checks βœ…
Validate airbyte-integrations/connectors/destination-duckdb/metadata.yaml βœ…
Connector version semver check βœ…
Connector version increment check βœ…
QA checks βœ…

πŸ”— View the logs here

☁️ 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-duckdb test

@github-actions
Copy link
Contributor

destination-duckdb test report (commit 65161fd3dc) - βœ…

⏲️ Total pipeline duration: 01mn47s

Step Result
Connector package install βœ…
Build destination-duckdb docker image for platform linux/x86_64 βœ…
Unit tests βœ…
Integration tests βœ…
Acceptance tests βœ…
Code format checks βœ…
Validate airbyte-integrations/connectors/destination-duckdb/metadata.yaml βœ…
Connector version semver check βœ…
Connector version increment check βœ…
QA checks βœ…

πŸ”— View the logs here

☁️ 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-duckdb test

@github-actions
Copy link
Contributor

destination-duckdb test report (commit 41a9981e72) - ❌

⏲️ Total pipeline duration: 03mn25s

Step Result

πŸ”— View the logs here

☁️ 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-duckdb test

@github-actions
Copy link
Contributor

destination-duckdb test report (commit 2b31870d15) - βœ…

⏲️ Total pipeline duration: 01mn55s

Step Result
Connector package install βœ…
Build destination-duckdb docker image for platform linux/x86_64 βœ…
Unit tests βœ…
Integration tests βœ…
Acceptance tests βœ…
Code format checks βœ…
Validate airbyte-integrations/connectors/destination-duckdb/metadata.yaml βœ…
Connector version semver check βœ…
Connector version increment check βœ…
QA checks βœ…

πŸ”— View the logs here

☁️ 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-duckdb test

@github-actions
Copy link
Contributor

destination-duckdb test report (commit f290c2b330) - βœ…

⏲️ Total pipeline duration: 01mn27s

Step Result
Connector package install βœ…
Build destination-duckdb docker image for platform linux/x86_64 βœ…
Unit tests βœ…
Integration tests βœ…
Acceptance tests βœ…
Code format checks βœ…
Validate airbyte-integrations/connectors/destination-duckdb/metadata.yaml βœ…
Connector version semver check βœ…
Connector version increment check βœ…
QA checks βœ…

πŸ”— View the logs here

☁️ 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-duckdb test

@github-actions
Copy link
Contributor

destination-duckdb test report (commit 92897fd1ef) - βœ…

⏲️ Total pipeline duration: 01mn16s

Step Result
Connector package install βœ…
Build destination-duckdb docker image for platform linux/x86_64 βœ…
Unit tests βœ…
Integration tests βœ…
Acceptance tests βœ…
Code format checks βœ…
Validate airbyte-integrations/connectors/destination-duckdb/metadata.yaml βœ…
Connector version semver check βœ…
Connector version increment check βœ…
QA checks βœ…

πŸ”— View the logs here

☁️ 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-duckdb test

@github-actions
Copy link
Contributor

destination-duckdb test report (commit 811d601c09) - βœ…

⏲️ Total pipeline duration: 01mn33s

Step Result
Connector package install βœ…
Build destination-duckdb docker image for platform linux/x86_64 βœ…
Unit tests βœ…
Integration tests βœ…
Acceptance tests βœ…
Code format checks βœ…
Validate airbyte-integrations/connectors/destination-duckdb/metadata.yaml βœ…
Connector version semver check βœ…
Connector version increment check βœ…
QA checks βœ…

πŸ”— View the logs here

☁️ 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-duckdb test

@github-actions
Copy link
Contributor

destination-duckdb test report (commit 611b915fb5) - βœ…

⏲️ Total pipeline duration: 01mn49s

Step Result
Connector package install βœ…
Build destination-duckdb docker image for platform linux/x86_64 βœ…
Unit tests βœ…
Integration tests βœ…
Acceptance tests βœ…
Code format checks βœ…
Validate airbyte-integrations/connectors/destination-duckdb/metadata.yaml βœ…
Connector version semver check βœ…
Connector version increment check βœ…
QA checks βœ…

πŸ”— View the logs here

☁️ 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-duckdb test

@github-actions
Copy link
Contributor

destination-duckdb test report (commit e0ec60508d) - βœ…

⏲️ Total pipeline duration: 01mn54s

Step Result
Connector package install βœ…
Build destination-duckdb docker image for platform linux/x86_64 βœ…
Unit tests βœ…
Integration tests βœ…
Acceptance tests βœ…
Code format checks βœ…
Validate airbyte-integrations/connectors/destination-duckdb/metadata.yaml βœ…
Connector version semver check βœ…
Connector version increment check βœ…
QA checks βœ…

πŸ”— View the logs here

☁️ 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-duckdb test

@aaronsteers aaronsteers changed the title feat(destination-motherduck): Add MotherDuck support Source DuckDB: Add MotherDuck support Sep 19, 2023
@aaronsteers aaronsteers changed the title Source DuckDB: Add MotherDuck support Source DuckDB: ✨ Add MotherDuck support πŸ¦†πŸ¦† Sep 19, 2023
@github-actions
Copy link
Contributor

destination-duckdb test report (commit 1e7b3b770d) - βœ…

⏲️ Total pipeline duration: 02mn17s

Step Result
Connector package install βœ…
Build destination-duckdb docker image for platform linux/x86_64 βœ…
Unit tests βœ…
Integration tests βœ…
Acceptance tests βœ…
Code format checks βœ…
Validate airbyte-integrations/connectors/destination-duckdb/metadata.yaml βœ…
Connector version semver check βœ…
Connector version increment check βœ…
QA checks βœ…

πŸ”— View the logs here

☁️ 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-duckdb test

@aaronsteers aaronsteers merged commit 68380cb into master Sep 19, 2023
16 checks passed
@aaronsteers aaronsteers deleted the destination-duckdb/feat-motherduck-support branch September 19, 2023 20:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/connectors Connector related issues area/documentation Improvements or additions to documentation connectors/destination/duckdb
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants