blob: f61284a6eb7e4a6a9a0804ea68b732e2f8797209 [file] [log] [blame]
============================
Using within your ETL System
============================
Conceptually you can integrate Hamilton within your existing ETL system quite easily:
Compatibility Matrix
--------------------
.. list-table:: Title
:header-rows: 1
* - Framework / Scheduler
- Compatibility
* - `Airflow <http://airflow.org>`_
-
* - `Dagster <https://dagster.io>`_
-
* - `Prefect <https://prefect.io>`_
-
* - `Kubeflow Pipelines <https://www.kubeflow.org/docs/components/pipelines>`_
-
* - `CRON <https://en.wikipedia.org/wiki/Cron>`_
-
* - `dbt <https://getdbt.com>`_
- (dbt did not run python, but now it does so it should)
* - `kubernetes <https://kubernetes.io>`_
- but you need to setup kubernetes to run an image that can run python code - e.g. see `Running a python application on kubernetes <https://medium.com/avmconsulting-blog/running-a-python-application-on-kubernetes-aws-56609e7cd88c>`_
* - `docker <https://www.docker.com>`_
- but you need to setup a docker image that can execute python code.
* - ... in general if it runs python 3.6+ ...
-
ETL Recipe
----------
#. Write Hamilton functions & `“driver”` code.
#. Publish your Hamilton functions in a package, or import via other means (e.g. checkout a repository & include in python path).
#. Include `sf-hamilton` as a python dependency
#. Have your ETL system execute your “driver” code.
#. Profit.