This is an automated email from the ASF dual-hosted git repository.
MartijnVisser pushed a commit to branch release-2.3
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/release-2.3 by this push:
new a71b14645ec [FLINK-41202][docs] Make connector integrations easier to
find from the Flink docs (#29609)
a71b14645ec is described below
commit a71b14645ecbb8c58f23b825ac9d39f6e83cdd65
Author: Martijn Visser <[email protected]>
AuthorDate: Wed Oct 28 15:17:50 2026 +0100
[FLINK-41202][docs] Make connector integrations easier to find from the
Flink docs (#29609)
- Sort the connector menus by title, because the weights set in the
connector repositories collide
- Sort and complete the connector lists in both overviews, list Kafka as
a bounded source too, and drop the stale Version column from the SQL
overview
- Move the fault tolerance guarantees into both overviews and keep the
old page as a hidden pointer, because the Cassandra connector docs
still link to it
- Point to Flink CDC from both overviews and from the Debezium, Canal,
Maxwell and Ogg format pages
- Link the Flink CDC, Kubernetes Operator and Flink Agents docs from the
menu
- Add a "Maintained by Other Projects" section with a page each for
Doris, Fluss, Hudi, Iceberg and Paimon, replacing the Apache Bahir
section in the DataStream overview
- Drop the Incubating suffix from Fluss
- Correct which catalogs support materialized tables
On this branch the SQL connector overview leaves out Pulsar, because
flink-connector-pulsar v4.0 has no Table API page, and the DataStream
connector overview keeps JDBC as a sink, because flink-connector-jdbc
v3.1 only documents JdbcSink.
Generated-by: Claude Code (Claude Opus 5.5)
(cherry picked from commit 3e87ae6b12e8fd4c05a3fcc88e339dcabc070981)
---
docs/config.toml | 3 +
.../docs/concepts/stateful-stream-processing.md | 7 +-
.../docs/connectors/datastream/_index.md | 1 +
.../docs/connectors/datastream/filesystem.md | 1 +
.../docs/connectors/datastream/guarantees.md | 128 +-------------------
.../docs/connectors/datastream/overview.md | 51 +++++---
.../connectors/{table => other-projects}/_index.md | 7 +-
.../{table/_index.md => other-projects/doris.md} | 24 +++-
.../docs/connectors/other-projects/fluss.md | 40 +++++++
.../{table/_index.md => other-projects/hudi.md} | 23 +++-
.../docs/connectors/other-projects/iceberg.md | 44 +++++++
.../docs/connectors/other-projects/overview.md | 48 ++++++++
.../{table/_index.md => other-projects/paimon.md} | 24 +++-
docs/content.zh/docs/connectors/table/_index.md | 1 +
.../content.zh/docs/connectors/table/filesystem.md | 1 +
.../docs/connectors/table/formats/canal.md | 3 +
.../docs/connectors/table/formats/debezium.md | 3 +
.../docs/connectors/table/formats/maxwell.md | 3 +
.../docs/connectors/table/formats/ogg.md | 3 +
docs/content.zh/docs/connectors/table/overview.md | 115 +++++++++++++-----
docs/content.zh/docs/dev/table/tuning.md | 4 +-
.../content.zh/docs/learn-flink/fault_tolerance.md | 2 +-
.../docs/sql/materialized-table/deployment.md | 6 +-
.../docs/concepts/stateful-stream-processing.md | 7 +-
docs/content/docs/connectors/datastream/_index.md | 1 +
.../docs/connectors/datastream/guarantees.md | 133 +--------------------
.../content/docs/connectors/datastream/overview.md | 49 +++++---
.../docs/connectors/other-projects}/_index.md | 7 +-
.../docs/connectors/other-projects/doris.md} | 24 +++-
.../docs/connectors/other-projects/fluss.md | 40 +++++++
.../docs/connectors/other-projects/hudi.md} | 23 +++-
.../docs/connectors/other-projects/iceberg.md | 44 +++++++
.../docs/connectors/other-projects/overview.md | 48 ++++++++
.../docs/connectors/other-projects/paimon.md} | 24 +++-
docs/content/docs/connectors/table/_index.md | 1 +
.../content/docs/connectors/table/formats/canal.md | 3 +
.../docs/connectors/table/formats/debezium.md | 3 +
.../docs/connectors/table/formats/maxwell.md | 3 +
docs/content/docs/connectors/table/formats/ogg.md | 3 +
docs/content/docs/connectors/table/overview.md | 115 +++++++++++++-----
docs/content/docs/dev/table/tuning.md | 4 +-
docs/content/docs/learn-flink/fault_tolerance.md | 2 +-
.../docs/sql/materialized-table/deployment.md | 6 +-
docs/layouts/partials/docs/menu-filetree.html | 12 +-
44 files changed, 707 insertions(+), 387 deletions(-)
diff --git a/docs/config.toml b/docs/config.toml
index 37e5aa769c5..21fe8c61073 100644
--- a/docs/config.toml
+++ b/docs/config.toml
@@ -68,6 +68,9 @@ pygmentsUseClasses = true
# of the menu
MenuLinks = [
["Project Homepage", "//flink.apache.org"],
+ ["Flink CDC", "//nightlies.apache.org/flink/flink-cdc-docs-stable/"],
+ ["Flink Kubernetes Operator",
"//nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/"],
+ ["Flink Agents", "//nightlies.apache.org/flink/flink-agents-docs-latest/"],
["JavaDocs",
"//nightlies.apache.org/flink/flink-docs-release-2.3/api/java/"],
["PyDocs",
"//nightlies.apache.org/flink/flink-docs-release-2.3/api/python/"]
]
diff --git a/docs/content.zh/docs/concepts/stateful-stream-processing.md
b/docs/content.zh/docs/concepts/stateful-stream-processing.md
index 7be685dba3f..b2c536a5a6f 100644
--- a/docs/content.zh/docs/concepts/stateful-stream-processing.md
+++ b/docs/content.zh/docs/concepts/stateful-stream-processing.md
@@ -109,9 +109,10 @@ By default, checkpointing is disabled. See
[Checkpointing]({{< ref "docs/dev/dat
For this mechanism to realize its full guarantees, the data
stream source (such as message queue or broker) needs to be able to rewind the
stream to a defined recent point. [Apache Kafka](http://kafka.apache.org) has
-this ability and Flink's connector to Kafka exploits this. See [Fault
-Tolerance Guarantees of Data Sources and Sinks]({{< ref
"docs/connectors/datastream/guarantees" >}}) for more information about the
guarantees
-provided by Flink's connectors.
+this ability and Flink's connector to Kafka exploits this. See the fault
tolerance guarantees for
+[SQL & Table API connectors]({{< ref "docs/connectors/table/overview"
>}}#fault-tolerance-guarantees) and
+[DataStream connectors]({{< ref "docs/connectors/datastream/overview"
>}}#fault-tolerance-guarantees)
+for more information about the guarantees provided by Flink's connectors.
{{< /hint >}}
{{< hint info >}}
diff --git a/docs/content.zh/docs/connectors/datastream/_index.md
b/docs/content.zh/docs/connectors/datastream/_index.md
index fd6e50a01c2..b362045eb47 100644
--- a/docs/content.zh/docs/connectors/datastream/_index.md
+++ b/docs/content.zh/docs/connectors/datastream/_index.md
@@ -1,6 +1,7 @@
---
title: DataStream Connectors
bookCollapseSection: true
+bookSortByTitle: true
weight: 4
---
<!--
diff --git a/docs/content.zh/docs/connectors/datastream/filesystem.md
b/docs/content.zh/docs/connectors/datastream/filesystem.md
index 1a40fbbceaa..ca5b09ea84d 100644
--- a/docs/content.zh/docs/connectors/datastream/filesystem.md
+++ b/docs/content.zh/docs/connectors/datastream/filesystem.md
@@ -1,5 +1,6 @@
---
title: 文件系统
+linkTitle: FileSystem
weight: 6
type: docs
aliases:
diff --git a/docs/content.zh/docs/connectors/datastream/guarantees.md
b/docs/content.zh/docs/connectors/datastream/guarantees.md
index ea3fc7db6f8..71093dc5ac8 100644
--- a/docs/content.zh/docs/connectors/datastream/guarantees.md
+++ b/docs/content.zh/docs/connectors/datastream/guarantees.md
@@ -2,6 +2,7 @@
title: 容错保证
weight: 2
type: docs
+bookHidden: true
aliases:
- /zh/dev/connectors/guarantees.html
---
@@ -26,126 +27,7 @@ under the License.
# Data Source 和 Sink 的容错保证
-当程序出现错误的时候,Flink 的容错机制能恢复并继续运行程序。这种错误包括机器硬件故障、网络故障、瞬态程序故障等等。
-
-只有当 source 参与了快照机制的时候,Flink 才能保证对自定义状态的精确一次更新。下表列举了 Flink 与其自带连接器的状态更新的保证。
-
-请阅读各个连接器的文档来了解容错保证的细节。
-
-<table class="table table-bordered">
- <thead>
- <tr>
- <th class="text-left" style="width: 25%">Source</th>
- <th class="text-left" style="width: 25%">Guarantees</th>
- <th class="text-left">Notes</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Apache Kafka</td>
- <td>精确一次</td>
- <td>根据你的版本用恰当的 Kafka 连接器</td>
- </tr>
- <tr>
- <td>Amazon Kinesis Data Streams</td>
- <td>精确一次</td>
- <td></td>
- </tr>
- <tr>
- <td>RabbitMQ</td>
- <td>至多一次 (v 0.10) / 精确一次 (v 1.0) </td>
- <td></td>
- </tr>
- <tr>
- <td>Google PubSub</td>
- <td>至少一次</td>
- <td></td>
- </tr>
- <tr>
- <td>Collections</td>
- <td>精确一次</td>
- <td></td>
- </tr>
- <tr>
- <td>Files</td>
- <td>精确一次</td>
- <td></td>
- </tr>
- <tr>
- <td>Sockets</td>
- <td>至多一次</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-为了保证端到端精确一次的数据交付(在精确一次的状态语义上更进一步),sink需要参与 checkpointing 机制。下表列举了 Flink 与其自带
sink 的交付保证(假设精确一次状态更新)。
-
-<table class="table table-bordered">
- <thead>
- <tr>
- <th class="text-left" style="width: 25%">Sink</th>
- <th class="text-left" style="width: 25%">Guarantees</th>
- <th class="text-left">Notes</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Elasticsearch</td>
- <td>至少一次</td>
- <td></td>
- </tr>
- <tr>
- <td>Opensearch</td>
- <td>至少一次</td>
- <td></td>
- </tr>
- <tr>
- <td>Kafka producer</td>
- <td>至少一次 / 精确一次</td>
- <td>当使用事务生产者时,保证精确一次 (v 0.11+)</td>
- </tr>
- <tr>
- <td>Cassandra sink</td>
- <td>至少一次 / 精确一次</td>
- <td>只有当更新是幂等时,保证精确一次</td>
- </tr>
- <tr>
- <td>Amazon DynamoDB</td>
- <td>至少一次</td>
- <td></td>
- </tr>
- <tr>
- <td>Amazon Kinesis Data Streams</td>
- <td>至少一次</td>
- <td></td>
- </tr>
- <tr>
- <td>Amazon Kinesis Data Firehose</td>
- <td>至少一次</td>
- <td></td>
- </tr>
- <tr>
- <td>File sinks</td>
- <td>精确一次</td>
- <td></td>
- </tr>
- <tr>
- <td>Socket sinks</td>
- <td>至少一次</td>
- <td></td>
- </tr>
- <tr>
- <td>Standard output</td>
- <td>至少一次</td>
- <td></td>
- </tr>
- <tr>
- <td>Redis sink</td>
- <td>至少一次</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-{{< top >}}
+This page has moved into the connector overviews: see
+[SQL & Table API connectors]({{< ref "docs/connectors/table/overview"
>}}#fault-tolerance-guarantees)
+and [DataStream connectors]({{< ref "docs/connectors/datastream/overview"
>}}#fault-tolerance-guarantees).
+Each connector's page documents the guarantees it provides.
diff --git a/docs/content.zh/docs/connectors/datastream/overview.md
b/docs/content.zh/docs/connectors/datastream/overview.md
index 044fe73dee4..bfcce17dd34 100644
--- a/docs/content.zh/docs/connectors/datastream/overview.md
+++ b/docs/content.zh/docs/connectors/datastream/overview.md
@@ -38,22 +38,25 @@ under the License.
连接器可以和多种多样的第三方系统进行交互。目前支持以下系统。
Currently these systems are supported as part of the Apache Flink project:
- * [Apache Kafka]({{< ref "docs/connectors/datastream/kafka" >}}) (source/sink)
- * [Apache Cassandra]({{< ref "docs/connectors/datastream/cassandra" >}})
(source/sink)
- * [Amazon DynamoDB]({{< ref "docs/connectors/datastream/dynamodb" >}}) (sink)
- * [Amazon Kinesis Data Streams]({{< ref "docs/connectors/datastream/kinesis"
>}}) (source/sink)
- * [Amazon Kinesis Data Firehose]({{< ref
"docs/connectors/datastream/firehose" >}}) (sink)
+ * [Cassandra]({{< ref "docs/connectors/datastream/cassandra" >}})
(source/sink)
* [DataGen]({{< ref "docs/connectors/datastream/datagen" >}}) (source)
+ * [Dynamic Kafka]({{< ref "docs/connectors/datastream/dynamic-kafka" >}})
(source)
+ * [DynamoDB]({{< ref "docs/connectors/datastream/dynamodb" >}}) (sink)
* [Elasticsearch]({{< ref "docs/connectors/datastream/elasticsearch" >}})
(sink)
- * [Opensearch]({{< ref "docs/connectors/datastream/opensearch" >}}) (sink)
- * [FileSystem]({{< ref "docs/connectors/datastream/filesystem" >}}) (sink)
- * [RabbitMQ]({{< ref "docs/connectors/datastream/rabbitmq" >}}) (source/sink)
- * [Google PubSub]({{< ref "docs/connectors/datastream/pubsub" >}})
(source/sink)
+ * [FileSystem]({{< ref "docs/connectors/datastream/filesystem" >}})
(source/sink)
+ * [Firehose]({{< ref "docs/connectors/datastream/firehose" >}}) (sink)
+ * [Google Cloud PubSub]({{< ref "docs/connectors/datastream/pubsub" >}})
(source/sink)
+ * [HTTP]({{< ref "docs/connectors/datastream/http" >}}) (sink)
* [Hybrid Source]({{< ref "docs/connectors/datastream/hybridsource" >}})
(source)
- * [Apache Pulsar]({{< ref "docs/connectors/datastream/pulsar" >}}) (source)
* [JDBC]({{< ref "docs/connectors/datastream/jdbc" >}}) (sink)
+ * [Kafka]({{< ref "docs/connectors/datastream/kafka" >}}) (source/sink)
+ * [Kinesis]({{< ref "docs/connectors/datastream/kinesis" >}}) (source/sink)
* [MongoDB]({{< ref "docs/connectors/datastream/mongodb" >}}) (source/sink)
+ * [Opensearch]({{< ref "docs/connectors/datastream/opensearch" >}}) (sink)
* [Prometheus]({{< ref "docs/connectors/datastream/prometheus" >}}) (sink)
+ * [Pulsar]({{< ref "docs/connectors/datastream/pulsar" >}}) (source/sink)
+ * [RabbitMQ]({{< ref "docs/connectors/datastream/rabbitmq" >}}) (source/sink)
+ * [SQS]({{< ref "docs/connectors/datastream/sqs" >}}) (sink)
请记住,在使用一种连接器时,通常需要额外的第三方组件,比如:数据存储服务器或者消息队列。
要注意这些列举的连接器是 Flink 工程的一部分,包含在发布的源码中,但是不包含在二进制发行版中。
@@ -66,15 +69,29 @@ Currently these systems are supported as part of the Apache
Flink project:
如果需要在本地环境测试运行,请确保 flink-connector-base 依赖被正确的提供,而且能在 classpath 下找到。
{{< /hint >}}
-## Apache Bahir 中的连接器
+## Flink CDC
+
+[Flink CDC](https://nightlies.apache.org/flink/flink-cdc-docs-stable/) is an
Apache Flink sub-project with its own releases. Its source connectors read
+changes directly from databases such as MySQL, PostgreSQL, Oracle, SQL Server,
MongoDB and Db2. See
+the [Flink CDC
sources](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/)
for the supported databases and Flink versions.
+
+## Fault Tolerance Guarantees
+
+Flink recovers from failures by restarting from the last [checkpoint]({{< ref
"docs/dev/datastream/fault-tolerance/checkpointing" >}}). Checkpointing is
+disabled by default. For exactly-once results, the source must be able to
rewind to the position
+stored in the checkpoint, and the sink must take part in checkpointing, either
by committing its
+writes transactionally or by writing idempotently. See [Stateful Stream
Processing]({{< ref "docs/concepts/stateful-stream-processing"
>}}#checkpointing) for how checkpoints work.
+
+Sinks built on the [Sink API]({{< ref "docs/internals/sinks" >}}) that support
more than one
+guarantee take a {{< javadoc
file="org/apache/flink/connector/base/DeliveryGuarantee.html"
name="DeliveryGuarantee" >}}
+(`NONE`, `AT_LEAST_ONCE` or `EXACTLY_ONCE`) in their builder, for example the
+[Kafka sink]({{< ref "docs/connectors/datastream/kafka" >}}). Each connector's
page documents the
+guarantees it provides.
-Flink 还有些一些额外的连接器通过 [Apache Bahir](https://bahir.apache.org/) 发布, 包括:
+## Integrations Maintained by Other Projects
- * [Apache
ActiveMQ](https://bahir.apache.org/docs/flink/current/flink-streaming-activemq/)
(source/sink)
- * [Apache
Flume](https://bahir.apache.org/docs/flink/current/flink-streaming-flume/)
(sink)
- * [Redis](https://bahir.apache.org/docs/flink/current/flink-streaming-redis/)
(sink)
- * [Akka](https://bahir.apache.org/docs/flink/current/flink-streaming-akka/)
(sink)
- * [Netty](https://bahir.apache.org/docs/flink/current/flink-streaming-netty/)
(source)
+Some projects maintain their own Flink integration, such as Apache Iceberg and
Apache Paimon. See
+[Integrations Maintained by Other Projects]({{< ref
"docs/connectors/other-projects/overview" >}}).
## 连接Flink的其他方法
diff --git a/docs/content.zh/docs/connectors/table/_index.md
b/docs/content.zh/docs/connectors/other-projects/_index.md
similarity index 91%
copy from docs/content.zh/docs/connectors/table/_index.md
copy to docs/content.zh/docs/connectors/other-projects/_index.md
index a117e9fa887..acd631dd9f2 100644
--- a/docs/content.zh/docs/connectors/table/_index.md
+++ b/docs/content.zh/docs/connectors/other-projects/_index.md
@@ -1,7 +1,8 @@
---
-title: SQL & Table API Connectors
+title: Maintained by Other Projects
bookCollapseSection: true
-weight: 3
+bookSortByTitle: true
+weight: 6
---
<!--
Licensed to the Apache Software Foundation (ASF) under one
@@ -20,4 +21,4 @@ software distributed under the License is distributed on an
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
--->
\ No newline at end of file
+-->
diff --git a/docs/content.zh/docs/connectors/table/_index.md
b/docs/content.zh/docs/connectors/other-projects/doris.md
similarity index 51%
copy from docs/content.zh/docs/connectors/table/_index.md
copy to docs/content.zh/docs/connectors/other-projects/doris.md
index a117e9fa887..38e5a4aec70 100644
--- a/docs/content.zh/docs/connectors/table/_index.md
+++ b/docs/content.zh/docs/connectors/other-projects/doris.md
@@ -1,7 +1,7 @@
---
-title: SQL & Table API Connectors
-bookCollapseSection: true
-weight: 3
+title: Apache Doris
+weight: 10
+type: docs
---
<!--
Licensed to the Apache Software Foundation (ASF) under one
@@ -20,4 +20,20 @@ software distributed under the License is distributed on an
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
--->
\ No newline at end of file
+-->
+
+# Apache Doris
+
+{{< hint info >}}
+The Apache Doris community maintains this integration, not the Apache Flink
community. It may not
+support this Flink version yet, so check its supported Flink versions below.
+{{< /hint >}}
+
+[Apache Doris](https://doris.apache.org/) is a real-time analytical database.
Its Flink connector
+reads from and writes to Doris from SQL and the DataStream API, supports
lookup joins, and can
+synchronize whole databases into Doris using Flink CDC.
+
+- [Flink
integration](https://doris.apache.org/docs/ecosystem/flink-doris-connector)
+- [Supported Flink
versions](https://doris.apache.org/docs/ecosystem/flink-doris-connector#version-description)
+
+{{< top >}}
diff --git a/docs/content.zh/docs/connectors/other-projects/fluss.md
b/docs/content.zh/docs/connectors/other-projects/fluss.md
new file mode 100644
index 00000000000..946f2190f09
--- /dev/null
+++ b/docs/content.zh/docs/connectors/other-projects/fluss.md
@@ -0,0 +1,40 @@
+---
+title: Apache Fluss
+weight: 10
+type: docs
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Apache Fluss
+
+{{< hint info >}}
+The Apache Fluss community maintains this integration, not the Apache Flink
community. It may not
+support this Flink version yet, so check its supported Flink versions below.
+{{< /hint >}}
+
+[Apache Fluss](https://fluss.apache.org/) is streaming storage for real-time
analytics. Its Flink
+integration provides a catalog, reads and writes Fluss tables in streaming and
batch mode, and
+supports lookup joins. Fluss tables can be used as sources for
+[delta joins]({{< ref "docs/dev/table/tuning" >}}#delta-joins).
+
+- [Flink
integration](https://fluss.apache.org/docs/engine-flink/getting-started/)
+- [Supported Flink
versions](https://fluss.apache.org/docs/engine-flink/getting-started/#supported-flink-versions)
+
+{{< top >}}
diff --git a/docs/content.zh/docs/connectors/table/_index.md
b/docs/content.zh/docs/connectors/other-projects/hudi.md
similarity index 53%
copy from docs/content.zh/docs/connectors/table/_index.md
copy to docs/content.zh/docs/connectors/other-projects/hudi.md
index a117e9fa887..65cade9adf4 100644
--- a/docs/content.zh/docs/connectors/table/_index.md
+++ b/docs/content.zh/docs/connectors/other-projects/hudi.md
@@ -1,7 +1,7 @@
---
-title: SQL & Table API Connectors
-bookCollapseSection: true
-weight: 3
+title: Apache Hudi
+weight: 10
+type: docs
---
<!--
Licensed to the Apache Software Foundation (ASF) under one
@@ -20,4 +20,19 @@ software distributed under the License is distributed on an
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
--->
\ No newline at end of file
+-->
+
+# Apache Hudi
+
+{{< hint info >}}
+The Apache Hudi community maintains this integration, not the Apache Flink
community. It may not
+support this Flink version yet, so check its supported Flink versions below.
+{{< /hint >}}
+
+[Apache Hudi](https://hudi.apache.org/) is an open data lakehouse platform.
Its Flink integration provides a catalog and reads and writes Hudi tables in
streaming and
+batch mode from SQL and the DataStream API.
+
+- [Flink integration](https://hudi.apache.org/docs/flink-quick-start-guide/)
+- [Supported Flink
versions](https://hudi.apache.org/docs/flink-quick-start-guide/#flink-support-matrix)
+
+{{< top >}}
diff --git a/docs/content.zh/docs/connectors/other-projects/iceberg.md
b/docs/content.zh/docs/connectors/other-projects/iceberg.md
new file mode 100644
index 00000000000..7689f821b15
--- /dev/null
+++ b/docs/content.zh/docs/connectors/other-projects/iceberg.md
@@ -0,0 +1,44 @@
+---
+title: Apache Iceberg
+weight: 10
+type: docs
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Apache Iceberg
+
+{{< hint info >}}
+The Apache Iceberg community maintains this integration, not the Apache Flink
community. It may not
+support this Flink version yet, so check its supported Flink versions below.
+{{< /hint >}}
+
+[Apache Iceberg](https://iceberg.apache.org/) is an open table format for
large analytic tables.
+Its Flink integration provides a catalog and reads and writes Iceberg tables
in streaming and batch
+mode from SQL, the Table API and the DataStream API.
+
+Iceberg tables are often managed by a catalog service that implements the
Iceberg REST catalog API,
+such as [Apache Polaris](https://polaris.apache.org/guides/flink/). Flink
connects to such a service
+through Iceberg's REST catalog.
+
+- [Flink integration](https://iceberg.apache.org/docs/latest/flink/)
+- [Supported Flink
versions](https://iceberg.apache.org/multi-engine-support/#apache-flink)
+- [REST catalog](https://iceberg.apache.org/docs/latest/flink/#rest-catalog)
+
+{{< top >}}
diff --git a/docs/content.zh/docs/connectors/other-projects/overview.md
b/docs/content.zh/docs/connectors/other-projects/overview.md
new file mode 100644
index 00000000000..ad604bbdd9d
--- /dev/null
+++ b/docs/content.zh/docs/connectors/other-projects/overview.md
@@ -0,0 +1,48 @@
+---
+title: Overview
+weight: 1
+type: docs
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Integrations Maintained by Other Projects
+
+The projects listed here maintain their own Flink integration. Each
integration is developed,
+released and supported by that project's community, not by the Apache Flink
community. That
+project's documentation covers which artifacts to use and how to configure it.
Report issues and ask
+questions in that project's channels.
+
+A project is listed here when it is an Apache Software Foundation project and
has released a Flink
+integration for Flink 2.x.
+
+{{< hint info >}}
+These integrations follow their own release schedules and may not support this
Flink version yet.
+Check each project's supported Flink versions before you choose one.
+{{< /hint >}}
+
+| Project | Flink integration |
+|---------|-------------------|
+| [Apache Doris]({{< ref "docs/connectors/other-projects/doris" >}}) | Source,
sink, lookup joins and database synchronization through Flink CDC |
+| [Apache Fluss]({{< ref "docs/connectors/other-projects/fluss" >}}) |
Catalog, source, sink, lookup joins and delta joins |
+| [Apache Hudi]({{< ref "docs/connectors/other-projects/hudi" >}}) | Catalog,
source and sink |
+| [Apache Iceberg]({{< ref "docs/connectors/other-projects/iceberg" >}}) |
Catalog, source and sink; REST catalogs such as Apache Polaris |
+| [Apache Paimon]({{< ref "docs/connectors/other-projects/paimon" >}}) |
Catalog, source, sink and lookup joins |
+
+{{< top >}}
diff --git a/docs/content.zh/docs/connectors/table/_index.md
b/docs/content.zh/docs/connectors/other-projects/paimon.md
similarity index 52%
copy from docs/content.zh/docs/connectors/table/_index.md
copy to docs/content.zh/docs/connectors/other-projects/paimon.md
index a117e9fa887..cc14994b193 100644
--- a/docs/content.zh/docs/connectors/table/_index.md
+++ b/docs/content.zh/docs/connectors/other-projects/paimon.md
@@ -1,7 +1,7 @@
---
-title: SQL & Table API Connectors
-bookCollapseSection: true
-weight: 3
+title: Apache Paimon
+weight: 10
+type: docs
---
<!--
Licensed to the Apache Software Foundation (ASF) under one
@@ -20,4 +20,20 @@ software distributed under the License is distributed on an
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
--->
\ No newline at end of file
+-->
+
+# Apache Paimon
+
+{{< hint info >}}
+The Apache Paimon community maintains this integration, not the Apache Flink
community. It may not
+support this Flink version yet, so check its supported Flink versions below.
+{{< /hint >}}
+
+[Apache Paimon](https://paimon.apache.org/) is a lake format for streaming and
batch processing.
+Its Flink integration provides a catalog, reads and writes Paimon tables in
streaming and batch
+mode, and supports lookup joins.
+
+- [Flink integration](https://paimon.apache.org/docs/master/flink/quick-start/)
+- [Supported Flink
versions](https://paimon.apache.org/docs/master/flink/installation/)
+
+{{< top >}}
diff --git a/docs/content.zh/docs/connectors/table/_index.md
b/docs/content.zh/docs/connectors/table/_index.md
index a117e9fa887..eb52eca6531 100644
--- a/docs/content.zh/docs/connectors/table/_index.md
+++ b/docs/content.zh/docs/connectors/table/_index.md
@@ -1,6 +1,7 @@
---
title: SQL & Table API Connectors
bookCollapseSection: true
+bookSortByTitle: true
weight: 3
---
<!--
diff --git a/docs/content.zh/docs/connectors/table/filesystem.md
b/docs/content.zh/docs/connectors/table/filesystem.md
index 20514387427..4794d058d48 100644
--- a/docs/content.zh/docs/connectors/table/filesystem.md
+++ b/docs/content.zh/docs/connectors/table/filesystem.md
@@ -1,5 +1,6 @@
---
title: 文件系统
+linkTitle: FileSystem
weight: 8
type: docs
aliases:
diff --git a/docs/content.zh/docs/connectors/table/formats/canal.md
b/docs/content.zh/docs/connectors/table/formats/canal.md
index 9ceb3ccc53d..9cea9f10e5e 100644
--- a/docs/content.zh/docs/connectors/table/formats/canal.md
+++ b/docs/content.zh/docs/connectors/table/formats/canal.md
@@ -32,6 +32,9 @@ under the License.
[Canal](https://github.com/alibaba/canal/wiki) 是一个 CDC(ChangeLog Data
Capture,变更日志数据捕获)工具,可以实时地将 MySQL 变更传输到其他系统。Canal 为变更日志提供了统一的数据格式,并支持使用 JSON 或
[protobuf](https://developers.google.com/protocol-buffers) 序列化消息(Canal 默认使用
protobuf)。
+This format reads change events that Canal has already written to a system
such as Kafka. To
+read changes directly from a database instead, see [Flink
CDC](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/).
+
Flink 支持将 Canal 的 JSON 消息解析为 INSERT / UPDATE / DELETE 消息到 Flink SQL
系统中。在很多情况下,利用这个特性非常的有用,例如
- 将增量数据从数据库同步到其他系统
- 日志审计
diff --git a/docs/content.zh/docs/connectors/table/formats/debezium.md
b/docs/content.zh/docs/connectors/table/formats/debezium.md
index 91a9a88d9f9..1eff05fb9c5 100644
--- a/docs/content.zh/docs/connectors/table/formats/debezium.md
+++ b/docs/content.zh/docs/connectors/table/formats/debezium.md
@@ -32,6 +32,9 @@ under the License.
[Debezium](https://debezium.io/) 是一个 CDC(Changelog Data
Capture,变更数据捕获)的工具,可以把来自 MySQL、PostgreSQL、Oracle、Microsoft SQL Server
和许多其他数据库的更改实时流式传输到 Kafka 中。 Debezium 为变更日志提供了统一的格式结构,并支持使用 JSON 和 Apache Avro
序列化消息。
+This format reads change events that Debezium has already written to a system
such as Kafka. To
+read changes directly from a database instead, see [Flink
CDC](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/).
+
Flink 支持将 Debezium JSON 和 Avro 消息解析为 INSERT / UPDATE / DELETE 消息到 Flink SQL
系统中。在很多情况下,利用这个特性非常的有用,例如
- 将增量数据从数据库同步到其他系统
- 日志审计
diff --git a/docs/content.zh/docs/connectors/table/formats/maxwell.md
b/docs/content.zh/docs/connectors/table/formats/maxwell.md
index 0bdedeac682..7bc3e266ff0 100644
--- a/docs/content.zh/docs/connectors/table/formats/maxwell.md
+++ b/docs/content.zh/docs/connectors/table/formats/maxwell.md
@@ -32,6 +32,9 @@ under the License.
[Maxwell](https://maxwells-daemon.io/) is a CDC (Changelog Data Capture) tool
that can stream changes in real-time from MySQL into Kafka, Kinesis and other
streaming connectors. Maxwell provides a unified format schema for changelog
and supports to serialize messages using JSON.
+This format reads change events that Maxwell has already written to a system
such as Kafka. To
+read changes directly from a database instead, see [Flink
CDC](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/).
+
Flink supports to interpret Maxwell JSON messages as INSERT/UPDATE/DELETE
messages into Flink SQL system. This is useful in many cases to leverage this
feature, such as
- synchronizing incremental data from databases to other systems
- auditing logs
diff --git a/docs/content.zh/docs/connectors/table/formats/ogg.md
b/docs/content.zh/docs/connectors/table/formats/ogg.md
index 61ec97b60fd..d11175a7b3d 100644
--- a/docs/content.zh/docs/connectors/table/formats/ogg.md
+++ b/docs/content.zh/docs/connectors/table/formats/ogg.md
@@ -32,6 +32,9 @@ label "Format: Deserialization Schema" >}}
[Oracle GoldenGate](https://www.oracle.com/integration/goldengate/) (a.k.a
ogg) 是一个实现异构 IT 环境间数据实时数据集成和复制的综合软件包。
该产品集支持高可用性解决方案、实时数据集成、事务更改数据捕获、运营和分析企业系统之间的数据复制、转换和验证。Ogg
为变更日志提供了统一的格式结构,并支持使用 JSON 序列化消息。
+This format reads change events that Oracle GoldenGate has already written to
a system such as Kafka. To
+read changes directly from a database instead, see [Flink
CDC](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/).
+
Flink 支持将 Ogg JSON 消息解析为 INSERT/UPDATE/DELETE 消息到 Flink SQL
系统中。在很多情况下,利用这个特性非常有用,例如
- 将增量数据从数据库同步到其他系统
diff --git a/docs/content.zh/docs/connectors/table/overview.md
b/docs/content.zh/docs/connectors/table/overview.md
index c7c447a4707..8c24511f8b6 100644
--- a/docs/content.zh/docs/connectors/table/overview.md
+++ b/docs/content.zh/docs/connectors/table/overview.md
@@ -42,85 +42,142 @@ Flink natively support various connectors. The following
tables list all availab
<thead>
<tr>
<th class="text-left">Name</th>
- <th class="text-center">Version</th>
<th class="text-center">Source</th>
<th class="text-center">Sink</th>
</tr>
</thead>
<tbody>
<tr>
- <td><a href="{{< ref "docs/connectors/table/filesystem"
>}}">Filesystem</a></td>
- <td></td>
- <td>Bounded and Unbounded Scan</td>
+ <td><a href="{{< ref "docs/connectors/table/blackhole"
>}}">BlackHole</a></td>
+ <td>Not supported</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/elasticsearch"
>}}">Elasticsearch</a></td>
- <td>6.x & 7.x</td>
+ <td><a href="{{< ref "docs/connectors/table/datagen"
>}}">DataGen</a></td>
+ <td>Bounded and Unbounded Scan</td>
+ <td>Not supported</td>
+ </tr>
+ <tr>
+ <td><a href="{{< ref "docs/connectors/table/dynamic-kafka" >}}">Dynamic
Kafka</a></td>
+ <td>Unbounded Scan</td>
+ <td>Not supported</td>
+ </tr>
+ <tr>
+ <td><a href="{{< ref "docs/connectors/table/dynamodb"
>}}">DynamoDB</a></td>
<td>Not supported</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/opensearch"
>}}">Opensearch</a></td>
- <td>1.x & 2.x</td>
+ <td><a href="{{< ref "docs/connectors/table/elasticsearch"
>}}">Elasticsearch</a></td>
<td>Not supported</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/kafka" >}}">Apache
Kafka</a></td>
- <td>0.10+</td>
- <td>Unbounded Scan</td>
+ <td><a href="{{< ref "docs/connectors/table/filesystem"
>}}">FileSystem</a></td>
+ <td>Bounded and Unbounded Scan</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/dynamodb" >}}">Amazon
DynamoDB</a></td>
- <td></td>
+ <td><a href="{{< ref "docs/connectors/table/firehose"
>}}">Firehose</a></td>
<td>Not supported</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/kinesis" >}}">Amazon Kinesis
Data Streams</a></td>
- <td></td>
- <td>Unbounded Scan</td>
- <td>Streaming Sink</td>
+ <td><a href="{{< ref "docs/connectors/table/hbase" >}}">HBase</a></td>
+ <td>Bounded Scan, Lookup</td>
+ <td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/firehose" >}}">Amazon
Kinesis Data Firehose</a></td>
- <td></td>
- <td>Not supported</td>
- <td>Streaming Sink</td>
+ <td><a href="{{< ref "docs/connectors/table/hive/overview"
>}}">Hive</a></td>
+ <td>Unbounded Scan, Bounded Scan, Lookup</td>
+ <td>Streaming Sink, Batch Sink</td>
+ </tr>
+ <tr>
+ <td><a href="{{< ref "docs/connectors/table/http" >}}">HTTP</a></td>
+ <td>Lookup</td>
+ <td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
<td><a href="{{< ref "docs/connectors/table/jdbc" >}}">JDBC</a></td>
- <td></td>
<td>Bounded Scan, Lookup</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/hbase" >}}">Apache
HBase</a></td>
- <td>1.4.x & 2.2.x</td>
- <td>Bounded Scan, Lookup</td>
+ <td><a href="{{< ref "docs/connectors/table/kafka" >}}">Kafka</a></td>
+ <td>Bounded and Unbounded Scan</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/hive/overview" >}}">Apache
Hive</a></td>
- <td><a href="{{< ref "docs/connectors/table/hive/overview"
>}}#supported-hive-versions">Supported Versions</a></td>
- <td>Unbounded Scan, Bounded Scan, Lookup</td>
+ <td><a href="{{< ref "docs/connectors/table/kinesis"
>}}">Kinesis</a></td>
+ <td>Unbounded Scan</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
<td><a href="{{< ref "docs/connectors/table/mongodb"
>}}">MongoDB</a></td>
- <td>3.6.x & 4.x & 5.x & 6.0.x</td>
<td>Bounded Scan, Lookup</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
+ <tr>
+ <td><a href="{{< ref "docs/connectors/table/opensearch"
>}}">Opensearch</a></td>
+ <td>Not supported</td>
+ <td>Streaming Sink, Batch Sink</td>
+ </tr>
+ <tr>
+ <td><a href="{{< ref "docs/connectors/table/print" >}}">Print</a></td>
+ <td>Not supported</td>
+ <td>Streaming Sink, Batch Sink</td>
+ </tr>
+ <tr>
+ <td><a href="{{< ref "docs/connectors/table/upsert-kafka" >}}">Upsert
Kafka</a></td>
+ <td>Unbounded Scan</td>
+ <td>Streaming Sink</td>
+ </tr>
</tbody>
</table>
+The following integrations are maintained by other projects, not by the Apache
Flink community. See
+[Integrations Maintained by Other Projects]({{< ref
"docs/connectors/other-projects/overview" >}}).
+
+ * [Apache Doris]({{< ref "docs/connectors/other-projects/doris" >}})
+ * [Apache Fluss]({{< ref "docs/connectors/other-projects/fluss" >}})
+ * [Apache Hudi]({{< ref "docs/connectors/other-projects/hudi" >}})
+ * [Apache Iceberg]({{< ref "docs/connectors/other-projects/iceberg" >}})
+ * [Apache Paimon]({{< ref "docs/connectors/other-projects/paimon" >}})
+
{{< top >}}
请查阅[配置]({{< ref "docs/dev/configuration/connector" >}})小节了解如何添加连接器依赖。
+Flink CDC
+------------
+
+[Flink CDC](https://nightlies.apache.org/flink/flink-cdc-docs-stable/) is an
Apache Flink sub-project with its own releases. Its source connectors read
+changes directly from databases such as MySQL, PostgreSQL, Oracle, SQL Server,
MongoDB and Db2, and
+it can run complete data integration pipelines defined in YAML. See the
+[Flink CDC
sources](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/)
for the supported databases and Flink versions.
+
+{{< top >}}
+
+Fault Tolerance Guarantees
+------------
+
+Flink recovers from failures by restarting from the last [checkpoint]({{< ref
"docs/dev/datastream/fault-tolerance/checkpointing" >}}). Checkpointing is
+disabled by default. For exactly-once results, the source must be able to
rewind to the position
+stored in the checkpoint, and the sink must take part in checkpointing, either
by committing its
+writes transactionally or by writing idempotently. See
+[Stateful Stream Processing]({{< ref
"docs/concepts/stateful-stream-processing" >}}#checkpointing) for how
checkpoints work.
+
+Connectors that support more than one guarantee expose it as the
`sink.delivery-guarantee` option,
+for example [Kafka]({{< ref "docs/connectors/table/kafka" >}}). Exactly-once
on Kafka uses Kafka
+transactions and also requires `sink.transactional-id-prefix`. Sinks that
write by primary key, such
+as [JDBC]({{< ref "docs/connectors/table/jdbc" >}}) with a primary key
defined, overwrite the same
+rows when records are replayed after a failure; while the replay runs, readers
can briefly see older
+values for those rows.
+
+Each connector's page documents the guarantees it provides.
+
+{{< top >}}
+
How to use connectors
--------
diff --git a/docs/content.zh/docs/dev/table/tuning.md
b/docs/content.zh/docs/dev/table/tuning.md
index 8a23468b84b..dcfac187b1d 100644
--- a/docs/content.zh/docs/dev/table/tuning.md
+++ b/docs/content.zh/docs/dev/table/tuning.md
@@ -405,7 +405,7 @@ FROM TenantKafka t
该功能默认启用。当满足以下所有条件时, regular join 将自动优化为 delta join。
1. 作业拓扑结构满足优化条件。具体可以查看[支持的功能和限制]({{< ref "docs/dev/table/tuning"
>}}#supported-features-and-limitations)。
-2. 源表所在的外部存储系统提供了可供 delta join 快速查询的索引信息。目前 [Apache Fluss
(Incubating)](https://fluss.apache.org/blog/fluss-open-source/) 已支持在 Flink
中提供表级别的索引信息,其上的表可作为 delta join 的源表。具体可参考 [Fluss
文档](https://fluss.apache.org/docs/engine-flink/delta-joins/#flink-version-support)。
+2. 源表所在的外部存储系统提供了可供 delta join 快速查询的索引信息。目前 [Apache
Fluss](https://fluss.apache.org/blog/fluss-open-source/) 已支持在 Flink
中提供表级别的索引信息,其上的表可作为 delta join 的源表。具体可参考 [Fluss
文档](https://fluss.apache.org/docs/engine-flink/delta-joins/#flink-version-support)。
<a name="working-principle"></a>
@@ -461,7 +461,7 @@ SET 'table.optimizer.delta-join.strategy' = 'NONE';
6. 源表和 delta join 之间的 projection 或 filter 不能包含**非确定性函数**。
{{< hint info >}}
-[1] Flink 支持定义表级别的**不可变列**(immutable columns)约束来丰富 upsert key,从而使更多场景能够被优化为
delta join。不可变列约束声明某些列一旦为给定主键设置后便不可修改,不可变列会联合主键,作为一组新的 upsert key
传播给下游。该信息由外部存储系统提供。[Apache Fluss (Incubating)](https://fluss.apache.org/)
已在未来计划支持表级别的不可变列约束。
+[1] Flink 支持定义表级别的**不可变列**(immutable columns)约束来丰富 upsert key,从而使更多场景能够被优化为
delta join。不可变列约束声明某些列一旦为给定主键设置后便不可修改,不可变列会联合主键,作为一组新的 upsert key
传播给下游。该信息由外部存储系统提供。[Apache Fluss](https://fluss.apache.org/) 已在未来计划支持表级别的不可变列约束。
{{< /hint >}}
{{< top >}}
diff --git a/docs/content.zh/docs/learn-flink/fault_tolerance.md
b/docs/content.zh/docs/learn-flink/fault_tolerance.md
index 671558c4970..f2c65b9797c 100644
--- a/docs/content.zh/docs/learn-flink/fault_tolerance.md
+++ b/docs/content.zh/docs/learn-flink/fault_tolerance.md
@@ -198,7 +198,7 @@ Barrier 只有在需要提供精确一次的语义保证时需要进行对齐(
- [Stateful Stream Processing]({{< ref
"docs/concepts/stateful-stream-processing" >}})
- [State Backends]({{< ref "docs/ops/state/state_backends" >}})
-- [Data Sources 和 Sinks 的容错保证]({{< ref "docs/connectors/datastream/guarantees"
>}})
+- [Data Sources 和 Sinks 的容错保证]({{< ref "docs/connectors/datastream/overview"
>}}#fault-tolerance-guarantees)
- [开启和配置 Checkpointing]({{< ref
"docs/dev/datastream/fault-tolerance/checkpointing" >}})
- [Checkpoints]({{< ref "docs/ops/state/checkpoints" >}})
- [Savepoints]({{< ref "docs/ops/state/savepoints" >}})
diff --git a/docs/content.zh/docs/sql/materialized-table/deployment.md
b/docs/content.zh/docs/sql/materialized-table/deployment.md
index 17f833e5f7a..3b74c0d6935 100644
--- a/docs/content.zh/docs/sql/materialized-table/deployment.md
+++ b/docs/content.zh/docs/sql/materialized-table/deployment.md
@@ -81,7 +81,11 @@ workflow-scheduler:
```
<span class="label label-danger">注意</span>
-Catalog 必须支持创建物化表,目前只有 [Paimon
Catalog](https://paimon.apache.org/docs/master/concepts/table-types/#materialized-table)
支持。
+The Catalog must support creating materialized tables.
+[Apache Paimon]({{< ref "docs/connectors/other-projects/paimon" >}}) supports
them, and so does
+[Apache
Fluss](https://fluss.apache.org/docs/engine-flink/ddl/#materialized-table) for
the continuous
+refresh mode only. The test-filesystem catalog used in the
+[Quickstart]({{< ref "docs/sql/materialized-table/quickstart" >}}) is meant
for testing only.
# 操作指南
diff --git a/docs/content/docs/concepts/stateful-stream-processing.md
b/docs/content/docs/concepts/stateful-stream-processing.md
index b1ea5da412d..cf0a09bf9fe 100644
--- a/docs/content/docs/concepts/stateful-stream-processing.md
+++ b/docs/content/docs/concepts/stateful-stream-processing.md
@@ -109,9 +109,10 @@ By default, checkpointing is disabled. See
[Checkpointing]({{< ref "docs/dev/dat
For this mechanism to realize its full guarantees, the data
stream source (such as message queue or broker) needs to be able to rewind the
stream to a defined recent point. [Apache Kafka](http://kafka.apache.org) has
-this ability and Flink's connector to Kafka exploits this. See [Fault
-Tolerance Guarantees of Data Sources and Sinks]({{< ref
"docs/connectors/datastream/guarantees" >}}) for more information about the
guarantees
-provided by Flink's connectors.
+this ability and Flink's connector to Kafka exploits this. See the fault
tolerance guarantees for
+[SQL & Table API connectors]({{< ref "docs/connectors/table/overview"
>}}#fault-tolerance-guarantees) and
+[DataStream connectors]({{< ref "docs/connectors/datastream/overview"
>}}#fault-tolerance-guarantees)
+for more information about the guarantees provided by Flink's connectors.
{{< /hint >}}
{{< hint info >}}
diff --git a/docs/content/docs/connectors/datastream/_index.md
b/docs/content/docs/connectors/datastream/_index.md
index fd6e50a01c2..b362045eb47 100644
--- a/docs/content/docs/connectors/datastream/_index.md
+++ b/docs/content/docs/connectors/datastream/_index.md
@@ -1,6 +1,7 @@
---
title: DataStream Connectors
bookCollapseSection: true
+bookSortByTitle: true
weight: 4
---
<!--
diff --git a/docs/content/docs/connectors/datastream/guarantees.md
b/docs/content/docs/connectors/datastream/guarantees.md
index 810a3931ef6..acf44187dce 100644
--- a/docs/content/docs/connectors/datastream/guarantees.md
+++ b/docs/content/docs/connectors/datastream/guarantees.md
@@ -2,6 +2,7 @@
title: Fault Tolerance Guarantees
weight: 2
type: docs
+bookHidden: true
aliases:
- /dev/connectors/guarantees.html
---
@@ -26,131 +27,7 @@ under the License.
# Fault Tolerance Guarantees of Data Sources and Sinks
-Flink's fault tolerance mechanism recovers programs in the presence of
failures and
-continues to execute them. Such failures include machine hardware failures,
network failures,
-transient program failures, etc.
-
-Flink can guarantee exactly-once state updates to user-defined state only when
the source participates in the
-snapshotting mechanism. The following table lists the state update guarantees
of Flink coupled with the bundled connectors.
-
-Please read the documentation of each connector to understand the details of
the fault tolerance guarantees.
-
-<table class="table table-bordered">
- <thead>
- <tr>
- <th class="text-left" style="width: 25%">Source</th>
- <th class="text-left" style="width: 25%">Guarantees</th>
- <th class="text-left">Notes</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Apache Kafka</td>
- <td>exactly once</td>
- <td>Use the appropriate Kafka connector for your version</td>
- </tr>
- <tr>
- <td>AWS Kinesis Streams</td>
- <td>exactly once</td>
- <td></td>
- </tr>
- <tr>
- <td>RabbitMQ</td>
- <td>at most once (v 0.10) / exactly once (v 1.0) </td>
- <td></td>
- </tr>
- <tr>
- <td>Google PubSub</td>
- <td>at least once</td>
- <td></td>
- </tr>
- <tr>
- <td>Collections</td>
- <td>exactly once</td>
- <td></td>
- </tr>
- <tr>
- <td>Files</td>
- <td>exactly once</td>
- <td></td>
- </tr>
- <tr>
- <td>Sockets</td>
- <td>at most once</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-To guarantee end-to-end exactly-once record delivery (in addition to
exactly-once state semantics), the data sink needs
-to take part in the checkpointing mechanism. The following table lists the
delivery guarantees (assuming exactly-once
-state updates) of Flink coupled with bundled sinks:
-
-<table class="table table-bordered">
- <thead>
- <tr>
- <th class="text-left" style="width: 25%">Sink</th>
- <th class="text-left" style="width: 25%">Guarantees</th>
- <th class="text-left">Notes</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Elasticsearch</td>
- <td>at least once</td>
- <td></td>
- </tr>
- <tr>
- <td>Opensearch</td>
- <td>at least once</td>
- <td></td>
- </tr>
- <tr>
- <td>Kafka producer</td>
- <td>at least once / exactly once</td>
- <td>exactly once with transactional producers (v 0.11+)</td>
- </tr>
- <tr>
- <td>Cassandra sink</td>
- <td>at least once / exactly once</td>
- <td>exactly once only for idempotent updates</td>
- </tr>
- <tr>
- <td>Amazon DynamoDB</td>
- <td>at least once</td>
- <td></td>
- </tr>
- <tr>
- <td>Amazon Kinesis Data Streams</td>
- <td>at least once</td>
- <td></td>
- </tr>
- <tr>
- <td>Amazon Kinesis Data Firehose</td>
- <td>at least once</td>
- <td></td>
- </tr>
- <tr>
- <td>File sinks</td>
- <td>exactly once</td>
- <td></td>
- </tr>
- <tr>
- <td>Socket sinks</td>
- <td>at least once</td>
- <td></td>
- </tr>
- <tr>
- <td>Standard output</td>
- <td>at least once</td>
- <td></td>
- </tr>
- <tr>
- <td>Redis sink</td>
- <td>at least once</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-{{< top >}}
+This page has moved into the connector overviews: see
+[SQL & Table API connectors]({{< ref "docs/connectors/table/overview"
>}}#fault-tolerance-guarantees)
+and [DataStream connectors]({{< ref "docs/connectors/datastream/overview"
>}}#fault-tolerance-guarantees).
+Each connector's page documents the guarantees it provides.
diff --git a/docs/content/docs/connectors/datastream/overview.md
b/docs/content/docs/connectors/datastream/overview.md
index 8d100da90b7..b24d534288a 100644
--- a/docs/content/docs/connectors/datastream/overview.md
+++ b/docs/content/docs/connectors/datastream/overview.md
@@ -39,22 +39,25 @@ The [predefined data sinks]({{< ref
"docs/dev/datastream/overview" >}}#data-sink
Connectors provide code for interfacing with various third-party systems.
Currently these systems are supported as part of the Apache Flink project:
- * [Apache Kafka]({{< ref "docs/connectors/datastream/kafka" >}}) (source/sink)
- * [Apache Cassandra]({{< ref "docs/connectors/datastream/cassandra" >}})
(source/sink)
- * [Amazon DynamoDB]({{< ref "docs/connectors/datastream/dynamodb" >}}) (sink)
- * [Amazon Kinesis Data Streams]({{< ref "docs/connectors/datastream/kinesis"
>}}) (source/sink)
- * [Amazon Kinesis Data Firehose]({{< ref
"docs/connectors/datastream/firehose" >}}) (sink)
+ * [Cassandra]({{< ref "docs/connectors/datastream/cassandra" >}})
(source/sink)
* [DataGen]({{< ref "docs/connectors/datastream/datagen" >}}) (source)
+ * [Dynamic Kafka]({{< ref "docs/connectors/datastream/dynamic-kafka" >}})
(source)
+ * [DynamoDB]({{< ref "docs/connectors/datastream/dynamodb" >}}) (sink)
* [Elasticsearch]({{< ref "docs/connectors/datastream/elasticsearch" >}})
(sink)
- * [Opensearch]({{< ref "docs/connectors/datastream/opensearch" >}}) (sink)
* [FileSystem]({{< ref "docs/connectors/datastream/filesystem" >}})
(source/sink)
- * [RabbitMQ]({{< ref "docs/connectors/datastream/rabbitmq" >}}) (source/sink)
- * [Google PubSub]({{< ref "docs/connectors/datastream/pubsub" >}})
(source/sink)
+ * [Firehose]({{< ref "docs/connectors/datastream/firehose" >}}) (sink)
+ * [Google Cloud PubSub]({{< ref "docs/connectors/datastream/pubsub" >}})
(source/sink)
+ * [HTTP]({{< ref "docs/connectors/datastream/http" >}}) (sink)
* [Hybrid Source]({{< ref "docs/connectors/datastream/hybridsource" >}})
(source)
- * [Apache Pulsar]({{< ref "docs/connectors/datastream/pulsar" >}}) (source)
* [JDBC]({{< ref "docs/connectors/datastream/jdbc" >}}) (sink)
+ * [Kafka]({{< ref "docs/connectors/datastream/kafka" >}}) (source/sink)
+ * [Kinesis]({{< ref "docs/connectors/datastream/kinesis" >}}) (source/sink)
* [MongoDB]({{< ref "docs/connectors/datastream/mongodb" >}}) (source/sink)
+ * [Opensearch]({{< ref "docs/connectors/datastream/opensearch" >}}) (sink)
* [Prometheus]({{< ref "docs/connectors/datastream/prometheus" >}}) (sink)
+ * [Pulsar]({{< ref "docs/connectors/datastream/pulsar" >}}) (source/sink)
+ * [RabbitMQ]({{< ref "docs/connectors/datastream/rabbitmq" >}}) (source/sink)
+ * [SQS]({{< ref "docs/connectors/datastream/sqs" >}}) (sink)
Keep in mind that to use one of these connectors in an application, additional
third party
components are usually required, e.g. servers for the data stores or message
queues.
@@ -70,15 +73,29 @@ If you need to run examples locally, make sure that the
flink-connector-base dep
provided and can be found in your own classpath.
{{< /hint >}}
-## Connectors in Apache Bahir
+## Flink CDC
+
+[Flink CDC](https://nightlies.apache.org/flink/flink-cdc-docs-stable/) is an
Apache Flink sub-project with its own releases. Its source connectors read
+changes directly from databases such as MySQL, PostgreSQL, Oracle, SQL Server,
MongoDB and Db2. See
+the [Flink CDC
sources](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/)
for the supported databases and Flink versions.
+
+## Fault Tolerance Guarantees
+
+Flink recovers from failures by restarting from the last [checkpoint]({{< ref
"docs/dev/datastream/fault-tolerance/checkpointing" >}}). Checkpointing is
+disabled by default. For exactly-once results, the source must be able to
rewind to the position
+stored in the checkpoint, and the sink must take part in checkpointing, either
by committing its
+writes transactionally or by writing idempotently. See [Stateful Stream
Processing]({{< ref "docs/concepts/stateful-stream-processing"
>}}#checkpointing) for how checkpoints work.
+
+Sinks built on the [Sink API]({{< ref "docs/internals/sinks" >}}) that support
more than one
+guarantee take a {{< javadoc
file="org/apache/flink/connector/base/DeliveryGuarantee.html"
name="DeliveryGuarantee" >}}
+(`NONE`, `AT_LEAST_ONCE` or `EXACTLY_ONCE`) in their builder, for example the
+[Kafka sink]({{< ref "docs/connectors/datastream/kafka" >}}). Each connector's
page documents the
+guarantees it provides.
-Additional streaming connectors for Flink are being released through [Apache
Bahir](https://bahir.apache.org/), including:
+## Integrations Maintained by Other Projects
- * [Apache
ActiveMQ](https://bahir.apache.org/docs/flink/current/flink-streaming-activemq/)
(source/sink)
- * [Apache
Flume](https://bahir.apache.org/docs/flink/current/flink-streaming-flume/)
(sink)
- * [Redis](https://bahir.apache.org/docs/flink/current/flink-streaming-redis/)
(sink)
- * [Akka](https://bahir.apache.org/docs/flink/current/flink-streaming-akka/)
(sink)
- * [Netty](https://bahir.apache.org/docs/flink/current/flink-streaming-netty/)
(source)
+Some projects maintain their own Flink integration, such as Apache Iceberg and
Apache Paimon. See
+[Integrations Maintained by Other Projects]({{< ref
"docs/connectors/other-projects/overview" >}}).
## Other Ways to Connect to Flink
diff --git a/docs/content.zh/docs/connectors/table/_index.md
b/docs/content/docs/connectors/other-projects/_index.md
similarity index 91%
copy from docs/content.zh/docs/connectors/table/_index.md
copy to docs/content/docs/connectors/other-projects/_index.md
index a117e9fa887..acd631dd9f2 100644
--- a/docs/content.zh/docs/connectors/table/_index.md
+++ b/docs/content/docs/connectors/other-projects/_index.md
@@ -1,7 +1,8 @@
---
-title: SQL & Table API Connectors
+title: Maintained by Other Projects
bookCollapseSection: true
-weight: 3
+bookSortByTitle: true
+weight: 6
---
<!--
Licensed to the Apache Software Foundation (ASF) under one
@@ -20,4 +21,4 @@ software distributed under the License is distributed on an
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
--->
\ No newline at end of file
+-->
diff --git a/docs/content.zh/docs/connectors/table/_index.md
b/docs/content/docs/connectors/other-projects/doris.md
similarity index 51%
copy from docs/content.zh/docs/connectors/table/_index.md
copy to docs/content/docs/connectors/other-projects/doris.md
index a117e9fa887..38e5a4aec70 100644
--- a/docs/content.zh/docs/connectors/table/_index.md
+++ b/docs/content/docs/connectors/other-projects/doris.md
@@ -1,7 +1,7 @@
---
-title: SQL & Table API Connectors
-bookCollapseSection: true
-weight: 3
+title: Apache Doris
+weight: 10
+type: docs
---
<!--
Licensed to the Apache Software Foundation (ASF) under one
@@ -20,4 +20,20 @@ software distributed under the License is distributed on an
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
--->
\ No newline at end of file
+-->
+
+# Apache Doris
+
+{{< hint info >}}
+The Apache Doris community maintains this integration, not the Apache Flink
community. It may not
+support this Flink version yet, so check its supported Flink versions below.
+{{< /hint >}}
+
+[Apache Doris](https://doris.apache.org/) is a real-time analytical database.
Its Flink connector
+reads from and writes to Doris from SQL and the DataStream API, supports
lookup joins, and can
+synchronize whole databases into Doris using Flink CDC.
+
+- [Flink
integration](https://doris.apache.org/docs/ecosystem/flink-doris-connector)
+- [Supported Flink
versions](https://doris.apache.org/docs/ecosystem/flink-doris-connector#version-description)
+
+{{< top >}}
diff --git a/docs/content/docs/connectors/other-projects/fluss.md
b/docs/content/docs/connectors/other-projects/fluss.md
new file mode 100644
index 00000000000..946f2190f09
--- /dev/null
+++ b/docs/content/docs/connectors/other-projects/fluss.md
@@ -0,0 +1,40 @@
+---
+title: Apache Fluss
+weight: 10
+type: docs
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Apache Fluss
+
+{{< hint info >}}
+The Apache Fluss community maintains this integration, not the Apache Flink
community. It may not
+support this Flink version yet, so check its supported Flink versions below.
+{{< /hint >}}
+
+[Apache Fluss](https://fluss.apache.org/) is streaming storage for real-time
analytics. Its Flink
+integration provides a catalog, reads and writes Fluss tables in streaming and
batch mode, and
+supports lookup joins. Fluss tables can be used as sources for
+[delta joins]({{< ref "docs/dev/table/tuning" >}}#delta-joins).
+
+- [Flink
integration](https://fluss.apache.org/docs/engine-flink/getting-started/)
+- [Supported Flink
versions](https://fluss.apache.org/docs/engine-flink/getting-started/#supported-flink-versions)
+
+{{< top >}}
diff --git a/docs/content.zh/docs/connectors/table/_index.md
b/docs/content/docs/connectors/other-projects/hudi.md
similarity index 53%
copy from docs/content.zh/docs/connectors/table/_index.md
copy to docs/content/docs/connectors/other-projects/hudi.md
index a117e9fa887..65cade9adf4 100644
--- a/docs/content.zh/docs/connectors/table/_index.md
+++ b/docs/content/docs/connectors/other-projects/hudi.md
@@ -1,7 +1,7 @@
---
-title: SQL & Table API Connectors
-bookCollapseSection: true
-weight: 3
+title: Apache Hudi
+weight: 10
+type: docs
---
<!--
Licensed to the Apache Software Foundation (ASF) under one
@@ -20,4 +20,19 @@ software distributed under the License is distributed on an
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
--->
\ No newline at end of file
+-->
+
+# Apache Hudi
+
+{{< hint info >}}
+The Apache Hudi community maintains this integration, not the Apache Flink
community. It may not
+support this Flink version yet, so check its supported Flink versions below.
+{{< /hint >}}
+
+[Apache Hudi](https://hudi.apache.org/) is an open data lakehouse platform.
Its Flink integration provides a catalog and reads and writes Hudi tables in
streaming and
+batch mode from SQL and the DataStream API.
+
+- [Flink integration](https://hudi.apache.org/docs/flink-quick-start-guide/)
+- [Supported Flink
versions](https://hudi.apache.org/docs/flink-quick-start-guide/#flink-support-matrix)
+
+{{< top >}}
diff --git a/docs/content/docs/connectors/other-projects/iceberg.md
b/docs/content/docs/connectors/other-projects/iceberg.md
new file mode 100644
index 00000000000..7689f821b15
--- /dev/null
+++ b/docs/content/docs/connectors/other-projects/iceberg.md
@@ -0,0 +1,44 @@
+---
+title: Apache Iceberg
+weight: 10
+type: docs
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Apache Iceberg
+
+{{< hint info >}}
+The Apache Iceberg community maintains this integration, not the Apache Flink
community. It may not
+support this Flink version yet, so check its supported Flink versions below.
+{{< /hint >}}
+
+[Apache Iceberg](https://iceberg.apache.org/) is an open table format for
large analytic tables.
+Its Flink integration provides a catalog and reads and writes Iceberg tables
in streaming and batch
+mode from SQL, the Table API and the DataStream API.
+
+Iceberg tables are often managed by a catalog service that implements the
Iceberg REST catalog API,
+such as [Apache Polaris](https://polaris.apache.org/guides/flink/). Flink
connects to such a service
+through Iceberg's REST catalog.
+
+- [Flink integration](https://iceberg.apache.org/docs/latest/flink/)
+- [Supported Flink
versions](https://iceberg.apache.org/multi-engine-support/#apache-flink)
+- [REST catalog](https://iceberg.apache.org/docs/latest/flink/#rest-catalog)
+
+{{< top >}}
diff --git a/docs/content/docs/connectors/other-projects/overview.md
b/docs/content/docs/connectors/other-projects/overview.md
new file mode 100644
index 00000000000..ad604bbdd9d
--- /dev/null
+++ b/docs/content/docs/connectors/other-projects/overview.md
@@ -0,0 +1,48 @@
+---
+title: Overview
+weight: 1
+type: docs
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Integrations Maintained by Other Projects
+
+The projects listed here maintain their own Flink integration. Each
integration is developed,
+released and supported by that project's community, not by the Apache Flink
community. That
+project's documentation covers which artifacts to use and how to configure it.
Report issues and ask
+questions in that project's channels.
+
+A project is listed here when it is an Apache Software Foundation project and
has released a Flink
+integration for Flink 2.x.
+
+{{< hint info >}}
+These integrations follow their own release schedules and may not support this
Flink version yet.
+Check each project's supported Flink versions before you choose one.
+{{< /hint >}}
+
+| Project | Flink integration |
+|---------|-------------------|
+| [Apache Doris]({{< ref "docs/connectors/other-projects/doris" >}}) | Source,
sink, lookup joins and database synchronization through Flink CDC |
+| [Apache Fluss]({{< ref "docs/connectors/other-projects/fluss" >}}) |
Catalog, source, sink, lookup joins and delta joins |
+| [Apache Hudi]({{< ref "docs/connectors/other-projects/hudi" >}}) | Catalog,
source and sink |
+| [Apache Iceberg]({{< ref "docs/connectors/other-projects/iceberg" >}}) |
Catalog, source and sink; REST catalogs such as Apache Polaris |
+| [Apache Paimon]({{< ref "docs/connectors/other-projects/paimon" >}}) |
Catalog, source, sink and lookup joins |
+
+{{< top >}}
diff --git a/docs/content.zh/docs/connectors/table/_index.md
b/docs/content/docs/connectors/other-projects/paimon.md
similarity index 52%
copy from docs/content.zh/docs/connectors/table/_index.md
copy to docs/content/docs/connectors/other-projects/paimon.md
index a117e9fa887..cc14994b193 100644
--- a/docs/content.zh/docs/connectors/table/_index.md
+++ b/docs/content/docs/connectors/other-projects/paimon.md
@@ -1,7 +1,7 @@
---
-title: SQL & Table API Connectors
-bookCollapseSection: true
-weight: 3
+title: Apache Paimon
+weight: 10
+type: docs
---
<!--
Licensed to the Apache Software Foundation (ASF) under one
@@ -20,4 +20,20 @@ software distributed under the License is distributed on an
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
--->
\ No newline at end of file
+-->
+
+# Apache Paimon
+
+{{< hint info >}}
+The Apache Paimon community maintains this integration, not the Apache Flink
community. It may not
+support this Flink version yet, so check its supported Flink versions below.
+{{< /hint >}}
+
+[Apache Paimon](https://paimon.apache.org/) is a lake format for streaming and
batch processing.
+Its Flink integration provides a catalog, reads and writes Paimon tables in
streaming and batch
+mode, and supports lookup joins.
+
+- [Flink integration](https://paimon.apache.org/docs/master/flink/quick-start/)
+- [Supported Flink
versions](https://paimon.apache.org/docs/master/flink/installation/)
+
+{{< top >}}
diff --git a/docs/content/docs/connectors/table/_index.md
b/docs/content/docs/connectors/table/_index.md
index a117e9fa887..eb52eca6531 100644
--- a/docs/content/docs/connectors/table/_index.md
+++ b/docs/content/docs/connectors/table/_index.md
@@ -1,6 +1,7 @@
---
title: SQL & Table API Connectors
bookCollapseSection: true
+bookSortByTitle: true
weight: 3
---
<!--
diff --git a/docs/content/docs/connectors/table/formats/canal.md
b/docs/content/docs/connectors/table/formats/canal.md
index 6f253125e49..29f58282379 100644
--- a/docs/content/docs/connectors/table/formats/canal.md
+++ b/docs/content/docs/connectors/table/formats/canal.md
@@ -32,6 +32,9 @@ under the License.
[Canal](https://github.com/alibaba/canal/wiki) is a CDC (Changelog Data
Capture) tool that can stream changes in real-time from MySQL into other
systems. Canal provides a unified format schema for changelog and supports to
serialize messages using JSON and
[protobuf](https://developers.google.com/protocol-buffers) (protobuf is the
default format for Canal).
+This format reads change events that Canal has already written to a system
such as Kafka. To
+read changes directly from a database instead, see [Flink
CDC](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/).
+
Flink supports to interpret Canal JSON messages as INSERT/UPDATE/DELETE
messages into Flink SQL system. This is useful in many cases to leverage this
feature, such as
- synchronizing incremental data from databases to other systems
- auditing logs
diff --git a/docs/content/docs/connectors/table/formats/debezium.md
b/docs/content/docs/connectors/table/formats/debezium.md
index 9e2f60f23a6..b89530b133e 100644
--- a/docs/content/docs/connectors/table/formats/debezium.md
+++ b/docs/content/docs/connectors/table/formats/debezium.md
@@ -32,6 +32,9 @@ under the License.
[Debezium](https://debezium.io/) is a CDC (Changelog Data Capture) tool that
can stream changes in real-time from MySQL, PostgreSQL, Oracle, Microsoft SQL
Server and many other databases into Kafka. Debezium provides a unified format
schema for changelog and supports to serialize messages using JSON and [Apache
Avro](https://avro.apache.org/).
+This format reads change events that Debezium has already written to a system
such as Kafka. To
+read changes directly from a database instead, see [Flink
CDC](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/).
+
Flink supports to interpret Debezium JSON and Avro messages as
INSERT/UPDATE/DELETE messages into Flink SQL system. This is useful in many
cases to leverage this feature, such as
- synchronizing incremental data from databases to other systems
- auditing logs
diff --git a/docs/content/docs/connectors/table/formats/maxwell.md
b/docs/content/docs/connectors/table/formats/maxwell.md
index 47c87442c73..f79b2300de8 100644
--- a/docs/content/docs/connectors/table/formats/maxwell.md
+++ b/docs/content/docs/connectors/table/formats/maxwell.md
@@ -32,6 +32,9 @@ under the License.
[Maxwell](https://maxwells-daemon.io/) is a CDC (Changelog Data Capture) tool
that can stream changes in real-time from MySQL into Kafka, Kinesis and other
streaming connectors. Maxwell provides a unified format schema for changelog
and supports to serialize messages using JSON.
+This format reads change events that Maxwell has already written to a system
such as Kafka. To
+read changes directly from a database instead, see [Flink
CDC](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/).
+
Flink supports to interpret Maxwell JSON messages as INSERT/UPDATE/DELETE
messages into Flink SQL system. This is useful in many cases to leverage this
feature, such as
- synchronizing incremental data from databases to other systems
- auditing logs
diff --git a/docs/content/docs/connectors/table/formats/ogg.md
b/docs/content/docs/connectors/table/formats/ogg.md
index 3b53916e36d..3e5a3f091ef 100644
--- a/docs/content/docs/connectors/table/formats/ogg.md
+++ b/docs/content/docs/connectors/table/formats/ogg.md
@@ -35,6 +35,9 @@ enabling real-time analysis. Customers can design, execute,
and monitor their da
stream data processing solutions without the need to allocate or manage
compute environments. Ogg
provides a format schema for changelog and supports to serialize messages
using JSON.
+This format reads change events that Oracle GoldenGate has already written to
a system such as Kafka. To
+read changes directly from a database instead, see [Flink
CDC](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/).
+
Flink supports to interpret Ogg JSON as INSERT/UPDATE/DELETE messages into
Flink SQL system. This is
useful in many cases to leverage this feature, such as
diff --git a/docs/content/docs/connectors/table/overview.md
b/docs/content/docs/connectors/table/overview.md
index 4cf924330e1..1bb2ff52168 100644
--- a/docs/content/docs/connectors/table/overview.md
+++ b/docs/content/docs/connectors/table/overview.md
@@ -42,85 +42,142 @@ Flink natively support various connectors. The following
tables list all availab
<thead>
<tr>
<th class="text-left">Name</th>
- <th class="text-center">Version</th>
<th class="text-center">Source</th>
<th class="text-center">Sink</th>
</tr>
</thead>
<tbody>
<tr>
- <td><a href="{{< ref "docs/connectors/table/filesystem"
>}}">Filesystem</a></td>
- <td></td>
- <td>Bounded and Unbounded Scan</td>
+ <td><a href="{{< ref "docs/connectors/table/blackhole"
>}}">BlackHole</a></td>
+ <td>Not supported</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/elasticsearch"
>}}">Elasticsearch</a></td>
- <td>6.x & 7.x</td>
+ <td><a href="{{< ref "docs/connectors/table/datagen"
>}}">DataGen</a></td>
+ <td>Bounded and Unbounded Scan</td>
+ <td>Not supported</td>
+ </tr>
+ <tr>
+ <td><a href="{{< ref "docs/connectors/table/dynamic-kafka" >}}">Dynamic
Kafka</a></td>
+ <td>Unbounded Scan</td>
+ <td>Not supported</td>
+ </tr>
+ <tr>
+ <td><a href="{{< ref "docs/connectors/table/dynamodb"
>}}">DynamoDB</a></td>
<td>Not supported</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/opensearch"
>}}">Opensearch</a></td>
- <td>1.x & 2.x</td>
+ <td><a href="{{< ref "docs/connectors/table/elasticsearch"
>}}">Elasticsearch</a></td>
<td>Not supported</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/kafka" >}}">Apache
Kafka</a></td>
- <td>0.10+</td>
- <td>Unbounded Scan</td>
+ <td><a href="{{< ref "docs/connectors/table/filesystem"
>}}">FileSystem</a></td>
+ <td>Bounded and Unbounded Scan</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/dynamodb" >}}">Amazon
DynamoDB</a></td>
- <td></td>
+ <td><a href="{{< ref "docs/connectors/table/firehose"
>}}">Firehose</a></td>
<td>Not supported</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/kinesis" >}}">Amazon Kinesis
Data Streams</a></td>
- <td></td>
- <td>Unbounded Scan</td>
- <td>Streaming Sink</td>
+ <td><a href="{{< ref "docs/connectors/table/hbase" >}}">HBase</a></td>
+ <td>Bounded Scan, Lookup</td>
+ <td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/firehose" >}}">Amazon
Kinesis Data Firehose</a></td>
- <td></td>
- <td>Not supported</td>
- <td>Streaming Sink</td>
+ <td><a href="{{< ref "docs/connectors/table/hive/overview"
>}}">Hive</a></td>
+ <td>Unbounded Scan, Bounded Scan, Lookup</td>
+ <td>Streaming Sink, Batch Sink</td>
+ </tr>
+ <tr>
+ <td><a href="{{< ref "docs/connectors/table/http" >}}">HTTP</a></td>
+ <td>Lookup</td>
+ <td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
<td><a href="{{< ref "docs/connectors/table/jdbc" >}}">JDBC</a></td>
- <td></td>
<td>Bounded Scan, Lookup</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/hbase" >}}">Apache
HBase</a></td>
- <td>1.4.x & 2.2.x</td>
- <td>Bounded Scan, Lookup</td>
+ <td><a href="{{< ref "docs/connectors/table/kafka" >}}">Kafka</a></td>
+ <td>Bounded and Unbounded Scan</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
- <td><a href="{{< ref "docs/connectors/table/hive/overview" >}}">Apache
Hive</a></td>
- <td><a href="{{< ref "docs/connectors/table/hive/overview"
>}}#supported-hive-versions">Supported Versions</a></td>
- <td>Unbounded Scan, Bounded Scan, Lookup</td>
+ <td><a href="{{< ref "docs/connectors/table/kinesis"
>}}">Kinesis</a></td>
+ <td>Unbounded Scan</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
<tr>
<td><a href="{{< ref "docs/connectors/table/mongodb"
>}}">MongoDB</a></td>
- <td>3.6.x & 4.x & 5.x & 6.x & 7.0.x </td>
<td>Bounded Scan, Lookup</td>
<td>Streaming Sink, Batch Sink</td>
</tr>
+ <tr>
+ <td><a href="{{< ref "docs/connectors/table/opensearch"
>}}">Opensearch</a></td>
+ <td>Not supported</td>
+ <td>Streaming Sink, Batch Sink</td>
+ </tr>
+ <tr>
+ <td><a href="{{< ref "docs/connectors/table/print" >}}">Print</a></td>
+ <td>Not supported</td>
+ <td>Streaming Sink, Batch Sink</td>
+ </tr>
+ <tr>
+ <td><a href="{{< ref "docs/connectors/table/upsert-kafka" >}}">Upsert
Kafka</a></td>
+ <td>Unbounded Scan</td>
+ <td>Streaming Sink</td>
+ </tr>
</tbody>
</table>
+The following integrations are maintained by other projects, not by the Apache
Flink community. See
+[Integrations Maintained by Other Projects]({{< ref
"docs/connectors/other-projects/overview" >}}).
+
+ * [Apache Doris]({{< ref "docs/connectors/other-projects/doris" >}})
+ * [Apache Fluss]({{< ref "docs/connectors/other-projects/fluss" >}})
+ * [Apache Hudi]({{< ref "docs/connectors/other-projects/hudi" >}})
+ * [Apache Iceberg]({{< ref "docs/connectors/other-projects/iceberg" >}})
+ * [Apache Paimon]({{< ref "docs/connectors/other-projects/paimon" >}})
+
{{< top >}}
Please refer to the [configuration]({{< ref "docs/dev/configuration/connector"
>}}) section on how to add connectors as a dependency.
+Flink CDC
+------------
+
+[Flink CDC](https://nightlies.apache.org/flink/flink-cdc-docs-stable/) is an
Apache Flink sub-project with its own releases. Its source connectors read
+changes directly from databases such as MySQL, PostgreSQL, Oracle, SQL Server,
MongoDB and Db2, and
+it can run complete data integration pipelines defined in YAML. See the
+[Flink CDC
sources](https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/connectors/flink-sources/overview/)
for the supported databases and Flink versions.
+
+{{< top >}}
+
+Fault Tolerance Guarantees
+------------
+
+Flink recovers from failures by restarting from the last [checkpoint]({{< ref
"docs/dev/datastream/fault-tolerance/checkpointing" >}}). Checkpointing is
+disabled by default. For exactly-once results, the source must be able to
rewind to the position
+stored in the checkpoint, and the sink must take part in checkpointing, either
by committing its
+writes transactionally or by writing idempotently. See
+[Stateful Stream Processing]({{< ref
"docs/concepts/stateful-stream-processing" >}}#checkpointing) for how
checkpoints work.
+
+Connectors that support more than one guarantee expose it as the
`sink.delivery-guarantee` option,
+for example [Kafka]({{< ref "docs/connectors/table/kafka" >}}). Exactly-once
on Kafka uses Kafka
+transactions and also requires `sink.transactional-id-prefix`. Sinks that
write by primary key, such
+as [JDBC]({{< ref "docs/connectors/table/jdbc" >}}) with a primary key
defined, overwrite the same
+rows when records are replayed after a failure; while the replay runs, readers
can briefly see older
+values for those rows.
+
+Each connector's page documents the guarantees it provides.
+
+{{< top >}}
+
How to use connectors
--------
diff --git a/docs/content/docs/dev/table/tuning.md
b/docs/content/docs/dev/table/tuning.md
index e0954e58a8a..026c9ecb382 100644
--- a/docs/content/docs/dev/table/tuning.md
+++ b/docs/content/docs/dev/table/tuning.md
@@ -395,7 +395,7 @@ To mitigate these challenges, Flink introduces the delta
join operator. The key
This feature is enabled by default. A regular join will be automatically
optimized into a delta join when all the following conditions are met:
1. The sql pattern satisfies the optimization criteria. For details, please
refer to [Supported Features and Limitations]({{< ref "docs/dev/table/tuning"
>}}#supported-features-and-limitations)
-2. The external storage system of the source table provides index information
for fast querying for delta joins. Currently, [Apache Fluss
(Incubating)](https://fluss.apache.org/blog/fluss-open-source/) has provided
index information at the table level for Flink, allowing such tables to be used
as source tables for delta joins. Please refer to the [Fluss
documentation](https://fluss.apache.org/docs/engine-flink/delta-joins/#flink-version-support)
for more details.
+2. The external storage system of the source table provides index information
for fast querying for delta joins. Currently, [Apache
Fluss](https://fluss.apache.org/blog/fluss-open-source/) has provided index
information at the table level for Flink, allowing such tables to be used as
source tables for delta joins. Please refer to the [Fluss
documentation](https://fluss.apache.org/docs/engine-flink/delta-joins/#flink-version-support)
for more details.
### Working Principle
@@ -445,5 +445,5 @@ However, Delta Joins also have several **limitations**.
Jobs containing any of t
6. **Non-deterministic functions** are not allowed in projections or filters
between the source and the delta join.
{{< hint info >}}
-[1] Flink supports defining a table-level **immutable columns** constraint to
enrich the upsert key, enabling delta join optimization in more scenarios. The
immutable columns constraint declares that certain columns, once set for a
given primary key, cannot be modified. The immutable columns are combined with
the primary key to form a new upsert key that is propagated to downstream
operators. This information is provided by the external storage system. [Apache
Fluss (Incubating)](https:/ [...]
+[1] Flink supports defining a table-level **immutable columns** constraint to
enrich the upsert key, enabling delta join optimization in more scenarios. The
immutable columns constraint declares that certain columns, once set for a
given primary key, cannot be modified. The immutable columns are combined with
the primary key to form a new upsert key that is propagated to downstream
operators. This information is provided by the external storage system. [Apache
Fluss](https://fluss.apache [...]
{{< /hint >}}
\ No newline at end of file
diff --git a/docs/content/docs/learn-flink/fault_tolerance.md
b/docs/content/docs/learn-flink/fault_tolerance.md
index c771a62493f..68c4689c6b0 100644
--- a/docs/content/docs/learn-flink/fault_tolerance.md
+++ b/docs/content/docs/learn-flink/fault_tolerance.md
@@ -216,7 +216,7 @@ The [Flink Operations Playground]({{< ref
"docs/getting-started/flink-operations
- [Stateful Stream Processing]({{< ref
"docs/concepts/stateful-stream-processing" >}})
- [State Backends]({{< ref "docs/ops/state/state_backends" >}})
-- [Fault Tolerance Guarantees of Data Sources and Sinks]({{< ref
"docs/connectors/datastream/guarantees" >}})
+- [Fault Tolerance Guarantees of Data Sources and Sinks]({{< ref
"docs/connectors/datastream/overview" >}}#fault-tolerance-guarantees)
- [Enabling and Configuring Checkpointing]({{< ref
"docs/dev/datastream/fault-tolerance/checkpointing" >}})
- [Checkpoints]({{< ref "docs/ops/state/checkpoints" >}})
- [Savepoints]({{< ref "docs/ops/state/savepoints" >}})
diff --git a/docs/content/docs/sql/materialized-table/deployment.md
b/docs/content/docs/sql/materialized-table/deployment.md
index 04a0d326d55..6ec5e5edef4 100644
--- a/docs/content/docs/sql/materialized-table/deployment.md
+++ b/docs/content/docs/sql/materialized-table/deployment.md
@@ -82,7 +82,11 @@ Start the SQL Gateway using:
```
<span class="label label-danger">Note</span>
-The Catalog must support creating materialized tables, which is currently only
supported by [Paimon
Catalog](https://paimon.apache.org/docs/master/concepts/table-types/#materialized-table).
+The Catalog must support creating materialized tables.
+[Apache Paimon]({{< ref "docs/connectors/other-projects/paimon" >}}) supports
them, and so does
+[Apache
Fluss](https://fluss.apache.org/docs/engine-flink/ddl/#materialized-table) for
the continuous
+refresh mode only. The test-filesystem catalog used in the
+[Quickstart]({{< ref "docs/sql/materialized-table/quickstart" >}}) is meant
for testing only.
# Operation Guide
diff --git a/docs/layouts/partials/docs/menu-filetree.html
b/docs/layouts/partials/docs/menu-filetree.html
index b583347dd03..5e6c26c7c7a 100644
--- a/docs/layouts/partials/docs/menu-filetree.html
+++ b/docs/layouts/partials/docs/menu-filetree.html
@@ -29,8 +29,18 @@ under the License.
{{ end }}
{{ define "book-section-children" }}{{/* (dict "Section" .Section
"CurrentPage" .CurrentPage) */}}
+ {{ $pages := where .Section.Pages "Params.bookhidden" "ne" true }}
+ {{/* Connector pages come from separate repositories that each pick their
own weight. Sort them by
+ link title so no coordination is needed; weights 1 and 2 (overview,
formats) and from 100
+ (downloads) stay pinned. Translated pages set an English linkTitle to
keep the same order. */}}
+ {{ if .Section.Params.bookSortByTitle }}
+ {{ $top := where (where $pages "Weight" "ge" 1) "Weight" "le" 2 }}
+ {{ $middle := (where $pages "Weight" "lt" 1) | append (where (where $pages
"Weight" "gt" 2) "Weight" "lt" 100) }}
+ {{ $bottom := where $pages "Weight" "ge" 100 }}
+ {{ $pages = $top.ByWeight | append $middle.ByLinkTitle | append
$bottom.ByWeight }}
+ {{ end }}
<ul>
- {{ range (where .Section.Pages "Params.bookhidden" "ne" true) }}
+ {{ range $pages }}
{{ if .IsSection }}
<li {{- if .Params.BookFlatSection }} class="book-section-flat" {{ end
-}}>
{{ template "book-page-link" (dict "Page" . "CurrentPage"
$.CurrentPage) }}