<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/writing-to-delta-lake-from-apache-flink-rhnky22xt" -->

---
title: Writing to Delta Lake from Apache Flink | daily.dev
description: The Flink/Delta Connector, introduced in Delta Connectors 0.4.0, lets Apache Flink write Parquet data files and commit them atomically to Delta Lake tables...
canonical: https://daily.dev/posts/writing-to-delta-lake-from-apache-flink-rhnky22xt
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Writing to Delta Lake from Apache Flink | daily.dev
og:description: The Flink/Delta Connector, introduced in Delta Connectors 0.4.0, lets Apache Flink write Parquet data files and commit them atomically to Delta Lake tables...
og:url: https://daily.dev/posts/writing-to-delta-lake-from-apache-flink-rhnky22xt
og:image: https://api.daily.dev/og/posts/RhNkY22XT.png
og:image:alt: Writing to Delta Lake from Apache Flink
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Writing to Delta Lake from Apache Flink

**[Delta Lake Blog](https://daily.dev/sources/delta-lake)** · 7 min read · 0 upvotes · 0 comments

## Summary

The Flink/Delta Connector, introduced in Delta Connectors 0.4.0, lets Apache Flink write Parquet data files and commit them atomically to Delta Lake tables using Flink's DataStream API, supporting both batch and streaming workloads. The connector preserves Flink's exactly-once semantics through checkpoint-based commits, using components like DeltaWriter, DeltaCommittable, DeltaCommitter, and DeltaGlobalCommitter to manage file states from in-progress to finished. It currently supports append-only writes for Flink >= 1.12, with reading support, additional write modes (overwrite, upsert), and Table API/SQL integration planned for future releases.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://delta.io/blog/2022-04-27-writing-to-delta-lake-from-apache-flink>

## Questions this post answers

### How do I write data from Apache Flink to a Delta Lake table?

Use the Flink/Delta Connector introduced in Delta Connectors 0.4.0, which provides a DeltaSink built on Flink's DataStream API. It writes Parquet data files and commits them atomically to Delta tables in append mode, supporting both batch and streaming pipelines for Flink versions 1.12 and above.

_daily.dev surfaces connector releases like this for teams wiring Flink into their data lake._

### Does the Flink Delta Sink guarantee exactly-once processing?

Yes, as long as the Flink pipeline restarts from checkpoint information. The connector writes data idempotently through components called DeltaWriter, DeltaCommitter, and DeltaGlobalCommitter, which track files through in-progress, pending, and finished states. Without a valid checkpoint restart, exactly-once guarantees no longer apply.

_Engineers building fault-tolerant streaming pipelines can track connector details like this via daily.dev._

### Can the Flink Delta connector read from Delta Lake tables or only write to them?

Only writing is supported currently, through the DeltaSink component. Reading Delta tables from Flink is still in progress, tracked as a separate feature, and support for other write modes like overwrite and upsert, plus the Flink Table API and SQL integration, are planned for upcoming releases.

_daily.dev helps engineers evaluating Flink and Delta Lake keep tabs on connector capability gaps._

## Similar posts on daily.dev

- [Advancing the Open Lakehouse with Apache Spark, the Delta Kernel, and the new UC Delta APIs](https://daily.dev/posts/advancing-the-open-lakehouse-with-apache-spark-the-delta-kernel-and-the-new-uc-delta-apis-dbaazlwws) · Delta Lake Blog · 0 upvotes · 0 comments
- [Apache Iceberg vs Delta Lake: Choosing the Right Table Format](https://daily.dev/posts/apache-iceberg-vs-delta-lake-choosing-the-right-table-format-vtnia2ems) · BigData Boutique blog · 7 upvotes · 0 comments
- [Confluent Tableflow \+ Databricks Unity Catalog](https://daily.dev/posts/confluent-tableflow-databricks-unity-catalog-3l7atiiei) · Confluent Blog · 1 upvotes · 0 comments

---

Tags: [#data-engineering](https://daily.dev/tags/data-engineering), [#apache-spark](https://daily.dev/tags/apache-spark), [#apache-flink](https://daily.dev/tags/apache-flink)

[View this post on daily.dev](https://daily.dev/posts/writing-to-delta-lake-from-apache-flink-rhnky22xt)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Writing to Delta Lake from Apache Flink","url":"https://daily.dev/posts/writing-to-delta-lake-from-apache-flink-rhnky22xt","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/writing-to-delta-lake-from-apache-flink-rhnky22xt"},"datePublished":"2026-08-16T08:53:59.414Z","dateModified":"2026-08-16T08:58:16.341Z","description":"The Flink/Delta Connector, introduced in Delta Connectors 0.4.0, lets Apache Flink write Parquet data files and commit them atomically to Delta Lake tables...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d7572412f304dbbdd5c988677e860c6a?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d7572412f304dbbdd5c988677e860c6a?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Delta Lake Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Delta Lake Blog","logo":"https://media.daily.dev/image/upload/s--7f2q9Asf--/f_auto,q_auto/v1786870393/logos/delta-lake?_a=BAMAMicg0","url":"https://daily.dev/sources/delta-lake"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/writing-to-delta-lake-from-apache-flink-rhnky22xt","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"data-engineering,apache-spark,apache-flink","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Delta Lake Blog","item":"https://daily.dev/sources/delta-lake"},{"@type":"ListItem","position":3,"name":"Writing to Delta Lake from Apache Flink"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/writing-to-delta-lake-from-apache-flink-rhnky22xt#faq","mainEntity":[{"@type":"Question","name":"How do I write data from Apache Flink to a Delta Lake table?","acceptedAnswer":{"@type":"Answer","text":"Use the Flink/Delta Connector introduced in Delta Connectors 0.4.0, which provides a DeltaSink built on Flink's DataStream API. It writes Parquet data files and commits them atomically to Delta tables in append mode, supporting both batch and streaming pipelines for Flink versions 1.12 and above. daily.dev surfaces connector releases like this for teams wiring Flink into their data lake."}},{"@type":"Question","name":"Does the Flink Delta Sink guarantee exactly-once processing?","acceptedAnswer":{"@type":"Answer","text":"Yes, as long as the Flink pipeline restarts from checkpoint information. The connector writes data idempotently through components called DeltaWriter, DeltaCommitter, and DeltaGlobalCommitter, which track files through in-progress, pending, and finished states. Without a valid checkpoint restart, exactly-once guarantees no longer apply. Engineers building fault-tolerant streaming pipelines can track connector details like this via daily.dev."}},{"@type":"Question","name":"Can the Flink Delta connector read from Delta Lake tables or only write to them?","acceptedAnswer":{"@type":"Answer","text":"Only writing is supported currently, through the DeltaSink component. Reading Delta tables from Flink is still in progress, tracked as a separate feature, and support for other write modes like overwrite and upsert, plus the Flink Table API and SQL integration, are planned for upcoming releases. daily.dev helps engineers evaluating Flink and Delta Lake keep tabs on connector capability gaps."}}]}
```

