This message was deleted.
# general
s
This message was deleted.
👀 1
s
Good question. In terms of level setting: • DBT’s python functionality is purely there so you can add some python code to be run as part of the DBT DAG. What you put into that python code, is entirely up to you. • Hamilton is a micro-framework that runs anywhere you can run python. It helps you structure and organize your python code in a way that is productive for a team to own and collaborate on.
gratitude thank you 1
So combining them can help in the following way: • it’ll force you to write your python code in a way that is reusable outside of DBT. • DBT doesn’t help you write better python code. With Hamilton it forces you to write unit testable code, that you can document easily, and has a clear update/maintenance implications. • Hamilton can also visualize the computational dependencies within that particular step of the python model block (useful if you’re doing a bunch of pandas work and modeling things in a single step).
So if anything it’s additive 🙂
Operationally, if you wanted a DS to plug in some python code to a DBT DAG you own, Hamilton could be a good way to collaborate?
Otherwise if you are finding friction points, etc. We’d love ideas/feedback for improvements.
s
Thanks, @Stefan Krawczyk, really appreciate the details and it makes sense. The main "friction point" we're having with Hamilton right now is getting it working directly in Snowflake. When creating Python-executing functions in Snowflake, I have been unable to successfully reference several non-Anaconda third-party packages (like
sf-hamilton
): it just will not recognize the package(s) (i.e.,
ModuleNotFoundError
). There is some evidence this just isn't supported, though importing
.gz.tar
is supposed to be (but I couldn't get it working). Also, we'll likely be migrating off of Snowflake to BigQuery in the first quarter so we don't want to spend too much time getting things working on Snowflake. I think it makes sense for us in the near-term to get DBT's simpler, out-of-the-box Python functionality working (against Snowflake and then BigQuery) and then "graduate" to using Hamilton when we need to. There's a very good chance that once we get a simple setup working that it will be immediately apparent how Hamilton could help us further, and then perhaps collaborate. So bottom-line: we'll get the basic Python functionality working and then hopefully take the next step to Hamilton when it makes sense. I really appreciate everyone's support in Slack, and thank you, @Stefan Krawczyk!
s
@Seth Terrell thanks for the feedback. I’ve created https://github.com/stitchfix/hamilton/issues/242 to track. Am in the process of getting snowflake access to help.
gratitude thank you 1