Live data from Hacker News

Launch HN: Artie (YC S23) – Real time data replication to data warehouses

news.ycombinator.com

1–10 of 58 posts

Launch HN: Artie (YC S23) – Real time data replication to data warehouses

#1
Hey, I’m Robin and I’m the founder/CTO at Artie (https://www.artie.so/). We solve the problem of stale production data in the data warehouse. We’re open source, and you can try it for free here: https://github.com/artie-labs/transfer.

Specifically, we do real time data replication from databases to data warehouses. We leverage change data capture (CDC) and stream processing to perform data transfers efficiently, enabling sub-minute latency and significant cost savings. Here’s a quick demo (jumping straight to the important part): https://www.youtube.com/watch?v=uAi1tm4gd9U#t=81s.

I encountered this problem when I was a heavy data warehouse user at prior jobs. The data in our data warehouse was super lagged and analytics were always stale. Imagine a fintech company performing anti-fraud/transaction monitoring with batched ETLs and finding out that fraudulent transactions occurred 24 hours ago. This was very frustrating to me! Since my background was in distributed systems and database architecture, I knew that there was a better way to perform data transfers.

The more teams I spoke with, the more I realized this was a real pain point. People wanted real time data for analytics, fraud alerting, transaction monitoring, and training AI/ML models; but there wasn’t an easy out-of-the-box solution. Companies were either constrained on latency or schema integrity/data usability or data accuracy. Companies started telling me that if I built a tool that is robust, near real time, but also maintained schema integrity and data accuracy, they would very happily pay for it.

So I built Artie, a real time, open-source data streaming solution to transfer data from databases to data warehouses and handle schemas automatically in-flight (DMLs and DDLs).

Typical ETL solutions leverage batched processes that run on a schedule (DAGs, Airflow), which cannot achieve real time data syncs. This means that when companies aggregate production data into their data warehouse, the underlying data is always stale.

Streaming change data capture (CDC) logs is a more efficient way to transfer data, and helps lower networking/data ingestion costs as well. However, building data pipelines with CDC streaming is complicated. I wanted Artie to be the tool that abstracts away that complexity so that any company can benefit from having real time data.

A big challenge is implementing CDC streaming for stateful data (i.e. row updates/deletes) and schema changes (DDLs), which most streaming solutions just don’t address, meaning that complexity is passed down to the customer. A lot of in-house streaming solutions leverage some combination of Debezium + Kafka/Kinesis + Apache Flink and are able to achieve near real time syncs, but they only handle append-only events (inserts) and don't handle schema changes/schema evolution like DMLs and DDLs. Not handling thse means the data at the destination doesn't look exactly like the production database, which obscures the source of truth. You end up having to do additional work to make the data warehouse tables match the source DB.

So how do we offer a robust CDC streaming solution? We grab CDC logs using Debezium and/or our custom connector (which solves for certain edge cases that Debezium doesn’t handle) and push them into Kafka (or Google Pub/Sub). Kafka helps ensure ordering and ease of recovery upon an outage - we use one table per topic, and the partition key is the primary key(s) to ensure no out of order writes. Artie then consumes these events from Kafka and we have an in-memory DB with our typing library that can infer schemas (DML and DDL), performs optimizations like deduplications, and then flushes data to the data warehouse. When the data warehouse confirms a successful merge, we then commit the offset within Kafka. This all happens with sub-minute data latency even at high volumes (several TBs or billions of rows).

However the data looks in your database, it should look exactly the same in your data warehouse. We also strive to handle all data types with no exceptions - i.e. supporting TOAST columns, composite keys as primary keys, arrays, large rows (>1MBs), etc. (I say “strive” because I’m sure we haven’t seen all possible data types yet!).

We’ve been live for a while now. Several companies use us to update all their analytic dashboards in real time (with dashboards built on top of their data warehouse). Fintech platforms use us to perform financial transaction monitoring. A utilities software platform uses us to grab video/photo data to perform risk/hazard assessment against ML models.

Artie is live and supports PostgreSQL, MySQL, MongoDB sources and Snowflake, BigQuery, Redshift destinations. We make money from our hosted service. We charge based on usage (# of rows transferred per month, not including initial snapshots).

We’d love for you to try it out! You can get started with the open source version here: https://github.com/artie-labs/transfer. We have a small OSS Slack community (www.artie.so/slack) – feel free to ping us for help or any other requests.

For our hosted version, we need to ensure that we have enough storage and compute capacity provisioned, so we’re asking cloud users to hop on a quick call with us before we activate your account. Eventually we’ll have easy self-serve functionality but that’s not 100% built yet, so for now we set up a Slack channel to ensure smooth deployments. If you’re willing to work with us on that, we’ll be super excited to show you what we’ve got. Just email us at founders@artie.so or request access from https://www.artie.so.

We’d love for you to try the OSS or hosted solution and give us feedback! We’re eager to improve the product and test it against various workloads and data types :)

Re: Launch HN: Artie (YC S23) – Real time data replication to data warehouses

#2
How many of these tools are out there? This is like the 4th CDC to Data warehouse tool I've seen this year and I'm struggling to understand why they all exist in parallel.

I just found estuary with a colleague yesterday which didn't work and previously have seen at least two other tools promising the same CDC to Data Warehouse in-a-box pipelines. What makes this tool different?

Re: Launch HN: Artie (YC S23) – Real time data replication to data warehouses

#3
Hey, brief feedback, but "5,000,000,000+" rows processed might be a red flag for some. Many individual customers might do this per day, so to say that's all the company has done so far might put them off.

You've said that initial imports are free, but anecdotally, initial imports ended up being a somewhat regular occurrence as we found issues required a re-import, table rewrites, breaking schema changes, and so on. Do you pay full cost for subsequent full-imports?

Lastly, pricing. I feel like you really need a dollar figure on this even just to start the discussion. "Call us for pricing" is fine for enterprise plans, but in a ~100 person startup I would have just passed immediately on to others that provide pricing details. I'm not going to spend time trialling something without knowing if the pricing is in the right ballpark as it's a waste of my time if it isn't. My perception is that this would be substantially more expensive than batch replication competitors such as Stitch, but I don't know.

Re: Launch HN: Artie (YC S23) – Real time data replication to data warehouses

#4

How many of these tools are out there? This is like the 4th CDC to Data warehouse tool I've seen this year and I'm struggling to understand why they all exist in parallel. I just found estuary with a colleague yesterday which didn't work and previously have seen at least two other tools promising the same CDC to Data Warehouse in-a-box pipelines. What makes this tool different?

Many of them really just suck (depending on your workload)

Re: Launch HN: Artie (YC S23) – Real time data replication to data warehouses

#6

Do you support PostGIS? This seems to be an issue with a lot of solutions I've seen...

Not at the moment, but no reason(s) why we shouldn't. Debezium already supports this [1] and it'd be a minor refactor on our end to support. If that's something you'd want, LMK!

[1] https://debezium.io/documentation/reference/stable/connector...

Re: Launch HN: Artie (YC S23) – Real time data replication to data warehouses

#7

Hey, brief feedback, but "5,000,000,000+" rows processed might be a red flag for some. Many individual customers might do this per day, so to say that's all the company has done so far might put them off. You've said that initial imports are free, but anecdotally, initial imports ended up being a somewhat regular occurrence as we found issues required a re-import, table rewrites, breaking schema changes, and so on. D…

> Hey, brief feedback, but "5,000,000,000+" rows processed might be a red flag for some. Many individual customers might do this per day, so to say that's all the company has done so far might put them off.

Appreciate the feedback! Totally agree and it's something we are working towards :). We learned a ton from going from nothing -> billions, certain functions, backfill strategies, etc just doesn't work at that scale. I'm sure we'll have another equally exciting learning curve when scaling from B/month -> B/day!

> You've said that initial imports are free, but anecdotally, initial imports ended up being a somewhat regular occurrence as we found issues required a re-import, table rewrites, breaking schema changes, and so on. Do you pay full cost for subsequent full-imports?

Thanks for pointing this out. We plan to make all backfills free of charge.

> Lastly, pricing. I feel like you really need a dollar figure on this even just to start the discussion. "Call us for pricing" is fine for enterprise plans, but in a ~100 person startup I would have just passed immediately on to others that provide pricing details. I'm not going to spend time trialling something without knowing if the pricing is in the right ballpark as it's a waste of my time if it isn't. My perception is that this would be substantially more expensive than batch replication competitors such as Stitch, but I don't know.

Makes sense. A lot of folks think that streaming is more expensive than batched, what we've found with our initial customers is the opposite. Streaming is able to distribute the load to DWH and as a result, customers on Snowflake can use a much smaller vDWH when working with Artie. On the "call us for pricing" front, we are planning to provide a calculator / graph to estimate costs before talking to a human in the future. However, we are learning that a lot of companies have bespoke 1yr/ 2yr contracts with their data provider and are trying to figure out our own pricing and packaging at the moment.

Re: Launch HN: Artie (YC S23) – Real time data replication to data warehouses

#10

How many of these tools are out there? This is like the 4th CDC to Data warehouse tool I've seen this year and I'm struggling to understand why they all exist in parallel. I just found estuary with a colleague yesterday which didn't work and previously have seen at least two other tools promising the same CDC to Data Warehouse in-a-box pipelines. What makes this tool different?

For us, what we are striving to do differently is:

1/ DFS vs BFS. We are planning on rolling out connectors slowly vs. building tens / hundreds / thousands of connectors to try to attract a broader set of audiences. Those that have tried to replicate data between OLTP and OLAP know how painful it is and we really want to solve this pain point before we move on to new sources. In addition, we're planning on providing more value than just replicating data from source to destination. We're planning on integrating our telemetry library [1] with Datadog such that customers can: * Centralize all metrics. See Artie metrics without coming to our dashboard, instead it's integrated with your existing tools. * Help provide cookie cutter monitors for anomaly detection * We also want to provide better table quality checks

2/ We do not want to change user behavior. We are using pretty standard tools to solve this problem such as Kafka, Pub/Sub and Red Hat Debezium. If you are already using one of these tools, we can just integrate vs. standing up a whole suite of services just for the data pipeline. * If you have CDC events being emitted for event-driven architecture already, we'll skip deploying Debezium and just deploy our consumer * If you have Kafka enabled and want to also consume CDC events, we'll just deploy Debezium to publish to your Kafka vs. ours.

3/ Ease of use. This goes without saying, but plenty of tools out there have broken links in their documentation, extremely confusing UI, etc. We really look up to Fivetran in this regard and we try to make the onboarding process for new connectors as simple as possible.

Do you think there are anything missing with the other CDC or data replication tools out in the market? Let me know and happy to see how we can help!

[1] https://docs.artie.so/telemetry/overview

Post reply on HN