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

Create a simple plugin system for writing data to external destinations #173

Merged
merged 7 commits into from
Jun 7, 2023

Conversation

jwills
Copy link
Collaborator

@jwills jwills commented May 31, 2023

Fixes #143

This implements a write-side plugin system that can run after a relation is materialized (either in DuckDB or externally) and can be used to take some action on the resulting data. I'm starting out by porting the Glue database stuff (which can persist an output parquet file as a relation in the AWS Glue catalog) to guide the implementation of the plugins to act as a dual to the source-side plugins.

One rub here is that I don't have a good functional test of the glue stuff, so I'm going to create one in a separate PR that runs against the existing glue impl, merge it, and then port the impl over to confirm that it will work against my new impl here (and likely fix the bugs I find in the process.)

@jwills
Copy link
Collaborator Author

jwills commented Jun 7, 2023

Going to merge this and then start in on revamping the source-side plugins to move them into dbt seed

@jwills jwills merged commit 1831309 into master Jun 7, 2023
@jwills jwills deleted the jwills_fix_143 branch June 7, 2023 15:16
@JCZuurmond
Copy link

Awsome work @jwills! Do have or know of any examples of this functionality?

@jwills
Copy link
Collaborator Author

jwills commented Jun 14, 2023

Hey @JCZuurmond, thanks so much! So I rewrote the existing glue stuff to use the new plugin framework to do its thing (though it’s backwards compatible with the old way of doing it), but I haven’t created any new ones yet— very much open to suggestion here!

maybe sqlalchemy? I still don’t feel like I grok delta-rs to understand how folks actually use it for stuff like this. Pyiceberg doesn’t support general writes yet afaict. What do you think?

@JCZuurmond
Copy link

sqlachemy would be nice!

I want to start with a reference use case, maybe as a blog post or talk, to show the Excel capabilities and to inspire other plugin ideas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Create a simple plugin system for writing data to external destinations
2 participants