Using an ETL framework vs. writing yet another ETL script
11–20 of 77 posts
Re: Using an ETL framework vs. writing yet another ETL script
#12That's kind of a dealbreaker for us, because for security reasons our Postgres users permissions are granularly configured with column-based security. I hope the Airbyte team solves this eventually because the software is looking great.
Re: Using an ETL framework vs. writing yet another ETL script
#13After I wrote the initial application, they handed it off to their South African dev team to maintain it.
Re: Using an ETL framework vs. writing yet another ETL script
#14We currently are using Airflow for ELTs/ETLs to ingest from different Postgres databases to BigQuery/Google Cloud Storage. Airbyte looks sweet for the same task and would free us from a big effort burden, but its Postgres source only supports SELECT * statements (i.e. you can't deselect columns). That's kind of a dealbreaker for us, because for security reasons our Postgres users permissions are granularly configured…
Either way if someone told me a ETL supports only literally all the columns or nothing then I'd assume it was a MVP product to demonstrate the idea... not a production system.
Re: Using an ETL framework vs. writing yet another ETL script
#15C - curl+jq or CLI - extract
A - awk/jq - transform
P - postgres/prometheus(VictoriaMetrics) - load
Recently reduced an inherited 1000 line PHP ETL nonsense into a CAP "1-liner" (my awk script is a dozen lines unrolled).
Frankly, this covers a lot of ETL cases. You can do basic cleaning in AWK (drop nulls/outliers) and format the output however you please, and it's blazingly fast.
Re: Using an ETL framework vs. writing yet another ETL script
#16I think some of the points made here about ETL scripts being just 'ETL scripts' are very relevant. Definitely been on the other side of the table arguing for a quick 3-hour script.
Having written plenty of ETL scripts - in Java with Hadoop/Spark, Python with Airflow and pure Bash - that later morphed into tech debt monsters, I think many people underestimate how quickly these can quickly snowball into proper products with actual requirements.
Unless one is extremely confident an ETL script will remain a non-critical good-to-have part of the stack, I believe evaluating and adopting a good ETL framework, especially one with pre-built integrations is good case of 'sharpening the axe before cutting the tree' and well worth the time.
We've been very careful to minimise Airbyte's learning curve. Starting up Airbyte is as easy as checking out the git repo and running 'docker compose up'. A UI allows users to select, configure and schedule jobs from a list of 120+ supported connectors. It's not uncommon to see users successfully using Airbyte within tens of mins.
If a connector is not supported, we offer a Python CDK that lets anyone develop their own connectors in a matter of hours. We have a commitment to supporting community contributed connectors so there is no worry about contributions going to waste.
Everything is open source, so anyone is free to deep as dive as they need or want to.
We also build in the open and have single-digit hour Slack response time on weekdays. Do check us out - https://github.com/airbytehq/airbyte!
Re: Using an ETL framework vs. writing yet another ETL script
#17Arguably you could use Kubernetes as a scheduler, or "ETL framework/kit", it supports cron jobs, has a restful api, local and remote secrets storage, native support for cloud storage, support for multiple logging solutions, distributed workloads, supports cron jobs etc.
Years ago I worked for a financial services company and they would run their batch ETL jobs via a product called Tidal that later got bought by Cisco. I really liked using Tidal for the longest time, but 100% of what Tidal does, you can replicate with the scheduler features of Kubernetes.
Re: Using an ETL framework vs. writing yet another ETL script
#18Hopefully Elixir and other BEAM compiled languages will gain enough traction, I can't imagine rewriting something that available in Erlang from the box in OOP languages with mutable objects.
Re: Using an ETL framework vs. writing yet another ETL script
#19Re: Using an ETL framework vs. writing yet another ETL script
#20We found this approach made it easier to transition from one product to another. As it consistently faster to plug the ETL framework into the supporting framework than to implement everything a new ETL Product offered.
As we move from our on-prem environment to the cloud, we hope we can implement a similar strategy even if we have to switch the support frameworks.