You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fluss.apache.org by gi...@apache.org on 2026/02/27 15:37:49 UTC
(fluss-website) branch asf-site updated: Deploy website - based on 1178d39a61a55c1b9a7ce19a757bcc29fbd32f7c
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/fluss-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new ce417df43 Deploy website - based on 1178d39a61a55c1b9a7ce19a757bcc29fbd32f7c
ce417df43 is described below
commit ce417df43cd01f3faf2b3f3fbeb375140fc2f1c7
Author: gh-actions <ac...@github.com>
AuthorDate: Fri Feb 27 15:37:43 2026 +0000
Deploy website - based on 1178d39a61a55c1b9a7ce19a757bcc29fbd32f7c
---
404.html | 6 +-
.../{styles.a7571857.css => styles.22067dd8.css} | 2 +-
.../{67628f41.0457032e.js => 67628f41.dee718a9.js} | 2 +-
assets/js/{main.238e594d.js => main.4f96f7b5.js} | 4 +-
...js.LICENSE.txt => main.4f96f7b5.js.LICENSE.txt} | 0
...e~main.932bddce.js => runtime~main.20913baf.js} | 2 +-
.../index.html | 18 +-
blog/archive/index.html | 6 +-
blog/atom.xml | 190 ++++++++++-----------
blog/authors/index.html | 6 +-
blog/fluss-intro/index.html | 6 +-
blog/fluss-java-client/index.html | 40 ++---
blog/fluss-joins-asf/index.html | 6 +-
blog/fluss-open-source/index.html | 6 +-
blog/fluss_fraud_detection/index.html | 42 ++---
blog/hands-on-fluss-lakehouse/index.html | 42 ++---
blog/index.html | 6 +-
blog/page/2/index.html | 6 +-
blog/partial-updates/index.html | 38 ++---
blog/pk-key-tables-log-cache-streaming/index.html | 6 +-
blog/releases/0.6/index.html | 12 +-
blog/releases/0.7/index.html | 12 +-
blog/releases/0.8/index.html | 16 +-
blog/rss.xml | 190 ++++++++++-----------
blog/tags/apache-fluss/index.html | 6 +-
blog/tags/apache-iceberg/index.html | 6 +-
blog/tags/index.html | 6 +-
blog/tags/real-time-analytics/index.html | 6 +-
blog/tags/releases/index.html | 6 +-
blog/tags/streaming-lakehouse/index.html | 6 +-
blog/taobao-practice/index.html | 14 +-
blog/tiering-service/index.html | 12 +-
blog/unified-streaming-lakehouse/index.html | 10 +-
blog/unveil-fluss-logo/index.html | 6 +-
blog/why-fluss/index.html | 6 +-
community/dev/building/index.html | 16 +-
community/dev/ide-setup/index.html | 20 +--
community/fluss-logos/index.html | 6 +-
community/fluss-team/index.html | 6 +-
.../bug-reports-feature-requests/index.html | 6 +-
.../how-to-contribute/contribute-code/index.html | 6 +-
.../how-to-contribute/contribute-docs/index.html | 34 ++--
.../review-pull-requests/index.html | 6 +-
.../creating-a-fluss-release/index.html | 78 ++++-----
.../creating-a-fluss-shaded-release/index.html | 50 +++---
.../release-manager-preparation/index.html | 28 +--
.../verifying-a-fluss-release/index.html | 20 +--
.../verifying-a-fluss-shaded-release/index.html | 20 +--
community/welcome/index.html | 6 +-
docs/0.5/concepts/architecture/index.html | 6 +-
docs/0.5/dev/building/index.html | 12 +-
docs/0.5/dev/ide-setup/index.html | 10 +-
docs/0.5/engine-flink/ddl/index.html | 24 +--
docs/0.5/engine-flink/getting-started/index.html | 32 ++--
docs/0.5/engine-flink/lookups/index.html | 10 +-
docs/0.5/engine-flink/reads/index.html | 26 +--
docs/0.5/engine-flink/writes/index.html | 20 +--
docs/0.5/index.html | 6 +-
.../deploying-distributed-cluster/index.html | 20 +--
.../deploying-local-cluster/index.html | 12 +-
.../deploying-with-docker/index.html | 46 ++---
docs/0.5/install-deploy/overview/index.html | 6 +-
docs/0.5/maintenance/configuration/index.html | 14 +-
docs/0.5/maintenance/filesystems/hdfs/index.html | 8 +-
docs/0.5/maintenance/filesystems/oss/index.html | 8 +-
.../maintenance/filesystems/overview/index.html | 8 +-
docs/0.5/maintenance/filesystems/s3/index.html | 8 +-
docs/0.5/maintenance/logging/index.html | 6 +-
docs/0.5/maintenance/metric-reporters/index.html | 12 +-
docs/0.5/maintenance/monitor-metrics/index.html | 6 +-
.../tiered-storage/lakehouse-storage/index.html | 12 +-
.../maintenance/tiered-storage/overview/index.html | 6 +-
.../tiered-storage/remote-storage/index.html | 6 +-
docs/0.5/quickstart/flink/index.html | 88 +++++-----
.../integrate-data-lakes/paimon/index.html | 14 +-
docs/0.5/streaming-lakehouse/overview/index.html | 6 +-
.../data-distribution/bucketing/index.html | 6 +-
.../data-distribution/partitioning/index.html | 8 +-
.../table-design/data-distribution/ttl/index.html | 6 +-
docs/0.5/table-design/data-types/index.html | 6 +-
docs/0.5/table-design/overview/index.html | 6 +-
.../table-design/table-types/log-table/index.html | 8 +-
.../table-design/table-types/pk-table/index.html | 14 +-
docs/0.6/concepts/architecture/index.html | 6 +-
docs/0.6/engine-flink/ddl/index.html | 42 ++---
docs/0.6/engine-flink/getting-started/index.html | 40 ++---
docs/0.6/engine-flink/lookups/index.html | 46 ++---
docs/0.6/engine-flink/options/index.html | 12 +-
docs/0.6/engine-flink/reads/index.html | 50 +++---
docs/0.6/engine-flink/writes/index.html | 30 ++--
docs/0.6/index.html | 6 +-
.../deploying-distributed-cluster/index.html | 20 +--
.../deploying-local-cluster/index.html | 12 +-
.../deploying-with-docker/index.html | 50 +++---
docs/0.6/install-deploy/overview/index.html | 6 +-
docs/0.6/maintenance/configuration/index.html | 8 +-
docs/0.6/maintenance/filesystems/hdfs/index.html | 8 +-
docs/0.6/maintenance/filesystems/oss/index.html | 8 +-
.../maintenance/filesystems/overview/index.html | 8 +-
docs/0.6/maintenance/filesystems/s3/index.html | 8 +-
.../maintenance/observability/logging/index.html | 6 +-
.../observability/metric-reporters/index.html | 12 +-
.../observability/monitor-metrics/index.html | 6 +-
.../observability/quickstart/index.html | 16 +-
.../tiered-storage/lakehouse-storage/index.html | 12 +-
.../maintenance/tiered-storage/overview/index.html | 6 +-
.../tiered-storage/remote-storage/index.html | 6 +-
docs/0.6/quickstart/flink/index.html | 88 +++++-----
.../integrate-data-lakes/paimon/index.html | 18 +-
docs/0.6/streaming-lakehouse/overview/index.html | 6 +-
.../data-distribution/bucketing/index.html | 6 +-
.../data-distribution/partitioning/index.html | 8 +-
.../table-design/data-distribution/ttl/index.html | 6 +-
docs/0.6/table-design/data-types/index.html | 6 +-
docs/0.6/table-design/overview/index.html | 6 +-
.../table-design/table-types/log-table/index.html | 12 +-
.../table-design/table-types/pk-table/index.html | 14 +-
.../pk-table/merge-engines/first-row/index.html | 8 +-
.../table-types/pk-table/merge-engines/index.html | 6 +-
.../pk-table/merge-engines/versioned/index.html | 10 +-
docs/0.7/apis/java-client/index.html | 34 ++--
docs/0.7/concepts/architecture/index.html | 6 +-
docs/0.7/engine-flink/datastream/index.html | 32 ++--
docs/0.7/engine-flink/ddl/index.html | 46 ++---
docs/0.7/engine-flink/getting-started/index.html | 40 ++---
docs/0.7/engine-flink/lookups/index.html | 46 ++---
docs/0.7/engine-flink/options/index.html | 12 +-
docs/0.7/engine-flink/reads/index.html | 64 +++----
docs/0.7/engine-flink/writes/index.html | 30 ++--
docs/0.7/index.html | 6 +-
.../deploying-distributed-cluster/index.html | 22 +--
.../deploying-local-cluster/index.html | 12 +-
.../deploying-with-docker/index.html | 38 ++---
docs/0.7/install-deploy/overview/index.html | 6 +-
docs/0.7/maintenance/configuration/index.html | 8 +-
docs/0.7/maintenance/filesystems/hdfs/index.html | 10 +-
docs/0.7/maintenance/filesystems/oss/index.html | 12 +-
.../maintenance/filesystems/overview/index.html | 8 +-
docs/0.7/maintenance/filesystems/s3/index.html | 8 +-
.../maintenance/observability/logging/index.html | 6 +-
.../observability/metric-reporters/index.html | 12 +-
.../observability/monitor-metrics/index.html | 6 +-
.../observability/quickstart/index.html | 16 +-
docs/0.7/maintenance/operations/racks/index.html | 8 +-
.../maintenance/operations/upgrading/index.html | 16 +-
.../tiered-storage/lakehouse-storage/index.html | 14 +-
.../maintenance/tiered-storage/overview/index.html | 6 +-
.../tiered-storage/remote-storage/index.html | 6 +-
docs/0.7/quickstart/flink/index.html | 88 +++++-----
docs/0.7/quickstart/security/index.html | 86 +++++-----
docs/0.7/security/authentication/index.html | 10 +-
docs/0.7/security/authorization/index.html | 16 +-
docs/0.7/security/overview/index.html | 10 +-
.../integrate-data-lakes/paimon/index.html | 22 +--
docs/0.7/streaming-lakehouse/overview/index.html | 6 +-
.../data-distribution/bucketing/index.html | 6 +-
.../data-distribution/partitioning/index.html | 8 +-
.../table-design/data-distribution/ttl/index.html | 6 +-
docs/0.7/table-design/data-types/index.html | 6 +-
docs/0.7/table-design/overview/index.html | 6 +-
.../table-design/table-types/log-table/index.html | 12 +-
.../table-design/table-types/pk-table/index.html | 16 +-
.../pk-table/merge-engines/default/index.html | 8 +-
.../pk-table/merge-engines/first-row/index.html | 8 +-
.../table-types/pk-table/merge-engines/index.html | 6 +-
.../pk-table/merge-engines/versioned/index.html | 10 +-
docs/0.9/apis/client-support-matrix/index.html | 6 +-
docs/0.9/apis/java-client/index.html | 50 +++---
docs/0.9/concepts/architecture/index.html | 6 +-
docs/0.9/engine-flink/datastream/index.html | 32 ++--
docs/0.9/engine-flink/ddl/index.html | 64 +++----
docs/0.9/engine-flink/delta-joins/index.html | 22 +--
docs/0.9/engine-flink/getting-started/index.html | 42 ++---
docs/0.9/engine-flink/lookups/index.html | 46 ++---
docs/0.9/engine-flink/options/index.html | 12 +-
docs/0.9/engine-flink/procedures/index.html | 56 +++---
docs/0.9/engine-flink/reads/index.html | 62 +++----
docs/0.9/engine-flink/writes/index.html | 30 ++--
docs/0.9/engine-spark/ddl/index.html | 50 +++---
docs/0.9/engine-spark/getting-started/index.html | 30 ++--
docs/0.9/engine-spark/options/index.html | 6 +-
docs/0.9/engine-spark/procedures/index.html | 20 +--
docs/0.9/engine-spark/reads/index.html | 52 +++---
.../engine-spark/structured-streaming/index.html | 18 +-
docs/0.9/engine-spark/writes/index.html | 20 +--
docs/0.9/index.html | 6 +-
.../deploying-distributed-cluster/index.html | 22 +--
.../deploying-local-cluster/index.html | 12 +-
.../deploying-with-docker/index.html | 38 ++---
.../install-deploy/deploying-with-helm/index.html | 50 +++---
docs/0.9/install-deploy/overview/index.html | 6 +-
docs/0.9/maintenance/configuration/index.html | 8 +-
docs/0.9/maintenance/filesystems/azure/index.html | 10 +-
docs/0.9/maintenance/filesystems/hdfs/index.html | 12 +-
docs/0.9/maintenance/filesystems/obs/index.html | 14 +-
docs/0.9/maintenance/filesystems/oss/index.html | 12 +-
.../maintenance/filesystems/overview/index.html | 8 +-
docs/0.9/maintenance/filesystems/s3/index.html | 8 +-
.../maintenance/observability/logging/index.html | 6 +-
.../observability/metric-reporters/index.html | 14 +-
.../observability/monitor-metrics/index.html | 6 +-
.../observability/quickstart/index.html | 16 +-
.../operations/graceful-shutdown/index.html | 12 +-
docs/0.9/maintenance/operations/racks/index.html | 8 +-
.../maintenance/operations/rebalance/index.html | 24 +--
.../operations/updating-configs/index.html | 10 +-
.../operations/upgrade-notes-0.8/index.html | 14 +-
.../operations/upgrade-notes-0.9/index.html | 6 +-
.../operations/upgrade-notes-archive/index.html | 6 +-
.../maintenance/operations/upgrading/index.html | 16 +-
.../tiered-storage/lakehouse-storage/index.html | 14 +-
.../maintenance/tiered-storage/overview/index.html | 6 +-
.../tiered-storage/remote-storage/index.html | 6 +-
docs/0.9/quickstart/flink/index.html | 76 ++++-----
docs/0.9/quickstart/lakehouse/index.html | 48 +++---
docs/0.9/quickstart/security/index.html | 88 +++++-----
docs/0.9/security/authentication/index.html | 10 +-
docs/0.9/security/authorization/index.html | 16 +-
docs/0.9/security/overview/index.html | 10 +-
.../integrate-data-lakes/iceberg/index.html | 62 +++----
.../integrate-data-lakes/lance/index.html | 24 +--
.../integrate-data-lakes/paimon/index.html | 26 +--
docs/0.9/streaming-lakehouse/overview/index.html | 6 +-
.../data-distribution/bucketing/index.html | 6 +-
.../data-distribution/partitioning/index.html | 8 +-
.../table-design/data-distribution/ttl/index.html | 6 +-
docs/0.9/table-design/data-formats/index.html | 10 +-
docs/0.9/table-design/data-types/index.html | 6 +-
.../merge-engines/aggregation/index.html | 46 ++---
.../table-design/merge-engines/default/index.html | 8 +-
.../merge-engines/first-row/index.html | 8 +-
docs/0.9/table-design/merge-engines/index.html | 6 +-
.../merge-engines/versioned/index.html | 10 +-
docs/0.9/table-design/overview/index.html | 6 +-
.../table-design/table-types/log-table/index.html | 12 +-
.../table-design/table-types/pk-table/index.html | 24 +--
docs/0.9/table-design/virtual-tables/index.html | 24 +--
docs/apis/java-client/index.html | 34 ++--
docs/concepts/architecture/index.html | 6 +-
docs/engine-flink/datastream/index.html | 32 ++--
docs/engine-flink/ddl/index.html | 62 +++----
docs/engine-flink/delta-joins/index.html | 22 +--
docs/engine-flink/getting-started/index.html | 40 ++---
docs/engine-flink/lookups/index.html | 46 ++---
docs/engine-flink/options/index.html | 12 +-
docs/engine-flink/reads/index.html | 64 +++----
docs/engine-flink/writes/index.html | 30 ++--
docs/index.html | 6 +-
.../deploying-distributed-cluster/index.html | 22 +--
.../deploying-local-cluster/index.html | 12 +-
.../deploying-with-docker/index.html | 38 ++---
docs/install-deploy/deploying-with-helm/index.html | 48 +++---
docs/install-deploy/overview/index.html | 6 +-
docs/maintenance/configuration/index.html | 8 +-
docs/maintenance/filesystems/hdfs/index.html | 12 +-
docs/maintenance/filesystems/obs/index.html | 14 +-
docs/maintenance/filesystems/oss/index.html | 12 +-
docs/maintenance/filesystems/overview/index.html | 8 +-
docs/maintenance/filesystems/s3/index.html | 8 +-
docs/maintenance/observability/logging/index.html | 6 +-
.../observability/metric-reporters/index.html | 12 +-
.../observability/monitor-metrics/index.html | 6 +-
.../observability/quickstart/index.html | 16 +-
.../operations/graceful-shutdown/index.html | 12 +-
docs/maintenance/operations/racks/index.html | 8 +-
.../operations/updating-configs/index.html | 10 +-
.../operations/upgrade-notes-0.8/index.html | 14 +-
.../operations/upgrade-notes-0.9/index.html | 6 +-
docs/maintenance/operations/upgrading/index.html | 16 +-
.../tiered-storage/lakehouse-storage/index.html | 14 +-
.../maintenance/tiered-storage/overview/index.html | 6 +-
.../tiered-storage/remote-storage/index.html | 6 +-
docs/next/apis/client-support-matrix/index.html | 6 +-
docs/next/apis/java-client/index.html | 50 +++---
docs/next/concepts/architecture/index.html | 6 +-
docs/next/engine-flink/datastream/index.html | 32 ++--
docs/next/engine-flink/ddl/index.html | 64 +++----
docs/next/engine-flink/delta-joins/index.html | 22 +--
docs/next/engine-flink/getting-started/index.html | 42 ++---
docs/next/engine-flink/lookups/index.html | 46 ++---
docs/next/engine-flink/options/index.html | 12 +-
docs/next/engine-flink/procedures/index.html | 56 +++---
docs/next/engine-flink/reads/index.html | 62 +++----
docs/next/engine-flink/writes/index.html | 30 ++--
docs/next/engine-spark/ddl/index.html | 50 +++---
docs/next/engine-spark/getting-started/index.html | 30 ++--
docs/next/engine-spark/options/index.html | 6 +-
docs/next/engine-spark/procedures/index.html | 20 +--
docs/next/engine-spark/reads/index.html | 52 +++---
.../engine-spark/structured-streaming/index.html | 18 +-
docs/next/engine-spark/writes/index.html | 22 +--
docs/next/index.html | 6 +-
.../deploying-distributed-cluster/index.html | 22 +--
.../deploying-local-cluster/index.html | 12 +-
.../deploying-with-docker/index.html | 38 ++---
.../install-deploy/deploying-with-helm/index.html | 50 +++---
docs/next/install-deploy/overview/index.html | 6 +-
docs/next/maintenance/configuration/index.html | 8 +-
docs/next/maintenance/filesystems/azure/index.html | 10 +-
docs/next/maintenance/filesystems/hdfs/index.html | 12 +-
docs/next/maintenance/filesystems/obs/index.html | 14 +-
docs/next/maintenance/filesystems/oss/index.html | 12 +-
.../maintenance/filesystems/overview/index.html | 8 +-
docs/next/maintenance/filesystems/s3/index.html | 8 +-
.../maintenance/observability/logging/index.html | 6 +-
.../observability/metric-reporters/index.html | 14 +-
.../observability/monitor-metrics/index.html | 6 +-
.../observability/quickstart/index.html | 16 +-
.../operations/graceful-shutdown/index.html | 12 +-
docs/next/maintenance/operations/racks/index.html | 8 +-
.../maintenance/operations/rebalance/index.html | 24 +--
.../operations/updating-configs/index.html | 10 +-
.../operations/upgrade-notes-0.10/index.html | 6 +-
.../operations/upgrade-notes-0.8/index.html | 16 +-
.../operations/upgrade-notes-0.9/index.html | 6 +-
.../operations/upgrade-notes-archive/index.html | 6 +-
.../maintenance/operations/upgrading/index.html | 16 +-
.../tiered-storage/lakehouse-storage/index.html | 14 +-
.../maintenance/tiered-storage/overview/index.html | 6 +-
.../tiered-storage/remote-storage/index.html | 6 +-
docs/next/quickstart/flink/index.html | 76 ++++-----
docs/next/quickstart/lakehouse/index.html | 48 +++---
docs/next/quickstart/security/index.html | 86 +++++-----
docs/next/security/authentication/index.html | 10 +-
docs/next/security/authorization/index.html | 16 +-
docs/next/security/overview/index.html | 10 +-
.../integrate-data-lakes/iceberg/index.html | 62 +++----
.../integrate-data-lakes/lance/index.html | 24 +--
.../integrate-data-lakes/paimon/index.html | 26 +--
docs/next/streaming-lakehouse/overview/index.html | 6 +-
.../data-distribution/bucketing/index.html | 6 +-
.../data-distribution/partitioning/index.html | 10 +-
.../table-design/data-distribution/ttl/index.html | 6 +-
docs/next/table-design/data-formats/index.html | 10 +-
docs/next/table-design/data-types/index.html | 6 +-
.../merge-engines/aggregation/index.html | 46 ++---
.../table-design/merge-engines/default/index.html | 8 +-
.../merge-engines/first-row/index.html | 8 +-
docs/next/table-design/merge-engines/index.html | 6 +-
.../merge-engines/versioned/index.html | 10 +-
docs/next/table-design/overview/index.html | 6 +-
.../table-design/table-types/log-table/index.html | 12 +-
.../table-design/table-types/pk-table/index.html | 24 +--
docs/next/table-design/virtual-tables/index.html | 24 +--
docs/quickstart/flink/index.html | 64 +++----
docs/quickstart/lakehouse/index.html | 50 +++---
docs/quickstart/security/index.html | 86 +++++-----
docs/security/authentication/index.html | 10 +-
docs/security/authorization/index.html | 16 +-
docs/security/overview/index.html | 10 +-
.../integrate-data-lakes/iceberg/index.html | 62 +++----
.../integrate-data-lakes/lance/index.html | 16 +-
.../integrate-data-lakes/paimon/index.html | 26 +--
docs/streaming-lakehouse/overview/index.html | 6 +-
.../data-distribution/bucketing/index.html | 6 +-
.../data-distribution/partitioning/index.html | 8 +-
docs/table-design/data-distribution/ttl/index.html | 6 +-
docs/table-design/data-types/index.html | 6 +-
docs/table-design/overview/index.html | 6 +-
docs/table-design/table-types/log-table/index.html | 12 +-
docs/table-design/table-types/pk-table/index.html | 16 +-
.../pk-table/merge-engines/default/index.html | 8 +-
.../pk-table/merge-engines/first-row/index.html | 8 +-
.../table-types/pk-table/merge-engines/index.html | 6 +-
.../pk-table/merge-engines/versioned/index.html | 10 +-
downloads/index.html | 6 +-
index.html | 6 +-
learn/talks/index.html | 6 +-
learn/videos/index.html | 6 +-
roadmap/index.html | 6 +-
search/index.html | 6 +-
sw.js | 2 +-
372 files changed, 3627 insertions(+), 3627 deletions(-)
diff --git a/404.html b/404.html
index ce9b754d7..5957bbe0e 100644
--- a/404.html
+++ b/404.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/assets/css/styles.a7571857.css b/assets/css/styles.22067dd8.css
similarity index 53%
rename from assets/css/styles.a7571857.css
rename to assets/css/styles.22067dd8.css
index eae08103f..bc886de72 100644
--- a/assets/css/styles.a7571857.css
+++ b/assets/css/styles.22067dd8.css
@@ -1 +1 @@
-.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middl [...]
\ No newline at end of file
+.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middl [...]
\ No newline at end of file
diff --git a/assets/js/67628f41.0457032e.js b/assets/js/67628f41.dee718a9.js
similarity index 83%
rename from assets/js/67628f41.0457032e.js
rename to assets/js/67628f41.dee718a9.js
index 7b799ea1b..017afdf07 100644
--- a/assets/js/67628f41.0457032e.js
+++ b/assets/js/67628f41.dee718a9.js
@@ -1 +1 @@
-"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8221],{98055(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>u,frontMatter:()=>l,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"quickstart/flink","title":"Real-Time Analytics with Flink","description":"This guide will get you up and running with Apache Flink to do real-time analytics, covering some powerful features of Fluss.","source":"@site/docs/quickstart/flink.m [...]
\ No newline at end of file
+"use strict";(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8221],{98055(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>u,frontMatter:()=>l,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"quickstart/flink","title":"Real-Time Analytics with Flink","description":"This guide will get you up and running with Apache Flink to do real-time analytics, covering some powerful features of Fluss.","source":"@site/docs/quickstart/flink.m [...]
\ No newline at end of file
diff --git a/assets/js/main.238e594d.js b/assets/js/main.4f96f7b5.js
similarity index 77%
rename from assets/js/main.238e594d.js
rename to assets/js/main.4f96f7b5.js
index ab84dedb2..e70ae62aa 100644
--- a/assets/js/main.238e594d.js
+++ b/assets/js/main.4f96f7b5.js
@@ -1,2 +1,2 @@
-/*! For license information please see main.238e594d.js.LICENSE.txt */
-(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8792],{35947(e,t,n){"use strict";n.d(t,{A:()=>p});n(96540);var a=n(53259),r=n.n(a),o=n(84054);const i={"00666a83":[()=>n.e(7387).then(n.bind(n,22170)),"@site/versioned_docs/version-0.9/engine-flink/writes.md",22170],"0159e4b3":[()=>n.e(1838).then(n.bind(n,28605)),"@site/versioned_docs/version-0.6/maintenance/tiered-storage/lakehouse-storage.md",28605],"019059a8":[()=>n.e(4944).then(n.bind(n,83097)),"@s [...]
\ No newline at end of file
+/*! For license information please see main.4f96f7b5.js.LICENSE.txt */
+(globalThis.webpackChunkfluss_website=globalThis.webpackChunkfluss_website||[]).push([[8792],{35947(e,t,n){"use strict";n.d(t,{A:()=>p});n(96540);var a=n(53259),r=n.n(a),o=n(84054);const i={"00666a83":[()=>n.e(7387).then(n.bind(n,22170)),"@site/versioned_docs/version-0.9/engine-flink/writes.md",22170],"0159e4b3":[()=>n.e(1838).then(n.bind(n,28605)),"@site/versioned_docs/version-0.6/maintenance/tiered-storage/lakehouse-storage.md",28605],"019059a8":[()=>n.e(4944).then(n.bind(n,83097)),"@s [...]
\ No newline at end of file
diff --git a/assets/js/main.238e594d.js.LICENSE.txt b/assets/js/main.4f96f7b5.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.238e594d.js.LICENSE.txt
rename to assets/js/main.4f96f7b5.js.LICENSE.txt
diff --git a/assets/js/runtime~main.932bddce.js b/assets/js/runtime~main.20913baf.js
similarity index 90%
rename from assets/js/runtime~main.932bddce.js
rename to assets/js/runtime~main.20913baf.js
index e425d409a..4c24bb22d 100644
--- a/assets/js/runtime~main.932bddce.js
+++ b/assets/js/runtime~main.20913baf.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,d,f,c,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={exports:{}};return b[e].call(d.exports,d,d.exports,r),d.exports}r.m=b,e=[],r.O=(a,d,f,c)=>{if(!d){var b=1/0;for(i=0;i<e.length;i++){for(var[d,f,c]=e[i],t=!0,o=0;o<d.length;o++)(!1&c||b>=c)&&Object.keys(r.O).every(e=>r.O[e](d[o]))?d.splice(o--,1):(t=!1,c<b&&(b=c));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}c=c||0;for(var i=e.length;i>0&&e[i-1][2]>c;i--)e[i]=e[i-1 [...]
\ No newline at end of file
+(()=>{"use strict";var e,a,f,d,c,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={exports:{}};return b[e].call(f.exports,f,f.exports,r),f.exports}r.m=b,e=[],r.O=(a,f,d,c)=>{if(!f){var b=1/0;for(i=0;i<e.length;i++){for(var[f,d,c]=e[i],t=!0,o=0;o<f.length;o++)(!1&c||b>=c)&&Object.keys(r.O).every(e=>r.O[e](f[o]))?f.splice(o--,1):(t=!1,c<b&&(b=c));if(t){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}c=c||0;for(var i=e.length;i>0&&e[i-1][2]>c;i--)e[i]=e[i-1 [...]
\ No newline at end of file
diff --git a/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/index.html b/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/index.html
index 413f457d6..4a1615daa 100644
--- a/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/index.html
+++ b/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -75,12 +75,12 @@ Think of your data as having two thermal zones:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="gap-2-polling-based-reads-create-latency-multiplication">Gap 2: Polling-Based Reads Create Latency Multiplication<a href="#gap-2-polling-based-reads-create-latency-multiplication" class="hash-link" aria-label="Direct link to Gap 2: Polling-Based Reads Create Latency Multiplication" title="Direct link to Gap 2: Polling-Based Reads Create Latency Multiplication" translate="no"></a></h3>
<p>Iceberg doesn't have a push-based notification system. Streaming readers poll for new snapshots.</p>
<p><strong>Latency Breakdown:</strong></p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">1. Writer commits snapshot → 0ms</span><br></span><span class="token-line" sty [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">1. Writer commits snapshot → 0ms</span><br></span><span class="token-line" sty [...]
<p>Compare this to a push model where producers write and consumers immediately receive notifications. End-to-end latency drops to <strong>single-digit milliseconds</strong>.</p>
<p>For real-time dashboards, fraud detection, or operational analytics requiring sub-second freshness, this polling latency is a non-starter.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="gap-3-primary-key-support-is-declarative-not-enforced">Gap 3: Primary Key Support Is Declarative, Not Enforced<a href="#gap-3-primary-key-support-is-declarative-not-enforced" class="hash-link" aria-label="Direct link to Gap 3: Primary Key Support Is Declarative, Not Enforced" title="Direct link to Gap 3: Primary Key Support Is Declarative, Not Enforced" translate="no"></a></h3>
<p>Iceberg V2 tables accept PRIMARY KEY declarations in DDL:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<p>However, Iceberg <strong>does not enforce</strong> primary keys:</p>
<ul>
<li class="">❌ No uniqueness validation on write</li>
@@ -114,7 +114,7 @@ Think of your data as having two thermal zones:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="solution-2-primary-key-tables-with-native-upsert-support">Solution 2: Primary Key Tables with Native Upsert Support<a href="#solution-2-primary-key-tables-with-native-upsert-support" class="hash-link" aria-label="Direct link to Solution 2: Primary Key Tables with Native Upsert Support" title="Direct link to Solution 2: Primary Key Tables with Native Upsert Support" translate="no"></a></h3>
<p><strong>Addresses:</strong> Gap 3 (Primary Key Not Enforced) & Gap 4 (Update Write Amplification)</p>
<p>Fluss provides first-class primary key semantics using an LSM tree architecture:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">┌─────────────────────────────────────────────────┐</span><br></span><span class="token-lin [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">┌─────────────────────────────────────────────────┐</span><br></span><span class="token-lin [...]
<p><strong>How it works:</strong></p>
<p>When you write to a primary key table, Fluss:</p>
<ol>
@@ -144,7 +144,7 @@ Think of your data as having two thermal zones:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="solution-3-unified-ingestion-with-automatic-tiering">Solution 3: Unified Ingestion with Automatic Tiering<a href="#solution-3-unified-ingestion-with-automatic-tiering" class="hash-link" aria-label="Direct link to Solution 3: Unified Ingestion with Automatic Tiering" title="Direct link to Solution 3: Unified Ingestion with Automatic Tiering" translate="no"></a></h3>
<p><strong>Addresses:</strong> All gaps by offloading real-time complexity from Iceberg</p>
<p><strong>Architecture Flow:</strong></p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Application</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="to [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Application</span><br></span><span class="token-line" style="color:#36464e"><span class="to [...]
<p><strong>Tiering Service Architecture:</strong></p>
<p>Stateless Flink jobs: Multiple jobs register with the Fluss Coordinator Server. The coordinator assigns tables to jobs via an in-memory queue. Each job processes one table at a time, commits results, and requests the next table.</p>
<p><strong>Key Capabilities:</strong></p>
@@ -204,10 +204,10 @@ Think of your data as having two thermal zones:</p>
<li class=""><strong>Efficient process/integration for query engines:</strong> Optimized for Flink, StarRocks, Spark</li>
</ul>
<p><strong>SQL Syntax (Apache Flink):</strong></p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Automatic union read (default behavior)</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Automatic union read (default behavior)</span><s [...]
<p><strong>Consistency Guarantees:</strong></p>
<p>The tiering service embeds Fluss offset metadata in Iceberg snapshot summaries:</p>
-<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token punctuation" style="color:rgb(212, 212, 212)">{</span><span class="token plain"></span><br></span> [...]
+<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token punctuation" style="color:rgba(0, 0, 0, 0.54)">{</span><span class="token plain"></span><br></span [...]
<p>Fluss coordinator persists this mapping. When clients query, they receive the exact offset boundary. Union read logic ensures:</p>
<ul>
<li class=""><strong>No overlaps:</strong> Iceberg handles offsets ≤ boundary</li>
diff --git a/blog/archive/index.html b/blog/archive/index.html
index bacaf103a..caf69efbb 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/atom.xml b/blog/atom.xml
index c8986b243..8ee408bb3 100644
--- a/blog/atom.xml
+++ b/blog/atom.xml
@@ -107,34 +107,34 @@ The enriched fraud records are then appended to the Fluss Enriched Fraud Log Tab
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="repository-structure">Repository structure<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#repository-structure" class="hash-link" aria-label="Direct link to Repository structure" title="Direct link to Repository structure" translate="no"></a></h2>
<p>You can find the code explained in this blog at the following link: <a href="https://github.com/Lourousa/frauddetection" target="_blank" rel="noopener noreferrer" class="">Github</a></p>
<p>Here's the repository structure, which will be useful as reference for the following paragraphs:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">src/main/java/org/jg/</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">src/main/java/org/jg/</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-fluss-client-tables-and-record-generation">The Fluss client: tables and record generation<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#the-fluss-client-tables-and-record-generation" class="hash-link" aria-label="Direct link to The Fluss client: tables and record generation" title="Direct link to The Fluss client: tables and record generation" translate="no"></a></h2>
<p>A Fluss Java client acts as the data producer. In the codebase, the <code>FlussManager</code> and the <code>FlussManagerRunner</code> are the classes representing the client and its execution. The client’s role is to simulate transaction events and feed them into the Fluss tables. More specifically, the client creates the Fluss database and three tables leveraging the <a href="https://fluss.apache.org/docs/apis/java-client/" target="_blank" rel="noopener noreferrer" class="">Fluss Jav [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="transaction-log-table-append-only">Transaction Log Table (append-only)<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#transaction-log-table-append-only" class="hash-link" aria-label="Direct link to Transaction Log Table (append-only)" title="Direct link to Transaction Log Table (append-only)" translate="no"></a></h3>
<table><thead><tr><th>Column</th><th>Fluss Type</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td>BIGINT</td><td>Unique identifier of the transaction.</td></tr><tr><td><code>accountId</code></td><td>BIGINT</td><td>Identifier of the account the transaction belongs to.</td></tr><tr><td><code>createdAt</code></td><td>BIGINT</td><td>Creation timestamp in epoch milliseconds.</td></tr><tr><td><code>amount</code></td><td>DECIMAL</td><td>Monetary amount of the transacti [...]
<p>The table stores transactions with a retention period of 7 days. Since it is a Fluss Log table, only APPEND operations are supported.</p>
<p>Snippet from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="account-primary-table">Account Primary Table<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#account-primary-table" class="hash-link" aria-label="Direct link to Account Primary Table" title="Direct link to Account Primary Table" translate="no"></a></h3>
<table><thead><tr><th>Column</th><th>Fluss Type</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td>BIGINT</td><td>Unique identifier of the account. Primary key.</td></tr><tr><td><code>name</code></td><td>STRING</td><td>Name of the account holder or entity.</td></tr><tr><td><code>createdAt</code></td><td>BIGINT</td><td>Creation timestamp in epoch milliseconds.</td></tr><tr><td><code>updatedAt</code></td><td>BIGINT</td><td>Last update timestamp in epoch millisecond [...]
<p>The table stores accounts of the bank’s customers. Since it is a Fluss Primary table, INSERT, UPDATE, and DELETE operations are supported.</p>
<p>Snippet from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="enriched-fraud-log-table">Enriched Fraud Log Table<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#enriched-fraud-log-table" class="hash-link" aria-label="Direct link to Enriched Fraud Log Table" title="Direct link to Enriched Fraud Log Table" translate="no"></a></h3>
<table><thead><tr><th>Column</th><th>Fluss Type</th><th>Description</th></tr></thead><tbody><tr><td><code>transactionId</code></td><td>BIGINT</td><td>Identifier of the transaction flagged as fraud.</td></tr><tr><td><code>accountId</code></td><td>BIGINT</td><td>Account identifier associated with the transaction.</td></tr><tr><td><code>name</code></td><td>STRING</td><td>Name of the account holder.</td></tr></tbody></table>
<p>The table stores enriched transactions detected as fraud, with a retention period of 7 days. Since it is a Fluss Log table, only APPEND operations are supported.
This is the only table that will be tiered to the Iceberg lakehouse.</p>
<p>Snippet from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="records-generation">Records generation<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#records-generation" class="hash-link" aria-label="Direct link to Records generation" title="Direct link to Records generation" translate="no"></a></h3>
<p>The Fluss client needs to serialize transactions and accounts POJOs instances as <code>GenericRow</code> instances. This class implements the <code>InternalRow</code> interface that represents the binary format used to write records from the Fluss client to Fluss tables.
Here is an example of the <code>Transaction</code> POJO and the <code>TransactionSerializationSchema</code>, which extends <code>FlussSerializationSchema<Transaction></code> to override the serialize method of the <code>FlussSerializationSchema</code> interface, along with how it is used by the client generating records.</p>
<p>Transaction.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>TransactionSerializationSchema.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>Generation of transactions from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>The <code>getTransaction</code> method is repeatedly called by the client to produce transactions continuously. They are pushed in batches of ten.<br>
<!-- -->The first two transactions of each batch represent a fraudulent pattern for the same account:</p>
<ul>
@@ -146,10 +146,10 @@ For simplicity, only four accounts are generated, and each transaction belongs t
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fraud-detection-job">Fraud detection job<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#fraud-detection-job" class="hash-link" aria-label="Direct link to Fraud detection job" title="Direct link to Fraud detection job" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-pipeline-overview">Flink pipeline overview<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#flink-pipeline-overview" class="hash-link" aria-label="Direct link to Flink pipeline overview" title="Direct link to Flink pipeline overview" translate="no"></a></h3>
<p>The Fraud detection Job is based on Apache Flink. The orchestration of the streaming pipeline has been modelled by the <code>FrauDetectionJob</code> class, which is the entry point of the Flink job:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>Each step of the streaming pipeline, such as reading from the source, applying transformations, and writing to the sink, has been modeled as a strategy. These strategies are combined into the <code>FraudPipeline</code> which implements the <code>FlinkPipeline</code> interface. The <code>FlinkPipeline</code> interface is accountable to hold and combine the strategies, exposing the <code>compose</code> and <code>run</code> signatures. The <code>compose</code> method is used to chain the [...]
<p><img decoding="async" loading="lazy" alt="flinkpipe" src="https://fluss.apache.org/assets/images/flinkpipe-4994a4be4abc17e2d909d7bea4e067aa.jpg" width="2780" height="809" class="img_ev3q"></p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>There are 4 strategies interfaces with different accountability explained in the next paragraph.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="strategy-deep-dive">Strategy deep dive<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#strategy-deep-dive" class="hash-link" aria-label="Direct link to Strategy deep dive" title="Direct link to Strategy deep dive" translate="no"></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-initcatalogstrategy-interface-and-initflinkcatalogstrategy-implementation">1. InitCatalogStrategy interface and InitFlinkCatalogStrategy implementation<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#1-initcatalogstrategy-interface-and-initflinkcatalogstrategy-implementation" class="hash-link" aria-label="Direct link to 1. InitCatalogStrategy interface and InitFlinkCatalogStrategy implementation" title="Direct link to 1. [...]
@@ -157,16 +157,16 @@ For simplicity, only four accounts are generated, and each transaction belongs t
<p><img decoding="async" loading="lazy" alt="catstr" src="https://fluss.apache.org/assets/images/catstr-b31b5c6c1637afad44690e2fac0b4a47.png" width="538" height="724" class="img_ev3q"></p>
<p>The <code>InitFlinkCatalogStrategy</code> implementation, which extends <code>InitCatalogStrategy</code>, overrides the <code>init</code> method to define and activate a Flink catalog, enabling the use of the Fluss tables.</p>
<p>Snippet from InitFlinkCatalogStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-sourcestrategy-interface-and-transactionflusssourcestrategy-implementation">2. SourceStrategy interface and TransactionFlussSourceStrategy implementation<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#2-sourcestrategy-interface-and-transactionflusssourcestrategy-implementation" class="hash-link" aria-label="Direct link to 2. SourceStrategy interface and TransactionFlussSourceStrategy implementation" title="Direct link t [...]
<p>This interface represents the reading from a source and returning records with a DataStream Flink API of type <code>DataStream<T></code>, exposing the <code>createSource</code> signature.</p>
<p><img decoding="async" loading="lazy" alt="soustr" src="https://fluss.apache.org/assets/images/soustr-4f3749a544ecc4415f40dc84db0f56ea.png" width="513" height="693" class="img_ev3q"></p>
<p>The <code>TransactionFlussSourceStrategy</code> implementation overrides the <code>createSource</code> method to read from the Fluss Transaction table using the <a href="https://fluss.apache.org/docs/engine-flink/datastream/#datastream-source" target="_blank" rel="noopener noreferrer" class="">FlussSource</a> connector and return a <code>DataStream<Transaction></code>.</p>
<p>Snippet from TransactionFlussSourceStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<p>As you can see in the snippet below , the deserialization of the Fluss <code>LogRecord</code> from the Transaction table into the <code>Transaction</code> POJO required by the DataStream type is handled by the <code>TransactionDeserializationSchema</code> class, which extends <code>FlussDeserializationSchema</code> to override the <code>deserialize</code> method. The <code>record</code> is used to instanciate a <code>Transaction</code> POJO. The corresponding changeLog type is mapped [...]
<p>Snippet from TransactionDeserializationSchema.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-transformstrategy-interface-and-fraudtransformstrategy-implementation">3. TransformStrategy interface and FraudTransformStrategy implementation<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#3-transformstrategy-interface-and-fraudtransformstrategy-implementation" class="hash-link" aria-label="Direct link to 3. TransformStrategy interface and FraudTransformStrategy implementation" title="Direct link to 3. TransformStrate [...]
<p>This interface models the transformation applied to a Datastreams. It takes a <code>Datastream<I></code>, returns <code>Datastream<O></code> exposing the <code>transform</code> method.</p>
<p><img decoding="async" loading="lazy" alt="fraudstr" src="https://fluss.apache.org/assets/images/fraudstr-31176a68980343cabd5b550767bd5da8.png" width="528" height="733" class="img_ev3q"></p>
@@ -183,7 +183,7 @@ A KeyedProcessFunction is the lowest-level, per-key operator in Flink that provi
</li>
</ol>
<p>FraudTransformStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p><code>FraudDetector</code> extends <code>KeyedProcessFunction<Long, Transaction, Fraud></code>, where:</p>
<ul>
<li class=""><code>Long</code> is the type of the key (the <code>accountId</code>)</li>
@@ -195,13 +195,13 @@ A KeyedProcessFunction is the lowest-level, per-key operator in Flink that provi
<li class="">If a small transaction is followed by a large transaction within one minute (processing time), emit a <code>Fraud</code>.</li>
</ul>
<p>Snippet from FraudDetector.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-enrichedfraudtransformstrategy-implementation">4. EnrichedFraudTransformStrategy implementation<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#4-enrichedfraudtransformstrategy-implementation" class="hash-link" aria-label="Direct link to 4. EnrichedFraudTransformStrategy implementation" title="Direct link to 4. EnrichedFraudTransformStrategy implementation" translate="no"></a></h4>
<p><img decoding="async" loading="lazy" alt="enfraudstr" src="https://fluss.apache.org/assets/images/enfraudstr-53373fcc802f3fc87fd70cbd86be7a70.png" width="529" height="714" class="img_ev3q"></p>
<p>The <code>EnrichedFraudTransformStrategy</code> implementation reads the <code>Datastream<Fraud></code> and perform an enrichment adding the account name for each record.
This is done switching from Flink Datastream API to Flink Table API and performing a temporal look up join against the the Fluss Account table which acts as a dimension.</p>
<p>Snipped from EnrichedFraudTransformStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<p>The <code>fraudsView</code> is a dynamic table created on top of the fraud stream.
It exposes a processing-time attribute.
For each record in <code>f</code> (<code>fraudsView</code>), the corresponding account row is looked up as it existed at the processing time of <code>f</code> (<code>f.procTime</code>).
@@ -211,16 +211,16 @@ Enriched records are converted back and returned as a <code>DataStream<Enrich
<p><img decoding="async" loading="lazy" alt="sinkstr" src="https://fluss.apache.org/assets/images/sinkstr-1c199122a4b4b9280f11b0090f20846b.png" width="580" height="778" class="img_ev3q"></p>
<p><code>FraudFlussSinkStrategy</code> reads the <code>Datastream<Fraud></code> and sinks record to Fluss Fraud table leveraging <a href="https://fluss.apache.org/docs/engine-flink/datastream/#datastream-sink" target="_blank" rel="noopener noreferrer" class="">FlussSink</a> sink connector.</p>
<p>FraudFlussSinkStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="lakehouse-tiering">Lakehouse tiering<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#lakehouse-tiering" class="hash-link" aria-label="Direct link to Lakehouse tiering" title="Direct link to Lakehouse tiering" translate="no"></a></h2>
<p>The Fluss Fraud table has been tiered to the lakehouse.
The lakehouse is based on Iceberg as the open table format and MinIO as the S3‑compatible object storage.
The Iceberg Fraud table is automatically initialized when the corresponding Fluss table is created by the Fluss client.
This is possible because Fluss syncs the metadata of the Fluss Fraud table with the corresponding Iceberg table.</p>
<p>Snippet from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>Fluss knows the lakehouse details based on the configuration of the following <code>CoordinatorServer</code> properties:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">datalake.format: iceberg</span><br></span><span class="token-line" style="color:#9CDCFE"><s [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">datalake.format: iceberg</span><br></span><span class="token-line" style="color:#36464e"><s [...]
<p>Data is synced by the Flink tiering job provided by the Fluss ecosystem, which merges new records from the Fluss Fraud table into the Iceberg Fraud table every 30 seconds (customizable).
The Iceberg table can support historical analysis performed by other compute engines able to read the format.
To learn more details about the tiering service works you can read the official <a href="https://fluss.apache.org/docs/streaming-lakehouse/overview/" target="_blank" rel="noopener noreferrer" class="">documentation</a>.</p>
@@ -298,12 +298,12 @@ Think of your data as having two thermal zones:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="gap-2-polling-based-reads-create-latency-multiplication">Gap 2: Polling-Based Reads Create Latency Multiplication<a href="https://fluss.apache.org/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/#gap-2-polling-based-reads-create-latency-multiplication" class="hash-link" aria-label="Direct link to Gap 2: Polling-Based Reads Create Latency Multiplication" title="Direct link to Gap 2: Polling-Based Reads Create L [...]
<p>Iceberg doesn't have a push-based notification system. Streaming readers poll for new snapshots.</p>
<p><strong>Latency Breakdown:</strong></p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">1. Writer commits snapshot → 0ms</span><br></span><span class="token-line" sty [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">1. Writer commits snapshot → 0ms</span><br></span><span class="token-line" sty [...]
<p>Compare this to a push model where producers write and consumers immediately receive notifications. End-to-end latency drops to <strong>single-digit milliseconds</strong>.</p>
<p>For real-time dashboards, fraud detection, or operational analytics requiring sub-second freshness, this polling latency is a non-starter.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="gap-3-primary-key-support-is-declarative-not-enforced">Gap 3: Primary Key Support Is Declarative, Not Enforced<a href="https://fluss.apache.org/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/#gap-3-primary-key-support-is-declarative-not-enforced" class="hash-link" aria-label="Direct link to Gap 3: Primary Key Support Is Declarative, Not Enforced" title="Direct link to Gap 3: Primary Key Support Is Declarative [...]
<p>Iceberg V2 tables accept PRIMARY KEY declarations in DDL:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<p>However, Iceberg <strong>does not enforce</strong> primary keys:</p>
<ul>
<li class="">❌ No uniqueness validation on write</li>
@@ -337,7 +337,7 @@ Think of your data as having two thermal zones:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="solution-2-primary-key-tables-with-native-upsert-support">Solution 2: Primary Key Tables with Native Upsert Support<a href="https://fluss.apache.org/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/#solution-2-primary-key-tables-with-native-upsert-support" class="hash-link" aria-label="Direct link to Solution 2: Primary Key Tables with Native Upsert Support" title="Direct link to Solution 2: Primary Key Tables [...]
<p><strong>Addresses:</strong> Gap 3 (Primary Key Not Enforced) & Gap 4 (Update Write Amplification)</p>
<p>Fluss provides first-class primary key semantics using an LSM tree architecture:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">┌─────────────────────────────────────────────────┐</span><br></span><span class="token-lin [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">┌─────────────────────────────────────────────────┐</span><br></span><span class="token-lin [...]
<p><strong>How it works:</strong></p>
<p>When you write to a primary key table, Fluss:</p>
<ol>
@@ -367,7 +367,7 @@ Think of your data as having two thermal zones:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="solution-3-unified-ingestion-with-automatic-tiering">Solution 3: Unified Ingestion with Automatic Tiering<a href="https://fluss.apache.org/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/#solution-3-unified-ingestion-with-automatic-tiering" class="hash-link" aria-label="Direct link to Solution 3: Unified Ingestion with Automatic Tiering" title="Direct link to Solution 3: Unified Ingestion with Automatic Tierin [...]
<p><strong>Addresses:</strong> All gaps by offloading real-time complexity from Iceberg</p>
<p><strong>Architecture Flow:</strong></p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Application</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="to [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Application</span><br></span><span class="token-line" style="color:#36464e"><span class="to [...]
<p><strong>Tiering Service Architecture:</strong></p>
<p>Stateless Flink jobs: Multiple jobs register with the Fluss Coordinator Server. The coordinator assigns tables to jobs via an in-memory queue. Each job processes one table at a time, commits results, and requests the next table.</p>
<p><strong>Key Capabilities:</strong></p>
@@ -427,10 +427,10 @@ Think of your data as having two thermal zones:</p>
<li class=""><strong>Efficient process/integration for query engines:</strong> Optimized for Flink, StarRocks, Spark</li>
</ul>
<p><strong>SQL Syntax (Apache Flink):</strong></p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Automatic union read (default behavior)</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Automatic union read (default behavior)</span><s [...]
<p><strong>Consistency Guarantees:</strong></p>
<p>The tiering service embeds Fluss offset metadata in Iceberg snapshot summaries:</p>
-<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token punctuation" style="color:rgb(212, 212, 212)">{</span><span class="token plain"></span><br></span> [...]
+<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token punctuation" style="color:rgba(0, 0, 0, 0.54)">{</span><span class="token plain"></span><br></span [...]
<p>Fluss coordinator persists this mapping. When clients query, they receive the exact offset boundary. Union read logic ensures:</p>
<ul>
<li class=""><strong>No overlaps:</strong> Iceberg handles offsets ≤ boundary</li>
@@ -529,7 +529,7 @@ which automatically merges small files and maintains optimized Iceberg snapshots
<li class=""><strong>Lower Cost</strong>: Reduce storage cost by tiering cold data to Iceberg while keeping hot data in Fluss, eliminating the need for duplicate storage.</li>
<li class=""><strong>Lower Latency</strong>: Sub-second data freshness for Iceberg tables by Union Read from Fluss and Iceberg.</li>
</ul>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)"># Icebe [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic" [...]
<p>You can find more detailed instructions in the <a class="" href="https://fluss.apache.org/docs/streaming-lakehouse/integrate-data-lakes/iceberg/">Iceberg Lakehouse documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="real-time-multimodal-ai-analytics-with-lance">Real-Time Multimodal AI Analytics with Lance<a href="https://fluss.apache.org/blog/releases/0.8/#real-time-multimodal-ai-analytics-with-lance" class="hash-link" aria-label="Direct link to Real-Time Multimodal AI Analytics with Lance" title="Direct link to Real-Time Multimodal AI Analytics with Lance" translate="no"></a></h2>
<p>Another major enhancement in Fluss 0.8 is the addition of <strong>Streaming Lakehouse support for <a href="https://github.com/lancedb/lance" target="_blank" rel="noopener noreferrer" class="">Lance</a></strong> (<a href="https://cwiki.apache.org/confluence/display/FLUSS/FIP-5%3A+Support+tiering+Fluss+data+to+Lance" target="_blank" rel="noopener noreferrer" class="">FIP-5</a>),
@@ -546,7 +546,7 @@ enabling fast synchronization between streaming pipelines and downstream ML or r
<li class=""><strong>Simplified architecture</strong>: Eliminates complex ETL pipelines between streaming systems and vector databases.</li>
</ul>
<p>Seamless integration: combines Fluss’s high-throughput streaming engine with Lance’s efficient columnar persistence for consistent, multi-modal data management.</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">datalake.format</span><span class="t [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">datalake.forma [...]
<p>See the <a href="https://lancedb.com/blog/fluss-integration/" target="_blank" rel="noopener noreferrer" class="">LanceDB blog post</a> for the full integration. You also can find more detailed instructions in the <a class="" href="https://fluss.apache.org/docs/streaming-lakehouse/integrate-data-lakes/lance/">Lance Lakehouse documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-21">Flink 2.1<a href="https://fluss.apache.org/blog/releases/0.8/#flink-21" class="hash-link" aria-label="Direct link to Flink 2.1" title="Direct link to Flink 2.1" translate="no"></a></h2>
<p>Apache Fluss is now fully compatible with <strong>Apache Flink 2.1</strong>, ensuring seamless integration with the latest Flink runtime and APIs.
@@ -568,7 +568,7 @@ With Fluss as the underlying streaming source, users can declaratively build rea
This integration unifies batch and streaming ETL: Fluss delivers high-throughput, low-latency data, while Flink continuously maintains derived tables for analytics,
APIs, and downstream workloads, providing real-time, consistent data pipelines with minimal operational overhead.
This integration further strengthens the batch & stream unification.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- 1. creat [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>You can find more detailed instructions in the <a class="" href="https://fluss.apache.org/docs/engine-flink/ddl/#materialized-table">Materialized Table documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="stability">Stability<a href="https://fluss.apache.org/blog/releases/0.8/#stability" class="hash-link" aria-label="Direct link to Stability" title="Direct link to Stability" translate="no"></a></h2>
<p>In this release, we have made significant improvements in the stability and reliability of Apache Fluss under large-scale production workloads.
@@ -587,10 +587,10 @@ These improvements substantially enhance Fluss’s robustness in mission-critica
<p>Starting with Fluss version 0.8, certain <strong>cluster-level configurations</strong> and <strong>table-level configurations</strong> can be updated dynamically, without requiring a cluster restart or table recreation. This enables operators and developers to adjust system behavior in real time, improving operational agility and minimizing downtime.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dynamic-cluster-configs">Dynamic Cluster Configs<a href="https://fluss.apache.org/blog/releases/0.8/#dynamic-cluster-configs" class="hash-link" aria-label="Direct link to Dynamic Cluster Configs" title="Direct link to Dynamic Cluster Configs" translate="no"></a></h3>
<p>Fluss now supports runtime updates for cluster configuration parameters. These changes take effect immediately across the cluster after being applied through the API.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Java Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">Admi [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Java Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">Admin</span><s [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dynamic-table-configs">Dynamic Table Configs<a href="https://fluss.apache.org/blog/releases/0.8/#dynamic-table-configs" class="hash-link" aria-label="Direct link to Dynamic Table Configs" title="Direct link to Dynamic Table Configs" translate="no"></a></h3>
<p>Fluss now supports update options dynamically on a table using the <code>ALTER TABLE ... SET</code> statement. This supports all the client-wise options (like <code>scan.startup.mode</code>) and some storage-wise options (like <code>table.datalake.enabled</code>).</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Enable l [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>When you issue a <code>ALTER TABLE ... SET</code> command to update storage options on a table, the Fluss cluster validates and applies the new configuration immediately. The updated settings are propagated to all TabletServers and CoordinatorServer components, ensuring consistent behavior going forward.</p>
<p>This capability is especially useful for tuning performance, adapting to changing data patterns, or complying with evolving data governance requirements—all without service interruption.</p>
<p>You can find more detailed instructions in the <a class="" href="https://fluss.apache.org/docs/maintenance/operations/updating-configs/">Updating Configs documentation</a>.</p>
@@ -844,15 +844,15 @@ To ensure accurate computation of this metric, the processing engine must perfor
<p><img decoding="async" loading="lazy" src="https://fluss.apache.org/assets/images/fulss_underlying_arch-a7af63a1ea8c1b9d495ba3ae2b4d5100.png" width="904" height="594" class="img_ev3q"></p>
<p><strong>Type:</strong> Divided into log tables and primary key tables. Log tables are columnar MQs that only support insert operations, while primary key tables can be updated according to the primary key and specified merge engine.</p>
<p><strong>Partition:</strong> Divides data into smaller, more manageable subsets according to specified columns. Fluss supports more diverse partitioning strategies, such as Dynamic create partitions. For the latest documentation on partitioning, please refer to: <a href="https://fluss.apache.org/docs/table-design/data-distribution/partitioning/" target="_blank" rel="noopener noreferrer" class="">https://fluss.apache.org/docs/table-design/data-distribution/partitioning/</a> . Note that [...]
-<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span [...]
+<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span cla [...]
<p><strong>Bucket:</strong> The smallest unit of read and write operations. For a primary key table, the bucket to which each piece of data belongs is determined based on the hash value of the primary key of each piece of data. For a log table, the configuration of column hashing can be specified in the with parameter when creating the table; otherwise, it will be randomly scattered.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="log-table">Log Table<a href="https://fluss.apache.org/blog/taobao-practice/#log-table" class="hash-link" aria-label="Direct link to Log Table" title="Direct link to Log Table" translate="no"></a></h4>
<p>The log table is a commonly used table in Fluss, which writes data in the order of writing, only supports insert operations, and does not support update/delete operations, similar to MQ systems such as Kafka and TT. For the log tables, currently most of the data will be uploaded to a remote location, and only a portion of the data will be stored locally. For example, a log table has 128 buckets, only 128 * 2 (number of segments retained locally) * 1 (size of one segment) * 3 (number o [...]
-<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span [...]
+<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span cla [...]
<p>In Fluss, the log table is stored in Apache Arrow columnar format by default. This format stores data column by column rather than row by row, thereby enabling <strong>column pruning</strong>. This ensures that only the required columns are consumed during real-time consumption, thereby reducing IO overhead, improving performance, and reducing resource usage.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="primarykey-table">PrimaryKey Table<a href="https://fluss.apache.org/blog/taobao-practice/#primarykey-table" class="hash-link" aria-label="Direct link to PrimaryKey Table" title="Direct link to PrimaryKey Table" translate="no"></a></h4>
<p>Compared to the log table, the primary key table supports insert, update, and delete operations, and different merge methods are implemented by specifying the Merge Engine. It should be noted that <code>bucket.key</code> and <code>partitioned.key</code> need to be subsets of <code>primary.key</code>, and if this KV table is used for DeltaJoin, <code>bucket.key</code> needs to be a prefix of <code>primary.key</code>. The table creation statement is as follows:</p>
-<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span [...]
+<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span cla [...]
<p>Among them, merge-engine supports versioned and first_row; after using versioned, it is necessary to limit the ver-column for sorting, currently only supporting types such as INT, BIGINT, and TIMESTAMP, and not supporting STRING; after using first_row, it only supports retaining the first record of each primary key and does not support sorting by column.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="core-functions">Core Functions<a href="https://fluss.apache.org/blog/taobao-practice/#core-functions" class="hash-link" aria-label="Direct link to Core Functions" title="Direct link to Core Functions" translate="no"></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="tailorable-columnar-storage">Tailorable Columnar Storage<a href="https://fluss.apache.org/blog/taobao-practice/#tailorable-columnar-storage" class="hash-link" aria-label="Direct link to Tailorable Columnar Storage" title="Direct link to Tailorable Columnar Storage" translate="no"></a></h4>
@@ -927,7 +927,7 @@ To ensure accurate computation of this metric, the processing engine must perfor
<p><img decoding="async" loading="lazy" src="https://fluss.apache.org/assets/images/comparison_of_dual_stream_join_and_delta_join-08049759413e940eb71f99d45449f52f.png" width="904" height="390" class="img_ev3q"></p>
<p>The jobs of Delta Join are as described above. The original job, after consuming data, sorts it according to business requirements, performs Dual-Stream Join after sorting, and saves the state for 24 hours. This results in issues such as long CP time, poor job maintainability, and the need to rerun when modifying the job state. In Fluss, data sorting is completed through the Merge Engine of the KV table, and through Delta Join, the job and state are decoupled, eliminating the need to [...]
<p>We use the transaction attribution job as an example. It should be noted that both sides of DeltaJoin need to be KV tables.</p>
-<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Create left table</span><span class="token [...]
+<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Create left table</span><span class [...]
<p>Some operations are shown in the above code. After migrating from the Dual-Stream Join to Merge Engine & Delta Join, large states were successfully reduced, making the job run more stably and eliminating CP timeouts. Meanwhile, the actual usage of CPU and Memory also decreased.</p>
<p>In addition to resource reduction and performance improvement, there is also an enhancement in flexibility for our benefits. The state of traditional stream-to-stream connections is tightly coupled with Flink jobs, like an opaque "black box". When the job is modified, it is found that the historical resource plan is incompatible with the current job, and the State can only be rerun from scratch, which is time-consuming and labor-intensive. After using Delta Join, it is equivalent to d [...]
<p><img decoding="async" loading="lazy" src="https://fluss.apache.org/assets/images/fluss_historical_data_consumption-c36e04f8f69fcfd14eb3370abebf3e96.png" width="904" height="298" class="img_ev3q"></p>
@@ -1022,12 +1022,12 @@ To ensure accurate computation of this metric, the processing engine must perfor
<li class="">
<p>Start the Minio server</p>
<p>Run this command, specifying a local path to store your Minio data:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">minio server /tmp/minio-data</span><br></span></code></pre></div></div>
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">minio server /tmp/minio-data</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Verify the Minio WebUI.</p>
<p>When your Minio server is up and running, you'll see endpoint information and login credentials:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">API: http://192.168.2.236:9000 http://127.0.0.1:9000</span><br></span><span class="token-l [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">API: http://192.168.2.236:9000 http://127.0.0.1:9000</span><br></span><span class="token-l [...]
<p>Open the WebUI link and log in with these credentials.</p>
</li>
<li class="">
@@ -1049,12 +1049,12 @@ To ensure accurate computation of this metric, the processing engine must perfor
<li class="">
<p>Configure the Data Lake</p>
<p>Edit your <code><FLUSS_HOME>/conf/server.yaml</code> file and add these settings:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">data.dir</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</spa [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">data.dir</span><span class="token punctuation" style="color:rgba [...]
<p>This configures Paimon as the datalake format on Minio as the warehouse.</p>
</li>
<li class="">
<p>Start Fluss</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLUSS_HOME</span>< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLUSS_HOME</span> [...]
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-cluster-setup">Flink Cluster Setup<a href="https://fluss.apache.org/blog/hands-on-fluss-lakehouse/#flink-cluster-setup" class="hash-link" aria-label="Direct link to Flink Cluster Setup" title="Direct link to Flink Cluster Setup" translate="no"></a></h3>
@@ -1066,7 +1066,7 @@ To ensure accurate computation of this metric, the processing engine must perfor
<li class="">
<p>Add the Fluss Connector</p>
<p>Download <code>fluss-flink-1.20-0.7.0.jar</code> from the <a href="https://fluss.apache.org/downloads/" target="_blank" rel="noopener noreferrer" class="">Fluss official site</a> and copy it to:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"><FLINK_HOME>/lib</span><br></span></code></pre></div></div>
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"><FLINK_HOME>/lib</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Add Paimon Dependencies</p>
@@ -1074,16 +1074,16 @@ To ensure accurate computation of this metric, the processing engine must perfor
<li class="">Download <code>paimon-flink-1.20-1.0.1.jar</code> and <code>paimon-s3-1.0.1.jar</code> from the <a href="https://paimon.apache.org/docs/1.0/project/download/" target="_blank" rel="noopener noreferrer" class="">Paimon official site</a> and place them in <code><FLINK_HOME>/lib</code>.</li>
<li class="">Copy these Paimon plugin jars from Fluss into <code><FLINK_HOME>/lib</code>:</li>
</ul>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"><FLINK_HOME>/lib/fluss-lake-paimon-0.7.0.jar</span><br></span><span class="token-line [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"><FLINK_HOME>/lib/fluss-lake-paimon-0.7.0.jar</span><br></span><span class="token-line [...]
</li>
<li class="">
<p>Increase Task Slots</p>
<p>Edit <code><FLINK_HOME>/conf/config.yaml</code> to increase available task slots:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">numberOfTaskSlots</span><span class="token punctuation" style="color:rgb(212, 212, 212 [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">numberOfTaskSlots</span><span class="token punctuation" style="c [...]
</li>
<li class="">
<p>Start Flink</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span>< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</span> [...]
</li>
<li class="">
<p>Verify</p>
@@ -1098,7 +1098,7 @@ To ensure accurate computation of this metric, the processing engine must perfor
</li>
<li class="">
<p>Submit the Job</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span>< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</span> [...]
</li>
<li class="">
<p>Confirm Deployment</p>
@@ -1111,32 +1111,32 @@ To ensure accurate computation of this metric, the processing engine must perfor
<ol>
<li class="">
<p>Launch the SQL Client</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span>< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</span> [...]
</li>
<li class="">
<p>Create the Catalog and Table</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> CATALOG fluss_catal [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> CATALOG fluss_catalog </span> [...]
</li>
<li class="">
<p>Write Some Data</p>
<p>Let's insert a couple of records:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SET</span><span class="token plain"> </span><span class="to [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SET</span><span class="token plain"> </span><span class="token string [...]
</li>
<li class="">
<p>Union Read</p>
<p>Now run a simple query to retrieve data from the table. By default, Flink will automatically combine data from both the Fluss cluster and the lakehouse:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
<p>If you want to read data only from the lake table, simply append <code>$lake</code> after the table name:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
<p>Great! Our records have been successfully synced to the data lake by the tiering service.</p>
<p>Notice the three system columns in the Paimon lake table: <code>__bucket</code>, <code>__offset</code>, and <code>__timestamp</code>. The <code>__bucket</code> column shows which bucket contains this row. The <code>__offset</code> and <code>__timestamp</code> columns are used for streaming data processing.</p>
</li>
<li class="">
<p>Streaming Inserts</p>
<p>Let's switch to streaming mode and add two more records:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
<p>Now query the lake again:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
<p>The first time we queried, our new records hadn't been synced to the lake table yet. After waiting a moment, they appeared.</p>
<p>Notice that the <code>__offset</code> and <code>__timestamp</code> values for these new records are no longer the default values. They now show the actual offset and timestamp when the records were added to the table.</p>
</li>
@@ -1145,12 +1145,12 @@ To ensure accurate computation of this metric, the processing engine must perfor
<p>Open the Minio WebUI, and you'll see the Paimon files in your bucket:</p>
<p><img decoding="async" loading="lazy" src="https://fluss.apache.org/assets/images/fluss-bucket-data-47a0df43a938f44f5671f184588fd5ef.png" width="1508" height="530" class="img_ev3q"></p>
<p>You can also check the Parquet files and manifest in your local filesystem under <code>/tmp/minio-data</code>:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">/tmp/minio-data ❯ tree .</span><br></span><span class="token-line" style="color:#9CDCFE"><s [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">/tmp/minio-data ❯ tree .</span><br></span><span class="token-line" style="color:#36464e"><s [...]
</li>
<li class="">
<p>View Snapshots</p>
<p>You can also check the snapshots from the system table by appending <code>$lake$snapshots</code> after the Fluss table name:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="summary">Summary<a href="https://fluss.apache.org/blog/hands-on-fluss-lakehouse/#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no"></a></h2>
@@ -1238,14 +1238,14 @@ to write data to these tables and read/enrich the streaming sensor data.</p>
<p>By the end, you'll see how a sensor reading can be ingested into a log table and immediately enriched with information from a primary key table (essentially performing a real-time lookup join for streaming data enrichment).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="preflight-check">Preflight Check<a href="https://fluss.apache.org/blog/fluss-java-client/#preflight-check" class="hash-link" aria-label="Direct link to Preflight Check" title="Direct link to Preflight Check" translate="no"></a></h2>
<p>The full source code can be found <a href="https://github.com/ververica/ververica-fluss-examples/tree/main/fluss-java-client" target="_blank" rel="noopener noreferrer" class="">here</a>.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> compose up</s [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> compose up</span><br></s [...]
<p>The first thing we need to do is establish a connection to the Fluss cluster.
The <code>Connection</code> is the main entry point for the Fluss client, from which we obtain an <code>Admin</code> (for metadata operations) and Table instances (for data operations)</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">// Configure connection to Fluss cluster</span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">// Configure connection to Fluss cluster</span><s [...]
<p>The above code snippet shows the bare minimum requirements for connecting and interacting with a Fluss Cluster.
For our example we will use the following mock data - to keep things simple - which you can find below:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="operating-the-cluster">Operating The Cluster<a href="https://fluss.apache.org/blog/fluss-java-client/#operating-the-cluster" class="hash-link" aria-label="Direct link to Operating The Cluster" title="Direct link to Operating The Cluster" translate="no"></a></h2>
<p>Let's create a database for our IoT data, and within it define two tables:</p>
<ul>
@@ -1256,11 +1256,11 @@ For our example we will use the following mock data - to keep things simple - wh
<p>First, we'll ensure the database exists (creating it if not), then define schemas for each table and create them:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="schema-definitions">Schema Definitions<a href="https://fluss.apache.org/blog/fluss-java-client/#schema-definitions" class="hash-link" aria-label="Direct link to Schema Definitions" title="Direct link to Schema Definitions" translate="no"></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="log-table-sensor-readings">Log table (sensor readings)<a href="https://fluss.apache.org/blog/fluss-java-client/#log-table-sensor-readings" class="hash-link" aria-label="Direct link to Log table (sensor readings)" title="Direct link to Log table (sensor readings)" translate="no"></a></h4>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="primary-key-table-sensor-information">Primary Key table (sensor information)<a href="https://fluss.apache.org/blog/fluss-java-client/#primary-key-table-sensor-information" class="hash-link" aria-label="Direct link to Primary Key table (sensor information)" title="Direct link to Primary Key table (sensor information)" translate="no"></a></h4>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="table-creation">Table Creation<a href="https://fluss.apache.org/blog/fluss-java-client/#table-creation" class="hash-link" aria-label="Direct link to Table Creation" title="Direct link to Table Creation" translate="no"></a></h3>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>We specify a distribution with <code>.distributedBy(3, "sensorId")</code>.
Fluss tables are partitioned into buckets (similar to partitions in Kafka topics) for scalability.
Here we use 3 buckets, meaning data gets distributed across 3 buckets. Multiple buckets allow for higher throughput or to parallelize reads/writes.
@@ -1284,15 +1284,15 @@ Under the hood, the Fluss client currently expects data as <strong>GenericRow</s
<strong>GenericRow</strong> is a generic implementation of InternalRow. This allows developers to interact with data easily while Fluss processes it efficiently using the underlying binary format.</p>
</blockquote>
<p>Since we are creating <strong>Pojos</strong> though this means that we need to convert these into a GenericRow in order to write them into Fluss.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p><strong>Note:</strong> For certain data types like <code>String</code> or <code>LocalDateTime</code> we need to use certain functions like
<code>BinaryString.fromString("string_value")</code> or <code>TimestampNtz.fromLocalDateTime(datetime)</code> otherwise you might
come across some conversion exceptions.</p>
<p>Let's start by writing data to the <code>Log Table</code>. This requires getting an <code>AppendWriter</code> as follows:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">logger</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">logger</span><span class="token punctuation" style="color:rgba(0, 0, 0, 0.54)">.</span><spa [...]
<p>At this point we have successfully written 10 sensor readings to our table.</p>
<p>Next, let's write data to the <code>Primary Key Table</code>. This requires getting an <code>UpsertWriter</code> as follows:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">logger</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">logger</span><span class="token punctuation" style="color:rgba(0, 0, 0, 0.54)">.</span><spa [...]
<p>At this point we have successfully written 10 sensor information records to our table, because
updates will be handled on the primary key and merged.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="scans--lookups">Scans & Lookups<a href="https://fluss.apache.org/blog/fluss-java-client/#scans--lookups" class="hash-link" aria-label="Direct link to Scans & Lookups" title="Direct link to Scans & Lookups" translate="no"></a></h2>
@@ -1302,13 +1302,13 @@ This is a common pattern in streaming systems, often achieved with lookup joins.
<p>With the Fluss Java client, we can do this by combining a <strong>log scanner on the readings table</strong> with <strong>point lookups on the sensor information table</strong>.</p>
<p>To consume data from a Fluss table, we use a *<em>Scanner</em>.
For a log table, Fluss provides a <strong>LogScanner</strong> that allows us to <strong>subscribe to one or more buckets</strong> and poll for new records.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">LogScanner</span><span class="token plain"> logScanner [...]
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">Lookuper</span><span class="token plain"> sensorInforL [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">LogScanner</span><span class="token plain"> logScanner </span><s [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">Lookuper</span><span class="token plain"> sensorInforLookuper </ [...]
<p>We set up a scanner on the <code>sensor_readings</code> table, and next we need to subscribe to all its buckets, and then poll for any available records:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">int</span><span class="token plain"> numBuckets </span><s [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">int</span><span class="token plain"> numBuckets </span><span class= [...]
<p>Start polling for records. For each incoming record we will use the <strong>Lookuper</strong> to <code>lookup</code> sensor information from the primary key table,
and creating a <strong>SensorReadingEnriched</strong> record.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token keyword" style="color:rgb(86, 156, 214)">while</span><span class [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"> </span><span class="token keyword" style="color:#3f6ec6">while</span><span class="token pl [...]
<p>Let's summarize what's happening here:</p>
<ul>
<li class="">We create a LogScanner for the <code>sensor_readings</code> table using <em>table.newScan().createLogScanner()</em>.</li>
@@ -1321,10 +1321,10 @@ and creating a <strong>SensorReadingEnriched</strong> record.</p>
<p>Fluss's lookup API gives us quick primary-key retrieval from a table, which is exactly what we need to enrich the streaming data.
In a real application, this enrichment could be done on the fly in a streaming job (and indeed <strong>Fluss is designed to support high-QPS lookup joins in real-time pipelines</strong>), but here we're simulating it with client calls for clarity.</p>
<p>If you run the above code found <a href="https://github.com/ververica/ververica-fluss-examples" target="_blank" rel="noopener noreferrer" class="">here</a>, you should see an output like the following:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token number" style="color:rgb(181, 206, 168)">16</span><span class="token plain">:07:13.594 INFO </s [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token number" style="color:#d52a2a">16</span><span class="token plain">:07:13.594 INFO </span><span c [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="column-pruning-scans">Column Pruning Scans<a href="https://fluss.apache.org/blog/fluss-java-client/#column-pruning-scans" class="hash-link" aria-label="Direct link to Column Pruning Scans" title="Direct link to Column Pruning Scans" translate="no"></a></h2>
<p>Column pruning lets you fetch only the columns you need, <strong>reducing network overhead and improving read performance</strong>. With Fluss’s Java client, you can specify a subset of columns in your scan:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">LogScanner</span><span class="token plain"> logScanner [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">LogScanner</span><span class="token plain"> logScanner </span><s [...]
<p>Let's break this down:</p>
<ul>
<li class=""><code>.project(...)</code> instructs the client to request only the specified columns (sensorId,timestamp and temperature) from the server.</li>
@@ -1332,7 +1332,7 @@ In a real application, this enrichment could be done on the fly in a streaming j
<li class="">You can combine projection with filters or lookups to further optimize your data access patterns.</li>
</ul>
<p>Example output:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token number" style="color:rgb(181, 206, 168)">16</span><span class="token plain">:12:35.114 INFO </s [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token number" style="color:#d52a2a">16</span><span class="token plain">:12:35.114 INFO </span><span c [...]
<p>Notice, how only the requested columns are returned from the server.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://fluss.apache.org/blog/fluss-java-client/#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no"></a></h2>
<p>In this blog post, we've introduced the Fluss Java Client by guiding you through a full example of creating tables, writing data, and reading/enriching data in real-time.
@@ -1361,7 +1361,7 @@ policy-driven data pipeline that seamlessly bridges your real-time Fluss cluster
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-tiering-service">Flink Tiering Service<a href="https://fluss.apache.org/blog/tiering-service/#flink-tiering-service" class="hash-link" aria-label="Direct link to Flink Tiering Service" title="Direct link to Flink Tiering Service" translate="no"></a></h2>
<p>Fluss tiering service is an Apache Flink job, which keeps moving data from fluss cluster to data lake.
The execution plan is quite straight forward. It has a three operators: a <code>source</code>, a <code>committer</code> and an empty <code>sink writer</code>.</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Source: TieringSource -> TieringCommitter -> Sink: Writer</span><br></span></code></ [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"> Source: TieringSource -> TieringCommitter -> Sink: Writer</span><br></span></code></ [...]
<ul>
<li class=""><strong>TieringSource</strong>: Reads records from the Fluss tiering table and writes them to the data lake.</li>
<li class=""><strong>TieringCommitter</strong>: Commits each sync batch by advancing offsets in both the lakehouse and the Fluss cluster.</li>
@@ -1467,7 +1467,7 @@ It precisely calculates the data <code>"delta"</code>, i.e what's new or changed
<p>By cleanly separating split assignment, reader selection, data fetching, and lake writing, the TieringSourceReader ensures scalable, parallel ingestion of streaming and snapshot data into your lakehouse.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="lakewriter--laketieringfactory">LakeWriter & LakeTieringFactory<a href="https://fluss.apache.org/blog/tiering-service/#lakewriter--laketieringfactory" class="hash-link" aria-label="Direct link to LakeWriter & LakeTieringFactory" title="Direct link to LakeWriter & LakeTieringFactory" translate="no"></a></h4>
<p>The LakeWriter is responsible for persisting Fluss records into your data lake, and it’s instantiated via a pluggable LakeTieringFactory. This interface defines how Fluss interacts with various lake formats (e.g., Paimon, Iceberg):</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<ul>
<li class=""><strong>createLakeWriter(WriterInitContext)</strong>: builds a <code>LakeWriter</code> to convert Fluss rows into the target table format.</li>
<li class=""><strong>getWriteResultSerializer()</strong>: supplies a serializer for the writer’s output.</li>
@@ -1477,7 +1477,7 @@ It precisely calculates the data <code>"delta"</code>, i.e what's new or changed
<p>By default, Fluss includes a Paimon-backed tiering factory; Iceberg support is coming soon. Once the <code>TieringSourceReader</code> writes a batch of records through the <code>LakeWriter</code>, it emits the resulting write metadata downstream to the <strong>TieringCommitOperator</strong>, which then commits those changes both in the lakehouse and back to the Fluss cluster.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="stateless">Stateless<a href="https://fluss.apache.org/blog/tiering-service/#stateless" class="hash-link" aria-label="Direct link to Stateless" title="Direct link to Stateless" translate="no"></a></h4>
<p>The <code>TieringSourceReader</code> is designed to be completely stateless—it does not checkpoint or store any <code>TieringSplit</code> information itself. Instead, every checkpoint simply returns an empty list, leaving all split-tracking to the <code>TieringSourceEnumerator</code>:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<p>By delegating split assignment entirely to the Enumerator, the reader remains lightweight and easily scalable, always fetching its next work unit afresh from the coordinator.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tieringcommitter">TieringCommitter<a href="https://fluss.apache.org/blog/tiering-service/#tieringcommitter" class="hash-link" aria-label="Direct link to TieringCommitter" title="Direct link to TieringCommitter" translate="no"></a></h2>
<p><img decoding="async" loading="lazy" src="https://fluss.apache.org/assets/images/tiering-committer-c331413f2e4953539e9df51e711ca4f4.png" width="1930" height="1592" class="img_ev3q"></p>
@@ -1570,7 +1570,7 @@ While convenient, this approach restricted deployment flexibility, particularly
Fluss 0.7 now addresses this by supporting <strong>native job submission via standard Flink commands</strong> (<code>flink run</code>).
This enhancement ensures broad compatibility with various deployment modes while significantly lowering learning and integration costs.
The following is an example of how to submit the lake tiering service using the native Flink command:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">flink run /path/to/fluss-flink-tiering-0.7.0.jar </span><span class="token punctuation" sty [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">flink run /path/to/fluss-flink-tiering-0.7.0.jar </span><span class="token punctuation" sty [...]
<p>See more details in the <a class="" href="https://fluss.apache.org/docs/maintenance/tiered-storage/lakehouse-storage/">Streaming Lakehouse documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="streaming-partition-pruning">Streaming Partition Pruning<a href="https://fluss.apache.org/blog/releases/0.7/#streaming-partition-pruning" class="hash-link" aria-label="Direct link to Streaming Partition Pruning" title="Direct link to Streaming Partition Pruning" translate="no"></a></h2>
<p>Partitioning is a foundational technique in modern data warehouses and Lakehouse architectures for optimizing query performance by
@@ -1602,12 +1602,12 @@ Fluss introduced a plugin-based authentication with built-in <strong>SASL/PLAIN<
Fluss implements fine-grained permission control through the <strong>ACL</strong> (Access Control List) mechanism, supporting multi-level access control at the Cluster, Database, and Table levels.</p>
<p>Additionally, we've integrated Flink SQL's <code>CALL</code> statements to ease ACL permission management for users.
For instance, granting read access to the <code>mydb</code> database for user <code>Tim</code> can now be accomplished with the following command:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CALL</span><span class="token plain"> admin_catalog</span>< [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CALL</span><span class="token plain"> admin_catalog</span><span class [...]
<p>For details, please refer to the <a class="" href="https://fluss.apache.org/docs/security/overview/">Security documentation</a> and quickstarts.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-datastream-connector">Flink DataStream Connector<a href="https://fluss.apache.org/blog/releases/0.7/#flink-datastream-connector" class="hash-link" aria-label="Direct link to Flink DataStream Connector" title="Direct link to Flink DataStream Connector" translate="no"></a></h2>
<p>Fluss 0.7 officially introduces the DataStream Connector, supporting both Source and Sink for reading and writing log and primary key tables. Users can now seamlessly integrate Fluss tables into Flink DataStream pipelines.</p>
<p>Here’s an example of reading data from a Fluss table into a Flink DataStream:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">FlussSource</span><span class="token generics punctuat [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">FlussSource</span><span class="token generics punctuation" style [...]
<p>For usage examples and configuration parameters, see the <a class="" href="https://fluss.apache.org/docs/engine-flink/datastream/">DataStream Connector documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluss-java-client">Fluss Java Client<a href="https://fluss.apache.org/blog/releases/0.7/#fluss-java-client" class="hash-link" aria-label="Direct link to Fluss Java Client" title="Direct link to Fluss Java Client" translate="no"></a></h2>
<p>In this version, we officially release the Fluss Java Client, a client library designed for developers working with structured stream tables. The client includes two core API modules:</p>
@@ -1674,17 +1674,17 @@ This happens in <em>real-time</em>, so the table is <strong>always up-to-date</s
</blockquote>
<p>Start by cloning the repository, run <code>docker compose up</code> to spin up the development environment and finally grab a terminal
into the <code>jobmanager</code> and start the Flink SQL cli, by running the following command:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./bin/sql-client.sh</span><br></span></code></pre></div></div>
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">./bin/sql-client.sh</span><br></span></code></pre></div></div>
<p>Great so far ! 👍</p>
<p><strong>Step 1:</strong> The first thing we need to do is to create a Flink catalog that will be used to store the tables we are going to create.
Let's create a catalog called <code>fluss_catalog</code> and use this catalog.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> CATALOG fluss_catal [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> CATALOG fluss_catalog </span> [...]
<p><strong>Step 2:</strong> Then let's create <code>3 tables</code> to represent the different data sources that will be used to build the recommendations wide table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Recommendations – model scores</span><span class="token [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Recommendations – model scores</span><span class [...]
<p><strong>Step 3:</strong> Of course, we will need some sample data to work with , so let's go on and insert some records into the tables. 💻</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Recommendations – model scores</span><span class="token [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Impressions – how often each (user,item) was shown</span [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Clicks – user engagement</span><span class="token plain" [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Recommendations – model scores</span><span class [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Impressions – how often each (user,item) was sho [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Clicks – user engagement</span><span class="toke [...]
<blockquote>
<p><strong>Note:</strong> 🚨 So far the jobs we run were bounded jobs, so they will finish after inserting the records. Moving forward we will run some streaming jobs.
So keep in mind that each job runs with a <code>parallelism of 3</code> and our environment is set up <code>with 10 slots total</code>.
@@ -1692,31 +1692,31 @@ So make sure to keep an eye to the Flink Web UI to see how many slots are used a
</blockquote>
<p><strong>Step 4:</strong> At this point let's open up a separate terminal and start the Flink SQL CLI.
In this new terminal, make sure to run set the <code>result-mode</code>:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">SET </span><span class="token string" style="color:rgb(206, 145, 120)">'sql-client.execut [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">SET </span><span class="token string" style="color:#1c7d4d">'sql-client.execution.result- [...]
<p>and then run:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SELECT</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SELECT</span><span class="token plain"> </span><span class="token ope [...]
<p>to observe the output of the table, as we insert <code>partially</code> records into it from the different sources.</p>
<p><strong>Step 5:</strong> Let's insert the records from the <code>recommendations</code> table into the <code>user_rec_wide</code> table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Apply recommendation scores</span><span class="token pla [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Apply recommendation scores</span><span class="t [...]
<p><strong>Output:</strong> Notice, how only the related columns are updated in the <code>user_rec_wide</code> table and the rest of the columns are <code>NULL</code>.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgb(212, 212, 212)">></span> [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgba(0, 0, 0, 0.54)">></span [...]
<p><strong>Step 5:</strong> Next, let's insert the records from the <code>impressions</code> table into the <code>user_rec_wide</code> table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Apply impression counts</span><span class="token plain"> [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Apply impression counts</span><span class="token [...]
<p><strong>Output:</strong> Notice how the <code>impressions</code> records are inserted into the <code>user_rec_wide</code> table and the <code>imp_cnt</code> column is updated.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgb(212, 212, 212)">></span> [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgba(0, 0, 0, 0.54)">></span [...]
<p><strong>Step 6:</strong> Finally, let's insert the records from the <code>clicks</code> table into the <code>user_rec_wide</code> table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Apply click counts</span><span class="token plain"></spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Apply click counts</span><span class="token plai [...]
<p><strong>Output:</strong> Notice how the <code>clicks</code> records are inserted into the <code>user_rec_wide</code> table and the <code>click_cnt</code> column is updated.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgb(212, 212, 212)">></span> [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgba(0, 0, 0, 0.54)">></span [...]
<p><strong>Reminder:</strong> ‼️As mentioned before make sure to stop the jobs that are no longer needed to free up resources.</p>
<p>Now let's switch to <code>batch</code> mode and query the current snapshot of the <code>user_rec_wide</code> table.</p>
<p>But before that, let's start the <a class="" href="https://fluss.apache.org/docs/maintenance/tiered-storage/lakehouse-storage/#start-the-datalake-tiering-service">Tiering Service</a> that allows offloading the tables as <code>Lakehouse</code> tables.</p>
<p><strong>Step 7:</strong> Open a new terminal 💻 in the <code>Coordinator Server</code> and run the following command to start the <code>Tiering Service</code>:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./bin/lakehouse.sh </span><span class="token parameter variable" style="color:rgb(156, 22 [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">./bin/lakehouse.sh </span><span class="token parameter variable" style="color:#6e59d9">-D [...]
<p>The configured checkpoint is <code>flink.execution.checkpointing.interval=30s</code> so wait a bit until the first checkpoint is created
and data gets offloading to the <code>Lakehouse</code> tables.</p>
<p><strong>Step 8:</strong> Finally let's switch to <code>batch</code> mode and query the current snapshot of the <code>user_rec_wide</code> table.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">SET </span><span class="token string" style="color:rgb(206, 145, 120)">'execution.runtime [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">SET </span><span class="token string" style="color:#1c7d4d">'execution.runtime-mode'</spa [...]
<p>🎉 That's it! You have successfully created a unified wide table using partial updates in Fluss.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://fluss.apache.org/blog/partial-updates/#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no"></a></h3>
<p>Partial updates in Fluss enable an alternative approach in how we design streaming data pipelines for enriching or joining data.</p>
@@ -1833,13 +1833,13 @@ When this configuration is enabled, the primary key table will generate an appen
Flink jobs subscribing to the table to receive an append-only stream, enabling the use of operators that do not support retraction messages,
such as Window Aggregations and Interval Joins. This feature is commonly used as a replacement for log deduplication in streaming processing,
effectively reducing costs and system complexity.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- create first_row primary key table</span><span class="to [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- create first_row primary key table</span><span c [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="versioned-merge-engine">Versioned Merge Engine<a href="https://fluss.apache.org/blog/releases/0.6/#versioned-merge-engine" class="hash-link" aria-label="Direct link to Versioned Merge Engine" title="Direct link to Versioned Merge Engine" translate="no"></a></h3>
<p>The Versioned Merge Engine supports data updates based on version numbers (or event timestamps). It ensures that only the record
with the highest version number (or event timestamp) for each primary key is retained. This mechanism is particularly useful for
deduplicating or merging out-of-order data while guaranteeing eventual consistency with the upstream data source.
In Flink streaming processing, this feature can be used as a replacement for <code>Rank</code> or <code>Deduplication</code> operations, simplifying workflows and reducing costs effectively.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- create a versioned primary key table, `ts` as the versio [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- create a versioned primary key table, `ts` as th [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="prefix-lookup-for-delta-join">Prefix Lookup for Delta Join<a href="https://fluss.apache.org/blog/releases/0.6/#prefix-lookup-for-delta-join" class="hash-link" aria-label="Direct link to Prefix Lookup for Delta Join" title="Direct link to Prefix Lookup for Delta Join" translate="no"></a></h2>
<p>In the scenario of building wide tables with Flink, optimizing Stream-Stream Join using Delta Join is one of the primary use cases for Fluss.
We have also contributed this functionality to version 0.6. Delta Join can be simply understood as a "bilateral driven lookup join", that is:
@@ -1854,7 +1854,7 @@ Delta Join addresses challenges such as high cost, unstable job, checkpoint time
<li class=""><strong>Delta Join Operator in Flink SQL</strong>: Proposed in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-486%3A+Introduce+A+New+DeltaJoin" target="_blank" rel="noopener noreferrer" class="">FLIP-486</a>, planned for Flink 2.1.</li>
</ul>
<p>Once FLIP-486 is completed, users will be able to achieve Delta Join using the following SQL in conjunction with Fluss's Prefix Lookup functionality:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<p>Flink performs lookups on Fluss tables using the Join Key, which serves as the Bucket Key for the Fluss table.
This allows it to leverage the prefix index of the primary key in the Fluss table, enabling highly efficient lookup queries.
This feature in Fluss is referred to as Prefix Lookup. Currently, Prefix Lookup can also be used to perform one-to-many lookup queries.
@@ -2003,10 +2003,10 @@ This strong consistency in data distribution provides two significant benefits:<
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="apache-flink-and-fluss">Apache Flink and Fluss<a href="https://fluss.apache.org/blog/unified-streaming-lakehouse/#apache-flink-and-fluss" class="hash-link" aria-label="Direct link to Apache Flink and Fluss" title="Direct link to Apache Flink and Fluss" translate="no"></a></h3>
<p><img decoding="async" loading="lazy" alt="Unification Solutions" src="https://fluss.apache.org/assets/images/img5-36f56d95c22f50252c6a5caedbfed1d4.png" width="1761" height="730" class="img_ev3q">
Fluss exposes a unified API to Flink users, allowing them to choose whether to use union reads or read-only reads on the Lakehouse, using the following SQL:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SELECT</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SELECT</span><span class="token plain"> </span><span class="token ope [...]
<p>This reads the complete data of the orders table and Flink will union read the data in Fluss and the Lakehouse.
If the user only needs to read data on the data lake, you can add the <code>$lake</code> suffix after the table to be read. The SQL is as follows</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE" [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#36464e" [...]
<p>For scenarios where data on a data lake is read-only, Fluss inherits all the optimizations and capabilities of the lake format as a Flink source, such as runtime filters, system table queries, and time travel.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="benefits-of-the-unified-architecture">Benefits Of The Unified Architecture<a href="https://fluss.apache.org/blog/unified-streaming-lakehouse/#benefits-of-the-unified-architecture" class="hash-link" aria-label="Direct link to Benefits Of The Unified Architecture" title="Direct link to Benefits Of The Unified Architecture" translate="no"></a></h2>
<p>Next, using Apache Paimon as an example, we will illustrate the advantages of using Fluss to build a unified architecture. We will highlight how Fluss enhances the capabilities of Paimon, creating a unified solution that combines the strengths of both systems for efficient real-time and historical data processing.</p>
diff --git a/blog/authors/index.html b/blog/authors/index.html
index b2650d2ff..7a6dc213b 100644
--- a/blog/authors/index.html
+++ b/blog/authors/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/fluss-intro/index.html b/blog/fluss-intro/index.html
index 506c6b23a..42043a7ea 100644
--- a/blog/fluss-intro/index.html
+++ b/blog/fluss-intro/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/fluss-java-client/index.html b/blog/fluss-java-client/index.html
index 46fe0277f..ef481483f 100644
--- a/blog/fluss-java-client/index.html
+++ b/blog/fluss-java-client/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -35,14 +35,14 @@ to write data to these tables and read/enrich the streaming sensor data.</p>
<p>By the end, you'll see how a sensor reading can be ingested into a log table and immediately enriched with information from a primary key table (essentially performing a real-time lookup join for streaming data enrichment).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="preflight-check">Preflight Check<a href="#preflight-check" class="hash-link" aria-label="Direct link to Preflight Check" title="Direct link to Preflight Check" translate="no"></a></h2>
<p>The full source code can be found <a href="https://github.com/ververica/ververica-fluss-examples/tree/main/fluss-java-client" target="_blank" rel="noopener noreferrer" class="">here</a>.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> compose up</s [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> compose up</span><br></s [...]
<p>The first thing we need to do is establish a connection to the Fluss cluster.
The <code>Connection</code> is the main entry point for the Fluss client, from which we obtain an <code>Admin</code> (for metadata operations) and Table instances (for data operations)</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">// Configure connection to Fluss cluster</span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">// Configure connection to Fluss cluster</span><s [...]
<p>The above code snippet shows the bare minimum requirements for connecting and interacting with a Fluss Cluster.
For our example we will use the following mock data - to keep things simple - which you can find below:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="operating-the-cluster">Operating The Cluster<a href="#operating-the-cluster" class="hash-link" aria-label="Direct link to Operating The Cluster" title="Direct link to Operating The Cluster" translate="no"></a></h2>
<p>Let's create a database for our IoT data, and within it define two tables:</p>
<ul>
@@ -53,11 +53,11 @@ For our example we will use the following mock data - to keep things simple - wh
<p>First, we'll ensure the database exists (creating it if not), then define schemas for each table and create them:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="schema-definitions">Schema Definitions<a href="#schema-definitions" class="hash-link" aria-label="Direct link to Schema Definitions" title="Direct link to Schema Definitions" translate="no"></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="log-table-sensor-readings">Log table (sensor readings)<a href="#log-table-sensor-readings" class="hash-link" aria-label="Direct link to Log table (sensor readings)" title="Direct link to Log table (sensor readings)" translate="no"></a></h4>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="primary-key-table-sensor-information">Primary Key table (sensor information)<a href="#primary-key-table-sensor-information" class="hash-link" aria-label="Direct link to Primary Key table (sensor information)" title="Direct link to Primary Key table (sensor information)" translate="no"></a></h4>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="table-creation">Table Creation<a href="#table-creation" class="hash-link" aria-label="Direct link to Table Creation" title="Direct link to Table Creation" translate="no"></a></h3>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>We specify a distribution with <code>.distributedBy(3, "sensorId")</code>.
Fluss tables are partitioned into buckets (similar to partitions in Kafka topics) for scalability.
Here we use 3 buckets, meaning data gets distributed across 3 buckets. Multiple buckets allow for higher throughput or to parallelize reads/writes.
@@ -81,15 +81,15 @@ Under the hood, the Fluss client currently expects data as <strong>GenericRow</s
<strong>GenericRow</strong> is a generic implementation of InternalRow. This allows developers to interact with data easily while Fluss processes it efficiently using the underlying binary format.</p>
</blockquote>
<p>Since we are creating <strong>Pojos</strong> though this means that we need to convert these into a GenericRow in order to write them into Fluss.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p><strong>Note:</strong> For certain data types like <code>String</code> or <code>LocalDateTime</code> we need to use certain functions like
<code>BinaryString.fromString("string_value")</code> or <code>TimestampNtz.fromLocalDateTime(datetime)</code> otherwise you might
come across some conversion exceptions.</p>
<p>Let's start by writing data to the <code>Log Table</code>. This requires getting an <code>AppendWriter</code> as follows:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">logger</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">logger</span><span class="token punctuation" style="color:rgba(0, 0, 0, 0.54)">.</span><spa [...]
<p>At this point we have successfully written 10 sensor readings to our table.</p>
<p>Next, let's write data to the <code>Primary Key Table</code>. This requires getting an <code>UpsertWriter</code> as follows:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">logger</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">logger</span><span class="token punctuation" style="color:rgba(0, 0, 0, 0.54)">.</span><spa [...]
<p>At this point we have successfully written 10 sensor information records to our table, because
updates will be handled on the primary key and merged.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="scans--lookups">Scans & Lookups<a href="#scans--lookups" class="hash-link" aria-label="Direct link to Scans & Lookups" title="Direct link to Scans & Lookups" translate="no"></a></h2>
@@ -99,13 +99,13 @@ This is a common pattern in streaming systems, often achieved with lookup joins.
<p>With the Fluss Java client, we can do this by combining a <strong>log scanner on the readings table</strong> with <strong>point lookups on the sensor information table</strong>.</p>
<p>To consume data from a Fluss table, we use a *<em>Scanner</em>.
For a log table, Fluss provides a <strong>LogScanner</strong> that allows us to <strong>subscribe to one or more buckets</strong> and poll for new records.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">LogScanner</span><span class="token plain"> logScanner [...]
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">Lookuper</span><span class="token plain"> sensorInforL [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">LogScanner</span><span class="token plain"> logScanner </span><s [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">Lookuper</span><span class="token plain"> sensorInforLookuper </ [...]
<p>We set up a scanner on the <code>sensor_readings</code> table, and next we need to subscribe to all its buckets, and then poll for any available records:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">int</span><span class="token plain"> numBuckets </span><s [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">int</span><span class="token plain"> numBuckets </span><span class= [...]
<p>Start polling for records. For each incoming record we will use the <strong>Lookuper</strong> to <code>lookup</code> sensor information from the primary key table,
and creating a <strong>SensorReadingEnriched</strong> record.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token keyword" style="color:rgb(86, 156, 214)">while</span><span class [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"> </span><span class="token keyword" style="color:#3f6ec6">while</span><span class="token pl [...]
<p>Let's summarize what's happening here:</p>
<ul>
<li class="">We create a LogScanner for the <code>sensor_readings</code> table using <em>table.newScan().createLogScanner()</em>.</li>
@@ -118,10 +118,10 @@ and creating a <strong>SensorReadingEnriched</strong> record.</p>
<p>Fluss's lookup API gives us quick primary-key retrieval from a table, which is exactly what we need to enrich the streaming data.
In a real application, this enrichment could be done on the fly in a streaming job (and indeed <strong>Fluss is designed to support high-QPS lookup joins in real-time pipelines</strong>), but here we're simulating it with client calls for clarity.</p>
<p>If you run the above code found <a href="https://github.com/ververica/ververica-fluss-examples" target="_blank" rel="noopener noreferrer" class="">here</a>, you should see an output like the following:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token number" style="color:rgb(181, 206, 168)">16</span><span class="token plain">:07:13.594 INFO </s [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token number" style="color:#d52a2a">16</span><span class="token plain">:07:13.594 INFO </span><span c [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="column-pruning-scans">Column Pruning Scans<a href="#column-pruning-scans" class="hash-link" aria-label="Direct link to Column Pruning Scans" title="Direct link to Column Pruning Scans" translate="no"></a></h2>
<p>Column pruning lets you fetch only the columns you need, <strong>reducing network overhead and improving read performance</strong>. With Fluss’s Java client, you can specify a subset of columns in your scan:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">LogScanner</span><span class="token plain"> logScanner [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">LogScanner</span><span class="token plain"> logScanner </span><s [...]
<p>Let's break this down:</p>
<ul>
<li class=""><code>.project(...)</code> instructs the client to request only the specified columns (sensorId,timestamp and temperature) from the server.</li>
@@ -129,7 +129,7 @@ In a real application, this enrichment could be done on the fly in a streaming j
<li class="">You can combine projection with filters or lookups to further optimize your data access patterns.</li>
</ul>
<p>Example output:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token number" style="color:rgb(181, 206, 168)">16</span><span class="token plain">:12:35.114 INFO </s [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token number" style="color:#d52a2a">16</span><span class="token plain">:12:35.114 INFO </span><span c [...]
<p>Notice, how only the requested columns are returned from the server.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no"></a></h2>
<p>In this blog post, we've introduced the Fluss Java Client by guiding you through a full example of creating tables, writing data, and reading/enriching data in real-time.
diff --git a/blog/fluss-joins-asf/index.html b/blog/fluss-joins-asf/index.html
index a4642fc9b..dd63c30d4 100644
--- a/blog/fluss-joins-asf/index.html
+++ b/blog/fluss-joins-asf/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/fluss-open-source/index.html b/blog/fluss-open-source/index.html
index 557730734..8c5905bc9 100644
--- a/blog/fluss-open-source/index.html
+++ b/blog/fluss-open-source/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/fluss_fraud_detection/index.html b/blog/fluss_fraud_detection/index.html
index 20f9fad6d..17f110e2c 100644
--- a/blog/fluss_fraud_detection/index.html
+++ b/blog/fluss_fraud_detection/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -116,34 +116,34 @@ The enriched fraud records are then appended to the Fluss Enriched Fraud Log Tab
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="repository-structure">Repository structure<a href="#repository-structure" class="hash-link" aria-label="Direct link to Repository structure" title="Direct link to Repository structure" translate="no"></a></h2>
<p>You can find the code explained in this blog at the following link: <a href="https://github.com/Lourousa/frauddetection" target="_blank" rel="noopener noreferrer" class="">Github</a></p>
<p>Here's the repository structure, which will be useful as reference for the following paragraphs:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">src/main/java/org/jg/</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">src/main/java/org/jg/</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-fluss-client-tables-and-record-generation">The Fluss client: tables and record generation<a href="#the-fluss-client-tables-and-record-generation" class="hash-link" aria-label="Direct link to The Fluss client: tables and record generation" title="Direct link to The Fluss client: tables and record generation" translate="no"></a></h2>
<p>A Fluss Java client acts as the data producer. In the codebase, the <code>FlussManager</code> and the <code>FlussManagerRunner</code> are the classes representing the client and its execution. The client’s role is to simulate transaction events and feed them into the Fluss tables. More specifically, the client creates the Fluss database and three tables leveraging the <a href="https://fluss.apache.org/docs/apis/java-client/" target="_blank" rel="noopener noreferrer" class="">Fluss Jav [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="transaction-log-table-append-only">Transaction Log Table (append-only)<a href="#transaction-log-table-append-only" class="hash-link" aria-label="Direct link to Transaction Log Table (append-only)" title="Direct link to Transaction Log Table (append-only)" translate="no"></a></h3>
<table><thead><tr><th>Column</th><th>Fluss Type</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td>BIGINT</td><td>Unique identifier of the transaction.</td></tr><tr><td><code>accountId</code></td><td>BIGINT</td><td>Identifier of the account the transaction belongs to.</td></tr><tr><td><code>createdAt</code></td><td>BIGINT</td><td>Creation timestamp in epoch milliseconds.</td></tr><tr><td><code>amount</code></td><td>DECIMAL</td><td>Monetary amount of the transacti [...]
<p>The table stores transactions with a retention period of 7 days. Since it is a Fluss Log table, only APPEND operations are supported.</p>
<p>Snippet from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="account-primary-table">Account Primary Table<a href="#account-primary-table" class="hash-link" aria-label="Direct link to Account Primary Table" title="Direct link to Account Primary Table" translate="no"></a></h3>
<table><thead><tr><th>Column</th><th>Fluss Type</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td>BIGINT</td><td>Unique identifier of the account. Primary key.</td></tr><tr><td><code>name</code></td><td>STRING</td><td>Name of the account holder or entity.</td></tr><tr><td><code>createdAt</code></td><td>BIGINT</td><td>Creation timestamp in epoch milliseconds.</td></tr><tr><td><code>updatedAt</code></td><td>BIGINT</td><td>Last update timestamp in epoch millisecond [...]
<p>The table stores accounts of the bank’s customers. Since it is a Fluss Primary table, INSERT, UPDATE, and DELETE operations are supported.</p>
<p>Snippet from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="enriched-fraud-log-table">Enriched Fraud Log Table<a href="#enriched-fraud-log-table" class="hash-link" aria-label="Direct link to Enriched Fraud Log Table" title="Direct link to Enriched Fraud Log Table" translate="no"></a></h3>
<table><thead><tr><th>Column</th><th>Fluss Type</th><th>Description</th></tr></thead><tbody><tr><td><code>transactionId</code></td><td>BIGINT</td><td>Identifier of the transaction flagged as fraud.</td></tr><tr><td><code>accountId</code></td><td>BIGINT</td><td>Account identifier associated with the transaction.</td></tr><tr><td><code>name</code></td><td>STRING</td><td>Name of the account holder.</td></tr></tbody></table>
<p>The table stores enriched transactions detected as fraud, with a retention period of 7 days. Since it is a Fluss Log table, only APPEND operations are supported.
This is the only table that will be tiered to the Iceberg lakehouse.</p>
<p>Snippet from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="records-generation">Records generation<a href="#records-generation" class="hash-link" aria-label="Direct link to Records generation" title="Direct link to Records generation" translate="no"></a></h3>
<p>The Fluss client needs to serialize transactions and accounts POJOs instances as <code>GenericRow</code> instances. This class implements the <code>InternalRow</code> interface that represents the binary format used to write records from the Fluss client to Fluss tables.
Here is an example of the <code>Transaction</code> POJO and the <code>TransactionSerializationSchema</code>, which extends <code>FlussSerializationSchema<Transaction></code> to override the serialize method of the <code>FlussSerializationSchema</code> interface, along with how it is used by the client generating records.</p>
<p>Transaction.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>TransactionSerializationSchema.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>Generation of transactions from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>The <code>getTransaction</code> method is repeatedly called by the client to produce transactions continuously. They are pushed in batches of ten.<br>
<!-- -->The first two transactions of each batch represent a fraudulent pattern for the same account:</p>
<ul>
@@ -155,10 +155,10 @@ For simplicity, only four accounts are generated, and each transaction belongs t
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fraud-detection-job">Fraud detection job<a href="#fraud-detection-job" class="hash-link" aria-label="Direct link to Fraud detection job" title="Direct link to Fraud detection job" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-pipeline-overview">Flink pipeline overview<a href="#flink-pipeline-overview" class="hash-link" aria-label="Direct link to Flink pipeline overview" title="Direct link to Flink pipeline overview" translate="no"></a></h3>
<p>The Fraud detection Job is based on Apache Flink. The orchestration of the streaming pipeline has been modelled by the <code>FrauDetectionJob</code> class, which is the entry point of the Flink job:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>Each step of the streaming pipeline, such as reading from the source, applying transformations, and writing to the sink, has been modeled as a strategy. These strategies are combined into the <code>FraudPipeline</code> which implements the <code>FlinkPipeline</code> interface. The <code>FlinkPipeline</code> interface is accountable to hold and combine the strategies, exposing the <code>compose</code> and <code>run</code> signatures. The <code>compose</code> method is used to chain the [...]
<p><img decoding="async" loading="lazy" alt="flinkpipe" src="/assets/images/flinkpipe-4994a4be4abc17e2d909d7bea4e067aa.jpg" width="2780" height="809" class="img_ev3q"></p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>There are 4 strategies interfaces with different accountability explained in the next paragraph.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="strategy-deep-dive">Strategy deep dive<a href="#strategy-deep-dive" class="hash-link" aria-label="Direct link to Strategy deep dive" title="Direct link to Strategy deep dive" translate="no"></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-initcatalogstrategy-interface-and-initflinkcatalogstrategy-implementation">1. InitCatalogStrategy interface and InitFlinkCatalogStrategy implementation<a href="#1-initcatalogstrategy-interface-and-initflinkcatalogstrategy-implementation" class="hash-link" aria-label="Direct link to 1. InitCatalogStrategy interface and InitFlinkCatalogStrategy implementation" title="Direct link to 1. InitCatalogStrategy interface and InitFlinkCatalogS [...]
@@ -166,16 +166,16 @@ For simplicity, only four accounts are generated, and each transaction belongs t
<p><img decoding="async" loading="lazy" alt="catstr" src="/assets/images/catstr-b31b5c6c1637afad44690e2fac0b4a47.png" width="538" height="724" class="img_ev3q"></p>
<p>The <code>InitFlinkCatalogStrategy</code> implementation, which extends <code>InitCatalogStrategy</code>, overrides the <code>init</code> method to define and activate a Flink catalog, enabling the use of the Fluss tables.</p>
<p>Snippet from InitFlinkCatalogStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-sourcestrategy-interface-and-transactionflusssourcestrategy-implementation">2. SourceStrategy interface and TransactionFlussSourceStrategy implementation<a href="#2-sourcestrategy-interface-and-transactionflusssourcestrategy-implementation" class="hash-link" aria-label="Direct link to 2. SourceStrategy interface and TransactionFlussSourceStrategy implementation" title="Direct link to 2. SourceStrategy interface and TransactionFlussSo [...]
<p>This interface represents the reading from a source and returning records with a DataStream Flink API of type <code>DataStream<T></code>, exposing the <code>createSource</code> signature.</p>
<p><img decoding="async" loading="lazy" alt="soustr" src="/assets/images/soustr-4f3749a544ecc4415f40dc84db0f56ea.png" width="513" height="693" class="img_ev3q"></p>
<p>The <code>TransactionFlussSourceStrategy</code> implementation overrides the <code>createSource</code> method to read from the Fluss Transaction table using the <a href="https://fluss.apache.org/docs/engine-flink/datastream/#datastream-source" target="_blank" rel="noopener noreferrer" class="">FlussSource</a> connector and return a <code>DataStream<Transaction></code>.</p>
<p>Snippet from TransactionFlussSourceStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<p>As you can see in the snippet below , the deserialization of the Fluss <code>LogRecord</code> from the Transaction table into the <code>Transaction</code> POJO required by the DataStream type is handled by the <code>TransactionDeserializationSchema</code> class, which extends <code>FlussDeserializationSchema</code> to override the <code>deserialize</code> method. The <code>record</code> is used to instanciate a <code>Transaction</code> POJO. The corresponding changeLog type is mapped [...]
<p>Snippet from TransactionDeserializationSchema.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-transformstrategy-interface-and-fraudtransformstrategy-implementation">3. TransformStrategy interface and FraudTransformStrategy implementation<a href="#3-transformstrategy-interface-and-fraudtransformstrategy-implementation" class="hash-link" aria-label="Direct link to 3. TransformStrategy interface and FraudTransformStrategy implementation" title="Direct link to 3. TransformStrategy interface and FraudTransformStrategy implementati [...]
<p>This interface models the transformation applied to a Datastreams. It takes a <code>Datastream<I></code>, returns <code>Datastream<O></code> exposing the <code>transform</code> method.</p>
<p><img decoding="async" loading="lazy" alt="fraudstr" src="/assets/images/fraudstr-31176a68980343cabd5b550767bd5da8.png" width="528" height="733" class="img_ev3q"></p>
@@ -192,7 +192,7 @@ A KeyedProcessFunction is the lowest-level, per-key operator in Flink that provi
</li>
</ol>
<p>FraudTransformStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p><code>FraudDetector</code> extends <code>KeyedProcessFunction<Long, Transaction, Fraud></code>, where:</p>
<ul>
<li class=""><code>Long</code> is the type of the key (the <code>accountId</code>)</li>
@@ -204,13 +204,13 @@ A KeyedProcessFunction is the lowest-level, per-key operator in Flink that provi
<li class="">If a small transaction is followed by a large transaction within one minute (processing time), emit a <code>Fraud</code>.</li>
</ul>
<p>Snippet from FraudDetector.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-enrichedfraudtransformstrategy-implementation">4. EnrichedFraudTransformStrategy implementation<a href="#4-enrichedfraudtransformstrategy-implementation" class="hash-link" aria-label="Direct link to 4. EnrichedFraudTransformStrategy implementation" title="Direct link to 4. EnrichedFraudTransformStrategy implementation" translate="no"></a></h4>
<p><img decoding="async" loading="lazy" alt="enfraudstr" src="/assets/images/enfraudstr-53373fcc802f3fc87fd70cbd86be7a70.png" width="529" height="714" class="img_ev3q"></p>
<p>The <code>EnrichedFraudTransformStrategy</code> implementation reads the <code>Datastream<Fraud></code> and perform an enrichment adding the account name for each record.
This is done switching from Flink Datastream API to Flink Table API and performing a temporal look up join against the the Fluss Account table which acts as a dimension.</p>
<p>Snipped from EnrichedFraudTransformStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<p>The <code>fraudsView</code> is a dynamic table created on top of the fraud stream.
It exposes a processing-time attribute.
For each record in <code>f</code> (<code>fraudsView</code>), the corresponding account row is looked up as it existed at the processing time of <code>f</code> (<code>f.procTime</code>).
@@ -220,16 +220,16 @@ Enriched records are converted back and returned as a <code>DataStream<Enrich
<p><img decoding="async" loading="lazy" alt="sinkstr" src="/assets/images/sinkstr-1c199122a4b4b9280f11b0090f20846b.png" width="580" height="778" class="img_ev3q"></p>
<p><code>FraudFlussSinkStrategy</code> reads the <code>Datastream<Fraud></code> and sinks record to Fluss Fraud table leveraging <a href="https://fluss.apache.org/docs/engine-flink/datastream/#datastream-sink" target="_blank" rel="noopener noreferrer" class="">FlussSink</a> sink connector.</p>
<p>FraudFlussSinkStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="lakehouse-tiering">Lakehouse tiering<a href="#lakehouse-tiering" class="hash-link" aria-label="Direct link to Lakehouse tiering" title="Direct link to Lakehouse tiering" translate="no"></a></h2>
<p>The Fluss Fraud table has been tiered to the lakehouse.
The lakehouse is based on Iceberg as the open table format and MinIO as the S3‑compatible object storage.
The Iceberg Fraud table is automatically initialized when the corresponding Fluss table is created by the Fluss client.
This is possible because Fluss syncs the metadata of the Fluss Fraud table with the corresponding Iceberg table.</p>
<p>Snippet from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>Fluss knows the lakehouse details based on the configuration of the following <code>CoordinatorServer</code> properties:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">datalake.format: iceberg</span><br></span><span class="token-line" style="color:#9CDCFE"><s [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">datalake.format: iceberg</span><br></span><span class="token-line" style="color:#36464e"><s [...]
<p>Data is synced by the Flink tiering job provided by the Fluss ecosystem, which merges new records from the Fluss Fraud table into the Iceberg Fraud table every 30 seconds (customizable).
The Iceberg table can support historical analysis performed by other compute engines able to read the format.
To learn more details about the tiering service works you can read the official <a href="https://fluss.apache.org/docs/streaming-lakehouse/overview/" target="_blank" rel="noopener noreferrer" class="">documentation</a>.</p>
diff --git a/blog/hands-on-fluss-lakehouse/index.html b/blog/hands-on-fluss-lakehouse/index.html
index cafa54132..6438ad5c2 100644
--- a/blog/hands-on-fluss-lakehouse/index.html
+++ b/blog/hands-on-fluss-lakehouse/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -36,12 +36,12 @@
<li class="">
<p>Start the Minio server</p>
<p>Run this command, specifying a local path to store your Minio data:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">minio server /tmp/minio-data</span><br></span></code></pre></div></div>
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">minio server /tmp/minio-data</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Verify the Minio WebUI.</p>
<p>When your Minio server is up and running, you'll see endpoint information and login credentials:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">API: http://192.168.2.236:9000 http://127.0.0.1:9000</span><br></span><span class="token-l [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">API: http://192.168.2.236:9000 http://127.0.0.1:9000</span><br></span><span class="token-l [...]
<p>Open the WebUI link and log in with these credentials.</p>
</li>
<li class="">
@@ -63,12 +63,12 @@
<li class="">
<p>Configure the Data Lake</p>
<p>Edit your <code><FLUSS_HOME>/conf/server.yaml</code> file and add these settings:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">data.dir</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</spa [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">data.dir</span><span class="token punctuation" style="color:rgba [...]
<p>This configures Paimon as the datalake format on Minio as the warehouse.</p>
</li>
<li class="">
<p>Start Fluss</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLUSS_HOME</span>< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLUSS_HOME</span> [...]
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-cluster-setup">Flink Cluster Setup<a href="#flink-cluster-setup" class="hash-link" aria-label="Direct link to Flink Cluster Setup" title="Direct link to Flink Cluster Setup" translate="no"></a></h3>
@@ -80,7 +80,7 @@
<li class="">
<p>Add the Fluss Connector</p>
<p>Download <code>fluss-flink-1.20-0.7.0.jar</code> from the <a href="https://fluss.apache.org/downloads/" target="_blank" rel="noopener noreferrer" class="">Fluss official site</a> and copy it to:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"><FLINK_HOME>/lib</span><br></span></code></pre></div></div>
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"><FLINK_HOME>/lib</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Add Paimon Dependencies</p>
@@ -88,16 +88,16 @@
<li class="">Download <code>paimon-flink-1.20-1.0.1.jar</code> and <code>paimon-s3-1.0.1.jar</code> from the <a href="https://paimon.apache.org/docs/1.0/project/download/" target="_blank" rel="noopener noreferrer" class="">Paimon official site</a> and place them in <code><FLINK_HOME>/lib</code>.</li>
<li class="">Copy these Paimon plugin jars from Fluss into <code><FLINK_HOME>/lib</code>:</li>
</ul>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"><FLINK_HOME>/lib/fluss-lake-paimon-0.7.0.jar</span><br></span><span class="token-line [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"><FLINK_HOME>/lib/fluss-lake-paimon-0.7.0.jar</span><br></span><span class="token-line [...]
</li>
<li class="">
<p>Increase Task Slots</p>
<p>Edit <code><FLINK_HOME>/conf/config.yaml</code> to increase available task slots:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">numberOfTaskSlots</span><span class="token punctuation" style="color:rgb(212, 212, 212 [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">numberOfTaskSlots</span><span class="token punctuation" style="c [...]
</li>
<li class="">
<p>Start Flink</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span>< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</span> [...]
</li>
<li class="">
<p>Verify</p>
@@ -112,7 +112,7 @@
</li>
<li class="">
<p>Submit the Job</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span>< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</span> [...]
</li>
<li class="">
<p>Confirm Deployment</p>
@@ -125,32 +125,32 @@
<ol>
<li class="">
<p>Launch the SQL Client</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span>< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</span> [...]
</li>
<li class="">
<p>Create the Catalog and Table</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> CATALOG fluss_catal [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> CATALOG fluss_catalog </span> [...]
</li>
<li class="">
<p>Write Some Data</p>
<p>Let's insert a couple of records:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SET</span><span class="token plain"> </span><span class="to [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SET</span><span class="token plain"> </span><span class="token string [...]
</li>
<li class="">
<p>Union Read</p>
<p>Now run a simple query to retrieve data from the table. By default, Flink will automatically combine data from both the Fluss cluster and the lakehouse:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
<p>If you want to read data only from the lake table, simply append <code>$lake</code> after the table name:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
<p>Great! Our records have been successfully synced to the data lake by the tiering service.</p>
<p>Notice the three system columns in the Paimon lake table: <code>__bucket</code>, <code>__offset</code>, and <code>__timestamp</code>. The <code>__bucket</code> column shows which bucket contains this row. The <code>__offset</code> and <code>__timestamp</code> columns are used for streaming data processing.</p>
</li>
<li class="">
<p>Streaming Inserts</p>
<p>Let's switch to streaming mode and add two more records:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
<p>Now query the lake again:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
<p>The first time we queried, our new records hadn't been synced to the lake table yet. After waiting a moment, they appeared.</p>
<p>Notice that the <code>__offset</code> and <code>__timestamp</code> values for these new records are no longer the default values. They now show the actual offset and timestamp when the records were added to the table.</p>
</li>
@@ -159,12 +159,12 @@
<p>Open the Minio WebUI, and you'll see the Paimon files in your bucket:</p>
<p><img decoding="async" loading="lazy" src="/assets/images/fluss-bucket-data-47a0df43a938f44f5671f184588fd5ef.png" width="1508" height="530" class="img_ev3q"></p>
<p>You can also check the Parquet files and manifest in your local filesystem under <code>/tmp/minio-data</code>:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">/tmp/minio-data ❯ tree .</span><br></span><span class="token-line" style="color:#9CDCFE"><s [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">/tmp/minio-data ❯ tree .</span><br></span><span class="token-line" style="color:#36464e"><s [...]
</li>
<li class="">
<p>View Snapshots</p>
<p>You can also check the snapshots from the system table by appending <code>$lake$snapshots</code> after the Fluss table name:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="summary">Summary<a href="#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no"></a></h2>
diff --git a/blog/index.html b/blog/index.html
index 5fff6418b..f348b2af8 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/page/2/index.html b/blog/page/2/index.html
index 5eceb03d6..3551ac0b9 100644
--- a/blog/page/2/index.html
+++ b/blog/page/2/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/partial-updates/index.html b/blog/partial-updates/index.html
index f2a281ba6..843a5a83c 100644
--- a/blog/partial-updates/index.html
+++ b/blog/partial-updates/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -56,17 +56,17 @@ This happens in <em>real-time</em>, so the table is <strong>always up-to-date</s
</blockquote>
<p>Start by cloning the repository, run <code>docker compose up</code> to spin up the development environment and finally grab a terminal
into the <code>jobmanager</code> and start the Flink SQL cli, by running the following command:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./bin/sql-client.sh</span><br></span></code></pre></div></div>
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">./bin/sql-client.sh</span><br></span></code></pre></div></div>
<p>Great so far ! 👍</p>
<p><strong>Step 1:</strong> The first thing we need to do is to create a Flink catalog that will be used to store the tables we are going to create.
Let's create a catalog called <code>fluss_catalog</code> and use this catalog.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> CATALOG fluss_catal [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> CATALOG fluss_catalog </span> [...]
<p><strong>Step 2:</strong> Then let's create <code>3 tables</code> to represent the different data sources that will be used to build the recommendations wide table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Recommendations – model scores</span><span class="token [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Recommendations – model scores</span><span class [...]
<p><strong>Step 3:</strong> Of course, we will need some sample data to work with , so let's go on and insert some records into the tables. 💻</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Recommendations – model scores</span><span class="token [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Impressions – how often each (user,item) was shown</span [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Clicks – user engagement</span><span class="token plain" [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Recommendations – model scores</span><span class [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Impressions – how often each (user,item) was sho [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Clicks – user engagement</span><span class="toke [...]
<blockquote>
<p><strong>Note:</strong> 🚨 So far the jobs we run were bounded jobs, so they will finish after inserting the records. Moving forward we will run some streaming jobs.
So keep in mind that each job runs with a <code>parallelism of 3</code> and our environment is set up <code>with 10 slots total</code>.
@@ -74,31 +74,31 @@ So make sure to keep an eye to the Flink Web UI to see how many slots are used a
</blockquote>
<p><strong>Step 4:</strong> At this point let's open up a separate terminal and start the Flink SQL CLI.
In this new terminal, make sure to run set the <code>result-mode</code>:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">SET </span><span class="token string" style="color:rgb(206, 145, 120)">'sql-client.e [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">SET </span><span class="token string" style="color:#1c7d4d">'sql-client.execution.re [...]
<p>and then run:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SELECT</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SELECT</span><span class="token plain"> </span><span class="token ope [...]
<p>to observe the output of the table, as we insert <code>partially</code> records into it from the different sources.</p>
<p><strong>Step 5:</strong> Let's insert the records from the <code>recommendations</code> table into the <code>user_rec_wide</code> table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Apply recommendation scores</span><span class="token pla [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Apply recommendation scores</span><span class="t [...]
<p><strong>Output:</strong> Notice, how only the related columns are updated in the <code>user_rec_wide</code> table and the rest of the columns are <code>NULL</code>.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgb(212, 212, 212)">></span> [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgba(0, 0, 0, 0.54)">></span [...]
<p><strong>Step 5:</strong> Next, let's insert the records from the <code>impressions</code> table into the <code>user_rec_wide</code> table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Apply impression counts</span><span class="token plain"> [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Apply impression counts</span><span class="token [...]
<p><strong>Output:</strong> Notice how the <code>impressions</code> records are inserted into the <code>user_rec_wide</code> table and the <code>imp_cnt</code> column is updated.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgb(212, 212, 212)">></span> [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgba(0, 0, 0, 0.54)">></span [...]
<p><strong>Step 6:</strong> Finally, let's insert the records from the <code>clicks</code> table into the <code>user_rec_wide</code> table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Apply click counts</span><span class="token plain"></spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Apply click counts</span><span class="token plai [...]
<p><strong>Output:</strong> Notice how the <code>clicks</code> records are inserted into the <code>user_rec_wide</code> table and the <code>click_cnt</code> column is updated.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgb(212, 212, 212)">></span> [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgba(0, 0, 0, 0.54)">></span [...]
<p><strong>Reminder:</strong> ‼️As mentioned before make sure to stop the jobs that are no longer needed to free up resources.</p>
<p>Now let's switch to <code>batch</code> mode and query the current snapshot of the <code>user_rec_wide</code> table.</p>
<p>But before that, let's start the <a class="" href="/docs/maintenance/tiered-storage/lakehouse-storage/#start-the-datalake-tiering-service">Tiering Service</a> that allows offloading the tables as <code>Lakehouse</code> tables.</p>
<p><strong>Step 7:</strong> Open a new terminal 💻 in the <code>Coordinator Server</code> and run the following command to start the <code>Tiering Service</code>:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./bin/lakehouse.sh </span><span class="token parameter variable" style="color:rgb(156, 22 [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">./bin/lakehouse.sh </span><span class="token parameter variable" style="color:#6e59d9">-D [...]
<p>The configured checkpoint is <code>flink.execution.checkpointing.interval=30s</code> so wait a bit until the first checkpoint is created
and data gets offloading to the <code>Lakehouse</code> tables.</p>
<p><strong>Step 8:</strong> Finally let's switch to <code>batch</code> mode and query the current snapshot of the <code>user_rec_wide</code> table.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">SET </span><span class="token string" style="color:rgb(206, 145, 120)">'execution.ru [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">SET </span><span class="token string" style="color:#1c7d4d">'execution.runtime-mode& [...]
<p>🎉 That's it! You have successfully created a unified wide table using partial updates in Fluss.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no"></a></h3>
<p>Partial updates in Fluss enable an alternative approach in how we design streaming data pipelines for enriching or joining data.</p>
diff --git a/blog/pk-key-tables-log-cache-streaming/index.html b/blog/pk-key-tables-log-cache-streaming/index.html
index c4b5f1c96..5368fee02 100644
--- a/blog/pk-key-tables-log-cache-streaming/index.html
+++ b/blog/pk-key-tables-log-cache-streaming/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/releases/0.6/index.html b/blog/releases/0.6/index.html
index 8272887e9..55084f8a7 100644
--- a/blog/releases/0.6/index.html
+++ b/blog/releases/0.6/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -71,13 +71,13 @@ When this configuration is enabled, the primary key table will generate an appen
Flink jobs subscribing to the table to receive an append-only stream, enabling the use of operators that do not support retraction messages,
such as Window Aggregations and Interval Joins. This feature is commonly used as a replacement for log deduplication in streaming processing,
effectively reducing costs and system complexity.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- create first_row primary key table</span><span class="to [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- create first_row primary key table</span><span c [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="versioned-merge-engine">Versioned Merge Engine<a href="#versioned-merge-engine" class="hash-link" aria-label="Direct link to Versioned Merge Engine" title="Direct link to Versioned Merge Engine" translate="no"></a></h3>
<p>The Versioned Merge Engine supports data updates based on version numbers (or event timestamps). It ensures that only the record
with the highest version number (or event timestamp) for each primary key is retained. This mechanism is particularly useful for
deduplicating or merging out-of-order data while guaranteeing eventual consistency with the upstream data source.
In Flink streaming processing, this feature can be used as a replacement for <code>Rank</code> or <code>Deduplication</code> operations, simplifying workflows and reducing costs effectively.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- create a versioned primary key table, `ts` as the versio [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- create a versioned primary key table, `ts` as th [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="prefix-lookup-for-delta-join">Prefix Lookup for Delta Join<a href="#prefix-lookup-for-delta-join" class="hash-link" aria-label="Direct link to Prefix Lookup for Delta Join" title="Direct link to Prefix Lookup for Delta Join" translate="no"></a></h2>
<p>In the scenario of building wide tables with Flink, optimizing Stream-Stream Join using Delta Join is one of the primary use cases for Fluss.
We have also contributed this functionality to version 0.6. Delta Join can be simply understood as a "bilateral driven lookup join", that is:
@@ -92,7 +92,7 @@ Delta Join addresses challenges such as high cost, unstable job, checkpoint time
<li class=""><strong>Delta Join Operator in Flink SQL</strong>: Proposed in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-486%3A+Introduce+A+New+DeltaJoin" target="_blank" rel="noopener noreferrer" class="">FLIP-486</a>, planned for Flink 2.1.</li>
</ul>
<p>Once FLIP-486 is completed, users will be able to achieve Delta Join using the following SQL in conjunction with Fluss's Prefix Lookup functionality:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<p>Flink performs lookups on Fluss tables using the Join Key, which serves as the Bucket Key for the Fluss table.
This allows it to leverage the prefix index of the primary key in the Fluss table, enabling highly efficient lookup queries.
This feature in Fluss is referred to as Prefix Lookup. Currently, Prefix Lookup can also be used to perform one-to-many lookup queries.
diff --git a/blog/releases/0.7/index.html b/blog/releases/0.7/index.html
index 9c01886d8..296baf54d 100644
--- a/blog/releases/0.7/index.html
+++ b/blog/releases/0.7/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -81,7 +81,7 @@ While convenient, this approach restricted deployment flexibility, particularly
Fluss 0.7 now addresses this by supporting <strong>native job submission via standard Flink commands</strong> (<code>flink run</code>).
This enhancement ensures broad compatibility with various deployment modes while significantly lowering learning and integration costs.
The following is an example of how to submit the lake tiering service using the native Flink command:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">flink run /path/to/fluss-flink-tiering-0.7.0.jar </span><span class="token punctuation" sty [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">flink run /path/to/fluss-flink-tiering-0.7.0.jar </span><span class="token punctuation" sty [...]
<p>See more details in the <a class="" href="/docs/maintenance/tiered-storage/lakehouse-storage/">Streaming Lakehouse documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="streaming-partition-pruning">Streaming Partition Pruning<a href="#streaming-partition-pruning" class="hash-link" aria-label="Direct link to Streaming Partition Pruning" title="Direct link to Streaming Partition Pruning" translate="no"></a></h2>
<p>Partitioning is a foundational technique in modern data warehouses and Lakehouse architectures for optimizing query performance by
@@ -113,12 +113,12 @@ Fluss introduced a plugin-based authentication with built-in <strong>SASL/PLAIN<
Fluss implements fine-grained permission control through the <strong>ACL</strong> (Access Control List) mechanism, supporting multi-level access control at the Cluster, Database, and Table levels.</p>
<p>Additionally, we've integrated Flink SQL's <code>CALL</code> statements to ease ACL permission management for users.
For instance, granting read access to the <code>mydb</code> database for user <code>Tim</code> can now be accomplished with the following command:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CALL</span><span class="token plain"> admin_catalog</span>< [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CALL</span><span class="token plain"> admin_catalog</span><span class [...]
<p>For details, please refer to the <a class="" href="/docs/security/overview/">Security documentation</a> and quickstarts.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-datastream-connector">Flink DataStream Connector<a href="#flink-datastream-connector" class="hash-link" aria-label="Direct link to Flink DataStream Connector" title="Direct link to Flink DataStream Connector" translate="no"></a></h2>
<p>Fluss 0.7 officially introduces the DataStream Connector, supporting both Source and Sink for reading and writing log and primary key tables. Users can now seamlessly integrate Fluss tables into Flink DataStream pipelines.</p>
<p>Here’s an example of reading data from a Fluss table into a Flink DataStream:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">FlussSource</span><span class="token generics punctuat [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">FlussSource</span><span class="token generics punctuation" style [...]
<p>For usage examples and configuration parameters, see the <a class="" href="/docs/engine-flink/datastream/">DataStream Connector documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluss-java-client">Fluss Java Client<a href="#fluss-java-client" class="hash-link" aria-label="Direct link to Fluss Java Client" title="Direct link to Fluss Java Client" translate="no"></a></h2>
<p>In this version, we officially release the Fluss Java Client, a client library designed for developers working with structured stream tables. The client includes two core API modules:</p>
diff --git a/blog/releases/0.8/index.html b/blog/releases/0.8/index.html
index 1b04f591d..994b85bac 100644
--- a/blog/releases/0.8/index.html
+++ b/blog/releases/0.8/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -49,7 +49,7 @@ which automatically merges small files and maintains optimized Iceberg snapshots
<li class=""><strong>Lower Cost</strong>: Reduce storage cost by tiering cold data to Iceberg while keeping hot data in Fluss, eliminating the need for duplicate storage.</li>
<li class=""><strong>Lower Latency</strong>: Sub-second data freshness for Iceberg tables by Union Read from Fluss and Iceberg.</li>
</ul>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)"># Icebe [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic" [...]
<p>You can find more detailed instructions in the <a class="" href="/docs/streaming-lakehouse/integrate-data-lakes/iceberg/">Iceberg Lakehouse documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="real-time-multimodal-ai-analytics-with-lance">Real-Time Multimodal AI Analytics with Lance<a href="#real-time-multimodal-ai-analytics-with-lance" class="hash-link" aria-label="Direct link to Real-Time Multimodal AI Analytics with Lance" title="Direct link to Real-Time Multimodal AI Analytics with Lance" translate="no"></a></h2>
<p>Another major enhancement in Fluss 0.8 is the addition of <strong>Streaming Lakehouse support for <a href="https://github.com/lancedb/lance" target="_blank" rel="noopener noreferrer" class="">Lance</a></strong> (<a href="https://cwiki.apache.org/confluence/display/FLUSS/FIP-5%3A+Support+tiering+Fluss+data+to+Lance" target="_blank" rel="noopener noreferrer" class="">FIP-5</a>),
@@ -66,7 +66,7 @@ enabling fast synchronization between streaming pipelines and downstream ML or r
<li class=""><strong>Simplified architecture</strong>: Eliminates complex ETL pipelines between streaming systems and vector databases.</li>
</ul>
<p>Seamless integration: combines Fluss’s high-throughput streaming engine with Lance’s efficient columnar persistence for consistent, multi-modal data management.</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">datalake.format</span><span class="t [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">datalake.forma [...]
<p>See the <a href="https://lancedb.com/blog/fluss-integration/" target="_blank" rel="noopener noreferrer" class="">LanceDB blog post</a> for the full integration. You also can find more detailed instructions in the <a class="" href="/docs/streaming-lakehouse/integrate-data-lakes/lance/">Lance Lakehouse documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-21">Flink 2.1<a href="#flink-21" class="hash-link" aria-label="Direct link to Flink 2.1" title="Direct link to Flink 2.1" translate="no"></a></h2>
<p>Apache Fluss is now fully compatible with <strong>Apache Flink 2.1</strong>, ensuring seamless integration with the latest Flink runtime and APIs.
@@ -88,7 +88,7 @@ With Fluss as the underlying streaming source, users can declaratively build rea
This integration unifies batch and streaming ETL: Fluss delivers high-throughput, low-latency data, while Flink continuously maintains derived tables for analytics,
APIs, and downstream workloads, providing real-time, consistent data pipelines with minimal operational overhead.
This integration further strengthens the batch & stream unification.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- 1. creat [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>You can find more detailed instructions in the <a class="" href="/docs/engine-flink/ddl/#materialized-table">Materialized Table documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="stability">Stability<a href="#stability" class="hash-link" aria-label="Direct link to Stability" title="Direct link to Stability" translate="no"></a></h2>
<p>In this release, we have made significant improvements in the stability and reliability of Apache Fluss under large-scale production workloads.
@@ -107,10 +107,10 @@ These improvements substantially enhance Fluss’s robustness in mission-critica
<p>Starting with Fluss version 0.8, certain <strong>cluster-level configurations</strong> and <strong>table-level configurations</strong> can be updated dynamically, without requiring a cluster restart or table recreation. This enables operators and developers to adjust system behavior in real time, improving operational agility and minimizing downtime.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dynamic-cluster-configs">Dynamic Cluster Configs<a href="#dynamic-cluster-configs" class="hash-link" aria-label="Direct link to Dynamic Cluster Configs" title="Direct link to Dynamic Cluster Configs" translate="no"></a></h3>
<p>Fluss now supports runtime updates for cluster configuration parameters. These changes take effect immediately across the cluster after being applied through the API.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Java Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">Admi [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Java Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">Admin</span><s [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dynamic-table-configs">Dynamic Table Configs<a href="#dynamic-table-configs" class="hash-link" aria-label="Direct link to Dynamic Table Configs" title="Direct link to Dynamic Table Configs" translate="no"></a></h3>
<p>Fluss now supports update options dynamically on a table using the <code>ALTER TABLE ... SET</code> statement. This supports all the client-wise options (like <code>scan.startup.mode</code>) and some storage-wise options (like <code>table.datalake.enabled</code>).</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Enable l [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>When you issue a <code>ALTER TABLE ... SET</code> command to update storage options on a table, the Fluss cluster validates and applies the new configuration immediately. The updated settings are propagated to all TabletServers and CoordinatorServer components, ensuring consistent behavior going forward.</p>
<p>This capability is especially useful for tuning performance, adapting to changing data patterns, or complying with evolving data governance requirements—all without service interruption.</p>
<p>You can find more detailed instructions in the <a class="" href="/docs/maintenance/operations/updating-configs/">Updating Configs documentation</a>.</p>
diff --git a/blog/rss.xml b/blog/rss.xml
index b7657fe50..b62d70afd 100644
--- a/blog/rss.xml
+++ b/blog/rss.xml
@@ -108,34 +108,34 @@ The enriched fraud records are then appended to the Fluss Enriched Fraud Log Tab
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="repository-structure">Repository structure<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#repository-structure" class="hash-link" aria-label="Direct link to Repository structure" title="Direct link to Repository structure" translate="no"></a></h2>
<p>You can find the code explained in this blog at the following link: <a href="https://github.com/Lourousa/frauddetection" target="_blank" rel="noopener noreferrer" class="">Github</a></p>
<p>Here's the repository structure, which will be useful as reference for the following paragraphs:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">src/main/java/org/jg/</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">src/main/java/org/jg/</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-fluss-client-tables-and-record-generation">The Fluss client: tables and record generation<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#the-fluss-client-tables-and-record-generation" class="hash-link" aria-label="Direct link to The Fluss client: tables and record generation" title="Direct link to The Fluss client: tables and record generation" translate="no"></a></h2>
<p>A Fluss Java client acts as the data producer. In the codebase, the <code>FlussManager</code> and the <code>FlussManagerRunner</code> are the classes representing the client and its execution. The client’s role is to simulate transaction events and feed them into the Fluss tables. More specifically, the client creates the Fluss database and three tables leveraging the <a href="https://fluss.apache.org/docs/apis/java-client/" target="_blank" rel="noopener noreferrer" class="">Fluss Jav [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="transaction-log-table-append-only">Transaction Log Table (append-only)<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#transaction-log-table-append-only" class="hash-link" aria-label="Direct link to Transaction Log Table (append-only)" title="Direct link to Transaction Log Table (append-only)" translate="no"></a></h3>
<table><thead><tr><th>Column</th><th>Fluss Type</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td>BIGINT</td><td>Unique identifier of the transaction.</td></tr><tr><td><code>accountId</code></td><td>BIGINT</td><td>Identifier of the account the transaction belongs to.</td></tr><tr><td><code>createdAt</code></td><td>BIGINT</td><td>Creation timestamp in epoch milliseconds.</td></tr><tr><td><code>amount</code></td><td>DECIMAL</td><td>Monetary amount of the transacti [...]
<p>The table stores transactions with a retention period of 7 days. Since it is a Fluss Log table, only APPEND operations are supported.</p>
<p>Snippet from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="account-primary-table">Account Primary Table<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#account-primary-table" class="hash-link" aria-label="Direct link to Account Primary Table" title="Direct link to Account Primary Table" translate="no"></a></h3>
<table><thead><tr><th>Column</th><th>Fluss Type</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td>BIGINT</td><td>Unique identifier of the account. Primary key.</td></tr><tr><td><code>name</code></td><td>STRING</td><td>Name of the account holder or entity.</td></tr><tr><td><code>createdAt</code></td><td>BIGINT</td><td>Creation timestamp in epoch milliseconds.</td></tr><tr><td><code>updatedAt</code></td><td>BIGINT</td><td>Last update timestamp in epoch millisecond [...]
<p>The table stores accounts of the bank’s customers. Since it is a Fluss Primary table, INSERT, UPDATE, and DELETE operations are supported.</p>
<p>Snippet from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="enriched-fraud-log-table">Enriched Fraud Log Table<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#enriched-fraud-log-table" class="hash-link" aria-label="Direct link to Enriched Fraud Log Table" title="Direct link to Enriched Fraud Log Table" translate="no"></a></h3>
<table><thead><tr><th>Column</th><th>Fluss Type</th><th>Description</th></tr></thead><tbody><tr><td><code>transactionId</code></td><td>BIGINT</td><td>Identifier of the transaction flagged as fraud.</td></tr><tr><td><code>accountId</code></td><td>BIGINT</td><td>Account identifier associated with the transaction.</td></tr><tr><td><code>name</code></td><td>STRING</td><td>Name of the account holder.</td></tr></tbody></table>
<p>The table stores enriched transactions detected as fraud, with a retention period of 7 days. Since it is a Fluss Log table, only APPEND operations are supported.
This is the only table that will be tiered to the Iceberg lakehouse.</p>
<p>Snippet from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="records-generation">Records generation<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#records-generation" class="hash-link" aria-label="Direct link to Records generation" title="Direct link to Records generation" translate="no"></a></h3>
<p>The Fluss client needs to serialize transactions and accounts POJOs instances as <code>GenericRow</code> instances. This class implements the <code>InternalRow</code> interface that represents the binary format used to write records from the Fluss client to Fluss tables.
Here is an example of the <code>Transaction</code> POJO and the <code>TransactionSerializationSchema</code>, which extends <code>FlussSerializationSchema<Transaction></code> to override the serialize method of the <code>FlussSerializationSchema</code> interface, along with how it is used by the client generating records.</p>
<p>Transaction.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>TransactionSerializationSchema.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>Generation of transactions from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>The <code>getTransaction</code> method is repeatedly called by the client to produce transactions continuously. They are pushed in batches of ten.<br>
<!-- -->The first two transactions of each batch represent a fraudulent pattern for the same account:</p>
<ul>
@@ -147,10 +147,10 @@ For simplicity, only four accounts are generated, and each transaction belongs t
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fraud-detection-job">Fraud detection job<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#fraud-detection-job" class="hash-link" aria-label="Direct link to Fraud detection job" title="Direct link to Fraud detection job" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-pipeline-overview">Flink pipeline overview<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#flink-pipeline-overview" class="hash-link" aria-label="Direct link to Flink pipeline overview" title="Direct link to Flink pipeline overview" translate="no"></a></h3>
<p>The Fraud detection Job is based on Apache Flink. The orchestration of the streaming pipeline has been modelled by the <code>FrauDetectionJob</code> class, which is the entry point of the Flink job:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>Each step of the streaming pipeline, such as reading from the source, applying transformations, and writing to the sink, has been modeled as a strategy. These strategies are combined into the <code>FraudPipeline</code> which implements the <code>FlinkPipeline</code> interface. The <code>FlinkPipeline</code> interface is accountable to hold and combine the strategies, exposing the <code>compose</code> and <code>run</code> signatures. The <code>compose</code> method is used to chain the [...]
<p><img decoding="async" loading="lazy" alt="flinkpipe" src="https://fluss.apache.org/assets/images/flinkpipe-4994a4be4abc17e2d909d7bea4e067aa.jpg" width="2780" height="809" class="img_ev3q"></p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>There are 4 strategies interfaces with different accountability explained in the next paragraph.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="strategy-deep-dive">Strategy deep dive<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#strategy-deep-dive" class="hash-link" aria-label="Direct link to Strategy deep dive" title="Direct link to Strategy deep dive" translate="no"></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-initcatalogstrategy-interface-and-initflinkcatalogstrategy-implementation">1. InitCatalogStrategy interface and InitFlinkCatalogStrategy implementation<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#1-initcatalogstrategy-interface-and-initflinkcatalogstrategy-implementation" class="hash-link" aria-label="Direct link to 1. InitCatalogStrategy interface and InitFlinkCatalogStrategy implementation" title="Direct link to 1. [...]
@@ -158,16 +158,16 @@ For simplicity, only four accounts are generated, and each transaction belongs t
<p><img decoding="async" loading="lazy" alt="catstr" src="https://fluss.apache.org/assets/images/catstr-b31b5c6c1637afad44690e2fac0b4a47.png" width="538" height="724" class="img_ev3q"></p>
<p>The <code>InitFlinkCatalogStrategy</code> implementation, which extends <code>InitCatalogStrategy</code>, overrides the <code>init</code> method to define and activate a Flink catalog, enabling the use of the Fluss tables.</p>
<p>Snippet from InitFlinkCatalogStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-sourcestrategy-interface-and-transactionflusssourcestrategy-implementation">2. SourceStrategy interface and TransactionFlussSourceStrategy implementation<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#2-sourcestrategy-interface-and-transactionflusssourcestrategy-implementation" class="hash-link" aria-label="Direct link to 2. SourceStrategy interface and TransactionFlussSourceStrategy implementation" title="Direct link t [...]
<p>This interface represents the reading from a source and returning records with a DataStream Flink API of type <code>DataStream<T></code>, exposing the <code>createSource</code> signature.</p>
<p><img decoding="async" loading="lazy" alt="soustr" src="https://fluss.apache.org/assets/images/soustr-4f3749a544ecc4415f40dc84db0f56ea.png" width="513" height="693" class="img_ev3q"></p>
<p>The <code>TransactionFlussSourceStrategy</code> implementation overrides the <code>createSource</code> method to read from the Fluss Transaction table using the <a href="https://fluss.apache.org/docs/engine-flink/datastream/#datastream-source" target="_blank" rel="noopener noreferrer" class="">FlussSource</a> connector and return a <code>DataStream<Transaction></code>.</p>
<p>Snippet from TransactionFlussSourceStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<p>As you can see in the snippet below , the deserialization of the Fluss <code>LogRecord</code> from the Transaction table into the <code>Transaction</code> POJO required by the DataStream type is handled by the <code>TransactionDeserializationSchema</code> class, which extends <code>FlussDeserializationSchema</code> to override the <code>deserialize</code> method. The <code>record</code> is used to instanciate a <code>Transaction</code> POJO. The corresponding changeLog type is mapped [...]
<p>Snippet from TransactionDeserializationSchema.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-transformstrategy-interface-and-fraudtransformstrategy-implementation">3. TransformStrategy interface and FraudTransformStrategy implementation<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#3-transformstrategy-interface-and-fraudtransformstrategy-implementation" class="hash-link" aria-label="Direct link to 3. TransformStrategy interface and FraudTransformStrategy implementation" title="Direct link to 3. TransformStrate [...]
<p>This interface models the transformation applied to a Datastreams. It takes a <code>Datastream<I></code>, returns <code>Datastream<O></code> exposing the <code>transform</code> method.</p>
<p><img decoding="async" loading="lazy" alt="fraudstr" src="https://fluss.apache.org/assets/images/fraudstr-31176a68980343cabd5b550767bd5da8.png" width="528" height="733" class="img_ev3q"></p>
@@ -184,7 +184,7 @@ A KeyedProcessFunction is the lowest-level, per-key operator in Flink that provi
</li>
</ol>
<p>FraudTransformStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p><code>FraudDetector</code> extends <code>KeyedProcessFunction<Long, Transaction, Fraud></code>, where:</p>
<ul>
<li class=""><code>Long</code> is the type of the key (the <code>accountId</code>)</li>
@@ -196,13 +196,13 @@ A KeyedProcessFunction is the lowest-level, per-key operator in Flink that provi
<li class="">If a small transaction is followed by a large transaction within one minute (processing time), emit a <code>Fraud</code>.</li>
</ul>
<p>Snippet from FraudDetector.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-enrichedfraudtransformstrategy-implementation">4. EnrichedFraudTransformStrategy implementation<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#4-enrichedfraudtransformstrategy-implementation" class="hash-link" aria-label="Direct link to 4. EnrichedFraudTransformStrategy implementation" title="Direct link to 4. EnrichedFraudTransformStrategy implementation" translate="no"></a></h4>
<p><img decoding="async" loading="lazy" alt="enfraudstr" src="https://fluss.apache.org/assets/images/enfraudstr-53373fcc802f3fc87fd70cbd86be7a70.png" width="529" height="714" class="img_ev3q"></p>
<p>The <code>EnrichedFraudTransformStrategy</code> implementation reads the <code>Datastream<Fraud></code> and perform an enrichment adding the account name for each record.
This is done switching from Flink Datastream API to Flink Table API and performing a temporal look up join against the the Fluss Account table which acts as a dimension.</p>
<p>Snipped from EnrichedFraudTransformStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<p>The <code>fraudsView</code> is a dynamic table created on top of the fraud stream.
It exposes a processing-time attribute.
For each record in <code>f</code> (<code>fraudsView</code>), the corresponding account row is looked up as it existed at the processing time of <code>f</code> (<code>f.procTime</code>).
@@ -212,16 +212,16 @@ Enriched records are converted back and returned as a <code>DataStream<Enrich
<p><img decoding="async" loading="lazy" alt="sinkstr" src="https://fluss.apache.org/assets/images/sinkstr-1c199122a4b4b9280f11b0090f20846b.png" width="580" height="778" class="img_ev3q"></p>
<p><code>FraudFlussSinkStrategy</code> reads the <code>Datastream<Fraud></code> and sinks record to Fluss Fraud table leveraging <a href="https://fluss.apache.org/docs/engine-flink/datastream/#datastream-sink" target="_blank" rel="noopener noreferrer" class="">FlussSink</a> sink connector.</p>
<p>FraudFlussSinkStrategy.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="lakehouse-tiering">Lakehouse tiering<a href="https://fluss.apache.org/blog/fluss_fraud_detection/#lakehouse-tiering" class="hash-link" aria-label="Direct link to Lakehouse tiering" title="Direct link to Lakehouse tiering" translate="no"></a></h2>
<p>The Fluss Fraud table has been tiered to the lakehouse.
The lakehouse is based on Iceberg as the open table format and MinIO as the S3‑compatible object storage.
The Iceberg Fraud table is automatically initialized when the corresponding Fluss table is created by the Fluss client.
This is possible because Fluss syncs the metadata of the Fluss Fraud table with the corresponding Iceberg table.</p>
<p>Snippet from FlussManager.java</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>Fluss knows the lakehouse details based on the configuration of the following <code>CoordinatorServer</code> properties:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">datalake.format: iceberg</span><br></span><span class="token-line" style="color:#9CDCFE"><s [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">datalake.format: iceberg</span><br></span><span class="token-line" style="color:#36464e"><s [...]
<p>Data is synced by the Flink tiering job provided by the Fluss ecosystem, which merges new records from the Fluss Fraud table into the Iceberg Fraud table every 30 seconds (customizable).
The Iceberg table can support historical analysis performed by other compute engines able to read the format.
To learn more details about the tiering service works you can read the official <a href="https://fluss.apache.org/docs/streaming-lakehouse/overview/" target="_blank" rel="noopener noreferrer" class="">documentation</a>.</p>
@@ -295,12 +295,12 @@ Think of your data as having two thermal zones:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="gap-2-polling-based-reads-create-latency-multiplication">Gap 2: Polling-Based Reads Create Latency Multiplication<a href="https://fluss.apache.org/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/#gap-2-polling-based-reads-create-latency-multiplication" class="hash-link" aria-label="Direct link to Gap 2: Polling-Based Reads Create Latency Multiplication" title="Direct link to Gap 2: Polling-Based Reads Create L [...]
<p>Iceberg doesn't have a push-based notification system. Streaming readers poll for new snapshots.</p>
<p><strong>Latency Breakdown:</strong></p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">1. Writer commits snapshot → 0ms</span><br></span><span class="token-line" sty [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">1. Writer commits snapshot → 0ms</span><br></span><span class="token-line" sty [...]
<p>Compare this to a push model where producers write and consumers immediately receive notifications. End-to-end latency drops to <strong>single-digit milliseconds</strong>.</p>
<p>For real-time dashboards, fraud detection, or operational analytics requiring sub-second freshness, this polling latency is a non-starter.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="gap-3-primary-key-support-is-declarative-not-enforced">Gap 3: Primary Key Support Is Declarative, Not Enforced<a href="https://fluss.apache.org/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/#gap-3-primary-key-support-is-declarative-not-enforced" class="hash-link" aria-label="Direct link to Gap 3: Primary Key Support Is Declarative, Not Enforced" title="Direct link to Gap 3: Primary Key Support Is Declarative [...]
<p>Iceberg V2 tables accept PRIMARY KEY declarations in DDL:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<p>However, Iceberg <strong>does not enforce</strong> primary keys:</p>
<ul>
<li class="">❌ No uniqueness validation on write</li>
@@ -334,7 +334,7 @@ Think of your data as having two thermal zones:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="solution-2-primary-key-tables-with-native-upsert-support">Solution 2: Primary Key Tables with Native Upsert Support<a href="https://fluss.apache.org/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/#solution-2-primary-key-tables-with-native-upsert-support" class="hash-link" aria-label="Direct link to Solution 2: Primary Key Tables with Native Upsert Support" title="Direct link to Solution 2: Primary Key Tables [...]
<p><strong>Addresses:</strong> Gap 3 (Primary Key Not Enforced) & Gap 4 (Update Write Amplification)</p>
<p>Fluss provides first-class primary key semantics using an LSM tree architecture:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">┌─────────────────────────────────────────────────┐</span><br></span><span class="token-lin [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">┌─────────────────────────────────────────────────┐</span><br></span><span class="token-lin [...]
<p><strong>How it works:</strong></p>
<p>When you write to a primary key table, Fluss:</p>
<ol>
@@ -364,7 +364,7 @@ Think of your data as having two thermal zones:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="solution-3-unified-ingestion-with-automatic-tiering">Solution 3: Unified Ingestion with Automatic Tiering<a href="https://fluss.apache.org/blog/2025/12/02/fluss-x-iceberg-why-your-lakehouse-is-not-streamhouse-yet/#solution-3-unified-ingestion-with-automatic-tiering" class="hash-link" aria-label="Direct link to Solution 3: Unified Ingestion with Automatic Tiering" title="Direct link to Solution 3: Unified Ingestion with Automatic Tierin [...]
<p><strong>Addresses:</strong> All gaps by offloading real-time complexity from Iceberg</p>
<p><strong>Architecture Flow:</strong></p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Application</span><br></span><span class="token-line" style="color:#9CDCFE"><span class="to [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Application</span><br></span><span class="token-line" style="color:#36464e"><span class="to [...]
<p><strong>Tiering Service Architecture:</strong></p>
<p>Stateless Flink jobs: Multiple jobs register with the Fluss Coordinator Server. The coordinator assigns tables to jobs via an in-memory queue. Each job processes one table at a time, commits results, and requests the next table.</p>
<p><strong>Key Capabilities:</strong></p>
@@ -424,10 +424,10 @@ Think of your data as having two thermal zones:</p>
<li class=""><strong>Efficient process/integration for query engines:</strong> Optimized for Flink, StarRocks, Spark</li>
</ul>
<p><strong>SQL Syntax (Apache Flink):</strong></p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Automatic union read (default behavior)</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Automatic union read (default behavior)</span><s [...]
<p><strong>Consistency Guarantees:</strong></p>
<p>The tiering service embeds Fluss offset metadata in Iceberg snapshot summaries:</p>
-<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token punctuation" style="color:rgb(212, 212, 212)">{</span><span class="token plain"></span><br></span> [...]
+<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token punctuation" style="color:rgba(0, 0, 0, 0.54)">{</span><span class="token plain"></span><br></span [...]
<p>Fluss coordinator persists this mapping. When clients query, they receive the exact offset boundary. Union read logic ensures:</p>
<ul>
<li class=""><strong>No overlaps:</strong> Iceberg handles offsets ≤ boundary</li>
@@ -518,7 +518,7 @@ which automatically merges small files and maintains optimized Iceberg snapshots
<li class=""><strong>Lower Cost</strong>: Reduce storage cost by tiering cold data to Iceberg while keeping hot data in Fluss, eliminating the need for duplicate storage.</li>
<li class=""><strong>Lower Latency</strong>: Sub-second data freshness for Iceberg tables by Union Read from Fluss and Iceberg.</li>
</ul>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)"># Icebe [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic" [...]
<p>You can find more detailed instructions in the <a class="" href="https://fluss.apache.org/docs/streaming-lakehouse/integrate-data-lakes/iceberg/">Iceberg Lakehouse documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="real-time-multimodal-ai-analytics-with-lance">Real-Time Multimodal AI Analytics with Lance<a href="https://fluss.apache.org/blog/releases/0.8/#real-time-multimodal-ai-analytics-with-lance" class="hash-link" aria-label="Direct link to Real-Time Multimodal AI Analytics with Lance" title="Direct link to Real-Time Multimodal AI Analytics with Lance" translate="no"></a></h2>
<p>Another major enhancement in Fluss 0.8 is the addition of <strong>Streaming Lakehouse support for <a href="https://github.com/lancedb/lance" target="_blank" rel="noopener noreferrer" class="">Lance</a></strong> (<a href="https://cwiki.apache.org/confluence/display/FLUSS/FIP-5%3A+Support+tiering+Fluss+data+to+Lance" target="_blank" rel="noopener noreferrer" class="">FIP-5</a>),
@@ -535,7 +535,7 @@ enabling fast synchronization between streaming pipelines and downstream ML or r
<li class=""><strong>Simplified architecture</strong>: Eliminates complex ETL pipelines between streaming systems and vector databases.</li>
</ul>
<p>Seamless integration: combines Fluss’s high-throughput streaming engine with Lance’s efficient columnar persistence for consistent, multi-modal data management.</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">datalake.format</span><span class="t [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">datalake.forma [...]
<p>See the <a href="https://lancedb.com/blog/fluss-integration/" target="_blank" rel="noopener noreferrer" class="">LanceDB blog post</a> for the full integration. You also can find more detailed instructions in the <a class="" href="https://fluss.apache.org/docs/streaming-lakehouse/integrate-data-lakes/lance/">Lance Lakehouse documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-21">Flink 2.1<a href="https://fluss.apache.org/blog/releases/0.8/#flink-21" class="hash-link" aria-label="Direct link to Flink 2.1" title="Direct link to Flink 2.1" translate="no"></a></h2>
<p>Apache Fluss is now fully compatible with <strong>Apache Flink 2.1</strong>, ensuring seamless integration with the latest Flink runtime and APIs.
@@ -557,7 +557,7 @@ With Fluss as the underlying streaming source, users can declaratively build rea
This integration unifies batch and streaming ETL: Fluss delivers high-throughput, low-latency data, while Flink continuously maintains derived tables for analytics,
APIs, and downstream workloads, providing real-time, consistent data pipelines with minimal operational overhead.
This integration further strengthens the batch & stream unification.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- 1. creat [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>You can find more detailed instructions in the <a class="" href="https://fluss.apache.org/docs/engine-flink/ddl/#materialized-table">Materialized Table documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="stability">Stability<a href="https://fluss.apache.org/blog/releases/0.8/#stability" class="hash-link" aria-label="Direct link to Stability" title="Direct link to Stability" translate="no"></a></h2>
<p>In this release, we have made significant improvements in the stability and reliability of Apache Fluss under large-scale production workloads.
@@ -576,10 +576,10 @@ These improvements substantially enhance Fluss’s robustness in mission-critica
<p>Starting with Fluss version 0.8, certain <strong>cluster-level configurations</strong> and <strong>table-level configurations</strong> can be updated dynamically, without requiring a cluster restart or table recreation. This enables operators and developers to adjust system behavior in real time, improving operational agility and minimizing downtime.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dynamic-cluster-configs">Dynamic Cluster Configs<a href="https://fluss.apache.org/blog/releases/0.8/#dynamic-cluster-configs" class="hash-link" aria-label="Direct link to Dynamic Cluster Configs" title="Direct link to Dynamic Cluster Configs" translate="no"></a></h3>
<p>Fluss now supports runtime updates for cluster configuration parameters. These changes take effect immediately across the cluster after being applied through the API.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Java Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">Admi [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Java Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">Admin</span><s [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dynamic-table-configs">Dynamic Table Configs<a href="https://fluss.apache.org/blog/releases/0.8/#dynamic-table-configs" class="hash-link" aria-label="Direct link to Dynamic Table Configs" title="Direct link to Dynamic Table Configs" translate="no"></a></h3>
<p>Fluss now supports update options dynamically on a table using the <code>ALTER TABLE ... SET</code> statement. This supports all the client-wise options (like <code>scan.startup.mode</code>) and some storage-wise options (like <code>table.datalake.enabled</code>).</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Enable l [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>When you issue a <code>ALTER TABLE ... SET</code> command to update storage options on a table, the Fluss cluster validates and applies the new configuration immediately. The updated settings are propagated to all TabletServers and CoordinatorServer components, ensuring consistent behavior going forward.</p>
<p>This capability is especially useful for tuning performance, adapting to changing data patterns, or complying with evolving data governance requirements—all without service interruption.</p>
<p>You can find more detailed instructions in the <a class="" href="https://fluss.apache.org/docs/maintenance/operations/updating-configs/">Updating Configs documentation</a>.</p>
@@ -821,15 +821,15 @@ To ensure accurate computation of this metric, the processing engine must perfor
<p><img decoding="async" loading="lazy" src="https://fluss.apache.org/assets/images/fulss_underlying_arch-a7af63a1ea8c1b9d495ba3ae2b4d5100.png" width="904" height="594" class="img_ev3q"></p>
<p><strong>Type:</strong> Divided into log tables and primary key tables. Log tables are columnar MQs that only support insert operations, while primary key tables can be updated according to the primary key and specified merge engine.</p>
<p><strong>Partition:</strong> Divides data into smaller, more manageable subsets according to specified columns. Fluss supports more diverse partitioning strategies, such as Dynamic create partitions. For the latest documentation on partitioning, please refer to: <a href="https://fluss.apache.org/docs/table-design/data-distribution/partitioning/" target="_blank" rel="noopener noreferrer" class="">https://fluss.apache.org/docs/table-design/data-distribution/partitioning/</a> . Note that [...]
-<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span [...]
+<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span cla [...]
<p><strong>Bucket:</strong> The smallest unit of read and write operations. For a primary key table, the bucket to which each piece of data belongs is determined based on the hash value of the primary key of each piece of data. For a log table, the configuration of column hashing can be specified in the with parameter when creating the table; otherwise, it will be randomly scattered.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="log-table">Log Table<a href="https://fluss.apache.org/blog/taobao-practice/#log-table" class="hash-link" aria-label="Direct link to Log Table" title="Direct link to Log Table" translate="no"></a></h4>
<p>The log table is a commonly used table in Fluss, which writes data in the order of writing, only supports insert operations, and does not support update/delete operations, similar to MQ systems such as Kafka and TT. For the log tables, currently most of the data will be uploaded to a remote location, and only a portion of the data will be stored locally. For example, a log table has 128 buckets, only 128 * 2 (number of segments retained locally) * 1 (size of one segment) * 3 (number o [...]
-<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span [...]
+<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span cla [...]
<p>In Fluss, the log table is stored in Apache Arrow columnar format by default. This format stores data column by column rather than row by row, thereby enabling <strong>column pruning</strong>. This ensures that only the required columns are consumed during real-time consumption, thereby reducing IO overhead, improving performance, and reducing resource usage.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="primarykey-table">PrimaryKey Table<a href="https://fluss.apache.org/blog/taobao-practice/#primarykey-table" class="hash-link" aria-label="Direct link to PrimaryKey Table" title="Direct link to PrimaryKey Table" translate="no"></a></h4>
<p>Compared to the log table, the primary key table supports insert, update, and delete operations, and different merge methods are implemented by specifying the Merge Engine. It should be noted that <code>bucket.key</code> and <code>partitioned.key</code> need to be subsets of <code>primary.key</code>, and if this KV table is used for DeltaJoin, <code>bucket.key</code> needs to be a prefix of <code>primary.key</code>. The table creation statement is as follows:</p>
-<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span [...]
+<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span cla [...]
<p>Among them, merge-engine supports versioned and first_row; after using versioned, it is necessary to limit the ver-column for sorting, currently only supporting types such as INT, BIGINT, and TIMESTAMP, and not supporting STRING; after using first_row, it only supports retaining the first record of each primary key and does not support sorting by column.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="core-functions">Core Functions<a href="https://fluss.apache.org/blog/taobao-practice/#core-functions" class="hash-link" aria-label="Direct link to Core Functions" title="Direct link to Core Functions" translate="no"></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="tailorable-columnar-storage">Tailorable Columnar Storage<a href="https://fluss.apache.org/blog/taobao-practice/#tailorable-columnar-storage" class="hash-link" aria-label="Direct link to Tailorable Columnar Storage" title="Direct link to Tailorable Columnar Storage" translate="no"></a></h4>
@@ -904,7 +904,7 @@ To ensure accurate computation of this metric, the processing engine must perfor
<p><img decoding="async" loading="lazy" src="https://fluss.apache.org/assets/images/comparison_of_dual_stream_join_and_delta_join-08049759413e940eb71f99d45449f52f.png" width="904" height="390" class="img_ev3q"></p>
<p>The jobs of Delta Join are as described above. The original job, after consuming data, sorts it according to business requirements, performs Dual-Stream Join after sorting, and saves the state for 24 hours. This results in issues such as long CP time, poor job maintainability, and the need to rerun when modifying the job state. In Fluss, data sorting is completed through the Merge Engine of the KV table, and through Delta Join, the job and state are decoupled, eliminating the need to [...]
<p>We use the transaction attribution job as an example. It should be noted that both sides of DeltaJoin need to be KV tables.</p>
-<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Create left table</span><span class="token [...]
+<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Create left table</span><span class [...]
<p>Some operations are shown in the above code. After migrating from the Dual-Stream Join to Merge Engine & Delta Join, large states were successfully reduced, making the job run more stably and eliminating CP timeouts. Meanwhile, the actual usage of CPU and Memory also decreased.</p>
<p>In addition to resource reduction and performance improvement, there is also an enhancement in flexibility for our benefits. The state of traditional stream-to-stream connections is tightly coupled with Flink jobs, like an opaque "black box". When the job is modified, it is found that the historical resource plan is incompatible with the current job, and the State can only be rerun from scratch, which is time-consuming and labor-intensive. After using Delta Join, it is equivalent to d [...]
<p><img decoding="async" loading="lazy" src="https://fluss.apache.org/assets/images/fluss_historical_data_consumption-c36e04f8f69fcfd14eb3370abebf3e96.png" width="904" height="298" class="img_ev3q"></p>
@@ -993,12 +993,12 @@ To ensure accurate computation of this metric, the processing engine must perfor
<li class="">
<p>Start the Minio server</p>
<p>Run this command, specifying a local path to store your Minio data:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">minio server /tmp/minio-data</span><br></span></code></pre></div></div>
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">minio server /tmp/minio-data</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Verify the Minio WebUI.</p>
<p>When your Minio server is up and running, you'll see endpoint information and login credentials:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">API: http://192.168.2.236:9000 http://127.0.0.1:9000</span><br></span><span class="token-l [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">API: http://192.168.2.236:9000 http://127.0.0.1:9000</span><br></span><span class="token-l [...]
<p>Open the WebUI link and log in with these credentials.</p>
</li>
<li class="">
@@ -1020,12 +1020,12 @@ To ensure accurate computation of this metric, the processing engine must perfor
<li class="">
<p>Configure the Data Lake</p>
<p>Edit your <code><FLUSS_HOME>/conf/server.yaml</code> file and add these settings:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">data.dir</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</spa [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">data.dir</span><span class="token punctuation" style="color:rgba [...]
<p>This configures Paimon as the datalake format on Minio as the warehouse.</p>
</li>
<li class="">
<p>Start Fluss</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLUSS_HOME</span>< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLUSS_HOME</span> [...]
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-cluster-setup">Flink Cluster Setup<a href="https://fluss.apache.org/blog/hands-on-fluss-lakehouse/#flink-cluster-setup" class="hash-link" aria-label="Direct link to Flink Cluster Setup" title="Direct link to Flink Cluster Setup" translate="no"></a></h3>
@@ -1037,7 +1037,7 @@ To ensure accurate computation of this metric, the processing engine must perfor
<li class="">
<p>Add the Fluss Connector</p>
<p>Download <code>fluss-flink-1.20-0.7.0.jar</code> from the <a href="https://fluss.apache.org/downloads/" target="_blank" rel="noopener noreferrer" class="">Fluss official site</a> and copy it to:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"><FLINK_HOME>/lib</span><br></span></code></pre></div></div>
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"><FLINK_HOME>/lib</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Add Paimon Dependencies</p>
@@ -1045,16 +1045,16 @@ To ensure accurate computation of this metric, the processing engine must perfor
<li class="">Download <code>paimon-flink-1.20-1.0.1.jar</code> and <code>paimon-s3-1.0.1.jar</code> from the <a href="https://paimon.apache.org/docs/1.0/project/download/" target="_blank" rel="noopener noreferrer" class="">Paimon official site</a> and place them in <code><FLINK_HOME>/lib</code>.</li>
<li class="">Copy these Paimon plugin jars from Fluss into <code><FLINK_HOME>/lib</code>:</li>
</ul>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"><FLINK_HOME>/lib/fluss-lake-paimon-0.7.0.jar</span><br></span><span class="token-line [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"><FLINK_HOME>/lib/fluss-lake-paimon-0.7.0.jar</span><br></span><span class="token-line [...]
</li>
<li class="">
<p>Increase Task Slots</p>
<p>Edit <code><FLINK_HOME>/conf/config.yaml</code> to increase available task slots:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">numberOfTaskSlots</span><span class="token punctuation" style="color:rgb(212, 212, 212 [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">numberOfTaskSlots</span><span class="token punctuation" style="c [...]
</li>
<li class="">
<p>Start Flink</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span>< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</span> [...]
</li>
<li class="">
<p>Verify</p>
@@ -1069,7 +1069,7 @@ To ensure accurate computation of this metric, the processing engine must perfor
</li>
<li class="">
<p>Submit the Job</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span>< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</span> [...]
</li>
<li class="">
<p>Confirm Deployment</p>
@@ -1082,32 +1082,32 @@ To ensure accurate computation of this metric, the processing engine must perfor
<ol>
<li class="">
<p>Launch the SQL Client</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span>< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</span> [...]
</li>
<li class="">
<p>Create the Catalog and Table</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> CATALOG fluss_catal [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> CATALOG fluss_catalog </span> [...]
</li>
<li class="">
<p>Write Some Data</p>
<p>Let's insert a couple of records:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SET</span><span class="token plain"> </span><span class="to [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SET</span><span class="token plain"> </span><span class="token string [...]
</li>
<li class="">
<p>Union Read</p>
<p>Now run a simple query to retrieve data from the table. By default, Flink will automatically combine data from both the Fluss cluster and the lakehouse:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
<p>If you want to read data only from the lake table, simply append <code>$lake</code> after the table name:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
<p>Great! Our records have been successfully synced to the data lake by the tiering service.</p>
<p>Notice the three system columns in the Paimon lake table: <code>__bucket</code>, <code>__offset</code>, and <code>__timestamp</code>. The <code>__bucket</code> column shows which bucket contains this row. The <code>__offset</code> and <code>__timestamp</code> columns are used for streaming data processing.</p>
</li>
<li class="">
<p>Streaming Inserts</p>
<p>Let's switch to streaming mode and add two more records:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
<p>Now query the lake again:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
<p>The first time we queried, our new records hadn't been synced to the lake table yet. After waiting a moment, they appeared.</p>
<p>Notice that the <code>__offset</code> and <code>__timestamp</code> values for these new records are no longer the default values. They now show the actual offset and timestamp when the records were added to the table.</p>
</li>
@@ -1116,12 +1116,12 @@ To ensure accurate computation of this metric, the processing engine must perfor
<p>Open the Minio WebUI, and you'll see the Paimon files in your bucket:</p>
<p><img decoding="async" loading="lazy" src="https://fluss.apache.org/assets/images/fluss-bucket-data-47a0df43a938f44f5671f184588fd5ef.png" width="1508" height="530" class="img_ev3q"></p>
<p>You can also check the Parquet files and manifest in your local filesystem under <code>/tmp/minio-data</code>:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">/tmp/minio-data ❯ tree .</span><br></span><span class="token-line" style="color:#9CDCFE"><s [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">/tmp/minio-data ❯ tree .</span><br></span><span class="token-line" style="color:#36464e"><s [...]
</li>
<li class="">
<p>View Snapshots</p>
<p>You can also check the snapshots from the system table by appending <code>$lake$snapshots</code> after the Fluss table name:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink </span><span class="token keyword" style="color:rgb(86, 156, 214)">SQL</span><span clas [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink </span><span class="token keyword" style="color:#3f6ec6">SQL</span><span class="token o [...]
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="summary">Summary<a href="https://fluss.apache.org/blog/hands-on-fluss-lakehouse/#summary" class="hash-link" aria-label="Direct link to Summary" title="Direct link to Summary" translate="no"></a></h2>
@@ -1201,14 +1201,14 @@ to write data to these tables and read/enrich the streaming sensor data.</p>
<p>By the end, you'll see how a sensor reading can be ingested into a log table and immediately enriched with information from a primary key table (essentially performing a real-time lookup join for streaming data enrichment).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="preflight-check">Preflight Check<a href="https://fluss.apache.org/blog/fluss-java-client/#preflight-check" class="hash-link" aria-label="Direct link to Preflight Check" title="Direct link to Preflight Check" translate="no"></a></h2>
<p>The full source code can be found <a href="https://github.com/ververica/ververica-fluss-examples/tree/main/fluss-java-client" target="_blank" rel="noopener noreferrer" class="">here</a>.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> compose up</s [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> compose up</span><br></s [...]
<p>The first thing we need to do is establish a connection to the Fluss cluster.
The <code>Connection</code> is the main entry point for the Fluss client, from which we obtain an <code>Admin</code> (for metadata operations) and Table instances (for data operations)</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">// Configure connection to Fluss cluster</span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">// Configure connection to Fluss cluster</span><s [...]
<p>The above code snippet shows the bare minimum requirements for connecting and interacting with a Fluss Cluster.
For our example we will use the following mock data - to keep things simple - which you can find below:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="operating-the-cluster">Operating The Cluster<a href="https://fluss.apache.org/blog/fluss-java-client/#operating-the-cluster" class="hash-link" aria-label="Direct link to Operating The Cluster" title="Direct link to Operating The Cluster" translate="no"></a></h2>
<p>Let's create a database for our IoT data, and within it define two tables:</p>
<ul>
@@ -1219,11 +1219,11 @@ For our example we will use the following mock data - to keep things simple - wh
<p>First, we'll ensure the database exists (creating it if not), then define schemas for each table and create them:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="schema-definitions">Schema Definitions<a href="https://fluss.apache.org/blog/fluss-java-client/#schema-definitions" class="hash-link" aria-label="Direct link to Schema Definitions" title="Direct link to Schema Definitions" translate="no"></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="log-table-sensor-readings">Log table (sensor readings)<a href="https://fluss.apache.org/blog/fluss-java-client/#log-table-sensor-readings" class="hash-link" aria-label="Direct link to Log table (sensor readings)" title="Direct link to Log table (sensor readings)" translate="no"></a></h4>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="primary-key-table-sensor-information">Primary Key table (sensor information)<a href="https://fluss.apache.org/blog/fluss-java-client/#primary-key-table-sensor-information" class="hash-link" aria-label="Direct link to Primary Key table (sensor information)" title="Direct link to Primary Key table (sensor information)" translate="no"></a></h4>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="table-creation">Table Creation<a href="https://fluss.apache.org/blog/fluss-java-client/#table-creation" class="hash-link" aria-label="Direct link to Table Creation" title="Direct link to Table Creation" translate="no"></a></h3>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p>We specify a distribution with <code>.distributedBy(3, "sensorId")</code>.
Fluss tables are partitioned into buckets (similar to partitions in Kafka topics) for scalability.
Here we use 3 buckets, meaning data gets distributed across 3 buckets. Multiple buckets allow for higher throughput or to parallelize reads/writes.
@@ -1247,15 +1247,15 @@ Under the hood, the Fluss client currently expects data as <strong>GenericRow</s
<strong>GenericRow</strong> is a generic implementation of InternalRow. This allows developers to interact with data easily while Fluss processes it efficiently using the underlying binary format.</p>
</blockquote>
<p>Since we are creating <strong>Pojos</strong> though this means that we need to convert these into a GenericRow in order to write them into Fluss.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<p><strong>Note:</strong> For certain data types like <code>String</code> or <code>LocalDateTime</code> we need to use certain functions like
<code>BinaryString.fromString("string_value")</code> or <code>TimestampNtz.fromLocalDateTime(datetime)</code> otherwise you might
come across some conversion exceptions.</p>
<p>Let's start by writing data to the <code>Log Table</code>. This requires getting an <code>AppendWriter</code> as follows:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">logger</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">logger</span><span class="token punctuation" style="color:rgba(0, 0, 0, 0.54)">.</span><spa [...]
<p>At this point we have successfully written 10 sensor readings to our table.</p>
<p>Next, let's write data to the <code>Primary Key Table</code>. This requires getting an <code>UpsertWriter</code> as follows:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">logger</span><span class="token punctuation" style="color:rgb(212, 212, 212)">.</span><span [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">logger</span><span class="token punctuation" style="color:rgba(0, 0, 0, 0.54)">.</span><spa [...]
<p>At this point we have successfully written 10 sensor information records to our table, because
updates will be handled on the primary key and merged.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="scans--lookups">Scans & Lookups<a href="https://fluss.apache.org/blog/fluss-java-client/#scans--lookups" class="hash-link" aria-label="Direct link to Scans & Lookups" title="Direct link to Scans & Lookups" translate="no"></a></h2>
@@ -1265,13 +1265,13 @@ This is a common pattern in streaming systems, often achieved with lookup joins.
<p>With the Fluss Java client, we can do this by combining a <strong>log scanner on the readings table</strong> with <strong>point lookups on the sensor information table</strong>.</p>
<p>To consume data from a Fluss table, we use a *<em>Scanner</em>.
For a log table, Fluss provides a <strong>LogScanner</strong> that allows us to <strong>subscribe to one or more buckets</strong> and poll for new records.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">LogScanner</span><span class="token plain"> logScanner [...]
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">Lookuper</span><span class="token plain"> sensorInforL [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">LogScanner</span><span class="token plain"> logScanner </span><s [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">Lookuper</span><span class="token plain"> sensorInforLookuper </ [...]
<p>We set up a scanner on the <code>sensor_readings</code> table, and next we need to subscribe to all its buckets, and then poll for any available records:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">int</span><span class="token plain"> numBuckets </span><s [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">int</span><span class="token plain"> numBuckets </span><span class= [...]
<p>Start polling for records. For each incoming record we will use the <strong>Lookuper</strong> to <code>lookup</code> sensor information from the primary key table,
and creating a <strong>SensorReadingEnriched</strong> record.</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"> </span><span class="token keyword" style="color:rgb(86, 156, 214)">while</span><span class [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"> </span><span class="token keyword" style="color:#3f6ec6">while</span><span class="token pl [...]
<p>Let's summarize what's happening here:</p>
<ul>
<li class="">We create a LogScanner for the <code>sensor_readings</code> table using <em>table.newScan().createLogScanner()</em>.</li>
@@ -1284,10 +1284,10 @@ and creating a <strong>SensorReadingEnriched</strong> record.</p>
<p>Fluss's lookup API gives us quick primary-key retrieval from a table, which is exactly what we need to enrich the streaming data.
In a real application, this enrichment could be done on the fly in a streaming job (and indeed <strong>Fluss is designed to support high-QPS lookup joins in real-time pipelines</strong>), but here we're simulating it with client calls for clarity.</p>
<p>If you run the above code found <a href="https://github.com/ververica/ververica-fluss-examples" target="_blank" rel="noopener noreferrer" class="">here</a>, you should see an output like the following:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token number" style="color:rgb(181, 206, 168)">16</span><span class="token plain">:07:13.594 INFO </s [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token number" style="color:#d52a2a">16</span><span class="token plain">:07:13.594 INFO </span><span c [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="column-pruning-scans">Column Pruning Scans<a href="https://fluss.apache.org/blog/fluss-java-client/#column-pruning-scans" class="hash-link" aria-label="Direct link to Column Pruning Scans" title="Direct link to Column Pruning Scans" translate="no"></a></h2>
<p>Column pruning lets you fetch only the columns you need, <strong>reducing network overhead and improving read performance</strong>. With Fluss’s Java client, you can specify a subset of columns in your scan:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">LogScanner</span><span class="token plain"> logScanner [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">LogScanner</span><span class="token plain"> logScanner </span><s [...]
<p>Let's break this down:</p>
<ul>
<li class=""><code>.project(...)</code> instructs the client to request only the specified columns (sensorId,timestamp and temperature) from the server.</li>
@@ -1295,7 +1295,7 @@ In a real application, this enrichment could be done on the fly in a streaming j
<li class="">You can combine projection with filters or lookups to further optimize your data access patterns.</li>
</ul>
<p>Example output:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token number" style="color:rgb(181, 206, 168)">16</span><span class="token plain">:12:35.114 INFO </s [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token number" style="color:#d52a2a">16</span><span class="token plain">:12:35.114 INFO </span><span c [...]
<p>Notice, how only the requested columns are returned from the server.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://fluss.apache.org/blog/fluss-java-client/#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no"></a></h2>
<p>In this blog post, we've introduced the Fluss Java Client by guiding you through a full example of creating tables, writing data, and reading/enriching data in real-time.
@@ -1320,7 +1320,7 @@ policy-driven data pipeline that seamlessly bridges your real-time Fluss cluster
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-tiering-service">Flink Tiering Service<a href="https://fluss.apache.org/blog/tiering-service/#flink-tiering-service" class="hash-link" aria-label="Direct link to Flink Tiering Service" title="Direct link to Flink Tiering Service" translate="no"></a></h2>
<p>Fluss tiering service is an Apache Flink job, which keeps moving data from fluss cluster to data lake.
The execution plan is quite straight forward. It has a three operators: a <code>source</code>, a <code>committer</code> and an empty <code>sink writer</code>.</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Source: TieringSource -> TieringCommitter -> Sink: Writer</span><br></span></code></ [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"> Source: TieringSource -> TieringCommitter -> Sink: Writer</span><br></span></code></ [...]
<ul>
<li class=""><strong>TieringSource</strong>: Reads records from the Fluss tiering table and writes them to the data lake.</li>
<li class=""><strong>TieringCommitter</strong>: Commits each sync batch by advancing offsets in both the lakehouse and the Fluss cluster.</li>
@@ -1426,7 +1426,7 @@ It precisely calculates the data <code>"delta"</code>, i.e what's new or changed
<p>By cleanly separating split assignment, reader selection, data fetching, and lake writing, the TieringSourceReader ensures scalable, parallel ingestion of streaming and snapshot data into your lakehouse.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="lakewriter--laketieringfactory">LakeWriter & LakeTieringFactory<a href="https://fluss.apache.org/blog/tiering-service/#lakewriter--laketieringfactory" class="hash-link" aria-label="Direct link to LakeWriter & LakeTieringFactory" title="Direct link to LakeWriter & LakeTieringFactory" translate="no"></a></h4>
<p>The LakeWriter is responsible for persisting Fluss records into your data lake, and it’s instantiated via a pluggable LakeTieringFactory. This interface defines how Fluss interacts with various lake formats (e.g., Paimon, Iceberg):</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<ul>
<li class=""><strong>createLakeWriter(WriterInitContext)</strong>: builds a <code>LakeWriter</code> to convert Fluss rows into the target table format.</li>
<li class=""><strong>getWriteResultSerializer()</strong>: supplies a serializer for the writer’s output.</li>
@@ -1436,7 +1436,7 @@ It precisely calculates the data <code>"delta"</code>, i.e what's new or changed
<p>By default, Fluss includes a Paimon-backed tiering factory; Iceberg support is coming soon. Once the <code>TieringSourceReader</code> writes a batch of records through the <code>LakeWriter</code>, it emits the resulting write metadata downstream to the <strong>TieringCommitOperator</strong>, which then commits those changes both in the lakehouse and back to the Fluss cluster.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="stateless">Stateless<a href="https://fluss.apache.org/blog/tiering-service/#stateless" class="hash-link" aria-label="Direct link to Stateless" title="Direct link to Stateless" translate="no"></a></h4>
<p>The <code>TieringSourceReader</code> is designed to be completely stateless—it does not checkpoint or store any <code>TieringSplit</code> information itself. Instead, every checkpoint simply returns an empty list, leaving all split-tracking to the <code>TieringSourceEnumerator</code>:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<p>By delegating split assignment entirely to the Enumerator, the reader remains lightweight and easily scalable, always fetching its next work unit afresh from the coordinator.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tieringcommitter">TieringCommitter<a href="https://fluss.apache.org/blog/tiering-service/#tieringcommitter" class="hash-link" aria-label="Direct link to TieringCommitter" title="Direct link to TieringCommitter" translate="no"></a></h2>
<p><img decoding="async" loading="lazy" src="https://fluss.apache.org/assets/images/tiering-committer-c331413f2e4953539e9df51e711ca4f4.png" width="1930" height="1592" class="img_ev3q"></p>
@@ -1525,7 +1525,7 @@ While convenient, this approach restricted deployment flexibility, particularly
Fluss 0.7 now addresses this by supporting <strong>native job submission via standard Flink commands</strong> (<code>flink run</code>).
This enhancement ensures broad compatibility with various deployment modes while significantly lowering learning and integration costs.
The following is an example of how to submit the lake tiering service using the native Flink command:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">flink run /path/to/fluss-flink-tiering-0.7.0.jar </span><span class="token punctuation" sty [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">flink run /path/to/fluss-flink-tiering-0.7.0.jar </span><span class="token punctuation" sty [...]
<p>See more details in the <a class="" href="https://fluss.apache.org/docs/maintenance/tiered-storage/lakehouse-storage/">Streaming Lakehouse documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="streaming-partition-pruning">Streaming Partition Pruning<a href="https://fluss.apache.org/blog/releases/0.7/#streaming-partition-pruning" class="hash-link" aria-label="Direct link to Streaming Partition Pruning" title="Direct link to Streaming Partition Pruning" translate="no"></a></h2>
<p>Partitioning is a foundational technique in modern data warehouses and Lakehouse architectures for optimizing query performance by
@@ -1557,12 +1557,12 @@ Fluss introduced a plugin-based authentication with built-in <strong>SASL/PLAIN<
Fluss implements fine-grained permission control through the <strong>ACL</strong> (Access Control List) mechanism, supporting multi-level access control at the Cluster, Database, and Table levels.</p>
<p>Additionally, we've integrated Flink SQL's <code>CALL</code> statements to ease ACL permission management for users.
For instance, granting read access to the <code>mydb</code> database for user <code>Tim</code> can now be accomplished with the following command:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CALL</span><span class="token plain"> admin_catalog</span>< [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CALL</span><span class="token plain"> admin_catalog</span><span class [...]
<p>For details, please refer to the <a class="" href="https://fluss.apache.org/docs/security/overview/">Security documentation</a> and quickstarts.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-datastream-connector">Flink DataStream Connector<a href="https://fluss.apache.org/blog/releases/0.7/#flink-datastream-connector" class="hash-link" aria-label="Direct link to Flink DataStream Connector" title="Direct link to Flink DataStream Connector" translate="no"></a></h2>
<p>Fluss 0.7 officially introduces the DataStream Connector, supporting both Source and Sink for reading and writing log and primary key tables. Users can now seamlessly integrate Fluss tables into Flink DataStream pipelines.</p>
<p>Here’s an example of reading data from a Fluss table into a Flink DataStream:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token class-name" style="color:rgb(78, 201, 176)">FlussSource</span><span class="token generics punctuat [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token class-name" style="color:#a846b9">FlussSource</span><span class="token generics punctuation" style [...]
<p>For usage examples and configuration parameters, see the <a class="" href="https://fluss.apache.org/docs/engine-flink/datastream/">DataStream Connector documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluss-java-client">Fluss Java Client<a href="https://fluss.apache.org/blog/releases/0.7/#fluss-java-client" class="hash-link" aria-label="Direct link to Fluss Java Client" title="Direct link to Fluss Java Client" translate="no"></a></h2>
<p>In this version, we officially release the Fluss Java Client, a client library designed for developers working with structured stream tables. The client includes two core API modules:</p>
@@ -1625,17 +1625,17 @@ This happens in <em>real-time</em>, so the table is <strong>always up-to-date</s
</blockquote>
<p>Start by cloning the repository, run <code>docker compose up</code> to spin up the development environment and finally grab a terminal
into the <code>jobmanager</code> and start the Flink SQL cli, by running the following command:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./bin/sql-client.sh</span><br></span></code></pre></div></div>
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">./bin/sql-client.sh</span><br></span></code></pre></div></div>
<p>Great so far ! 👍</p>
<p><strong>Step 1:</strong> The first thing we need to do is to create a Flink catalog that will be used to store the tables we are going to create.
Let's create a catalog called <code>fluss_catalog</code> and use this catalog.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> CATALOG fluss_catal [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> CATALOG fluss_catalog </span> [...]
<p><strong>Step 2:</strong> Then let's create <code>3 tables</code> to represent the different data sources that will be used to build the recommendations wide table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Recommendations – model scores</span><span class="token [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Recommendations – model scores</span><span class [...]
<p><strong>Step 3:</strong> Of course, we will need some sample data to work with , so let's go on and insert some records into the tables. 💻</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Recommendations – model scores</span><span class="token [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Impressions – how often each (user,item) was shown</span [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Clicks – user engagement</span><span class="token plain" [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Recommendations – model scores</span><span class [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Impressions – how often each (user,item) was sho [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Clicks – user engagement</span><span class="toke [...]
<blockquote>
<p><strong>Note:</strong> 🚨 So far the jobs we run were bounded jobs, so they will finish after inserting the records. Moving forward we will run some streaming jobs.
So keep in mind that each job runs with a <code>parallelism of 3</code> and our environment is set up <code>with 10 slots total</code>.
@@ -1643,31 +1643,31 @@ So make sure to keep an eye to the Flink Web UI to see how many slots are used a
</blockquote>
<p><strong>Step 4:</strong> At this point let's open up a separate terminal and start the Flink SQL CLI.
In this new terminal, make sure to run set the <code>result-mode</code>:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">SET </span><span class="token string" style="color:rgb(206, 145, 120)">'sql-client.execut [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">SET </span><span class="token string" style="color:#1c7d4d">'sql-client.execution.result- [...]
<p>and then run:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SELECT</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SELECT</span><span class="token plain"> </span><span class="token ope [...]
<p>to observe the output of the table, as we insert <code>partially</code> records into it from the different sources.</p>
<p><strong>Step 5:</strong> Let's insert the records from the <code>recommendations</code> table into the <code>user_rec_wide</code> table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Apply recommendation scores</span><span class="token pla [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Apply recommendation scores</span><span class="t [...]
<p><strong>Output:</strong> Notice, how only the related columns are updated in the <code>user_rec_wide</code> table and the rest of the columns are <code>NULL</code>.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgb(212, 212, 212)">></span> [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgba(0, 0, 0, 0.54)">></span [...]
<p><strong>Step 5:</strong> Next, let's insert the records from the <code>impressions</code> table into the <code>user_rec_wide</code> table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Apply impression counts</span><span class="token plain"> [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Apply impression counts</span><span class="token [...]
<p><strong>Output:</strong> Notice how the <code>impressions</code> records are inserted into the <code>user_rec_wide</code> table and the <code>imp_cnt</code> column is updated.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgb(212, 212, 212)">></span> [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgba(0, 0, 0, 0.54)">></span [...]
<p><strong>Step 6:</strong> Finally, let's insert the records from the <code>clicks</code> table into the <code>user_rec_wide</code> table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Apply click counts</span><span class="token plain"></spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Apply click counts</span><span class="token plai [...]
<p><strong>Output:</strong> Notice how the <code>clicks</code> records are inserted into the <code>user_rec_wide</code> table and the <code>click_cnt</code> column is updated.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgb(212, 212, 212)">></span> [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Flink SQL</span><span class="token operator" style="color:rgba(0, 0, 0, 0.54)">></span [...]
<p><strong>Reminder:</strong> ‼️As mentioned before make sure to stop the jobs that are no longer needed to free up resources.</p>
<p>Now let's switch to <code>batch</code> mode and query the current snapshot of the <code>user_rec_wide</code> table.</p>
<p>But before that, let's start the <a class="" href="https://fluss.apache.org/docs/maintenance/tiered-storage/lakehouse-storage/#start-the-datalake-tiering-service">Tiering Service</a> that allows offloading the tables as <code>Lakehouse</code> tables.</p>
<p><strong>Step 7:</strong> Open a new terminal 💻 in the <code>Coordinator Server</code> and run the following command to start the <code>Tiering Service</code>:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./bin/lakehouse.sh </span><span class="token parameter variable" style="color:rgb(156, 22 [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">./bin/lakehouse.sh </span><span class="token parameter variable" style="color:#6e59d9">-D [...]
<p>The configured checkpoint is <code>flink.execution.checkpointing.interval=30s</code> so wait a bit until the first checkpoint is created
and data gets offloading to the <code>Lakehouse</code> tables.</p>
<p><strong>Step 8:</strong> Finally let's switch to <code>batch</code> mode and query the current snapshot of the <code>user_rec_wide</code> table.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">SET </span><span class="token string" style="color:rgb(206, 145, 120)">'execution.runtime [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">SET </span><span class="token string" style="color:#1c7d4d">'execution.runtime-mode'</spa [...]
<p>🎉 That's it! You have successfully created a unified wide table using partial updates in Fluss.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://fluss.apache.org/blog/partial-updates/#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no"></a></h3>
<p>Partial updates in Fluss enable an alternative approach in how we design streaming data pipelines for enriching or joining data.</p>
@@ -1776,13 +1776,13 @@ When this configuration is enabled, the primary key table will generate an appen
Flink jobs subscribing to the table to receive an append-only stream, enabling the use of operators that do not support retraction messages,
such as Window Aggregations and Interval Joins. This feature is commonly used as a replacement for log deduplication in streaming processing,
effectively reducing costs and system complexity.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- create first_row primary key table</span><span class="to [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- create first_row primary key table</span><span c [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="versioned-merge-engine">Versioned Merge Engine<a href="https://fluss.apache.org/blog/releases/0.6/#versioned-merge-engine" class="hash-link" aria-label="Direct link to Versioned Merge Engine" title="Direct link to Versioned Merge Engine" translate="no"></a></h3>
<p>The Versioned Merge Engine supports data updates based on version numbers (or event timestamps). It ensures that only the record
with the highest version number (or event timestamp) for each primary key is retained. This mechanism is particularly useful for
deduplicating or merging out-of-order data while guaranteeing eventual consistency with the upstream data source.
In Flink streaming processing, this feature can be used as a replacement for <code>Rank</code> or <code>Deduplication</code> operations, simplifying workflows and reducing costs effectively.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- create a versioned primary key table, `ts` as the versio [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- create a versioned primary key table, `ts` as th [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="prefix-lookup-for-delta-join">Prefix Lookup for Delta Join<a href="https://fluss.apache.org/blog/releases/0.6/#prefix-lookup-for-delta-join" class="hash-link" aria-label="Direct link to Prefix Lookup for Delta Join" title="Direct link to Prefix Lookup for Delta Join" translate="no"></a></h2>
<p>In the scenario of building wide tables with Flink, optimizing Stream-Stream Join using Delta Join is one of the primary use cases for Fluss.
We have also contributed this functionality to version 0.6. Delta Join can be simply understood as a "bilateral driven lookup join", that is:
@@ -1797,7 +1797,7 @@ Delta Join addresses challenges such as high cost, unstable job, checkpoint time
<li class=""><strong>Delta Join Operator in Flink SQL</strong>: Proposed in <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-486%3A+Introduce+A+New+DeltaJoin" target="_blank" rel="noopener noreferrer" class="">FLIP-486</a>, planned for Flink 2.1.</li>
</ul>
<p>Once FLIP-486 is completed, users will be able to achieve Delta Join using the following SQL in conjunction with Fluss's Prefix Lookup functionality:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<p>Flink performs lookups on Fluss tables using the Join Key, which serves as the Bucket Key for the Fluss table.
This allows it to leverage the prefix index of the primary key in the Fluss table, enabling highly efficient lookup queries.
This feature in Fluss is referred to as Prefix Lookup. Currently, Prefix Lookup can also be used to perform one-to-many lookup queries.
@@ -1942,10 +1942,10 @@ This strong consistency in data distribution provides two significant benefits:<
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="apache-flink-and-fluss">Apache Flink and Fluss<a href="https://fluss.apache.org/blog/unified-streaming-lakehouse/#apache-flink-and-fluss" class="hash-link" aria-label="Direct link to Apache Flink and Fluss" title="Direct link to Apache Flink and Fluss" translate="no"></a></h3>
<p><img decoding="async" loading="lazy" alt="Unification Solutions" src="https://fluss.apache.org/assets/images/img5-36f56d95c22f50252c6a5caedbfed1d4.png" width="1761" height="730" class="img_ev3q">
Fluss exposes a unified API to Flink users, allowing them to choose whether to use union reads or read-only reads on the Lakehouse, using the following SQL:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SELECT</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SELECT</span><span class="token plain"> </span><span class="token ope [...]
<p>This reads the complete data of the orders table and Flink will union read the data in Fluss and the Lakehouse.
If the user only needs to read data on the data lake, you can add the <code>$lake</code> suffix after the table to be read. The SQL is as follows</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE" [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#36464e" [...]
<p>For scenarios where data on a data lake is read-only, Fluss inherits all the optimizations and capabilities of the lake format as a Flink source, such as runtime filters, system table queries, and time travel.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="benefits-of-the-unified-architecture">Benefits Of The Unified Architecture<a href="https://fluss.apache.org/blog/unified-streaming-lakehouse/#benefits-of-the-unified-architecture" class="hash-link" aria-label="Direct link to Benefits Of The Unified Architecture" title="Direct link to Benefits Of The Unified Architecture" translate="no"></a></h2>
<p>Next, using Apache Paimon as an example, we will illustrate the advantages of using Fluss to build a unified architecture. We will highlight how Fluss enhances the capabilities of Paimon, creating a unified solution that combines the strengths of both systems for efficient real-time and historical data processing.</p>
diff --git a/blog/tags/apache-fluss/index.html b/blog/tags/apache-fluss/index.html
index f753621e2..694c429f2 100644
--- a/blog/tags/apache-fluss/index.html
+++ b/blog/tags/apache-fluss/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/tags/apache-iceberg/index.html b/blog/tags/apache-iceberg/index.html
index 84d423f56..c15a7d389 100644
--- a/blog/tags/apache-iceberg/index.html
+++ b/blog/tags/apache-iceberg/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/tags/index.html b/blog/tags/index.html
index 54f25bbbb..c4fef333c 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/tags/real-time-analytics/index.html b/blog/tags/real-time-analytics/index.html
index 76eda0215..c2fc7750a 100644
--- a/blog/tags/real-time-analytics/index.html
+++ b/blog/tags/real-time-analytics/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/tags/releases/index.html b/blog/tags/releases/index.html
index e97a13029..6cdcaae0a 100644
--- a/blog/tags/releases/index.html
+++ b/blog/tags/releases/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/tags/streaming-lakehouse/index.html b/blog/tags/streaming-lakehouse/index.html
index 50ef34038..42d28f80e 100644
--- a/blog/tags/streaming-lakehouse/index.html
+++ b/blog/tags/streaming-lakehouse/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/taobao-practice/index.html b/blog/taobao-practice/index.html
index a10704004..9da4311d6 100644
--- a/blog/taobao-practice/index.html
+++ b/blog/taobao-practice/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -115,15 +115,15 @@ To ensure accurate computation of this metric, the processing engine must perfor
<p><img decoding="async" loading="lazy" src="/assets/images/fulss_underlying_arch-a7af63a1ea8c1b9d495ba3ae2b4d5100.png" width="904" height="594" class="img_ev3q"></p>
<p><strong>Type:</strong> Divided into log tables and primary key tables. Log tables are columnar MQs that only support insert operations, while primary key tables can be updated according to the primary key and specified merge engine.</p>
<p><strong>Partition:</strong> Divides data into smaller, more manageable subsets according to specified columns. Fluss supports more diverse partitioning strategies, such as Dynamic create partitions. For the latest documentation on partitioning, please refer to: <a href="https://fluss.apache.org/docs/table-design/data-distribution/partitioning/" target="_blank" rel="noopener noreferrer" class="">https://fluss.apache.org/docs/table-design/data-distribution/partitioning/</a> . Note that [...]
-<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span [...]
+<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span cla [...]
<p><strong>Bucket:</strong> The smallest unit of read and write operations. For a primary key table, the bucket to which each piece of data belongs is determined based on the hash value of the primary key of each piece of data. For a log table, the configuration of column hashing can be specified in the with parameter when creating the table; otherwise, it will be randomly scattered.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="log-table">Log Table<a href="#log-table" class="hash-link" aria-label="Direct link to Log Table" title="Direct link to Log Table" translate="no"></a></h4>
<p>The log table is a commonly used table in Fluss, which writes data in the order of writing, only supports insert operations, and does not support update/delete operations, similar to MQ systems such as Kafka and TT. For the log tables, currently most of the data will be uploaded to a remote location, and only a portion of the data will be stored locally. For example, a log table has 128 buckets, only 128 * 2 (number of segments retained locally) * 1 (size of one segment) * 3 (number o [...]
-<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span [...]
+<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span cla [...]
<p>In Fluss, the log table is stored in Apache Arrow columnar format by default. This format stores data column by column rather than row by row, thereby enabling <strong>column pruning</strong>. This ensures that only the required columns are consumed during real-time consumption, thereby reducing IO overhead, improving performance, and reducing resource usage.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="primarykey-table">PrimaryKey Table<a href="#primarykey-table" class="hash-link" aria-label="Direct link to PrimaryKey Table" title="Direct link to PrimaryKey Table" translate="no"></a></h4>
<p>Compared to the log table, the primary key table supports insert, update, and delete operations, and different merge methods are implemented by specifying the Merge Engine. It should be noted that <code>bucket.key</code> and <code>partitioned.key</code> need to be subsets of <code>primary.key</code>, and if this KV table is used for DeltaJoin, <code>bucket.key</code> needs to be a prefix of <code>primary.key</code>. The table creation statement is as follows:</p>
-<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span [...]
+<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span cla [...]
<p>Among them, merge-engine supports versioned and first_row; after using versioned, it is necessary to limit the ver-column for sorting, currently only supporting types such as INT, BIGINT, and TIMESTAMP, and not supporting STRING; after using first_row, it only supports retaining the first record of each primary key and does not support sorting by column.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="core-functions">Core Functions<a href="#core-functions" class="hash-link" aria-label="Direct link to Core Functions" title="Direct link to Core Functions" translate="no"></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="tailorable-columnar-storage">Tailorable Columnar Storage<a href="#tailorable-columnar-storage" class="hash-link" aria-label="Direct link to Tailorable Columnar Storage" title="Direct link to Tailorable Columnar Storage" translate="no"></a></h4>
@@ -198,7 +198,7 @@ To ensure accurate computation of this metric, the processing engine must perfor
<p><img decoding="async" loading="lazy" src="/assets/images/comparison_of_dual_stream_join_and_delta_join-08049759413e940eb71f99d45449f52f.png" width="904" height="390" class="img_ev3q"></p>
<p>The jobs of Delta Join are as described above. The original job, after consuming data, sorts it according to business requirements, performs Dual-Stream Join after sorting, and saves the state for 24 hours. This results in issues such as long CP time, poor job maintainability, and the need to rerun when modifying the job state. In Fluss, data sorting is completed through the Merge Engine of the KV table, and through Delta Join, the job and state are decoupled, eliminating the need to [...]
<p>We use the transaction attribution job as an example. It should be noted that both sides of DeltaJoin need to be KV tables.</p>
-<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Create left table</span><span class="token [...]
+<div class="language-SQL language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Create left table</span><span class [...]
<p>Some operations are shown in the above code. After migrating from the Dual-Stream Join to Merge Engine & Delta Join, large states were successfully reduced, making the job run more stably and eliminating CP timeouts. Meanwhile, the actual usage of CPU and Memory also decreased.</p>
<p>In addition to resource reduction and performance improvement, there is also an enhancement in flexibility for our benefits. The state of traditional stream-to-stream connections is tightly coupled with Flink jobs, like an opaque "black box". When the job is modified, it is found that the historical resource plan is incompatible with the current job, and the State can only be rerun from scratch, which is time-consuming and labor-intensive. After using Delta Join, it is equiv [...]
<p><img decoding="async" loading="lazy" src="/assets/images/fluss_historical_data_consumption-c36e04f8f69fcfd14eb3370abebf3e96.png" width="904" height="298" class="img_ev3q"></p>
diff --git a/blog/tiering-service/index.html b/blog/tiering-service/index.html
index 911e23898..46211771d 100644
--- a/blog/tiering-service/index.html
+++ b/blog/tiering-service/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -30,7 +30,7 @@ policy-driven data pipeline that seamlessly bridges your real-time Fluss cluster
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="flink-tiering-service">Flink Tiering Service<a href="#flink-tiering-service" class="hash-link" aria-label="Direct link to Flink Tiering Service" title="Direct link to Flink Tiering Service" translate="no"></a></h2>
<p>Fluss tiering service is an Apache Flink job, which keeps moving data from fluss cluster to data lake.
The execution plan is quite straight forward. It has a three operators: a <code>source</code>, a <code>committer</code> and an empty <code>sink writer</code>.</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Source: TieringSource -> TieringCommitter -> Sink: Writer</span><br></span></code></ [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"> Source: TieringSource -> TieringCommitter -> Sink: Writer</span><br></span></code></ [...]
<ul>
<li class=""><strong>TieringSource</strong>: Reads records from the Fluss tiering table and writes them to the data lake.</li>
<li class=""><strong>TieringCommitter</strong>: Commits each sync batch by advancing offsets in both the lakehouse and the Fluss cluster.</li>
@@ -136,7 +136,7 @@ It precisely calculates the data <code>"delta"</code>, i.e what's
<p>By cleanly separating split assignment, reader selection, data fetching, and lake writing, the TieringSourceReader ensures scalable, parallel ingestion of streaming and snapshot data into your lakehouse.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="lakewriter--laketieringfactory">LakeWriter & LakeTieringFactory<a href="#lakewriter--laketieringfactory" class="hash-link" aria-label="Direct link to LakeWriter & LakeTieringFactory" title="Direct link to LakeWriter & LakeTieringFactory" translate="no"></a></h4>
<p>The LakeWriter is responsible for persisting Fluss records into your data lake, and it’s instantiated via a pluggable LakeTieringFactory. This interface defines how Fluss interacts with various lake formats (e.g., Paimon, Iceberg):</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">public</span><span class="token plain"> </span><span clas [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">public</span><span class="token plain"> </span><span class="token k [...]
<ul>
<li class=""><strong>createLakeWriter(WriterInitContext)</strong>: builds a <code>LakeWriter</code> to convert Fluss rows into the target table format.</li>
<li class=""><strong>getWriteResultSerializer()</strong>: supplies a serializer for the writer’s output.</li>
@@ -146,7 +146,7 @@ It precisely calculates the data <code>"delta"</code>, i.e what's
<p>By default, Fluss includes a Paimon-backed tiering factory; Iceberg support is coming soon. Once the <code>TieringSourceReader</code> writes a batch of records through the <code>LakeWriter</code>, it emits the resulting write metadata downstream to the <strong>TieringCommitOperator</strong>, which then commits those changes both in the lakehouse and back to the Fluss cluster.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="stateless">Stateless<a href="#stateless" class="hash-link" aria-label="Direct link to Stateless" title="Direct link to Stateless" translate="no"></a></h4>
<p>The <code>TieringSourceReader</code> is designed to be completely stateless—it does not checkpoint or store any <code>TieringSplit</code> information itself. Instead, every checkpoint simply returns an empty list, leaving all split-tracking to the <code>TieringSourceEnumerator</code>:</p>
-<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token annotation punctuation" style="color:rgb(212, 212, 212)">@Override</span><span class="token plain" [...]
+<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token annotation punctuation" style="color:rgba(0, 0, 0, 0.54)">@Override</span><span class="token plain [...]
<p>By delegating split assignment entirely to the Enumerator, the reader remains lightweight and easily scalable, always fetching its next work unit afresh from the coordinator.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tieringcommitter">TieringCommitter<a href="#tieringcommitter" class="hash-link" aria-label="Direct link to TieringCommitter" title="Direct link to TieringCommitter" translate="no"></a></h2>
<p><img decoding="async" loading="lazy" src="/assets/images/tiering-committer-c331413f2e4953539e9df51e711ca4f4.png" width="1930" height="1592" class="img_ev3q"></p>
diff --git a/blog/unified-streaming-lakehouse/index.html b/blog/unified-streaming-lakehouse/index.html
index 1063d7896..10f4a7fa4 100644
--- a/blog/unified-streaming-lakehouse/index.html
+++ b/blog/unified-streaming-lakehouse/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -105,10 +105,10 @@ This strong consistency in data distribution provides two significant benefits:<
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="apache-flink-and-fluss">Apache Flink and Fluss<a href="#apache-flink-and-fluss" class="hash-link" aria-label="Direct link to Apache Flink and Fluss" title="Direct link to Apache Flink and Fluss" translate="no"></a></h3>
<p><img decoding="async" loading="lazy" alt="Unification Solutions" src="/assets/images/img5-36f56d95c22f50252c6a5caedbfed1d4.png" width="1761" height="730" class="img_ev3q">
Fluss exposes a unified API to Flink users, allowing them to choose whether to use union reads or read-only reads on the Lakehouse, using the following SQL:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SELECT</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SELECT</span><span class="token plain"> </span><span class="token ope [...]
<p>This reads the complete data of the orders table and Flink will union read the data in Fluss and the Lakehouse.
If the user only needs to read data on the data lake, you can add the <code>$lake</code> suffix after the table to be read. The SQL is as follows</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#9CDCFE" [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#36464e" [...]
<p>For scenarios where data on a data lake is read-only, Fluss inherits all the optimizations and capabilities of the lake format as a Flink source, such as runtime filters, system table queries, and time travel.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="benefits-of-the-unified-architecture">Benefits Of The Unified Architecture<a href="#benefits-of-the-unified-architecture" class="hash-link" aria-label="Direct link to Benefits Of The Unified Architecture" title="Direct link to Benefits Of The Unified Architecture" translate="no"></a></h2>
<p>Next, using Apache Paimon as an example, we will illustrate the advantages of using Fluss to build a unified architecture. We will highlight how Fluss enhances the capabilities of Paimon, creating a unified solution that combines the strengths of both systems for efficient real-time and historical data processing.</p>
diff --git a/blog/unveil-fluss-logo/index.html b/blog/unveil-fluss-logo/index.html
index 4eb43315a..26c67874b 100644
--- a/blog/unveil-fluss-logo/index.html
+++ b/blog/unveil-fluss-logo/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/blog/why-fluss/index.html b/blog/why-fluss/index.html
index ed1c0ab15..8abc24655 100644
--- a/blog/why-fluss/index.html
+++ b/blog/why-fluss/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/community/dev/building/index.html b/community/dev/building/index.html
index dad643539..b608eb85b 100644
--- a/community/dev/building/index.html
+++ b/community/dev/building/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -27,13 +27,13 @@
<p>In order to build Fluss you need to get the source code by <a href="https://github.com/apache/fluss" target="_blank" rel="noopener noreferrer" class="">cloning the git repository</a>.</p>
<p>In addition, you need <strong>Maven 3.8.6</strong> and a <strong>JDK</strong> (Java Development Kit). Fluss requires <strong>Java 11</strong> to build.</p>
<p>To clone from git, enter:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> clone git@github.c [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> clone git@github.com:apache/f [...]
<p>If you want to build a specific release or release candidate, have a look at the existing tags using</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> tag </span><span c [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> tag </span><span class="token [...]
<p>and checkout the corresponding branch using</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> checkout </span><s [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> checkout </span><span class=" [...]
<p>The simplest way of building Fluss is by running:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">mvn clean </span><span class="token function" style="color:rgb(220, 220, 170)">install</spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">mvn clean </span><span class="token function" style="color:#a846b9">install</span><span cla [...]
<p>This instructs <a href="http://maven.apache.org" target="_blank" rel="noopener noreferrer" class="">Maven</a> (<code>mvn</code>) to first remove all existing builds (<code>clean</code>) and then create a new Fluss binary (<code>install</code>).</p>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
<p>To speed up the build you can:</p>
@@ -42,7 +42,7 @@
<li class="">use Maven's parallel build feature, e.g., <code>mvn package -T 1C</code> will attempt to build 1 module for each CPU core in parallel.</li>
</ul>
<p>The build script will be:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">mvn clean </span><span class="token function" style="color:rgb(220, 220, 170)">install</spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">mvn clean </span><span class="token function" style="color:#a846b9">install</span><span cla [...]
<p><strong>NOTE</strong>:</p>
<ul>
<li class="">For local testing, it's recommend to use directory <code>${project}/build-target</code> in project.</li>
diff --git a/community/dev/ide-setup/index.html b/community/dev/ide-setup/index.html
index d17ecccd7..894af94e5 100644
--- a/community/dev/ide-setup/index.html
+++ b/community/dev/ide-setup/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -37,8 +37,8 @@ The Git repository is mirrored to <a href="https://github.com/apache/fluss/" tar
<li class="">To fork the Fluss repository, log in with your GitHub account. If you do not have one yet, <a href="https://github.com/signup" target="_blank" rel="noopener noreferrer" class="">sign up for free</a>. Then, click the <code>[Fork]</code> button on the upper right of the <a href="https://github.com/apache/fluss/" target="_blank" rel="noopener noreferrer" class="">Fluss repository</a>.</li>
<li class="">Clone the <em>forked</em> version of the repository over HTTPs or SSH. SSH is recommended but needs to be <a href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh" target="_blank" rel="noopener noreferrer" class="">explicitly configured</a>.</li>
</ol>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)"># Clone using HTTPs</span><span class="token plain"></spa [...]
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)"># Clone using SSH</span><span class="token plain"></span> [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic"># Clone using HTTPs</span><span class="token plai [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic"># Clone using SSH</span><span class="token plain" [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="intellij-idea">IntelliJ IDEA<a href="#intellij-idea" class="hash-link" aria-label="Direct link to IntelliJ IDEA" title="Direct link to IntelliJ IDEA" translate="no"></a></h2>
<p>The following guide has been written for <a href="https://www.jetbrains.com/idea/download/" target="_blank" rel="noopener noreferrer" class="">IntelliJ IDEA</a>
2024.3. Some details might differ in other versions. Please make sure to follow all steps</p>
@@ -66,7 +66,7 @@ adding a Copyright profile:</p>
<li class="">Add a new profile and name it "Apache".</li>
<li class="">Add the following text as the license text:</li>
</ol>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">Licensed to the Apache Software Foundation (ASF) under one</span><br></span><span class="to [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">Licensed to the Apache Software Foundation (ASF) under one</span><br></span><span class="to [...]
<ol start="4">
<li class="">Go to "Editor" → "Copyright" and choose the "Apache" profile as the default profile for this
project.</li>
@@ -137,19 +137,19 @@ your cloned repository.</li>
button in the opened tool window. It should report no violations.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="configure-git-commit-username-and-email">Configure Git Commit Username and Email<a href="#configure-git-commit-username-and-email" class="hash-link" aria-label="Direct link to Configure Git Commit Username and Email" title="Direct link to Configure Git Commit Username and Email" translate="no"></a></h3>
<p>Verify that the Git commit username is set to your preferred name using</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> config user.name</ [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> config user.name</span><br></ [...]
<p>The set username will be shown in the contributor list in Fluss release notes.</p>
<p>To change the username use</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> config user.name < [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> config user.name </span><span [...]
<p>You are free to choose any username you want.
In particular, the username does <em>not</em> have to correspond to your GitHub username.
A common choice is simply your full name.</p>
<p>Also verify that the Git commit email address is set to your preferred email address using</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> config user.email< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> config user.email</span><br>< [...]
<p>Make sure that the set email address is an email address that is linked to your GitHub account.
If the email address is not linked to your GitHub account, commits in the contribution graph will not be associated with your account.</p>
<p>To change the email address use</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> config user.email [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> config user.email </span><spa [...]
<p>If you do not want to expose your email address in Git commits, you can activate <a href="https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/blocking-command-line-pushes-that-expose-your-personal-email-address" target="_blank" rel="noopener noreferrer" class="">GitHub's email privacy setting</a> and set the Git commit email address to the anonymized <code>noreply @users.noreply.github.com</code> email [...]
<div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>important</div><div class="admonitionContent_BuS1"><ul>
<li class="">When committing from different devices, make sure the username is consistently set on all devices.</li>
diff --git a/community/fluss-logos/index.html b/community/fluss-logos/index.html
index 245622651..aac808521 100644
--- a/community/fluss-logos/index.html
+++ b/community/fluss-logos/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/community/fluss-team/index.html b/community/fluss-team/index.html
index 7721d4eae..246351e8c 100644
--- a/community/fluss-team/index.html
+++ b/community/fluss-team/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/community/how-to-contribute/bug-reports-feature-requests/index.html b/community/how-to-contribute/bug-reports-feature-requests/index.html
index 2f05b4f67..b1e506ee4 100644
--- a/community/how-to-contribute/bug-reports-feature-requests/index.html
+++ b/community/how-to-contribute/bug-reports-feature-requests/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/community/how-to-contribute/contribute-code/index.html b/community/how-to-contribute/contribute-code/index.html
index 80e7f77a2..7589ab50c 100644
--- a/community/how-to-contribute/contribute-code/index.html
+++ b/community/how-to-contribute/contribute-code/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/community/how-to-contribute/contribute-docs/index.html b/community/how-to-contribute/contribute-docs/index.html
index 93a240f2b..a644f1fd7 100644
--- a/community/how-to-contribute/contribute-docs/index.html
+++ b/community/how-to-contribute/contribute-docs/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -36,29 +36,29 @@
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="build-documentation">Build Documentation<a href="#build-documentation" class="hash-link" aria-label="Direct link to Build Documentation" title="Direct link to Build Documentation" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fork-and-clone">Fork and Clone<a href="#fork-and-clone" class="hash-link" aria-label="Direct link to Fork and Clone" title="Direct link to Fork and Clone" translate="no"></a></h3>
<p>Fork the <a href="https://github.com/apache/fluss" target="_blank" rel="noopener noreferrer" class="">Fluss repository</a></p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> clone https://gith [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> clone https://github.com/</sp [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-a-branch">Create a Branch<a href="#create-a-branch" class="hash-link" aria-label="Direct link to Create a Branch" title="Direct link to Create a Branch" translate="no"></a></h3>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> checkout </span><s [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> checkout </span><span class=" [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="install-dependencies">Install Dependencies<a href="#install-dependencies" class="hash-link" aria-label="Direct link to Install Dependencies" title="Direct link to Install Dependencies" translate="no"></a></h3>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token builtin class-name" style="color:rgb(78, 201, 176)">cd</span><span class="token plain"> website</s [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token builtin class-name" style="color:#a846b9">cd</span><span class="token plain"> website</span><br></ [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="directory-structure">Directory Structure<a href="#directory-structure" class="hash-link" aria-label="Direct link to Directory Structure" title="Direct link to Directory Structure" translate="no"></a></h3>
<p>The Fluss documentation is organized as follows:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">fluss/website/</span><br></span><span class="token-line" style="color:#9CDCFE"><span class= [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">fluss/website/</span><br></span><span class="token-line" style="color:#36464e"><span class= [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="validation-including-versioned-docs">Validation (including versioned docs)<a href="#validation-including-versioned-docs" class="hash-link" aria-label="Direct link to Validation (including versioned docs)" title="Direct link to Validation (including versioned docs)" translate="no"></a></h3>
<ul>
<li class="">Edit or create Markdown files in the appropriate directories</li>
<li class="">Generate versioned docs (simulates what CI does)</li>
</ul>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./build_versioned_docs.sh</span><br></span></code></pre></div></div>
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">./build_versioned_docs.sh</span><br></span></code></pre></div></div>
<ul>
<li class="">Then build the complete site which checks broken links</li>
</ul>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">npm</span><span class="token plain"> run build -- --no- [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">npm</span><span class="token plain"> run build -- --no-minify</spa [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="preview-changes">Preview Changes<a href="#preview-changes" class="hash-link" aria-label="Direct link to Preview Changes" title="Direct link to Preview Changes" translate="no"></a></h3>
<ul>
<li class="">Start the local development server to preview changes</li>
</ul>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">npm</span><span class="token plain"> run start</span><b [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">npm</span><span class="token plain"> run start</span><br></span></ [...]
<ul>
<li class="">View your changes at <a href="http://localhost:3000/fluss-docs/" target="_blank" rel="noopener noreferrer" class="">http://localhost:3000/fluss-docs/</a></li>
</ul>
@@ -74,7 +74,7 @@
<ul>
<li class="">Checkout the corresponding release branch</li>
</ul>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> checkout release-0 [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> checkout release-0.5</span><b [...]
<ul>
<li class="">Make changes to files in <code>website/docs/</code></li>
<li class="">Create a pull request to that specific release branch</li>
@@ -87,19 +87,19 @@
<li class=""><code>$FLUSS_DOCKER_VERSION$</code>: Expands to the docker version (e.g., "0.6.0-rc1"), it is suggested to use this variable when referring to the docker image version that we can link to a RC version during release testing.</li>
</ul>
<p>For example, to link to a specific version of Fluss binary:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">tar</span><span class="token plain"> </span><span class [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">tar</span><span class="token plain"> </span><span class="token par [...]
<p>The above code block will be rendered as follows for 0.6 version:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">tar</span><span class="token plain"> </span><span class [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">tar</span><span class="token plain"> </span><span class="token par [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="documentation-linking">Documentation Linking<a href="#documentation-linking" class="hash-link" aria-label="Direct link to Documentation Linking" title="Direct link to Documentation Linking" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dos">Do's<a href="#dos" class="hash-link" aria-label="Direct link to Do's" title="Direct link to Do's" translate="no"></a></h3>
<ul>
<li class="">Use file paths with .md extensions</li>
</ul>
-<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token url">[</span><span class="token url content">Table Design</span><span class="token url">]( [...]
+<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token url">[</span><span class="token url content">Table Design</span><span class="token url">]( [...]
<ul>
<li class="">Use paths relative to the docs/ directory</li>
</ul>
-<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token url">[</span><span class="token url content">Flink Engine</span><span class="token url">]( [...]
+<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token url">[</span><span class="token url content">Flink Engine</span><span class="token url">]( [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="donts">Don'ts<a href="#donts" class="hash-link" aria-label="Direct link to Don'ts" title="Direct link to Don'ts" translate="no"></a></h3>
<ul>
<li class="">Use absolute links like <code>/docs/</code> or <code>/blog/</code></li>
@@ -115,11 +115,11 @@
<ol>
<li class="">Commit your changes with a descriptive message:</li>
</ol>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> </span><span class [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> </span><span class="token fun [...]
<ol start="2">
<li class="">Push to your fork:</li>
</ol>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> push origin featur [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> push origin feature-branch-na [...]
<ol start="3">
<li class="">Create a pull request on GitHub from your branch to the appropriate branch</li>
</ol>
diff --git a/community/how-to-contribute/review-pull-requests/index.html b/community/how-to-contribute/review-pull-requests/index.html
index a011449b6..c5c19fe4a 100644
--- a/community/how-to-contribute/review-pull-requests/index.html
+++ b/community/how-to-contribute/review-pull-requests/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/community/how-to-release/creating-a-fluss-release/index.html b/community/how-to-release/creating-a-fluss-release/index.html
index 6852049e3..40b473309 100644
--- a/community/how-to-release/creating-a-fluss-release/index.html
+++ b/community/how-to-release/creating-a-fluss-release/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -73,28 +73,28 @@
<p>Run <code>mvn -v</code> and <code>java -version</code> on your local machine. All of the following steps require to use <strong>Maven 3.8.6</strong> and <strong>Java 11</strong>. Modify your <code>PATH</code> environment variable accordingly if needed.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-clone-fluss-into-a-fresh-workspace">5. Clone Fluss into a fresh workspace<a href="#5-clone-fluss-into-a-fresh-workspace" class="hash-link" aria-label="Direct link to 5. Clone Fluss into a fresh workspace" title="Direct link to 5. Clone Fluss into a fresh workspace" translate="no"></a></h3>
<p>Clone the Fluss repository into a fresh workspace. This is important to ensure that you are working with a clean state.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> clone git@github.c [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> clone git@github.com:apache/f [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-setup-local-environment-variables">6. Setup local environment variables<a href="#6-setup-local-environment-variables" class="hash-link" aria-label="Direct link to 6. Setup local environment variables" title="Direct link to 6. Setup local environment variables" translate="no"></a></h3>
<p>Set up a few environment variables to simplify commands that follow. (We use bash Unix syntax in this guide.)</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token assign-left variable" style="color:rgb(156, 220, 254)">RELEASE_VERSION</span><span class="token op [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token assign-left variable" style="color:#6e59d9">RELEASE_VERSION</span><span class="token operator" sty [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-create-a-release-branch">7. Create a release branch<a href="#7-create-a-release-branch" class="hash-link" aria-label="Direct link to 7. Create a release branch" title="Direct link to 7. Create a release branch" translate="no"></a></h3>
-<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Major release</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Bugfix release</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p>Create a release branch from the <code>main</code> branch in the clone [...]
+<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Major release</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Bugfix release</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p>Create a release branch from the <code>main</code> branch in the clone [...]
<li class=""><code>helm/Chart.yaml</code></li>
<li class=""><code>helm/values.yaml</code></li>
<li class=""><code>helm/README.md</code></li>
-</ul><p>If not, update the version in those files, then commit and push:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">$ </span><span [...]
+</ul><p>If not, update the version in those files, then commit and push:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">$ </span><span [...]
<li class=""><code>helm/Chart.yaml</code></li>
<li class=""><code>helm/values.yaml</code></li>
<li class=""><code>helm/README.md</code></li>
-</ul><p>For a bugfix release you need to update the version in these files. For example, if you are releasing <code>0.8.1-incubating</code>, replace the previous version <code>0.8.0-incubating</code> with <code>0.8.1-incubating</code> in those files.</p><p>And commit/push the version bump:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-c [...]
+</ul><p>For a bugfix release you need to update the version in these files. For example, if you are releasing <code>0.8.1-incubating</code>, replace the previous version <code>0.8.0-incubating</code> with <code>0.8.1-incubating</code> in those files.</p><p>And commit/push the version bump:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-c [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="8-updates-for-the-main-branch">8. Updates for the main branch<a href="#8-updates-for-the-main-branch" class="hash-link" aria-label="Direct link to 8. Updates for the main branch" title="Direct link to 8. Updates for the main branch" translate="no"></a></h3>
-<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Major release</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Bugfix release</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><strong>(1) Bump version for the main branch</strong></p><p>After crea [...]
+<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Major release</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Bugfix release</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><strong>(1) Bump version for the main branch</strong></p><p>After crea [...]
<li class=""><code>helm/Chart.yaml</code></li>
<li class=""><code>helm/values.yaml</code></li>
<li class=""><code>helm/README.md</code></li>
-</ul><p>For example, if the next major version is <code>0.9.0-incubating</code>, you should replace all the previous version <code>0.8.0-incubating</code> to the next release version <code>0.9.0-incubating</code>.</p><p>And commit/push the version bump:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin [...]
+</ul><p>For example, if the next major version is <code>0.9.0-incubating</code>, you should replace all the previous version <code>0.8.0-incubating</code> to the next release version <code>0.9.0-incubating</code>.</p><p>And commit/push the version bump:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="9-pull-requests-for-release-blog-and-downloads">9. Pull Requests for Release Blog and Downloads<a href="#9-pull-requests-for-release-blog-and-downloads" class="hash-link" aria-label="Direct link to 9. Pull Requests for Release Blog and Downloads" title="Direct link to 9. Pull Requests for Release Blog and Downloads" translate="no"></a></h3>
-<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Major release</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Bugfix release</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p>Create a pull request for the release announcement blog for this versi [...]
+<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Major release</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Bugfix release</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p>Create a pull request for the release announcement blog for this versi [...]
<p><strong>Don’t merge the PRs before finalizing the release.</strong></p>
<hr>
<p><strong>Checklist to proceed to the next step</strong></p>
@@ -116,44 +116,44 @@
<p>The core of the release process is the build-vote-fix cycle. Each cycle produces one release candidate. The Release Manager repeats this cycle until the community approves one release candidate, which is then finalized.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-create-rc-branch-and-tag">1. Create RC branch and tag<a href="#1-create-rc-branch-and-tag" class="hash-link" aria-label="Direct link to 1. Create RC branch and tag" title="Direct link to 1. Create RC branch and tag" translate="no"></a></h3>
<p>Set up a few environment variables to simplify Maven commands that follow. This identifies the release candidate being built. Start with <code>RC_NUM</code> equal to 1 and increment it for each candidate.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token assign-left variable" style="color:rgb(156, 220, 254)">RC_NUM</span><span class="token operator" s [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token assign-left variable" style="color:#6e59d9">RC_NUM</span><span class="token operator" style="color [...]
<p>Now, checkout from the release branch, and create a release candidate local branch:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">$ </span><span class="token function" style="color:rgb(220, 220, 170)">git</span><span clas [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">$ </span><span class="token function" style="color:#a846b9">git</span><span class="token pl [...]
<p>Tag the release commit:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> tag </span><span c [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> tag </span><span class="token [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-create-source-release-files">2. Create source release files<a href="#2-create-source-release-files" class="hash-link" aria-label="Direct link to 2. Create source release files" title="Direct link to 2. Create source release files" translate="no"></a></h3>
<p>First, we build the source release:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools $ </span><span class="token assign-left variable" style="color:rgb(156, 220, 254)">RE [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools $ </span><span class="token assign-left variable" style="color:#6e59d9">RELEASE_VERSI [...]
<p>This command creates a source tarball and signs it under <code>tools/releasing/release</code> directory.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-create-binary-release-files">3. Create binary release files<a href="#3-create-binary-release-files" class="hash-link" aria-label="Direct link to 3. Create binary release files" title="Direct link to 3. Create binary release files" translate="no"></a></h3>
<p>Then, we create the binary convenience release files:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools $ </span><span class="token assign-left variable" style="color:rgb(156, 220, 254)">RE [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools $ </span><span class="token assign-left variable" style="color:#6e59d9">RELEASE_VERSI [...]
<p>This command creates a binary tarball and signs it under <code>tools/releasing/release</code> directory.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-create-helm-chart-package">4. Create Helm Chart package<a href="#4-create-helm-chart-package" class="hash-link" aria-label="Direct link to 4. Create Helm Chart package" title="Direct link to 4. Create Helm Chart package" translate="no"></a></h3>
<p>Then, we create the Helm Chart packages:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools $ </span><span class="token assign-left variable" style="color:rgb(156, 220, 254)">RE [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools $ </span><span class="token assign-left variable" style="color:#6e59d9">RELEASE_VERSI [...]
<p>Now, we should already created the source distribution, binary distribution, and Helm Chart packages for the release candidate.
Run the <code>tree releasing/release/</code> command under the <code>tools</code> directory to verify the created files.</p>
<p>Example output for release version <code>0.8.0-incubating</code> and RC number <code>1</code>:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools $ tree releasing/release</span><br></span><span class="token-line" style="color:#9CDC [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools $ tree releasing/release</span><br></span><span class="token-line" style="color:#3646 [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-stage-source--binary--helm-releases">5. Stage source & binary & helm releases<a href="#5-stage-source--binary--helm-releases" class="hash-link" aria-label="Direct link to 5. Stage source & binary & helm releases" title="Direct link to 5. Stage source & binary & helm releases" translate="no"></a></h3>
<p>Next, copy the source and binary release files to the dev repository of dist.apache.org.</p>
<p>(1) If you have not already, check out the Fluss section of the dev repository on dist.apache.org via Subversion. In a fresh directory (e.g., <code>tools/target</code>):</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools $ </span><span class="token function" style="color:rgb(220, 220, 170)">mkdir</span><s [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools $ </span><span class="token function" style="color:#a846b9">mkdir</span><span class=" [...]
<p>(2) Make a directory for the new release:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools/target $ </span><span class="token function" style="color:rgb(220, 220, 170)">mkdir</ [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools/target $ </span><span class="token function" style="color:#a846b9">mkdir</span><span [...]
<p>(3) Copy fluss source and binary distributions, hashes, and GPG signature:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools/target $ </span><span class="token function" style="color:rgb(220, 220, 170)">mv</spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools/target $ </span><span class="token function" style="color:#a846b9">mv</span><span cla [...]
<p>(4) Make a directory for the new helm packages:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools/target $ </span><span class="token function" style="color:rgb(220, 220, 170)">mkdir</ [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools/target $ </span><span class="token function" style="color:#a846b9">mkdir</span><span [...]
<p>(5) Copy fluss helm packages, hashes, and GPG signature:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools/target $ </span><span class="token function" style="color:rgb(220, 220, 170)">mv</spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools/target $ </span><span class="token function" style="color:#a846b9">mv</span><span cla [...]
<p>(6) Add and commit all the files.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools/target $ </span><span class="token builtin class-name" style="color:rgb(78, 201, 176) [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools/target $ </span><span class="token builtin class-name" style="color:#a846b9">cd</span [...]
<p>(7) Verify the files are present: <a href="https://dist.apache.org/repos/dist/dev/incubator/fluss/" target="_blank" rel="noopener noreferrer" class="">https://dist.apache.org/repos/dist/dev/incubator/fluss/</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-stage-maven-artifacts">6. Stage maven artifacts<a href="#6-stage-maven-artifacts" class="hash-link" aria-label="Direct link to 6. Stage maven artifacts" title="Direct link to 6. Stage maven artifacts" translate="no"></a></h3>
<p>Next, we stage the maven artifacts:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools $ releasing/deploy_staging_jars.sh</span><br></span></code></pre></div></div>
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools $ releasing/deploy_staging_jars.sh</span><br></span></code></pre></div></div>
<p>Review all staged artifacts in the staging repositories(<a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener noreferrer" class="">https://repository.apache.org/#stagingRepositories</a>). They should contain all relevant parts for each module, including pom.xml, jar, test jar, source, test source, javadoc, etc. Carefully review any new artifacts.</p>
<p>Close the staging repository on Apache Nexus. When prompted for a description, enter <code>Apache Fluss (Incubating), version X, release candidate Y</code>. You can find the staging repository URL (<code>https://repository.apache.org/content/repositories/orgapachefluss-[STAGING_ID]/</code>) once the staging repository is closed successfully.</p>
<p><img decoding="async" loading="lazy" src="/assets/images/nexus-staging-7b15f45f8a42ad193d1ce2ddb87fb230.png" width="1600" height="783" class="img_ev3q"></p>
@@ -161,7 +161,7 @@ Run the <code>tree releasing/release/</code> command under the <code>tools</code
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<p>Next, we need to build and push Docker images for the release candidates. This will enable users to easily test the new functionality using the Quickstart guide in the <a href="https://fluss.apache.org/docs/quickstart/flink/" target="_blank" rel="noopener noreferrer" class="">Fluss documentation</a> improving accessibility and feedback during the release validation phase.</p>
<p>From the root directory of the source code, run the following commands to build and push the fluss Docker image.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">$ </span><span class="token function" style="color:rgb(220, 220, 170)">rm</span><span class [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">$ </span><span class="token function" style="color:#a846b9">rm</span><span class="token pla [...]
<p>Verify the RC images are present:</p>
<ul>
<li class=""><a href="https://hub.docker.com/r/apache/fluss/tags" target="_blank" rel="noopener noreferrer" class="">https://hub.docker.com/r/apache/fluss/tags</a></li>
@@ -169,7 +169,7 @@ Run the <code>tree releasing/release/</code> command under the <code>tools</code
<p>Then, update the <code>dockerVersion</code> field for the current release RC version in the <code>website/fluss-versions.json</code> file on the <code>main</code> branch to the value of <code>${RELEASE_VERSION}_RC${RC_NUM}</code> (which includes the RC suffix, e.g., <code>0.8.0-incubating-rc1</code>). This update should be committed and pushed to the <code>main</code> branch.</p>
<p>This ensures that the <strong>Quickstart guide</strong> in the documentation references the correct Docker image for the release candidate. This will help developers to easily test the new release candidate using the Quickstart guide.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="8-push-the-rc-tag">8. Push the RC tag<a href="#8-push-the-rc-tag" class="hash-link" aria-label="Direct link to 8. Push the RC tag" title="Direct link to 8. Push the RC tag" translate="no"></a></h3>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> push origin </span [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> push origin </span><span clas [...]
<hr>
<p><strong>Checklist to proceed to the next step</strong></p>
<ul>
@@ -184,7 +184,7 @@ Run the <code>tree releasing/release/</code> command under the <code>tools</code
<p>Fluss is an incubating project, so the release requires a <a href="https://incubator.apache.org/cookbook/#two_phase_vote_on_podling_releases" target="_blank" rel="noopener noreferrer" class="">two-phase vote</a>, first by the Fluss community, and then by the Incubator PMC.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluss-community-vote">Fluss Community Vote<a href="#fluss-community-vote" class="hash-link" aria-label="Direct link to Fluss Community Vote" title="Direct link to Fluss Community Vote" translate="no"></a></h3>
<p>Start the review-and-vote thread on the dev@ mailing list. Here’s an email template; please adjust as you see fit.</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<p><strong>If there are any issues found in the release candidate</strong>, reply on the vote thread to cancel the vote. There’s no need to wait 72 hours. Proceed to the <a href="#fix-any-issues" class="">Fix Issues</a> step below and address the problem. However, some issues don’t require cancellation. For example, if an issue is found in the website pull request, just correct it on the spot and the vote can continue as-is.</p>
<p>For cancelling a release, the release manager needs to send an email to the release candidate thread, stating that the release candidate is officially cancelled. Next, all artifacts created specifically for the RC in the previous steps need to be removed:</p>
<ul>
@@ -192,12 +192,12 @@ Run the <code>tree releasing/release/</code> command under the <code>tools</code
<li class="">Remove the source / binary RC files from dist.apache.org</li>
</ul>
<p><strong>If there are no issues</strong>, reply on the vote thread to close the voting. Then, tally the votes in a separate email. Here’s an email template; please adjust as you see fit.</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="incubator-pmc-vote">Incubator PMC Vote<a href="#incubator-pmc-vote" class="hash-link" aria-label="Direct link to Incubator PMC Vote" title="Direct link to Incubator PMC Vote" translate="no"></a></h3>
<p>Once the Fluss community has approved the release candidate, the release manager should start a vote on the <a href="mailto:general@incubator.apache.org" target="_blank" rel="noopener noreferrer" class="">general@incubator.apache.org</a> mailing list to get the approval from the Incubator PMC. Here’s an email template; please adjust as you see fit.</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<p>Binding votes are the votes from the IPMC members. Similar to the previous vote, send the result on the Incubator general mailing list:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<hr>
<p><strong>Checklist to proceed to the finalization step</strong></p>
<ul>
@@ -209,7 +209,7 @@ Run the <code>tree releasing/release/</code> command under the <code>tools</code
<p>Code changes should be proposed as standard pull requests to the <code>main</code> branch and reviewed using the normal contributing process. Then, relevant changes should be <strong>cherry-picked into the release branch</strong>. The cherry-pick commits should then be proposed as the pull requests against the release branch, again reviewed and merged using the normal contributing process.</p>
<p>Once all issues have been resolved, you should go back and build a new release candidate with these changes.</p>
<p>Before build a new release candidate, remove the old release candidates from <a href="https://dist.apache.org/repos/dist/dev/incubator/fluss" target="_blank" rel="noopener noreferrer" class="">https://dist.apache.org/repos/dist/dev/incubator/fluss</a> using Subversion.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">svn checkout https://dist.apache.org/repos/dist/dev/incubator/fluss </span><span class="tok [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">svn checkout https://dist.apache.org/repos/dist/dev/incubator/fluss </span><span class="tok [...]
<p><strong>Checklist to proceed to the next step</strong></p>
<ul>
<li class="">Issues identified during vote have been resolved, with fixes committed to the release branch.</li>
@@ -220,23 +220,23 @@ Run the <code>tree releasing/release/</code> command under the <code>tools</code
<p>Use the <a href="https://repository.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Nexus</a> repository to release the staged binary artifacts to the Maven Central repository. In the <code>Staging Repositories</code> section, find the relevant release candidate <code>orgapachefluss-XXX</code> entry and click <code>Release</code>. Drop all other release candidates that are not being released.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-deploy-source--binary--helm-releases">2. Deploy source & binary & helm releases<a href="#2-deploy-source--binary--helm-releases" class="hash-link" aria-label="Direct link to 2. Deploy source & binary & helm releases" title="Direct link to 2. Deploy source & binary & helm releases" translate="no"></a></h3>
<p>Copy the source and binary releases from the dev repository to the release repository at dist.apache.org using Subversion.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">svn move </span><span class="token parameter variable" style="color:rgb(156, 220, 254)">-m< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">svn move </span><span class="token parameter variable" style="color:#6e59d9">-m</span><span [...]
<p>(Note: Only PPMC members have access to the release repository. If you do not have access, ask on the mailing list for assistance.)</p>
<p>Then, update the Helm Chart repository index on <a href="https://dist.apache.org/repos/dist/release/incubator/fluss/helm-chart/index.yaml" target="_blank" rel="noopener noreferrer" class="">https://dist.apache.org/repos/dist/release/incubator/fluss/helm-chart/index.yaml</a>:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">svn checkout https://dist.apache.org/repos/dist/release/incubator/fluss/helm-chart fluss-di [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">svn checkout https://dist.apache.org/repos/dist/release/incubator/fluss/helm-chart fluss-di [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-remove-old-release-candidates-from-distapacheorg">3. Remove old release candidates from dist.apache.org<a href="#3-remove-old-release-candidates-from-distapacheorg" class="hash-link" aria-label="Direct link to 3. Remove old release candidates from dist.apache.org" title="Direct link to 3. Remove old release candidates from dist.apache.org" translate="no"></a></h3>
<p>Remove the old release candidates from <a href="https://dist.apache.org/repos/dist/dev/incubator/fluss" target="_blank" rel="noopener noreferrer" class="">https://dist.apache.org/repos/dist/dev/incubator/fluss</a> using Subversion.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">svn checkout https://dist.apache.org/repos/dist/dev/incubator/fluss </span><span class="tok [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">svn checkout https://dist.apache.org/repos/dist/dev/incubator/fluss </span><span class="tok [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-git-tag">4. Git tag<a href="#4-git-tag" class="hash-link" aria-label="Direct link to 4. Git tag" title="Direct link to 4. Git tag" translate="no"></a></h3>
<p>Create and push a new Git tag for the released version by copying the tag for the final release candidate, as follows:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> tag </span><span c [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> tag </span><span class="token [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-publish-docker-images">5. Publish Docker Images<a href="#5-publish-docker-images" class="hash-link" aria-label="Direct link to 5. Publish Docker Images" title="Direct link to 5. Publish Docker Images" translate="no"></a></h3>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> buildx imagetoo [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> buildx imagetools create a [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-update-fluss-versionsjson">6. Update <code>fluss-versions.json</code><a href="#6-update-fluss-versionsjson" class="hash-link" aria-label="Direct link to 6-update-fluss-versionsjson" title="Direct link to 6-update-fluss-versionsjson" translate="no"></a></h3>
<p>Update the <code>released</code> field to <code>true</code> and <code>dockerVersion</code> to <code>$RELEASE_VERSION</code> (without the RC number) for the current release version in the <code>website/fluss-versions.json</code> file on the <code>main</code> branch. This update should be committed and pushed to the <code>main</code> branch.
This will refresh the documentation website to reflect that the new version has been officially released.</p>
-<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token punctuation" style="color:rgb(212, 212, 212)">{</span><span class="token plain"></span><br></span> [...]
+<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token punctuation" style="color:rgba(0, 0, 0, 0.54)">{</span><span class="token plain"></span><br></span [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-mark-the-milestone-as-released-in-github">7. Mark the Milestone as released in GitHub<a href="#7-mark-the-milestone-as-released-in-github" class="hash-link" aria-label="Direct link to 7. Mark the Milestone as released in GitHub" title="Direct link to 7. Mark the Milestone as released in GitHub" translate="no"></a></h3>
<p>In <a href="https://github.com/apache/fluss/milestones" target="_blank" rel="noopener noreferrer" class="">GitHub Milestones</a>, mark the current release milestone as close.</p>
<p>(Note: Only PMC members have access to the project administration. If you do not have access, ask on the mailing list for assistance.)</p>
@@ -260,7 +260,7 @@ This will refresh the documentation website to reflect that the new version has
<p>Announce on the release on the user@ mailing list, listing major improvements and contributions.</p>
<p>Announce the release on the <a href="mailto:announce@apache.org" target="_blank" rel="noopener noreferrer" class="">announce@apache.org</a> mailing list.</p>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<hr>
<p><em><strong>Checklist to declare the process completed</strong></em></p>
<ul>
diff --git a/community/how-to-release/creating-a-fluss-shaded-release/index.html b/community/how-to-release/creating-a-fluss-shaded-release/index.html
index d61af3eb8..be001aa45 100644
--- a/community/how-to-release/creating-a-fluss-shaded-release/index.html
+++ b/community/how-to-release/creating-a-fluss-shaded-release/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -54,18 +54,18 @@
<p>To prepare for each release, you should audit the project status in the GitHub issue tracker, and do necessary bookkeeping. Finally, you should create a release branch from which individual release candidates will be built.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-setup-environment-variables">1. Setup environment variables<a href="#1-setup-environment-variables" class="hash-link" aria-label="Direct link to 1. Setup environment variables" title="Direct link to 1. Setup environment variables" translate="no"></a></h4>
<p>Set up a few environment variables to simplify commands that follow. (We use bash Unix syntax in this guide.)</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token assign-left variable" style="color:rgb(156, 220, 254)">RELEASE_VERSION</span><span class="token op [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token assign-left variable" style="color:#6e59d9">RELEASE_VERSION</span><span class="token operator" sty [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-verify-java-and-maven-version">2. Verify Java and Maven Version<a href="#2-verify-java-and-maven-version" class="hash-link" aria-label="Direct link to 2. Verify Java and Maven Version" title="Direct link to 2. Verify Java and Maven Version" translate="no"></a></h4>
<p>Run <code>mvn -v</code> and <code>java -version</code> on your local machine. All of the following steps require to use <strong>Maven 3.8.6</strong> and <strong>Java 11</strong>. Modify your <code>PATH</code> environment variable accordingly if needed.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-clone-fluss-shaded-into-a-fresh-workspace">3. Clone fluss-shaded into a fresh workspace<a href="#3-clone-fluss-shaded-into-a-fresh-workspace" class="hash-link" aria-label="Direct link to 3. Clone fluss-shaded into a fresh workspace" title="Direct link to 3. Clone fluss-shaded into a fresh workspace" translate="no"></a></h4>
<p>Clone the Fluss repository into a fresh workspace. This is important to ensure that you are working with a clean state.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> clone git@github.c [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> clone git@github.com:apache/f [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-create-a-release-branch">4. Create a release branch<a href="#4-create-a-release-branch" class="hash-link" aria-label="Direct link to 4. Create a release branch" title="Direct link to 4. Create a release branch" translate="no"></a></h4>
<p>Create a release branch from the <code>main</code> branch. This branch will be used to build the release candidate.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">$ </span><span class="token builtin class-name" style="color:rgb(78, 201, 176)">cd</span><s [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">$ </span><span class="token builtin class-name" style="color:#a846b9">cd</span><span class= [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-bump-version-for-the-main-branch">5. Bump version for the main branch<a href="#5-bump-version-for-the-main-branch" class="hash-link" aria-label="Direct link to 5. Bump version for the main branch" title="Direct link to 5. Bump version for the main branch" translate="no"></a></h4>
<p>After creating the release branch, you should bump the version of the main branch to the next version. This is important to ensure that the next development cycle starts with the correct version.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools $ </span><span class="token function" style="color:rgb(220, 220, 170)">git</span><spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools $ </span><span class="token function" style="color:#a846b9">git</span><span class="to [...]
<p>The newly created branch and updated master branch need to be pushed to the official repository.</p>
<p><strong>Checklist to proceed to the next step</strong></p>
<ul>
@@ -82,33 +82,33 @@
<p>The core of the release process is the build-vote-fix cycle. Each cycle produces one release candidate. The Release Manager repeats this cycle until the community approves one release candidate, which is then finalized.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-create-rc-branch-and-tag">1. Create RC branch and tag<a href="#1-create-rc-branch-and-tag" class="hash-link" aria-label="Direct link to 1. Create RC branch and tag" title="Direct link to 1. Create RC branch and tag" translate="no"></a></h3>
<p>Set up a few environment variables to simplify Maven commands that follow. This identifies the release candidate being built. Start with <code>RC_NUM</code> equal to 1 and increment it for each candidate.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token assign-left variable" style="color:rgb(156, 220, 254)">RC_NUM</span><span class="token operator" s [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token assign-left variable" style="color:#6e59d9">RC_NUM</span><span class="token operator" style="color [...]
<p>Now, checkout from the release branch, and create a release candidate local branch:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">$ </span><span class="token function" style="color:rgb(220, 220, 170)">git</span><span clas [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">$ </span><span class="token function" style="color:#a846b9">git</span><span class="token pl [...]
<p>Tag the release commit:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> tag </span><span c [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> tag </span><span class="token [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-stage-source-release-files">2. Stage source release files<a href="#2-stage-source-release-files" class="hash-link" aria-label="Direct link to 2. Stage source release files" title="Direct link to 2. Stage source release files" translate="no"></a></h3>
<p>First, we build the source release:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools $ </span><span class="token assign-left variable" style="color:rgb(156, 220, 254)">RE [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools $ </span><span class="token assign-left variable" style="color:#6e59d9">RELEASE_VERSI [...]
<p>This command creates a source tarball and signs it under <code>tools/release</code> directory.</p>
<p>Next, copy the source release files to the dev repository of dist.apache.org.</p>
<p>(1) If you have not already, check out the Fluss section of the dev repository on dist.apache.org via Subversion. In a fresh directory (e.g., <code>tools/target</code>):</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools $ </span><span class="token function" style="color:rgb(220, 220, 170)">mkdir</span><s [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools $ </span><span class="token function" style="color:#a846b9">mkdir</span><span class=" [...]
<p>(2) Make a directory for the new release:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">mkdir</span><span class="token plain"> fluss/fluss-shad [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">mkdir</span><span class="token plain"> fluss/fluss-shaded-</span>< [...]
<p>(3) Copy fluss-shaded source distributions, hashes, and GPG signature:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools/target $ </span><span class="token function" style="color:rgb(220, 220, 170)">mv</spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools/target $ </span><span class="token function" style="color:#a846b9">mv</span><span cla [...]
<p>(4) Add and commit all the files.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token builtin class-name" style="color:rgb(78, 201, 176)">cd</span><span class="token plain"> fluss</spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token builtin class-name" style="color:#a846b9">cd</span><span class="token plain"> fluss</span><br></sp [...]
<p>(5) Verify the files are present: <a href="https://dist.apache.org/repos/dist/dev/incubator/fluss/" target="_blank" rel="noopener noreferrer" class="">https://dist.apache.org/repos/dist/dev/incubator/fluss/</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-stage-maven-artifacts">3. Stage maven artifacts<a href="#3-stage-maven-artifacts" class="hash-link" aria-label="Direct link to 3. Stage maven artifacts" title="Direct link to 3. Stage maven artifacts" translate="no"></a></h3>
<p>Next, we stage the maven artifacts:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">tools $ releasing/deploy_staging_jars.sh</span><br></span></code></pre></div></div>
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">tools $ releasing/deploy_staging_jars.sh</span><br></span></code></pre></div></div>
<p>Review all staged artifacts in the staging repositories(<a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener noreferrer" class="">https://repository.apache.org/#stagingRepositories</a>). They should contain all relevant parts for each module, including pom.xml, jar, test jar, source, test source, javadoc, etc. Carefully review any new artifacts. (fluss-shaded doesn’t deploy test jar, source jar, and javadoc jar, see the <a href="https://github.com [...]
<p>Close the staging repository on Apache Nexus. When prompted for a description, enter <code>Apache Fluss Shaded (Incubating), version X, release candidate Y</code>. You can find the staging repository URL (<code>https://repository.apache.org/content/repositories/orgapachefluss-[STAGING_ID]/</code>) once the staging repository is closed successfully.</p>
<p><img decoding="async" loading="lazy" src="/assets/images/nexus-staging-7b15f45f8a42ad193d1ce2ddb87fb230.png" width="1600" height="783" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-push-the-rc-tag">4. Push the RC tag<a href="#4-push-the-rc-tag" class="hash-link" aria-label="Direct link to 4. Push the RC tag" title="Direct link to 4. Push the RC tag" translate="no"></a></h3>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> push </span><span [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> push </span><span class="toke [...]
<p><strong>Checklist to proceed to the next step</strong></p>
<ul>
<li class="">Maven artifacts deployed to the staging repository of <a href="https://repository.apache.org/content/repositories/" target="_blank" rel="noopener noreferrer" class="">repository.apache.org</a></li>
@@ -120,7 +120,7 @@
<p>Fluss is an incubating project, so the release requires a <a href="https://incubator.apache.org/cookbook/#two_phase_vote_on_podling_releases" target="_blank" rel="noopener noreferrer" class="">two-phase vote</a>, first by the Fluss community, and then by the Incubator PMC.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluss-community-vote">Fluss Community Vote<a href="#fluss-community-vote" class="hash-link" aria-label="Direct link to Fluss Community Vote" title="Direct link to Fluss Community Vote" translate="no"></a></h3>
<p>Start the review-and-vote thread on the dev@ mailing list. Here’s an email template; please adjust as you see fit.</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<p><strong>If there are any issues found in the release candidate</strong>, reply on the vote thread to cancel the vote. There’s no need to wait 72 hours. Proceed to the <a href="#fix-any-issues" class="">Fix Issues</a> step below and address the problem. However, some issues don’t require cancellation. For example, if an issue is found in the website pull request, just correct it on the spot and the vote can continue as-is.</p>
<p>For cancelling a release, the release manager needs to send an email to the release candidate thread, stating that the release candidate is officially cancelled. Next, all artifacts created specifically for the RC in the previous steps need to be removed:</p>
<ul>
@@ -129,12 +129,12 @@
<li class="">Delete the source code tag in git</li>
</ul>
<p><strong>If there are no issues</strong>, reply on the vote thread to close the voting. Then, tally the votes in a separate email. Here’s an email template; please adjust as you see fit.</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="incubator-pmc-vote">Incubator PMC Vote<a href="#incubator-pmc-vote" class="hash-link" aria-label="Direct link to Incubator PMC Vote" title="Direct link to Incubator PMC Vote" translate="no"></a></h3>
<p>Once the Fluss community has approved the release candidate, the release manager should start a vote on the <a href="mailto:general@incubator.apache.org" target="_blank" rel="noopener noreferrer" class="">general@incubator.apache.org</a> mailing list to get the approval from the Incubator PMC. Here’s an email template; please adjust as you see fit.</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<p>Binding votes are the votes from the IPMC members. Similar to the previous vote, send the result on the Incubator general mailing list:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<p><strong>Checklist to proceed to the finalization step</strong></p>
<ul>
<li class="">Community votes to release the proposed candidate, with at least three approving PPMC votes</li>
@@ -154,14 +154,14 @@
<p>Use the <a href="https://repository.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Nexus</a> repository to release the staged binary artifacts to the Maven Central repository. In the <code>Staging Repositories</code> section, find the relevant release candidate <code>orgapachefluss-XXX</code> entry and click <code>Release</code>. Drop all other release candidates that are not being released.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="deploy-source-and-binary-releases-to-distapacheorg">Deploy source and binary releases to dist.apache.org<a href="#deploy-source-and-binary-releases-to-distapacheorg" class="hash-link" aria-label="Direct link to Deploy source and binary releases to dist.apache.org" title="Direct link to Deploy source and binary releases to dist.apache.org" translate="no"></a></h4>
<p>Copy the source and binary releases from the dev repository to the release repository at dist.apache.org using Subversion.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">svn move </span><span class="token parameter variable" style="color:rgb(156, 220, 254)">-m< [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">svn move </span><span class="token parameter variable" style="color:#6e59d9">-m</span><span [...]
<p>(Note: Only PPMC members have access to the release repository. If you do not have access, ask on the mailing list for assistance.)</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="remove-old-release-candidates-from-distapacheorg">Remove old release candidates from dist.apache.org<a href="#remove-old-release-candidates-from-distapacheorg" class="hash-link" aria-label="Direct link to Remove old release candidates from dist.apache.org" title="Direct link to Remove old release candidates from dist.apache.org" translate="no"></a></h4>
<p>Remove the old release candidates from <a href="https://dist.apache.org/repos/dist/dev/incubator/fluss" target="_blank" rel="noopener noreferrer" class="">https://dist.apache.org/repos/dist/dev/incubator/fluss</a> using Subversion.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">svn checkout https://dist.apache.org/repos/dist/dev/incubator/fluss </span><span class="tok [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">svn checkout https://dist.apache.org/repos/dist/dev/incubator/fluss </span><span class="tok [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="git-tag">Git tag<a href="#git-tag" class="hash-link" aria-label="Direct link to Git tag" title="Direct link to Git tag" translate="no"></a></h4>
<p>Create and push a new Git tag for the released version by copying the tag for the final release candidate, as follows:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> tag </span><span c [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> tag </span><span class="token [...]
<p><strong>Checklist to proceed to the next step</strong></p>
<ul>
<li class="">Maven artifacts released and indexed in the Maven Central Repository (usually takes about a day to show up)</li>
@@ -174,7 +174,7 @@
<p>Announce on the dev@ mailing list that the release has been finished.</p>
<p>Announce on the release on the user@ mailing list, listing major improvements and contributions.</p>
<p>Announce the release on the <a href="mailto:announce@apache.org" target="_blank" rel="noopener noreferrer" class="">announce@apache.org</a> mailing list.</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">From: Release Manager</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="recordkeeping">Recordkeeping<a href="#recordkeeping" class="hash-link" aria-label="Direct link to Recordkeeping" title="Direct link to Recordkeeping" translate="no"></a></h4>
<p>Use <a href="https://reporter.apache.org/addrelease.html?fluss" target="_blank" rel="noopener noreferrer" class="">reporter.apache.org</a> to seed the information about the release into future project reports.</p>
<p>(Note: Only PMC members have access report releases. If you do not have access, ask on the mailing list for assistance.)</p>
diff --git a/community/how-to-release/release-manager-preparation/index.html b/community/how-to-release/release-manager-preparation/index.html
index 703dceb69..edec29fef 100644
--- a/community/how-to-release/release-manager-preparation/index.html
+++ b/community/how-to-release/release-manager-preparation/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -37,30 +37,30 @@
<li class=""><a href="https://helm.sh/docs/intro/install/" target="_blank" rel="noopener noreferrer" class="">Helm</a> and <a href="https://github.com/technosophos/helm-gpg" target="_blank" rel="noopener noreferrer" class="">helm-gpg</a> plugin</li>
<li class=""><a href="https://docs.docker.com/get-started/get-docker/" target="_blank" rel="noopener noreferrer" class="">Docker</a></li>
</ul>
-<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
+<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="gpg-key">GPG Key<a href="#gpg-key" class="hash-link" aria-label="Direct link to GPG Key" title="Direct link to GPG Key" translate="no"></a></h2>
<p>You need to have a GPG key to sign the release artifacts. Please be aware of the ASF-wide <a href="https://www.apache.org/dev/release-signing.html" target="_blank" rel="noopener noreferrer" class="">release signing guidelines</a>. If you don’t have a GPG key associated with your Apache account, please create one according to the guidelines.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="generate-a-gpg-key">Generate a GPG Key<a href="#generate-a-gpg-key" class="hash-link" aria-label="Direct link to Generate a GPG Key" title="Direct link to Generate a GPG Key" translate="no"></a></h3>
<p>Following is a quick setup guide for generating GPG key.</p>
<p>Install GPG:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">sudo apt install gnupg2</span><br></span></code></pre></div></div>
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">sudo apt install gnupg2</span><br></span></code></pre></div></div>
<p>Generate a GPG key. Please use your apache name and email for generate key.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">$ gpg --full-gen-key</span><br></span><span class="token-line" style="color:#9CDCFE"><span [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">$ gpg --full-gen-key</span><br></span><span class="token-line" style="color:#36464e"><span [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="upload-gpg-public-key-to-apache-keys">Upload GPG public Key to Apache KEYS<a href="#upload-gpg-public-key-to-apache-keys" class="hash-link" aria-label="Direct link to Upload GPG public Key to Apache KEYS" title="Direct link to Upload GPG public Key to Apache KEYS" translate="no"></a></h3>
<p>Determine your Apache GPG Key and Key ID, as follows:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">gpg --list-keys --keyid-format short</span><br></span></code></pre></div></div>
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">gpg --list-keys --keyid-format short</span><br></span></code></pre></div></div>
<p>This will list your GPG keys. One of these should reflect your Apache account, for example:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">--------------------------------------------------</span><br></span><span class="token-line [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">--------------------------------------------------</span><br></span><span class="token-line [...]
<p>Here, the key ID is the 8-digit hex string in the pub line: 845E6689.</p>
<p>Now, add your Apache GPG key to the Fluss’s KEYS file in the <a href="https://dist.apache.org/repos/dist/release/incubator/fluss/KEYS" target="_blank" rel="noopener noreferrer" class="">release</a> repository at <a href="https://dist.apache.org" target="_blank" rel="noopener noreferrer" class="">dist.apache.org</a>. Follow the instructions listed at the top of these files. (Note: Only PPMC members have write access to the release repository. If you end up getting 403 errors ask on the [...]
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">svn co https://dist.apache.org/repos/dist/release/incubator/fluss fluss-dist</span><br></sp [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">svn co https://dist.apache.org/repos/dist/release/incubator/fluss fluss-dist</span><br></sp [...]
<p>To send the key to the Ubuntu key-server, Apache Nexus needs it to validate published artifacts:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">gpg --keyserver hkps://keyserver.ubuntu.com --send-keys <YOUR KEY ID HERE></span><br> [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">gpg --keyserver hkps://keyserver.ubuntu.com --send-keys <YOUR KEY ID HERE></span><br> [...]
<p>Configure git to use this key when signing code by giving it your key ID, as follows:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">git config --global user.signingkey 845E6689</span><br></span></code></pre></div></div>
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">git config --global user.signingkey 845E6689</span><br></span></code></pre></div></div>
<p>You may drop the <code>--global</code> option if you’d prefer to use this key for the current repository only.</p>
<p>You may wish to start <code>gpg-agent</code> to unlock your GPG key only once using your passphrase. Otherwise, you may need to enter this passphrase hundreds of times. The setup for <code>gpg-agent</code> varies based on operating system, but may be something like this:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">eval $(gpg-agent --daemon --no-grab --write-env-file $HOME/.gpg-agent-info)</span><br></spa [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">eval $(gpg-agent --daemon --no-grab --write-env-file $HOME/.gpg-agent-info)</span><br></spa [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="upload-the-gpg-public-key-to-your-github-account-optional">Upload the GPG public key to your GitHub account (Optional)<a href="#upload-the-gpg-public-key-to-your-github-account-optional" class="hash-link" aria-label="Direct link to Upload the GPG public key to your GitHub account (Optional)" title="Direct link to Upload the GPG public key to your GitHub account (Optional)" translate="no"></a></h3>
<p>Enter <a href="https://github.com/settings/keys" target="_blank" rel="noopener noreferrer" class="">https://github.com/settings/keys</a> to add your GPG key.
Please remember to bind the email address used in the GPG key to your GitHub account (<a href="https://github.com/settings/emails" target="_blank" rel="noopener noreferrer" class="">https://github.com/settings/emails</a>) if you find "unverified" after adding it.</p>
@@ -73,10 +73,10 @@ Please remember to bind the email address used in the GPG key to your GitHub acc
<li class="">Choose <code>User Token</code> from the dropdown, then click <code>Access User Token</code>. Copy a snippet of the Maven XML configuration block.</li>
<li class="">Insert this snippet twice into your global Maven <code>settings.xml</code> file, typically <code>${HOME}/.m2/settings.xml</code>. The end result should look like this, where <code>TOKEN_NAME</code> and <code>TOKEN_PASSWORD</code> are your secret tokens:</li>
</ol>
-<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token tag punctuation" style="color:rgb(212, 212, 212)"><</span><span class="token tag" style="color:rg [...]
+<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token tag punctuation" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token tag" style="color:# [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="gnu-tar-setup-for-mac">GNU Tar Setup for Mac<a href="#gnu-tar-setup-for-mac" class="hash-link" aria-label="Direct link to GNU Tar Setup for Mac" title="Direct link to GNU Tar Setup for Mac" translate="no"></a></h2>
<p>Skip this step if you are not using a Mac. The default tar application on Mac does not support GNU archive format and defaults to Pax. This bloats the archive with unnecessary metadata that can result in additional files when decompressing (see 1.15.2-RC2 vote thread). Install gnu-tar and create a symbolic link to use in preference of the default tar program.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">brew </span><span class="token function" style="color:rgb(220, 220, 170)">install</span><sp [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">brew </span><span class="token function" style="color:#a846b9">install</span><span class="t [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="further-reading">Further reading<a href="#further-reading" class="hash-link" aria-label="Direct link to Further reading" title="Direct link to Further reading" translate="no"></a></h2>
<p>It's recommended but not mandatory to read following documents before making a release to know more details about apache release:</p>
<ul>
diff --git a/community/how-to-release/verifying-a-fluss-release/index.html b/community/how-to-release/verifying-a-fluss-release/index.html
index 5574e9bf7..574556417 100644
--- a/community/how-to-release/verifying-a-fluss-release/index.html
+++ b/community/how-to-release/verifying-a-fluss-release/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -34,19 +34,19 @@
<p>After downloading the distributions archives, signatures, checksums, and KEYS file, here are the instructions on how to verify signatures, checksums.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="verifying-signatures">Verifying signatures<a href="#verifying-signatures" class="hash-link" aria-label="Direct link to Verifying signatures" title="Direct link to Verifying signatures" translate="no"></a></h2>
<p>First, import the keys in your local keyring:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">curl</span><span class="token plain"> https://downloads [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">curl</span><span class="token plain"> https://downloads.apache.org [...]
<p>Next, verify all <code>.asc</code> files:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">for</span><span class="token plain"> </span><span class=" [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">for</span><span class="token plain"> </span><span class="token for- [...]
<p>If the verification is successful, you will see a message like this:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">fluss-0.8.0-incubating-src.tgz</span><br></span><span class="token-line" style="color:#9CDC [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">fluss-0.8.0-incubating-src.tgz</span><br></span><span class="token-line" style="color:#3646 [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="verifying-checksums">Verifying checksums<a href="#verifying-checksums" class="hash-link" aria-label="Direct link to Verifying checksums" title="Direct link to Verifying checksums" translate="no"></a></h2>
<p>Next, verify all the checksums:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">shasum *.sha512 </span><span class="token operator" style="color:rgb(212, 212, 212)">></ [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">shasum *.sha512 </span><span class="token operator" style="color:rgba(0, 0, 0, 0.54)">>< [...]
<p>If the verification is successful, you will see a message like this:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">fluss-0.8.0-incubating-bin.tgz.sha512: OK</span><br></span><span class="token-line" style=" [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">fluss-0.8.0-incubating-bin.tgz.sha512: OK</span><br></span><span class="token-line" style=" [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="verifying-build">Verifying build<a href="#verifying-build" class="hash-link" aria-label="Direct link to Verifying build" title="Direct link to Verifying build" translate="no"></a></h2>
<p>Unzip the source release archive (<code>fluss-0.8.0-incubating-src.tgz</code>), and verify that the source release builds correctly (may with different Java version and Maven version), you can run the following commands:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">mvn clean package </span><span class="token parameter variable" style="color:rgb(156, 220, [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">mvn clean package </span><span class="token parameter variable" style="color:#6e59d9">-Dski [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="verifying-licensenotice">Verifying LICENSE/NOTICE<a href="#verifying-licensenotice" class="hash-link" aria-label="Direct link to Verifying LICENSE/NOTICE" title="Direct link to Verifying LICENSE/NOTICE" translate="no"></a></h2>
<p>Unzip the source release archive, and verify that:</p>
<ol>
@@ -58,7 +58,7 @@
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="testing-against-staged-maven-artifacts">Testing Against Staged Maven Artifacts<a href="#testing-against-staged-maven-artifacts" class="hash-link" aria-label="Direct link to Testing Against Staged Maven Artifacts" title="Direct link to Testing Against Staged Maven Artifacts" translate="no"></a></h2>
<p>Update the root <code>pom.xml</code> of the maven project (like the apache/fluss project) to include the staged repository in the <code><repositories></code> section. You can do this by adding a new repository entry like this:</p>
-<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token tag punctuation" style="color:rgb(212, 212, 212)"><</span><span class="token tag" style="color:rg [...]
+<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token tag punctuation" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token tag" style="color:# [...]
<p>And then you can use the staged maven artifacts as dependencies in the project and verify the new dependencies work.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="testing-features">Testing Features<a href="#testing-features" class="hash-link" aria-label="Direct link to Testing Features" title="Direct link to Testing Features" translate="no"></a></h2>
<p>For any user-facing feature included in a release, we aim to ensure it is functional, usable, and well-documented for the Fluss community.</p>
diff --git a/community/how-to-release/verifying-a-fluss-shaded-release/index.html b/community/how-to-release/verifying-a-fluss-shaded-release/index.html
index 49114204b..0b1e0dbc5 100644
--- a/community/how-to-release/verifying-a-fluss-shaded-release/index.html
+++ b/community/how-to-release/verifying-a-fluss-shaded-release/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -34,19 +34,19 @@
<p>After downloading the distributions archives, signatures, checksums, and KEYS file, here are the instructions on how to verify signatures, checksums.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="verifying-signatures">Verifying signatures<a href="#verifying-signatures" class="hash-link" aria-label="Direct link to Verifying signatures" title="Direct link to Verifying signatures" translate="no"></a></h2>
<p>First, import the keys in your local keyring:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">curl</span><span class="token plain"> https://downloads [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">curl</span><span class="token plain"> https://downloads.apache.org [...]
<p>Next, verify all <code>.asc</code> files:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">for</span><span class="token plain"> </span><span class=" [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">for</span><span class="token plain"> </span><span class="token for- [...]
<p>If the verification is successful, you will see a message like this:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">fluss-shaded-1.0-incubating-src.tgz</span><br></span><span class="token-line" style="color: [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">fluss-shaded-1.0-incubating-src.tgz</span><br></span><span class="token-line" style="color: [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="verifying-checksums">Verifying checksums<a href="#verifying-checksums" class="hash-link" aria-label="Direct link to Verifying checksums" title="Direct link to Verifying checksums" translate="no"></a></h2>
<p>Next, verify all the checksums:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">for</span><span class="token plain"> </span><span class=" [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">for</span><span class="token plain"> </span><span class="token for- [...]
<p>If the verification is successful, you will see a message like this:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">fluss-shaded-1.0-incubating-src.tgz</span><br></span><span class="token-line" style="color: [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">fluss-shaded-1.0-incubating-src.tgz</span><br></span><span class="token-line" style="color: [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="verifying-build">Verifying build<a href="#verifying-build" class="hash-link" aria-label="Direct link to Verifying build" title="Direct link to Verifying build" translate="no"></a></h2>
<p>Unzip the source release archive (<code>fluss-shaded-1.0-incubating-src.tgz</code>), and verify that the source release builds correctly (may with different Java version and Maven version), you can run the following commands:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">mvn clean package </span><span class="token parameter variable" style="color:rgb(156, 220, [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">mvn clean package </span><span class="token parameter variable" style="color:#6e59d9">-Dski [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="verifying-licensenotice">Verifying LICENSE/NOTICE<a href="#verifying-licensenotice" class="hash-link" aria-label="Direct link to Verifying LICENSE/NOTICE" title="Direct link to Verifying LICENSE/NOTICE" translate="no"></a></h2>
<p>Unzip the source release archive, and verify that:</p>
<ol>
@@ -58,7 +58,7 @@
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="testing-against-staged-maven-artifacts">Testing Against Staged Maven Artifacts<a href="#testing-against-staged-maven-artifacts" class="hash-link" aria-label="Direct link to Testing Against Staged Maven Artifacts" title="Direct link to Testing Against Staged Maven Artifacts" translate="no"></a></h2>
<p>Update the root <code>pom.xml</code> of the maven project (like the apache/fluss project) to include the staged repository in the <code><repositories></code> section. You can do this by adding a new repository entry like this:</p>
-<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token tag punctuation" style="color:rgb(212, 212, 212)"><</span><span class="token tag" style="color:rg [...]
+<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token tag punctuation" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token tag" style="color:# [...]
<p>And then you can use the staged maven artifacts as dependencies in the project and verify the new dependencies work.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="voting">Voting<a href="#voting" class="hash-link" aria-label="Direct link to Voting" title="Direct link to Voting" translate="no"></a></h2>
<p>Votes are cast by replying on the vote email on the dev mailing list, with either +1, 0, -1.</p>
diff --git a/community/welcome/index.html b/community/welcome/index.html
index 91b2863d5..b582d95d2 100644
--- a/community/welcome/index.html
+++ b/community/welcome/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/concepts/architecture/index.html b/docs/0.5/concepts/architecture/index.html
index ab99c3a67..ac8ebe0c4 100644
--- a/docs/0.5/concepts/architecture/index.html
+++ b/docs/0.5/concepts/architecture/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/dev/building/index.html b/docs/0.5/dev/building/index.html
index 076caff73..29ecac538 100644
--- a/docs/0.5/dev/building/index.html
+++ b/docs/0.5/dev/building/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -28,9 +28,9 @@
<p>In order to build Fluss you need to get the source code by <a href="https://github.com/alibaba/fluss" target="_blank" rel="noopener noreferrer" class="">clone the git repository</a>.</p>
<p>In addition, you need <strong>Maven 3.8.6</strong> and a <strong>JDK</strong> (Java Development Kit). Fluss requires <strong>Java 8 or Java 11</strong> to build.</p>
<p>To clone from git, enter:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> clone git@github.c [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> clone git@github.com:alibaba/ [...]
<p>The simplest way of building Fluss is by running:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">mvn clean </span><span class="token function" style="color:rgb(220, 220, 170)">install</spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">mvn clean </span><span class="token function" style="color:#a846b9">install</span><span cla [...]
<p>This instructs <a href="http://maven.apache.org" target="_blank" rel="noopener noreferrer" class="">Maven</a> (<code>mvn</code>) to first remove all existing builds (<code>clean</code>) and then create a new Fluss binary (<code>install</code>).</p>
<p>To speed up the build you can:</p>
<ul>
@@ -38,7 +38,7 @@
<li class="">use Maven's parallel build feature, e.g., <code>mvn package -T 1C</code> will attempt to build 1 module for each CPU core in parallel.</li>
</ul>
<p>The build script will be:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">mvn clean </span><span class="token function" style="color:rgb(220, 220, 170)">install</spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">mvn clean </span><span class="token function" style="color:#a846b9">install</span><span cla [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
<p>Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p></div></div></div></footer></div>
</body>
diff --git a/docs/0.5/dev/ide-setup/index.html b/docs/0.5/dev/ide-setup/index.html
index 3198abfcd..6d7279a67 100644
--- a/docs/0.5/dev/ide-setup/index.html
+++ b/docs/0.5/dev/ide-setup/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -32,7 +32,7 @@ that has a bug or is not properly set up.</p></div></div>
<p>To get started, please first checkout the Fluss sources from our
<a href="https://github.com/alibaba/fluss" target="_blank" rel="noopener noreferrer" class="">repository</a>,
e.g.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">git</span><span class="token plain"> clone git@github.c [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">git</span><span class="token plain"> clone git@github.com:alibaba/ [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="intellij-idea">IntelliJ IDEA<a href="#intellij-idea" class="hash-link" aria-label="Direct link to IntelliJ IDEA" title="Direct link to IntelliJ IDEA" translate="no"></a></h2>
<p>The following guide has been written for <a href="https://www.jetbrains.com/idea/download/" target="_blank" rel="noopener noreferrer" class="">IntelliJ IDEA</a>
2024.3. Some details might differ in other versions. Please make sure to follow all steps</p>
@@ -64,7 +64,7 @@ adding a Copyright profile:</p>
</li>
<li class="">
<p>Add the following text as the license text:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain"> Copyright (c) 2024 Alibaba Group Holding Ltd.</span><br></span><span class="token-line" st [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain"> Copyright (c) 2024 Alibaba Group Holding Ltd.</span><br></span><span class="token-line" st [...]
</li>
<li class="">
<p>Go to "Editor" → "Copyright" and choose the "Alibaba" profile as the default profile for this
diff --git a/docs/0.5/engine-flink/ddl/index.html b/docs/0.5/engine-flink/ddl/index.html
index a654476f2..d5e001b3e 100644
--- a/docs/0.5/engine-flink/ddl/index.html
+++ b/docs/0.5/engine-flink/ddl/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -25,39 +25,39 @@
<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__d [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-catalog">Create Catalog<a href="#create-catalog" class="hash-link" aria-label="Direct link to Create Catalog" title="Direct link to Create Catalog" translate="no"></a></h2>
<p>Fluss supports creating and managing tables through the Fluss Catalog.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> CATALOG fluss_catal [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> CATALOG fluss_catalog </span> [...]
<p>The following properties can be set if using the Fluss catalog:</p>
<table><thead><tr><th>Option</th><th>Required</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td>type</td><td>required</td><td>(none)</td><td>Catalog type, must to be 'fluss' here.</td></tr><tr><td>bootstrap.servers</td><td>required</td><td>(none)</td><td>Comma separated list of Fluss servers.</td></tr><tr><td>default-database</td><td>optional</td><td>fluss</td><td>The default database to use when switching to this catalog.</td></tr></tbody></table>
<p>The following introduced statements assuming the current catalog is switched to the Fluss catalog using <code>USE CATALOG <catalog_name></code> statement.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-database">Create Database<a href="#create-database" class="hash-link" aria-label="Direct link to Create Database" title="Direct link to Create Database" translate="no"></a></h2>
<p>By default, FlussCatalog will use the <code>fluss</code> database in Flink. Using the following example to create a separate database in order to avoid creating tables under the default <code>fluss</code> database:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="drop-database">Drop Database<a href="#drop-database" class="hash-link" aria-label="Direct link to Drop Database" title="Direct link to Drop Database" translate="no"></a></h2>
<p>To delete a database, this will drop all the tables in the database as well:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Flink doesn't allow drop current database, switch t [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Flink doesn't allow drop current database, [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-table">Create Table<a href="#create-table" class="hash-link" aria-label="Direct link to Create Table" title="Direct link to Create Table" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="primarykey-table">PrimaryKey Table<a href="#primarykey-table" class="hash-link" aria-label="Direct link to PrimaryKey Table" title="Direct link to PrimaryKey Table" translate="no"></a></h3>
<p>The following SQL statement will create a <a class="" href="/docs/0.5/table-design/table-types/pk-table/">PrimaryKey Table</a> with a primary key consisting of shop_id and user_id.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="log-table">Log Table<a href="#log-table" class="hash-link" aria-label="Direct link to Log Table" title="Direct link to Log Table" translate="no"></a></h3>
<p>The following SQL statement creates a <a class="" href="/docs/0.5/table-design/table-types/log-table/">Log Table</a> by not specifying primary key clause.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="partitioned-primarykeylog-table">Partitioned (PrimaryKey/Log) Table<a href="#partitioned-primarykeylog-table" class="hash-link" aria-label="Direct link to Partitioned (PrimaryKey/Log) Table" title="Direct link to Partitioned (PrimaryKey/Log) Table" translate="no"></a></h3>
<p>The following SQL statement creates a Partitioned PrimaryKey Table in Fluss. Note that the partitioned field (<code>dt</code> in this case) must be a subset of the primary key (<code>dt, shop_id, user_id</code> in this case).
Currently, Fluss only supports one partitioned field with <code>STRING</code> type.</p>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<p>The following SQL statement creates a Partitioned Log Table in Fluss.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<p>The supported option in "with" parameters when creating a table are as follows:</p>
<table><thead><tr><th>Option</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td>bucket.num</td><td>int</td><td>optional</td><td>The bucket number of Fluss cluster.</td><td>The number of buckets of a Fluss table.</td></tr><tr><td>bucket.key</td><td>String</td><td>optional</td><td>(none)</td><td>Specific the distribution policy of the Fluss table. Data will be distributed to each bucket according to the hash value of bucket-key. If you specif [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-table-like">Create Table Like<a href="#create-table-like" class="hash-link" aria-label="Direct link to Create Table Like" title="Direct link to Create Table Like" translate="no"></a></h2>
<p>To create a table with the same schema, partitioning, and table properties as another table, use <code>CREATE TABLE LIKE</code>.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- there is a temporary datagen table</span><span class="to [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- there is a temporary datagen table</span><span c [...]
<p>For more details, refer to the <a href="https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/table/sql/create/#like" target="_blank" rel="noopener noreferrer" class="">Flink CREATE TABLE</a> documentation.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="drop-table">Drop Table<a href="#drop-table" class="hash-link" aria-label="Direct link to Drop Table" title="Direct link to Drop Table" translate="no"></a></h2>
<p>To delete a table, run:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">DROP</span><span class="token plain"> </span><span class="t [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">DROP</span><span class="token plain"> </span><span class="token keywo [...]
<p>This will entirely remove all the data of the table in the Fluss cluster.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/apache/fluss/edit/main/website/docs/engine-flink/ddl.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
<p>Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p></div></div></div></footer></div>
diff --git a/docs/0.5/engine-flink/getting-started/index.html b/docs/0.5/engine-flink/getting-started/index.html
index 50b8b3870..5dfad62ee 100644
--- a/docs/0.5/engine-flink/getting-started/index.html
+++ b/docs/0.5/engine-flink/getting-started/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -36,29 +36,29 @@
</ul>
<p>Flink runs on all UNIX-like environments, i.e. Linux, Mac OS X, and Cygwin (for Windows).
If you haven’t downloaded Flink, you can download <a href="https://flink.apache.org/downloads.html" target="_blank" rel="noopener noreferrer" class="">the binary release</a> of Flink, then extract the archive with the following command.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">tar</span><span class="token plain"> </span><span cla [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">tar</span><span class="token plain"> </span><span class="token p [...]
<ul>
<li class=""><strong>Copy Fluss Connector Jar</strong></li>
</ul>
<p>Download <a class="" href="/downloads/#fluss-connector">Fluss connector jar</a> and copy to the lib directory of your Flink home.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">cp</span><span class="token plain"> fluss-connector-f [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">cp</span><span class="token plain"> fluss-connector-flink-0.5.0. [...]
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
you should download the corresponding <a class="" href="/downloads/#filesystem-jars">Fluss filesystem jar</a> and also copy it to the lib directory of your Flink home.</p></div></div>
<ul>
<li class=""><strong>Start a local cluster</strong></li>
</ul>
<p>To start a local cluster, run the bash script that comes with Flink:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</spa [...]
<p>You should be able to navigate to the web UI at <a href="http://localhost:8081/" target="_blank" rel="noopener noreferrer" class="">localhost:8081</a> to view the Flink dashboard and see that the cluster is up and running. You can also check its status with the following command:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">ps</span><span class="token plain"> aux </span><span [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">ps</span><span class="token plain"> aux </span><span class="toke [...]
<ul>
<li class=""><strong>Start a sql client</strong></li>
</ul>
<p>To quickly stop the cluster and all running components, you can use the provided script:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</spa [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="creating-a-catalog">Creating a Catalog<a href="#creating-a-catalog" class="hash-link" aria-label="Direct link to Creating a Catalog" title="Direct link to Creating a Catalog" translate="no"></a></h2>
<p>You can use the following SQL statement to create a catalog.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREA [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span>< [...]
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<li class="">The <code>bootstrap.servers</code> means the Fluss server address. Before you config the <code>bootstrap.servers</code>,
you should start the Fluss server first. See <a class="" href="/docs/0.5/install-deploy/overview/#how-to-deploy-fluss">Deploying Fluss</a>
@@ -67,21 +67,21 @@ Here, it is assumed that there is a Fluss cluster running on your local machine
<li class="">The<code> bootstrap.servers</code> configuration is used to discover all nodes within the Fluss cluster. It can be set with one or more (up to three) Fluss server addresses (either CoordinatorServer or TabletServer) separated by commas.</li>
</ol></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="creating-a-table">Creating a Table<a href="#creating-a-table" class="hash-link" aria-label="Direct link to Creating a Table" title="Direct link to Creating a Table" translate="no"></a></h2>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">USE< [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">USE</span><spa [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="data-writing">Data Writing<a href="#data-writing" class="hash-link" aria-label="Direct link to Data Writing" title="Direct link to Data Writing" translate="no"></a></h2>
<p>To append new data to a table, you can use <code>INSERT INTO</code> in batch mode or streaming mode:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- E [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<p>To update data record with the primary key (1234, 1234) in a Flink streaming job, use the UPDATE statement as follows:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- s [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<p>To delete the data record with primary key <code>(12345, 12345)</code>, use <code>DELETE FROM</code>:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- s [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="data-reading">Data Reading<a href="#data-reading" class="hash-link" aria-label="Direct link to Data Reading" title="Direct link to Data Reading" translate="no"></a></h2>
<p>To retrieve data with the primary key <code>(1234, 1234)</code>, you can perform a point query by applying a filter on the primary key:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- s [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<p>To preview a subset of the data in a table, you can use a <code>LIMIT</code> clause.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- s [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<p>Fluss supports processing incremental data reading in flink streaming jobs:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- S [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="type-conversion">Type Conversion<a href="#type-conversion" class="hash-link" aria-label="Direct link to Type Conversion" title="Direct link to Type Conversion" translate="no"></a></h2>
<p>Fluss's integration for Flink automatically converts between Flink and Fluss types.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluss---apache-flink">Fluss -> Apache Flink<a href="#fluss---apache-flink" class="hash-link" aria-label="Direct link to Fluss -> Apache Flink" title="Direct link to Fluss -> Apache Flink" translate="no"></a></h3>
diff --git a/docs/0.5/engine-flink/lookups/index.html b/docs/0.5/engine-flink/lookups/index.html
index cf015672a..05cac6a3d 100644
--- a/docs/0.5/engine-flink/lookups/index.html
+++ b/docs/0.5/engine-flink/lookups/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -33,11 +33,11 @@
<ol>
<li class="">Create two tables.</li>
</ol>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<ol start="2">
<li class="">Perform lookup join.</li>
</ol>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">USE</span><span class="token plain"> CATALOG </span><span c [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">USE</span><span class="token plain"> CATALOG </span><span class="toke [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="lookup-options">Lookup Options<a href="#lookup-options" class="hash-link" aria-label="Direct link to Lookup Options" title="Direct link to Lookup Options" translate="no"></a></h2>
<table><thead><tr><th>Option</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td>lookup.cache</td><td>Enum</td><td>optional</td><td>NONE</td><td>The caching strategy for this lookup table, including NONE, PARTIAL.</td></tr><tr><td>lookup.max-retries</td><td>Integer</td><td>optional</td><td>3</td><td>The maximum allowed retries if a lookup operation fails.</td></tr><tr><td>lookup.partial-cache.expire-after-access</td><td>Duration</td><td>optio [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
diff --git a/docs/0.5/engine-flink/reads/index.html b/docs/0.5/engine-flink/reads/index.html
index 0deec2982..03250b8df 100644
--- a/docs/0.5/engine-flink/reads/index.html
+++ b/docs/0.5/engine-flink/reads/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -24,14 +24,14 @@
</defs></svg>
<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__d [...]
<p>Fluss supports streaming and batch read with <a href="https://flink.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Flink</a>'s SQL & Table API. Execute the following SQL command to switch execution mode from streaming to batch, and vice versa:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Execute the flink job in streaming mode for current sess [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Execute the flink job in streaming mode for curr [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="streaming-read">Streaming Read<a href="#streaming-read" class="hash-link" aria-label="Direct link to Streaming Read" title="Direct link to Streaming Read" translate="no"></a></h2>
<p>By default, Streaming read produces the latest snapshot on the table upon first startup, and continue to read the latest changes.</p>
<p>Fluss by default ensures that your startup is properly processed with all data included.</p>
<p>Fluss Source in streaming mode is unbounded, like a queue that never ends.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SET</span><span class="token plain"> </span><span class="to [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SET</span><span class="token plain"> </span><span class="token string [...]
<p>You can also do streaming read without reading the snapshot data, you can use <code>latest</code> scan mode, which only reads the changelogs (or logs) from the latest offset:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SELECT</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SELECT</span><span class="token plain"> </span><span class="token ope [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="batch-read">Batch Read<a href="#batch-read" class="hash-link" aria-label="Direct link to Batch Read" title="Direct link to Batch Read" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="limit-read">Limit Read<a href="#limit-read" class="hash-link" aria-label="Direct link to Limit Read" title="Direct link to Limit Read" translate="no"></a></h3>
<p>The Fluss source supports limiting reads for both primary-key tables and log tables, making it convenient to preview the latest <code>N</code> records in a table.</p>
@@ -39,25 +39,25 @@
<ol>
<li class="">Create a table and prepare data</li>
</ol>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<ol start="2">
<li class="">Query from table.</li>
</ol>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Execute the flink job in batch mode for current session [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Execute the flink job in batch mode for current [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="point-query">Point Query<a href="#point-query" class="hash-link" aria-label="Direct link to Point Query" title="Direct link to Point Query" translate="no"></a></h3>
<p>The Fluss source supports point queries for primary-key tables, allowing you to inspect specific records efficiently. Currently, this functionality is exclusive to primary-key tables.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="example-1">Example<a href="#example-1" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h4>
<ol>
<li class="">Create a table and prepare data</li>
</ol>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<ol start="2">
<li class="">Query from table.</li>
</ol>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Execute the flink job in batch mode for current session [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Execute the flink job in batch mode for current [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="aggregations">Aggregations<a href="#aggregations" class="hash-link" aria-label="Direct link to Aggregations" title="Direct link to Aggregations" translate="no"></a></h3>
<p>The Fluss source supports pushdown count aggregation for the log table in batch mode. It is useful to preview the total number of the log table;</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Execute the flink job in batch mode for current session [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Execute the flink job in batch mode for current [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="read-options">Read Options<a href="#read-options" class="hash-link" aria-label="Direct link to Read Options" title="Direct link to Read Options" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="scanstartupmode">scan.startup.mode<a href="#scanstartupmode" class="hash-link" aria-label="Direct link to scan.startup.mode" title="Direct link to scan.startup.mode" translate="no"></a></h3>
<p>The scan startup mode enables you to specify the starting point for data consumption. Fluss currently supports the following <code>scan.startup.mode</code> options:</p>
@@ -68,9 +68,9 @@
<li class=""><code>timestamp</code>: For primary key tables, it starts consuming the changelog from a specified time (defined by the configuration item <code>scan.startup.timestamp</code>); for log tables, it starts consuming from the offset corresponding to the specified time.</li>
</ul>
<p>You can dynamically apply the scan parameters via SQL hints. For instance, the following SQL statement temporarily sets the <code>scan.startup.mode</code> to latest when consuming the <code>log_table</code> table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SELECT</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SELECT</span><span class="token plain"> </span><span class="token ope [...]
<p>Also, the following SQL statement temporarily sets the <code>scan.startup.mode</code> to timestamp when consuming the <code>log_table</code> table.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- timestamp mode with microseconds.</span><span class="tok [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- timestamp mode with microseconds.</span><span cl [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="scanpartitiondiscoveryinterval">scan.partition.discovery.interval<a href="#scanpartitiondiscoveryinterval" class="hash-link" aria-label="Direct link to scan.partition.discovery.interval" title="Direct link to scan.partition.discovery.interval" translate="no"></a></h3>
<p>The interval in milliseconds for the Fluss source to discover the new partitions for partitioned table while scanning. The default value is 10s. A non-positive value disables the partition discovery.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/apache/fluss/edit/main/website/docs/engine-flink/reads.md" target="_blank" rel="noopener noreferrer" class=" [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
diff --git a/docs/0.5/engine-flink/writes/index.html b/docs/0.5/engine-flink/writes/index.html
index 26fa403e9..4dcc305c9 100644
--- a/docs/0.5/engine-flink/writes/index.html
+++ b/docs/0.5/engine-flink/writes/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -30,25 +30,25 @@ Fluss primary key tables can accept all types of messages (<code>INSERT</code>,
They support both streaming and batch modes and are compatible with primary-key tables (for upserting data) as well as log tables (for appending data).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="appending-data-to-the-log-table">Appending Data to the Log Table<a href="#appending-data-to-the-log-table" class="hash-link" aria-label="Direct link to Appending Data to the Log Table" title="Direct link to Appending Data to the Log Table" translate="no"></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-a-log-table">Create a Log table.<a href="#create-a-log-table" class="hash-link" aria-label="Direct link to Create a Log table." title="Direct link to Create a Log table." translate="no"></a></h4>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="insert-data-into-the-log-table">Insert data into the Log table.<a href="#insert-data-into-the-log-table" class="hash-link" aria-label="Direct link to Insert data into the Log table." title="Direct link to Insert data into the Log table." translate="no"></a></h4>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="perform-data-upserts-to-the-primarykey-table">Perform Data Upserts to the PrimaryKey Table.<a href="#perform-data-upserts-to-the-primarykey-table" class="hash-link" aria-label="Direct link to Perform Data Upserts to the PrimaryKey Table." title="Direct link to Perform Data Upserts to the PrimaryKey Table." translate="no"></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-a-primary-key-table">Create a primary key table.<a href="#create-a-primary-key-table" class="hash-link" aria-label="Direct link to Create a primary key table." title="Direct link to Create a primary key table." translate="no"></a></h4>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="updates-all-columns">Updates All Columns<a href="#updates-all-columns" class="hash-link" aria-label="Direct link to Updates All Columns" title="Direct link to Updates All Columns" translate="no"></a></h4>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="partial-updates">Partial Updates<a href="#partial-updates" class="hash-link" aria-label="Direct link to Partial Updates" title="Direct link to Partial Updates" translate="no"></a></h4>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="delete-from">DELETE FROM<a href="#delete-from" class="hash-link" aria-label="Direct link to DELETE FROM" title="Direct link to DELETE FROM" translate="no"></a></h2>
<p>Fluss supports deleting data for primary-key tables in batch mode via <code>DELETE FROM</code> statement. Currently, only single data deletions based on the primary key are supported.</p>
<ul>
<li class="">the primary key table</li>
</ul>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- DELETE statement requires batch mode</span><span class=" [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- DELETE statement requires batch mode</span><span [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="update">UPDATE<a href="#update" class="hash-link" aria-label="Direct link to UPDATE" title="Direct link to UPDATE" translate="no"></a></h2>
<p>Fluss enables data updates for primary-key tables in batch mode using the <code>UPDATE</code> statement. Currently, only single-row updates based on the primary key are supported.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Execute the flink job in batch mode for current session [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- Execute the flink job in batch mode for current [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
<p>Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p></div></div></div></footer></div>
</body>
diff --git a/docs/0.5/index.html b/docs/0.5/index.html
index d09ded684..a6bb388e0 100644
--- a/docs/0.5/index.html
+++ b/docs/0.5/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/install-deploy/deploying-distributed-cluster/index.html b/docs/0.5/install-deploy/deploying-distributed-cluster/index.html
index 80be80689..6e9b64f0d 100644
--- a/docs/0.5/install-deploy/deploying-distributed-cluster/index.html
+++ b/docs/0.5/install-deploy/deploying-distributed-cluster/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -57,15 +57,15 @@ across three machines. Suppose you have three nodes have ip address:</p>
</li>
</ol>
<p>Go to the <a class="" href="/downloads/">downloads page</a> and download the latest Fluss release. After downloading the latest release, copy the archive to all the nodes and extract it:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">tar</span><span class="token plain"> </span><span cla [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">tar</span><span class="token plain"> </span><span class="token p [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="configuring-fluss">Configuring Fluss<a href="#configuring-fluss" class="hash-link" aria-label="Direct link to Configuring Fluss" title="Direct link to Configuring Fluss" translate="no"></a></h3>
<p>After having extracted the archived files, you need to configure Fluss for the cluster by editing <code>conf/server.yaml</code></p>
<p>For <strong>Node1</strong>, the config is as follows:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">coordinator.host</span><span class="token punctuation" style="color:rgb(212, 212, 212) [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">coordinator.host</span><span class="token punctuation" style="co [...]
<p>For <strong>Node2</strong>, the config is as follows:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">zookeeper.address</span><span class="token punctuation" style="color:rgb(212, 212, 212 [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">zookeeper.address</span><span class="token punctuation" style="c [...]
<p>For <strong>Node3</strong>, the config is as follows:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">zookeeper.address</span><span class="token punctuation" style="color:rgb(212, 212, 212 [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">zookeeper.address</span><span class="token punctuation" style="c [...]
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<li class=""><code>tablet-server.id</code> is the unique id of the TabletServer, if you have multiple TabletServers, you should set different id for each TabletServer.</li>
<li class="">In this example, we only set the properties that must be configured, and for some other properties, you can refer to <a class="" href="/docs/0.5/maintenance/configuration/">Configuration</a> for more details.</li>
@@ -75,10 +75,10 @@ across three machines. Suppose you have three nodes have ip address:</p>
then start each TabletServer in <strong>node1</strong>, <strong>node2</strong>, <strong>node3</strong>. The command is as follows:</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="starting-coordinatorserver">Starting CoordinatorServer<a href="#starting-coordinatorserver" class="hash-link" aria-label="Direct link to Starting CoordinatorServer" title="Direct link to Starting CoordinatorServer" translate="no"></a></h4>
<p>In <strong>node1</strong>, starting a CoordinatorServer:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./bin/coordinator-server.sh start</span><br></span></code></pre></div></div>
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">./bin/coordinator-server.sh start</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="starting-tabletserver">Starting TabletServer<a href="#starting-tabletserver" class="hash-link" aria-label="Direct link to Starting TabletServer" title="Direct link to Starting TabletServer" translate="no"></a></h4>
<p>In <strong>node1</strong>, <strong>node2</strong>, <strong>node3</strong>, starting a TabletServer is as follows:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./bin/tablet-server.sh start</span><br></span></code></pre></div></div>
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">./bin/tablet-server.sh start</span><br></span></code></pre></div></div>
<p>After that, the Fluss distributed cluster is started.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="interacting-with-fluss">Interacting with Fluss<a href="#interacting-with-fluss" class="hash-link" aria-label="Direct link to Interacting with Fluss" title="Direct link to Interacting with Fluss" translate="no"></a></h2>
<p>After the Fluss cluster is started, you can use <strong>Fluss Client</strong> (e.g., Flink SQL Client) to interact with Fluss.
@@ -90,7 +90,7 @@ The following subsections will show you how to use Flink SQL Client to interact
<p><strong>Note</strong>: Make sure the <a class="" href="/downloads/">Fluss connector jar</a> already has copied to the <code>lib</code> directory of your Flink home.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-catalog">Add catalog<a href="#add-catalog" class="hash-link" aria-label="Direct link to Add catalog" title="Direct link to Add catalog" translate="no"></a></h4>
<p>In Flink SQL client, a catalog is created and named by executing the following query:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREA [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span>< [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="do-more-with-fluss">Do more with Fluss<a href="#do-more-with-fluss" class="hash-link" aria-label="Direct link to Do more with Fluss" title="Direct link to Do more with Fluss" translate="no"></a></h4>
<p>After the catalog is created, you can use Flink SQL Client to do more with Fluss, for example, create a table, insert data, query data, etc.
More details please refer to <a class="" href="/docs/0.5/engine-flink/getting-started/">Flink Getting Started</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/apache/fluss/edit/main/website/docs/install-deploy/deploying-distributed-cluster.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" widt [...]
diff --git a/docs/0.5/install-deploy/deploying-local-cluster/index.html b/docs/0.5/install-deploy/deploying-local-cluster/index.html
index 0faff72d9..0b469ea4b 100644
--- a/docs/0.5/install-deploy/deploying-local-cluster/index.html
+++ b/docs/0.5/install-deploy/deploying-local-cluster/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -37,10 +37,10 @@ test machine and point to the directory of your Java installation.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluss-setup">Fluss Setup<a href="#fluss-setup" class="hash-link" aria-label="Direct link to Fluss Setup" title="Direct link to Fluss Setup" translate="no"></a></h2>
<p>Go to the <a class="" href="/downloads/">downloads page</a> and download the latest Fluss release. Make sure to pick ths Fluss
package <strong>matching your Java version</strong>. After downloading the latest release, extract it:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">tar</span><span class="token plain"> </span><span cla [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">tar</span><span class="token plain"> </span><span class="token p [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="starting-fluss-local-cluster">Starting Fluss Local Cluster<a href="#starting-fluss-local-cluster" class="hash-link" aria-label="Direct link to Starting Fluss Local Cluster" title="Direct link to Starting Fluss Local Cluster" translate="no"></a></h2>
<p>You can start Fluss local cluster by running the following command:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./bin/local-cluster.sh start</span><br></span></code></pre></div></div>
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">./bin/local-cluster.sh start</span><br></span></code></pre></div></div>
<p>After that, the Fluss local cluster is started.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="interacting-with-fluss">Interacting with Fluss<a href="#interacting-with-fluss" class="hash-link" aria-label="Direct link to Interacting with Fluss" title="Direct link to Interacting with Fluss" translate="no"></a></h2>
<p>After Fluss local cluster is started, you can use <strong>Fluss Client</strong> (Currently, only support Flink Sql Client) to interact with Fluss.
@@ -52,7 +52,7 @@ The following subsections will show you how to use Flink Sql Client to interact
<p><strong>Note</strong>: Make sure the <a class="" href="/downloads/">Fluss connector jar</a> already has copied to the <code>lib</code> directory of your Flink home.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-catalog">Add catalog<a href="#add-catalog" class="hash-link" aria-label="Direct link to Add catalog" title="Direct link to Add catalog" translate="no"></a></h4>
<p>In Flink SQL client, a catalog is created and named by executing the following query:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREA [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span>< [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="do-more-with-fluss">Do more with Fluss<a href="#do-more-with-fluss" class="hash-link" aria-label="Direct link to Do more with Fluss" title="Direct link to Do more with Fluss" translate="no"></a></h4>
<p>After the catalog is created, you can use Flink SQL Client to do more with Fluss, for example, create a table, insert data, query data, etc.
More details please refer to <a class="" href="/docs/0.5/engine-flink/getting-started/">Flink Getting started</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/apache/fluss/edit/main/website/docs/install-deploy/deploying-local-cluster.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" [...]
diff --git a/docs/0.5/install-deploy/deploying-with-docker/index.html b/docs/0.5/install-deploy/deploying-with-docker/index.html
index 4abcf28a3..de939d5b9 100644
--- a/docs/0.5/install-deploy/deploying-with-docker/index.html
+++ b/docs/0.5/install-deploy/deploying-with-docker/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -41,43 +41,43 @@ or <code>docker compose</code> file.</p>
using the <code>docker run</code> commands.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-a-shared-tmpfs-volume">Create a shared tmpfs volume<a href="#create-a-shared-tmpfs-volume" class="hash-link" aria-label="Direct link to Create a shared tmpfs volume" title="Direct link to Create a shared tmpfs volume" translate="no"></a></h3>
<p>Create a shared tmpfs volume:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> volume create s [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> volume create shared-tmpfs [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-a-network">Create a Network<a href="#create-a-network" class="hash-link" aria-label="Direct link to Create a Network" title="Direct link to Create a Network" translate="no"></a></h3>
<p>Create an isolated bridge network in docker</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> network create [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> network create fluss-demo< [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="start-zookeeper">Start Zookeeper<a href="#start-zookeeper" class="hash-link" aria-label="Direct link to Start Zookeeper" title="Direct link to Start Zookeeper" translate="no"></a></h3>
<p>Start Zookeeper in daemon mode. This is a single node zookeeper setup. Zookeeper is the central metadata store
for Fluss and should be set up with replication for production use. For more information,
see <a href="https://zookeeper.apache.org/doc/r3.6.0/zookeeperStarted.html#sc_RunningReplicatedZooKeeper" target="_blank" rel="noopener noreferrer" class="">Running zookeeper cluster</a>.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> run </span><spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> run </span><span class="to [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="start-fluss-coordinatorserver">Start Fluss CoordinatorServer<a href="#start-fluss-coordinatorserver" class="hash-link" aria-label="Direct link to Start Fluss CoordinatorServer" title="Direct link to Start Fluss CoordinatorServer" translate="no"></a></h3>
<p>Start Fluss CoordinatorServer in daemon and connect to Zookeeper.</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> run </span><spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> run </span><span class="to [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="start-fluss-tabletserver">Start Fluss TabletServer<a href="#start-fluss-tabletserver" class="hash-link" aria-label="Direct link to Start Fluss TabletServer" title="Direct link to Start Fluss TabletServer" translate="no"></a></h3>
<p>You can start one or more tablet servers based on your needs. For a production environment,
ensure that you have multiple tablet servers.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="start-with-one-tabletserver">Start with One TabletServer<a href="#start-with-one-tabletserver" class="hash-link" aria-label="Direct link to Start with One TabletServer" title="Direct link to Start with One TabletServer" translate="no"></a></h4>
<p>If you just want to start a sample test, you can start only one TabletServer in daemon and connect to Zookeeper.
The command is as follows:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> run </span><spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> run </span><span class="to [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="start-with-multiple-tabletserver">Start with Multiple TabletServer<a href="#start-with-multiple-tabletserver" class="hash-link" aria-label="Direct link to Start with Multiple TabletServer" title="Direct link to Start with Multiple TabletServer" translate="no"></a></h4>
<p>In a production environment, you need to start multiple Fluss TabletServer nodes.
Here we start 3 Fluss TabletServer nodes in daemon and connect to Zookeeper. The command is as follows:</p>
<ol>
<li class="">start tablet-server-0</li>
</ol>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> run </span><spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> run </span><span class="to [...]
<ol start="2">
<li class="">start tablet-server-1</li>
</ol>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> run </span><spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> run </span><span class="to [...]
<ol start="3">
<li class="">start tablet-server-2</li>
</ol>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> run </span><spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> run </span><span class="to [...]
<p>Now all the Fluss related components are running.</p>
<p>Run the below command to check the Fluss cluster status:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> container </spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> container </span><span cla [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="interacting-with-fluss">Interacting with Fluss<a href="#interacting-with-fluss" class="hash-link" aria-label="Direct link to Interacting with Fluss" title="Direct link to Interacting with Fluss" translate="no"></a></h3>
<p>After the Fluss cluster is started, you can use <strong>Fluss Client</strong> (e.g., Flink SQL Client) to interact with Fluss.
The following subsections will show you how to use 'Docker' to build a Flink cluster and use <strong>Flink SQL Client</strong>
@@ -86,19 +86,19 @@ to interact with Fluss.</p>
<ol>
<li class="">start jobManager</li>
</ol>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> run </span><spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> run </span><span class="to [...]
<ol start="2">
<li class="">start taskManager</li>
</ol>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> run </span><spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> run </span><span class="to [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="enter-into-sql-client">Enter into SQL-Client<a href="#enter-into-sql-client" class="hash-link" aria-label="Direct link to Enter into SQL-Client" title="Direct link to Enter into SQL-Client" translate="no"></a></h4>
<p>First, use the following command to enter pod:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> </span><span [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> </span><span class="toke [...]
<p>Then, use the following command to enter the Flink SQL CLI Container:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">./sql-client</span><br></span></code></pre></div></div>
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">./sql-client</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-fluss-catalog">Create Fluss Catalog<a href="#create-fluss-catalog" class="hash-link" aria-label="Direct link to Create Fluss Catalog" title="Direct link to Create Fluss Catalog" translate="no"></a></h4>
<p>Use the following SQL to create a Fluss catalog:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREA [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span>< [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="do-more-with-fluss">Do more with Fluss<a href="#do-more-with-fluss" class="hash-link" aria-label="Direct link to Do more with Fluss" title="Direct link to Do more with Fluss" translate="no"></a></h4>
<p>After the catalog is created, you can use Flink SQL Client to do more with Fluss, for example, create a table, insert data, query data, etc.
More details please refer to <a class="" href="/docs/0.5/engine-flink/getting-started/">Flink Getting started</a></p>
@@ -108,26 +108,26 @@ using the <code>docker-compose up -d</code> commands in a detached mode.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-docker-composeyml-file">Create docker-compose.yml file<a href="#create-docker-composeyml-file" class="hash-link" aria-label="Direct link to Create docker-compose.yml file" title="Direct link to Create docker-compose.yml file" translate="no"></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="compose-file-to-start-fluss-cluster-with-one-tabletserver">Compose file to start Fluss cluster with one TabletServer<a href="#compose-file-to-start-fluss-cluster-with-one-tabletserver" class="hash-link" aria-label="Direct link to Compose file to start Fluss cluster with one TabletServer" title="Direct link to Compose file to start Fluss cluster with one TabletServer" translate="no"></a></h4>
<p>You can use the following <code>docker-compose.yml</code> file to start a Fluss cluster with one <code>CoordinatorServer</code> and one <code>TabletServer</code>.</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">services</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</spa [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">services</span><span class="token punctuation" style="color:rgba [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="compose-file-to-start-fluss-cluster-with-multi-tabletserver">Compose file to start Fluss cluster with multi TabletServer<a href="#compose-file-to-start-fluss-cluster-with-multi-tabletserver" class="hash-link" aria-label="Direct link to Compose file to start Fluss cluster with multi TabletServer" title="Direct link to Compose file to start Fluss cluster with multi TabletServer" translate="no"></a></h4>
<p>You can use the following <code>docker-compose.yml</code> file to start a Fluss cluster with one <code>CoordinatorServer</code> and three <code>TabletServers</code>.</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">services</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</spa [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">services</span><span class="token punctuation" style="color:rgba [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="launch-the-components">Launch the components<a href="#launch-the-components" class="hash-link" aria-label="Direct link to Launch the components" title="Direct link to Launch the components" translate="no"></a></h3>
<p>Save the <code>docker-compose.yaml</code> script and execute the <code>docker-compose up -d</code> command in the same directory
to create the cluster.</p>
<p>Run the below command to check the container status:</p>
-<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> container </spa [...]
+<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> container </span><span cla [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="interacting-with-fluss-1">Interacting with Fluss<a href="#interacting-with-fluss-1" class="hash-link" aria-label="Direct link to Interacting with Fluss" title="Direct link to Interacting with Fluss" translate="no"></a></h3>
<p>If you want to interact with this Fluss cluster, you can change the <code>docker-compose.yml</code> file to add a Flink cluster.
The changed <code>docker-compose.yml</code> file is as follows:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">services</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</spa [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">services</span><span class="token punctuation" style="color:rgba [...]
<p>Save the <code>docker-compose.yaml</code> script and execute the <code>docker-compose up -d</code> command in the same directory to create the cluster.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="enter-into-sql-client-1">Enter into SQL-Client<a href="#enter-into-sql-client-1" class="hash-link" aria-label="Direct link to Enter into SQL-Client" title="Direct link to Enter into SQL-Client" translate="no"></a></h4>
<p>First, use the following command to enter the Flink SQL CLI Container:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker-compose</span><span class="token plain"> </spa [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker-compose</span><span class="token plain"> </span><span cla [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-fluss-catalog-1">Create Fluss Catalog<a href="#create-fluss-catalog-1" class="hash-link" aria-label="Direct link to Create Fluss Catalog" title="Direct link to Create Fluss Catalog" translate="no"></a></h4>
<p>Use the following SQL to create a Fluss catalog:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREA [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span>< [...]
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="do-more-with-fluss-1">Do more with Fluss<a href="#do-more-with-fluss-1" class="hash-link" aria-label="Direct link to Do more with Fluss" title="Direct link to Do more with Fluss" translate="no"></a></h4>
<p>After the catalog is created, you can use Flink SQL Client to do more with Fluss, for example, create a table, insert data, query data, etc.
More details please refer to <a class="" href="/docs/0.5/engine-flink/getting-started/">Flink Getting started</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/apache/fluss/edit/main/website/docs/install-deploy/deploying-with-docker.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" vi [...]
diff --git a/docs/0.5/install-deploy/overview/index.html b/docs/0.5/install-deploy/overview/index.html
index f6f35c254..a174dcb8e 100644
--- a/docs/0.5/install-deploy/overview/index.html
+++ b/docs/0.5/install-deploy/overview/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/maintenance/configuration/index.html b/docs/0.5/maintenance/configuration/index.html
index 2454bfb3e..4a70007d6 100644
--- a/docs/0.5/maintenance/configuration/index.html
+++ b/docs/0.5/maintenance/configuration/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -27,7 +27,7 @@
<p>The configuration is parsed and evaluated when the Fluss processes are started.
Changes to the configuration file require restarting the relevant processes.</p>
<p>Users can organize config in format <code>key: value</code>, such as:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">conf/server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">default.bucket.number</span><sp [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">conf/server.yaml</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">default.b [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="server-configuration">Server Configuration<a href="#server-configuration" class="hash-link" aria-label="Direct link to Server Configuration" title="Direct link to Server Configuration" translate="no"></a></h2>
<p>Server configuration refers to a set of configurations used to specify the running parameters of a server.
These settings can only be configured at the time of cluster startup and do not support dynamic modification
@@ -56,7 +56,7 @@ during the Fluss cluster working.</p>
<table><thead><tr><th>Option</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td>bucket.num</td><td>int</td><td>The bucket number of Fluss cluster.</td><td>The number of buckets of a Fluss table.</td></tr><tr><td>bucket.key</td><td>String</td><td>(none)</td><td>Specific the distribution policy of the Fluss table. Data will be distributed to each bucket according to the hash value of bucket-key. If you specify multiple fields, delimiter is ','. If th [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="config-by-flink-sql">Config by Flink SQL<a href="#config-by-flink-sql" class="hash-link" aria-label="Direct link to Config by Flink SQL" title="Direct link to Config by Flink SQL" translate="no"></a></h3>
<p>When you create a table in Fluss by Flink, you can specify the table configuration by Flink in with options, like:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="client-configuration">Client Configuration<a href="#client-configuration" class="hash-link" aria-label="Direct link to Client Configuration" title="Direct link to Client Configuration" translate="no"></a></h2>
<table><thead><tr><th>Option</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td>client.id</td><td>String</td><td>""</td><td>An id string to pass to the server when making requests. The purpose of this is to be able to track the source of requests beyond just ip/port by allowing a logical application name to be included in server-side request logging.</td></tr><tr><td>client.connect-timeout</td><td>Duration</td><td>120s</td><td>The Netty client conn [...]
@@ -64,11 +64,11 @@ during the Fluss cluster working.</p>
<ol>
<li class="">When you create a table in Fluss by Flink, you can specify the client configuration by Flink in with options, like:</li>
</ol>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<ol start="2">
<li class="">Also, you can change the client configuration use <a href="https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/table/sql/queries/hints/#dynamic-table-options" target="_blank" rel="noopener noreferrer" class="">Flink SQL Hints</a> like:</li>
</ol>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">INSERT</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">INSERT</span><span class="token plain"> </span><span class="token key [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
<p>Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p></div></div></div></footer></div>
</body>
diff --git a/docs/0.5/maintenance/filesystems/hdfs/index.html b/docs/0.5/maintenance/filesystems/hdfs/index.html
index a40240ff8..02f6c6295 100644
--- a/docs/0.5/maintenance/filesystems/hdfs/index.html
+++ b/docs/0.5/maintenance/filesystems/hdfs/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -27,7 +27,7 @@
supports HDFS as a remote storage.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="configurations-setup">Configurations setup<a href="#configurations-setup" class="hash-link" aria-label="Direct link to Configurations setup" title="Direct link to Configurations setup" translate="no"></a></h2>
<p>To enabled HDFS as remote storage, you need to define the hdfs path as remote storage in Fluss' <code>server.yaml</code>:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)"># The dir that used to be as the remote storage of Fluss< [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic"># The dir that used to be as the remote storage o [...]
<p>To allow for easy adoption, you can use the same configuration keys in Fluss' server.yaml as in Hadoop's <code>core-site.xml</code>.
You can see the configuration keys in Hadoop's <a href="https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/core-default.xml" target="_blank" rel="noopener noreferrer" class=""><code>core-site.xml</code></a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/apache/fluss/edit/main/website/docs/maintenance/filesystems/hdfs.md" target="_ [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
diff --git a/docs/0.5/maintenance/filesystems/oss/index.html b/docs/0.5/maintenance/filesystems/oss/index.html
index 1c0037fba..296444e43 100644
--- a/docs/0.5/maintenance/filesystems/oss/index.html
+++ b/docs/0.5/maintenance/filesystems/oss/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -27,7 +27,7 @@
<p><a href="https://www.aliyun.com/product/oss" target="_blank" rel="noopener noreferrer" class="">Aliyun Object Storage Service</a> (Aliyun OSS) is widely used, particularly popular among China’s cloud users, and it provides cloud object storage for a variety of use cases.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="configurations-setup">Configurations setup<a href="#configurations-setup" class="hash-link" aria-label="Direct link to Configurations setup" title="Direct link to Configurations setup" translate="no"></a></h2>
<p>To enabled OSS as remote storage, there are some required configurations that must be add to Fluss' <code>server.yaml</code>:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)"># The dir that used to be as the remote storage of Fluss< [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic"># The dir that used to be as the remote storage o [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="token-based-authentication">Token-based Authentication<a href="#token-based-authentication" class="hash-link" aria-label="Direct link to Token-based Authentication" title="Direct link to Token-based Authentication" translate="no"></a></h2>
<p>For client to access the remote storage such as reading snapshot or tiered log, client must obtain a STS token from Fluss cluster. So you must
configure <code>fs.oss.sts.endpoint</code> and <code>fs.oss.roleArn</code>.
diff --git a/docs/0.5/maintenance/filesystems/overview/index.html b/docs/0.5/maintenance/filesystems/overview/index.html
index 37aaf09f8..fe57bd095 100644
--- a/docs/0.5/maintenance/filesystems/overview/index.html
+++ b/docs/0.5/maintenance/filesystems/overview/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -31,7 +31,7 @@ while <code>hdfs://namenode:50010/data/user/text.txt</code> is a file in a speci
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="local-file-system">Local File System<a href="#local-file-system" class="hash-link" aria-label="Direct link to Local File System" title="Direct link to Local File System" translate="no"></a></h2>
<p>Fluss has built-in support for the file system of the local machine, including any NFS or SAN drives mounted into that local file system. Local files are referenced with the <code>file://</code> URI scheme. You
can use local file system as remote storage for testing purposes with the following configuration in Fluss' <code>server.yaml</code>:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">remote.data.dir</span><span class="token punctuation" style="color:rgb(212, 212, 212)" [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">remote.data.dir</span><span class="token punctuation" style="col [...]
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>warning</ [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="pluggable-file-systems">Pluggable File Systems<a href="#pluggable-file-systems" class="hash-link" aria-label="Direct link to Pluggable File Systems" title="Direct link to Pluggable File Systems" translate="no"></a></h2>
<p>The Fluss project supports the following file system:</p>
diff --git a/docs/0.5/maintenance/filesystems/s3/index.html b/docs/0.5/maintenance/filesystems/s3/index.html
index b6ca40b78..54e550a67 100644
--- a/docs/0.5/maintenance/filesystems/s3/index.html
+++ b/docs/0.5/maintenance/filesystems/s3/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -26,7 +26,7 @@
<p><a href="http://aws.amazon.com/s3/" target="_blank" rel="noopener noreferrer" class="">Amazon Simple Storage Service</a> (Amazon S3) is cloud object storage with industry-leading scalability, data availability, security, and performance.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="configurations-setup">Configurations setup<a href="#configurations-setup" class="hash-link" aria-label="Direct link to Configurations setup" title="Direct link to Configurations setup" translate="no"></a></h2>
<p>To enabled S3 as remote storage, there are some required configurations that must be added to Fluss' <code>server.yaml</code>:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)"># The dir that used to be as the remote storage of Fluss< [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic"># The dir that used to be as the remote storage o [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
<p>Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p></div></div></div></footer></div>
</body>
diff --git a/docs/0.5/maintenance/logging/index.html b/docs/0.5/maintenance/logging/index.html
index 643265f99..f3c86c76e 100644
--- a/docs/0.5/maintenance/logging/index.html
+++ b/docs/0.5/maintenance/logging/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/maintenance/metric-reporters/index.html b/docs/0.5/maintenance/metric-reporters/index.html
index 3e13ab134..1c81d5717 100644
--- a/docs/0.5/maintenance/metric-reporters/index.html
+++ b/docs/0.5/maintenance/metric-reporters/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -27,7 +27,7 @@
Metrics can be exposed to an external system by configuring one or several reporters in <code>conf/server.yaml</code>. These
reporters will be instantiated on each CoordinatorServer and TabletServers when they started.</p>
<p>Example reporter configuration that specifies multiple reporters:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">metrics.reporters</span><span class="token punctuation" style="color:rgb(212, 212, 212 [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">metrics.reporters</span><span class="token punctuation" style="c [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="push-vs-pull">Push vs. Pull<a href="#push-vs-pull" class="hash-link" aria-label="Direct link to Push vs. Pull" title="Direct link to Push vs. Pull" translate="no"></a></h2>
<p>Metrics are exported either via pushes or pulls.</p>
<p>Push-based reporters usually implement the <code>Scheduled</code> interface and periodically send a summary of current metrics to an external system.</p>
@@ -45,7 +45,7 @@ If this setting is set, Fluss will start an extra JMX connector for the given po
Metrics are always available on the default local JMX interface.</li>
</ul>
<p>Example configuration:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">metrics.reporters</span><span class="token punctuation" style="color:rgb(212, 212, 212 [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">metrics.reporters</span><span class="token punctuation" style="c [...]
<p>Metrics exposed through JMX are identified by a domain and a list of key-properties, which together form the object name.</p>
<p>The domain always begins with <code>com.alibaba.fluss</code> followed by a generalized metric identifier.
An example for such a domain would be <code>com.alibaba.fluss.tabletserver.replicaCount</code>.</p>
@@ -60,7 +60,7 @@ An example for such a list would be <code>cluster_id=fluss1,host=localhost,serve
<li class=""><code>metrics.reporter.prometheus.port</code> - (optional) the port the Prometheus exporter listens on, defaults to <a href="https://github.com/prometheus/prometheus/wiki/Default-port-allocations" target="_blank" rel="noopener noreferrer" class="">9249</a>. In order to be able to run several instances of the reporter on one host (e.g. when one TabletServer is co-located with the CoordinatorServer) it is advisable to use a port range like <code>9250-9260</code>.</li>
</ul>
<p>Example configuration:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">metrics.reporters</span><span class="token punctuation" style="color:rgb(212, 212, 212 [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">metrics.reporters</span><span class="token punctuation" style="c [...]
<p>Fluss metric types are mapped to Prometheus metric types as follows:</p>
<table><thead><tr><th>Fluss</th><th>Prometheus</th><th>Note</th></tr></thead><tbody><tr><td>Counter</td><td>Gauge</td><td>Prometheus counters cannot be decremented.</td></tr><tr><td>Gauge</td><td>Gauge</td><td>Only numbers and booleans are supported.</td></tr><tr><td>Histogram</td><td>Summary</td><td>Quantiles .5, .75, .95, .98, .99 and .999</td></tr><tr><td>Meter</td><td>Gauge</td><td>The gauge exports the meter's rate.</td></tr></tbody></table></div><footer class="theme-doc-footer [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
diff --git a/docs/0.5/maintenance/monitor-metrics/index.html b/docs/0.5/maintenance/monitor-metrics/index.html
index cb42e028c..7a14c7f51 100644
--- a/docs/0.5/maintenance/monitor-metrics/index.html
+++ b/docs/0.5/maintenance/monitor-metrics/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/maintenance/tiered-storage/lakehouse-storage/index.html b/docs/0.5/maintenance/tiered-storage/lakehouse-storage/index.html
index 02f3bac48..7d6c05bc3 100644
--- a/docs/0.5/maintenance/tiered-storage/lakehouse-storage/index.html
+++ b/docs/0.5/maintenance/tiered-storage/lakehouse-storage/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -35,18 +35,18 @@ can gain much storage cost reduction and analytics performance improvement.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="lakehouse-storage-cluster-configurations">Lakehouse Storage Cluster Configurations<a href="#lakehouse-storage-cluster-configurations" class="hash-link" aria-label="Direct link to Lakehouse Storage Cluster Configurations" title="Direct link to Lakehouse Storage Cluster Configurations" translate="no"></a></h3>
<p>First, you must configure the lakehouse storage in <code>server.yaml</code>. Take Paimon
as an example, you must configure the following configurations:</p>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">lakehouse.storage</span><span class="token punctuation" style="color:rgb(212, 212, 212 [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">lakehouse.storage</span><span class="token punctuation" style="c [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="start-the-datalake-tiering-service">Start The Datalake Tiering Service<a href="#start-the-datalake-tiering-service" class="hash-link" aria-label="Direct link to Start The Datalake Tiering Service" title="Direct link to Start The Datalake Tiering Service" translate="no"></a></h3>
<p>Then, you must start the datalake tiering service to compact Fluss's data to the lakehouse storage.
To start the datalake tiering service, you must have a Flink cluster running since Fluss currently only supports Flink as a tiering service backend.</p>
<p>You can use the following commands to start the datalake tiering service:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)"># change directory to Fluss </span><span class="token p [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic"># change directory to Fluss </span><span class= [...]
<p><strong>Note:</strong></p>
<ul>
<li class=""><code>flink.rest.address</code> and <code>flink.rest.port</code> are the Flink cluster's rest endpoint, you may need to change it according to your Flink cluster's configuration.</li>
<li class="">The datalake tiering service is actual a flink job, you can set the Flink configuration in <code>-D</code> arguments while starting the datalake tiering service, There are some example commands for reference below.</li>
</ul>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)"># If want to set the checkpoint interval to 10s, you ca [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic"># If want to set the checkpoint interval to 10s [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="enable-lakehouse-storage-per-table">Enable Lakehouse Storage Per Table<a href="#enable-lakehouse-storage-per-table" class="hash-link" aria-label="Direct link to Enable Lakehouse Storage Per Table" title="Direct link to Enable Lakehouse Storage Per Table" translate="no"></a></h3>
<p>To enable lakehouse storage for a table, the table must be created with the option <code>'table.datalake.enabled' = 'true'</code>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/apache/fluss/edit/main/website/docs/maintenance/tiered-storage/lakehouse-storage.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><s [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
diff --git a/docs/0.5/maintenance/tiered-storage/overview/index.html b/docs/0.5/maintenance/tiered-storage/overview/index.html
index 780b40084..ff502cb8d 100644
--- a/docs/0.5/maintenance/tiered-storage/overview/index.html
+++ b/docs/0.5/maintenance/tiered-storage/overview/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/maintenance/tiered-storage/remote-storage/index.html b/docs/0.5/maintenance/tiered-storage/remote-storage/index.html
index c5e759894..2b3ec3c8a 100644
--- a/docs/0.5/maintenance/tiered-storage/remote-storage/index.html
+++ b/docs/0.5/maintenance/tiered-storage/remote-storage/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/quickstart/flink/index.html b/docs/0.5/quickstart/flink/index.html
index e3de885dc..8b6a98923 100644
--- a/docs/0.5/quickstart/flink/index.html
+++ b/docs/0.5/quickstart/flink/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -37,11 +37,11 @@ All commands were tested with Docker version 27.4.0 and Docker Compose version v
<ol>
<li class="">Create a working directory for this guide.</li>
</ol>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">mkdir</span><span class="token plain"> fluss-quicksta [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">mkdir</span><span class="token plain"> fluss-quickstart-flink</s [...]
<ol start="2">
<li class="">Create a <code>docker-compose.yml</code> file with the following content:</li>
</ol>
-<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token key atrule">services</span><span class="token punctuation" style="color:rgb(212, 212, 212)">:</spa [...]
+<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token key atrule" style="color:#3f6ec6">services</span><span class="token punctuation" style="color:rgba [...]
<p>The Docker Compose environment consists of the following containers:</p>
<ul>
<li class=""><strong>Fluss Cluster:</strong> a Fluss <code>CoordinatorServer</code>, a Fluss <code>TabletServer</code> and a <code>ZooKeeper</code> server.</li>
@@ -53,10 +53,10 @@ includes the <a class="" href="/docs/0.5/engine-flink/getting-started/">fluss-co
<ol start="3">
<li class="">To start all containers, run:</li>
</ol>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> compose up </ [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> compose up </span><span [...]
<p>This command automatically starts all the containers defined in the Docker Compose configuration in detached mode.</p>
<p>Run</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> </span><span [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> </span><span class="toke [...]
<p>to check whether all containers are running properly.</p>
<p>You can also visit <a href="http://localhost:8083/" target="_blank" rel="noopener noreferrer" class="">http://localhost:8083/</a> to see if Flink is running normally.</p>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
@@ -66,98 +66,98 @@ includes the <a class="" href="/docs/0.5/engine-flink/getting-started/">fluss-co
<p>Congratulations, you are all set!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="enter-into-sql-client">Enter into SQL-Client<a href="#enter-into-sql-client" class="hash-link" aria-label="Direct link to Enter into SQL-Client" title="Direct link to Enter into SQL-Client" translate="no"></a></h2>
<p>First, use the following command to enter the Flink SQL CLI Container:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> compose </spa [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> compose </span><span cla [...]
<p><strong>Note</strong>:
To simplify this guide, three temporary tables have been pre-created with <code>faker</code> connector to generate data.
You can view their schemas by running the following commands:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SHOW [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SHOW [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SHOW [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SHOW</span><sp [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SHOW</span><sp [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SHOW</span><sp [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-fluss-tables">Create Fluss Tables<a href="#create-fluss-tables" class="hash-link" aria-label="Direct link to Create Fluss Tables" title="Direct link to Create Fluss Tables" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-fluss-catalog">Create Fluss Catalog<a href="#create-fluss-catalog" class="hash-link" aria-label="Direct link to Create Fluss Catalog" title="Direct link to Create Fluss Catalog" translate="no"></a></h3>
<p>Use the following SQL to create a Fluss catalog:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREA [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">USE< [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span>< [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">USE</span><spa [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-tables">Create Tables<a href="#create-tables" class="hash-link" aria-label="Direct link to Create Tables" title="Direct link to Create Tables" translate="no"></a></h3>
<p>Running the following SQL to create Fluss tables to be used in this guide:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREA [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREA [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREA [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREA [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span>< [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span>< [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span>< [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span>< [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="streaming-into-fluss">Streaming into Fluss<a href="#streaming-into-fluss" class="hash-link" aria-label="Direct link to Streaming into Fluss" title="Direct link to Streaming into Fluss" translate="no"></a></h2>
<p>First, run the following SQL to sync data from source tables to Fluss tables:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">EXEC [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">EXECUTE</span> [...]
<p>Fluss primary-key tables support high QPS point lookup queries on primary keys. Performing a <a href="https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/table/sql/queries/joins/#lookup-join" target="_blank" rel="noopener noreferrer" class="">lookup join</a> is really efficient and you can use it to enrich
the <code>fluss_orders</code> table with information from the <code>fluss_customer</code> and <code>fluss_nation</code> primary-key tables.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">INSE [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">INSERT</span>< [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="run-ad-hoc-queries-on-fluss-tables">Run Ad-hoc Queries on Fluss Tables<a href="#run-ad-hoc-queries-on-fluss-tables" class="hash-link" aria-label="Direct link to Run Ad-hoc Queries on Fluss Tables" title="Direct link to Run Ad-hoc Queries on Fluss Tables" translate="no"></a></h2>
<p>You can now perform real-time analytics directly on Fluss tables.
For instance, to calculate the number of orders placed by a specific customer, you can execute the following SQL query to obtain instant, real-time results.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- u [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- s [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- u [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<p><strong>Sample Output</strong></p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">+-----------+----------+-------------+------------+----------------+--------+------------+- [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">+-----------+----------+-------------+------------+----------------+--------+------------+- [...]
<p>If you are interested in a specific customer, you can retrieve their details by performing a lookup on the <code>cust_key</code>.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- l [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<p><strong>Sample Output</strong></p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">+----------+---------------+--------------+------------+---------+------------+</span><br [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">+----------+---------------+--------------+------------+---------+------------+</span><br [...]
<p><strong>Note:</strong> Overall the query results are returned really fast, as Fluss enables efficient primary key lookups for tables with defined primary keys.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="updatedelete-rows-on-fluss-tables">Update/Delete rows on Fluss Tables<a href="#updatedelete-rows-on-fluss-tables" class="hash-link" aria-label="Direct link to Update/Delete rows on Fluss Tables" title="Direct link to Update/Delete rows on Fluss Tables" translate="no"></a></h2>
<p>You can use <code>UPDATE</code> and <code>DELETE</code> statements to update/delete rows on Fluss tables.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="update">Update<a href="#update" class="hash-link" aria-label="Direct link to Update" title="Direct link to Update" translate="no"></a></h3>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- u [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<p>Then you can <code>lookup</code> the specific row:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SELE [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SELECT</span>< [...]
<p><strong>Sample Output</strong></p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">+----------+---------------+--------------+------------+---------+------------+</span><br [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">+----------+---------------+--------------+------------+---------+------------+</span><br [...]
<p>Notice that the <code>name</code> column has been updated to <code>fluss_updated</code>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="delete">Delete<a href="#delete" class="hash-link" aria-label="Direct link to Delete" title="Direct link to Delete" translate="no"></a></h3>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">DELETE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">DELETE</span><span class="token plain"> </span><span class="token key [...]
<p>The following SQL query should return an empty result.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SELE [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SELECT</span>< [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="integrate-with-paimon">Integrate with Paimon<a href="#integrate-with-paimon" class="hash-link" aria-label="Direct link to Integrate with Paimon" title="Direct link to Integrate with Paimon" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="start-the-lakehouse-tiering-service">Start the Lakehouse Tiering Service<a href="#start-the-lakehouse-tiering-service" class="hash-link" aria-label="Direct link to Start the Lakehouse Tiering Service" title="Direct link to Start the Lakehouse Tiering Service" translate="no"></a></h3>
<p>To integrate with <a href="https://paimon.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Paimon</a>, you need to start the <code>Lakehouse Tiering Service</code>.
Open a new terminal, navigate to the <code>fluss-quickstart-flink</code> directory, and execute the following command within this directory to start the service:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> compose </spa [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> compose </span><span cla [...]
<p>You should see a Flink Job named <code>fluss-paimon-tiering-service</code> running in the <a href="http://localhost:8083/" target="_blank" rel="noopener noreferrer" class="">Flink Web UI</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="streaming-into-fluss-datalake-enabled-tables">Streaming into Fluss datalake-enabled tables<a href="#streaming-into-fluss-datalake-enabled-tables" class="hash-link" aria-label="Direct link to Streaming into Fluss datalake-enabled tables" title="Direct link to Streaming into Fluss datalake-enabled tables" translate="no"></a></h3>
<p>By default, tables are created with data lake integration disabled, meaning the Lakehouse Tiering Service will not tier the table's data to the data lake.</p>
<p>To enable lakehouse functionality as a tiered storage solution for a table, you must create the table with the configuration option <code>table.datalake.enabled = true</code>.
Return to the <code>SQL client</code> and execute the following SQL statement to create a table with data lake integration enabled:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREA [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span>< [...]
<p>Next, perform streaming data writing into the <strong>datalake-enabled</strong> table, <code>datalake_enriched_orders</code>:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- s [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- i [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="real-time-analytics-on-fluss-datalake-enabled-tables">Real-Time Analytics on Fluss datalake-enabled Tables<a href="#real-time-analytics-on-fluss-datalake-enabled-tables" class="hash-link" aria-label="Direct link to Real-Time Analytics on Fluss datalake-enabled Tables" title="Direct link to Real-Time Analytics on Fluss datalake-enabled Tables" translate="no"></a></h3>
<p>The data for the <code>datalake_enriched_orders</code> table is stored in Fluss (for real-time data) and Paimon (for historical data).</p>
<p>When querying the <code>datalake_enriched_orders</code> table, Fluss uses a union operation that combines data from both Fluss and Paimon to provide a complete result set -- combines <strong>real-time</strong> and <strong>historical</strong> data.</p>
<p>If you wish to query only the data stored in Paimon—offering high-performance access without the overhead of unioning data—you can use the <code>datalake_enriched_orders$lake</code> table by appending the <code>$lake</code> suffix.
This approach also enables all the optimizations and features of a Flink Paimon table source, including <a href="https://paimon.apache.org/docs/master/concepts/system-tables/" target="_blank" rel="noopener noreferrer" class="">system table</a> such as <code>datalake_enriched_orders$lake$snapshots</code>.</p>
<p>To query the snapshots directly from Paimon, use the following SQL:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- s [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- q [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<p><strong>Sample Output:</strong></p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">+-------------+--------------------+</span><br></span><span class="token-line" style="col [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">+-------------+--------------------+</span><br></span><span class="token-line" style="col [...]
<p><strong>Note:</strong> Make sure to wait for the checkpoints (~30s) to complete before querying the snapshots, otherwise the result will be empty.</p>
<p>Run the following SQL to do analytics on Paimon data:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- t [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<p><strong>Sample Output:</strong></p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">+------------+</span><br></span><span class="token-line" style="color:#9CDCFE"><span clas [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">+------------+</span><br></span><span class="token-line" style="color:#36464e"><span clas [...]
<p>To achieve results with sub-second data freshness, you can query the table directly, which seamlessly unifies data from both Fluss and Paimon:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- t [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL Client</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:ital [...]
<p>The result looks like:</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">+------------+</span><br></span><span class="token-line" style="color:#9CDCFE"><span class= [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">+------------+</span><br></span><span class="token-line" style="color:#36464e"><span class= [...]
<p>You can execute the real-time analytics query multiple times, and the results will vary with each run as new data is continuously written to Fluss in real-time.</p>
<p>Finally, you can use the following command to view the files stored in Paimon:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> compose </spa [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> compose </span><span cla [...]
<p><strong>Sample Output:</strong></p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">/tmp/paimon/fluss.db</span><br></span><span class="token-line" style="color:#9CDCFE"><spa [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">/tmp/paimon/fluss.db</span><br></span><span class="token-line" style="color:#36464e"><spa [...]
<p>The files adhere to Paimon's standard format, enabling seamless querying with other engines such as <a href="https://docs.starrocks.io/docs/data_source/catalog/paimon_catalog/" target="_blank" rel="noopener noreferrer" class="">StarRocks</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="clean-up">Clean up<a href="#clean-up" class="hash-link" aria-label="Direct link to Clean up" title="Direct link to Clean up" translate="no"></a></h2>
<p>After finishing the tutorial, run <code>exit</code> to exit Flink SQL CLI Container and then run</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">docker</span><span class="token plain"> compose down [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">docker</span><span class="token plain"> compose down </span><spa [...]
<p>to stop all containers.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="learn-more">Learn more<a href="#learn-more" class="hash-link" aria-label="Direct link to Learn more" title="Direct link to Learn more" translate="no"></a></h2>
<p>Now that you're up an running with Fluss and Flink, check out the <a class="" href="/docs/0.5/engine-flink/getting-started/">Apache Flink Engine</a> docs to learn more features with Flink!</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/apache/fluss/edit/main/website/docs/quickstart/flink.md" target="_blank" rel="noopener noreferrer" class="theme-edi [...]
diff --git a/docs/0.5/streaming-lakehouse/integrate-data-lakes/paimon/index.html b/docs/0.5/streaming-lakehouse/integrate-data-lakes/paimon/index.html
index c90133de4..78bb301f2 100644
--- a/docs/0.5/streaming-lakehouse/integrate-data-lakes/paimon/index.html
+++ b/docs/0.5/streaming-lakehouse/integrate-data-lakes/paimon/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -44,24 +44,24 @@ which is the latest within second-level latency.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="read-data-only-in-paimon">Read data only in Paimon<a href="#read-data-only-in-paimon" class="hash-link" aria-label="Direct link to Read data only in Paimon" title="Direct link to Read data only in Paimon" translate="no"></a></h4>
<p>To point to read data in Paimon, you must specify the table with <code>$lake</code> suffix, the following
SQL shows how to do that:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- assume w [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>When specify the table with <code>$lake</code> suffix in query, it just acts like a normal Paimon table, so it inherits all ability of Paimon table.
You can enjoy all the features that Flink's query supports/optimization on Paimon, like query system tables, time travel, etc. See more
about Paimon's <a href="https://paimon.apache.org/docs/0.9/flink/sql-query/#sql-query" target="_blank" rel="noopener noreferrer" class="">sql-query</a>.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="union-read-data-in-fluss-and-paimon">Union read data in Fluss and Paimon<a href="#union-read-data-in-fluss-and-paimon" class="hash-link" aria-label="Direct link to Union read data in Fluss and Paimon" title="Direct link to Union read data in Fluss and Paimon" translate="no"></a></h4>
<p>To point to read the full data that union Fluss and Paimon, you just query it as a normal table without any suffix or others, the following
SQL shows how to do that:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- query wi [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>The query may look slower than only querying data in Paimon, but it queries the full data which means better data freshness. You can
run the query multi-times, you should get different results in every one run as the data is written to the table continuously.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="read-by-other-engines">Read by other engines<a href="#read-by-other-engines" class="hash-link" aria-label="Direct link to Read by other engines" title="Direct link to Read by other engines" translate="no"></a></h3>
<p>As the tiered data in Paimon compacted from Fluss is also a standard Paimon table, you can use
<a href="https://paimon.apache.org/docs/0.9/engines/overview/" target="_blank" rel="noopener noreferrer" class="">any engines</a> that support Paimon to read the data. Here, we take <a href="https://paimon.apache.org/docs/master/engines/starrocks/" target="_blank" rel="noopener noreferrer" class="">StarRocks</a> as the engine to read the data:</p>
<p>First, create a Paimon catalog for StarRocks:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">StarRocks SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE< [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">StarRocks SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><spa [...]
<p><strong>NOTE</strong>: The configuration value <code>paimon.catalog.type</code> and <code>paimon.catalog.warehouse</code> should be same as how you configure the Paimon as lakehouse storage for Fluss in <code>server.yaml</code>.</p>
<p>Then, you can query the <code>orders</code> table by StarRocks:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">StarRocks SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- the [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">StarRocks SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic" [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="data-type-mapping">Data Type Mapping<a href="#data-type-mapping" class="hash-link" aria-label="Direct link to Data Type Mapping" title="Direct link to Data Type Mapping" translate="no"></a></h2>
<p>When integrate with Paimon, Fluss automatically converts between Fluss data type and Paimon data type.
The following content shows the mapping between <a class="" href="/docs/0.5/table-design/data-types/">Fluss data type</a> and Paimon data type:</p>
diff --git a/docs/0.5/streaming-lakehouse/overview/index.html b/docs/0.5/streaming-lakehouse/overview/index.html
index 943f378d9..50c688186 100644
--- a/docs/0.5/streaming-lakehouse/overview/index.html
+++ b/docs/0.5/streaming-lakehouse/overview/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/table-design/data-distribution/bucketing/index.html b/docs/0.5/table-design/data-distribution/bucketing/index.html
index a120171a7..9d31efcd8 100644
--- a/docs/0.5/table-design/data-distribution/bucketing/index.html
+++ b/docs/0.5/table-design/data-distribution/bucketing/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/table-design/data-distribution/partitioning/index.html b/docs/0.5/table-design/data-distribution/partitioning/index.html
index eb1354e94..798454b45 100644
--- a/docs/0.5/table-design/data-distribution/partitioning/index.html
+++ b/docs/0.5/table-design/data-distribution/partitioning/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -41,7 +41,7 @@
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="auto-partitioning-options">Auto Partitioning Options<a href="#auto-partitioning-options" class="hash-link" aria-label="Direct link to Auto Partitioning Options" title="Direct link to Auto Partitioning Options" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
<p>The auto-partitioning rules are configured through table options. The following example demonstrates creating a table named <code>site_access</code> that supports automatic partitioning using Flink SQL.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<p>In this case, when automatic partitioning occurs (Fluss will periodically operate on all tables in the background), four partitions are pre-created with a partition granularity of YEAR, retaining two historical partitions. The time zone is set to Asia/Shanghai.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="options">Options<a href="#options" class="hash-link" aria-label="Direct link to Options" title="Direct link to Options" translate="no"></a></h3>
<table><thead><tr><th>Option</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td>table.auto-partition.enabled</td><td>Boolean</td><td>no</td><td>false</td><td>Whether enable auto partition for the table. Disable by default. When auto partition is enabled, the partitions of the table will be created automatically.</td></tr><tr><td>table.auto-partition.time-unit</td><td>ENUM</td><td>no</td><td>(none)</td><td>The time granularity for auto create [...]
diff --git a/docs/0.5/table-design/data-distribution/ttl/index.html b/docs/0.5/table-design/data-distribution/ttl/index.html
index 94a823a12..04bf19444 100644
--- a/docs/0.5/table-design/data-distribution/ttl/index.html
+++ b/docs/0.5/table-design/data-distribution/ttl/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/table-design/data-types/index.html b/docs/0.5/table-design/data-types/index.html
index 46980c12a..57ca9a8ab 100644
--- a/docs/0.5/table-design/data-types/index.html
+++ b/docs/0.5/table-design/data-types/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/table-design/overview/index.html b/docs/0.5/table-design/overview/index.html
index 52365a162..9c1b1f613 100644
--- a/docs/0.5/table-design/overview/index.html
+++ b/docs/0.5/table-design/overview/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.5/table-design/table-types/log-table/index.html b/docs/0.5/table-design/table-types/log-table/index.html
index 6e30a5db8..c690aa492 100644
--- a/docs/0.5/table-design/table-types/log-table/index.html
+++ b/docs/0.5/table-design/table-types/log-table/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -27,7 +27,7 @@
<p>Log Table is a type of table in Fluss that is used to store data in the order in which it was written. Log Table only supports append records, and doesn't support Update/Delete operations.
Usually, Log Table is used to store logs in very high-throughput, like the typical use cases of Apache Kafka.</p>
<p>Log Table is created by not specifying the <code>PRIMARY KEY</code> clause in the <code>CREATE TABLE</code> statement. For example, the following Flink SQL statement will create a log table with 3 buckets.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bucket-assigning">Bucket Assigning<a href="#bucket-assigning" class="hash-link" aria-label="Direct link to Bucket Assigning" title="Direct link to Bucket Assigning" translate="no"></a></h2>
<p>Bucketing is the fundamental unit of parallelism and scalability in Fluss. A single table in Fluss is divided into multiple buckets. A bucket is the smallest storage unit for reads and writes. See more details about <a class="" href="/docs/0.5/table-design/data-distribution/bucketing/">Bucketing</a>.</p>
diff --git a/docs/0.5/table-design/table-types/pk-table/index.html b/docs/0.5/table-design/table-types/pk-table/index.html
index 2c4a99148..caadb6513 100644
--- a/docs/0.5/table-design/table-types/pk-table/index.html
+++ b/docs/0.5/table-design/table-types/pk-table/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -26,7 +26,7 @@
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="basic-concept">Basic Concept<a href="#basic-concept" class="hash-link" aria-label="Direct link to Basic Concept" title="Direct link to Basic Concept" translate="no"></a></h2>
<p>PrimaryKey Table in Fluss ensure the uniqueness of the specified primary key and supports <code>INSERT</code>, <code>UPDATE</code>, and <code>DELETE</code> operations.</p>
<p>A PrimaryKey Table is created by specifying a <code>PRIMARY KEY</code> clause in the <code>CREATE TABLE</code> statement. For example, the following Flink SQL statement creates a PrimaryKey Table with <code>shop_id</code> and <code>user_id</code> as the primary key and distributes the data into 4 buckets:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<p>In Fluss primary key table, each row of data has a unique primary key.
If multiple entries with the same primary key are written to the Fluss primary key table, only the last entry will be retained.</p>
<p>For <a class="" href="/docs/0.5/table-design/data-distribution/partitioning/">Partitioned PrimaryKey Table</a>, the primary key must contain the partition key.</p>
@@ -36,7 +36,7 @@ Data with the same hash value will be distributed to the same bucket.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="partial-update">Partial Update<a href="#partial-update" class="hash-link" aria-label="Direct link to Partial Update" title="Direct link to Partial Update" translate="no"></a></h2>
<p>For primary key tables, Fluss supports partial column updates, allowing you to write only a subset of columns to incrementally update the data and ultimately achieve complete data. Note that the columns being written must include the primary key column.</p>
<p>For example, consider the following Fluss primary key table:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<p>Assuming that at the beginning, only the <code>k</code> and <code>v1</code> columns are written with the data <code>+I(1, 2.0)</code>, <code>+I(2, 3.0)</code>, the data in T is as follows:</p>
<table><thead><tr><th>k</th><th>v1</th><th>v2</th></tr></thead><tbody><tr><td>1</td><td>2.0</td><td>null</td></tr><tr><td>2</td><td>3.0</td><td>null</td></tr></tbody></table>
<p>Then write to the <code>k</code> and <code>v2</code> columns with the data <code>+I(1, 't1')</code>, <code>+I(2, 't2')</code>, resulting in the data in T as follows:</p>
@@ -45,9 +45,9 @@ Data with the same hash value will be distributed to the same bucket.</p>
<p>For primary key tables, Fluss supports querying data directly based on the key. Please refer to the <a class="" href="/docs/0.5/engine-flink/reads/">Flink Reads</a> for detailed instructions.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="changelog-generation">Changelog Generation<a href="#changelog-generation" class="hash-link" aria-label="Direct link to Changelog Generation" title="Direct link to Changelog Generation" translate="no"></a></h2>
<p>Fluss will capture the changes when inserting, updating, deleting records on the primary-key table, which is known as the changelog. Downstream consumers can directly consume the changelog to obtain the changes in the table. For example, consider the following primary key table in Fluss:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<p>If the data written to the primary-key table is sequentially <code>+I(1, 2.0, 'apple')</code>, <code>+I(1, 4.0, 'banana')</code>, <code>-D(1, 4.0, 'banana')</code>, then the following change data will be generated.</p>
-<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token plain">+I(1, 2.0, 'apple')</span><br></span><span class="token-line" style="color:#9CDCF [...]
+<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token plain">+I(1, 2.0, 'apple')</span><br></span><span class="token-line" style="color:#36464 [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="data-consumption">Data Consumption<a href="#data-consumption" class="hash-link" aria-label="Direct link to Data Consumption" title="Direct link to Data Consumption" translate="no"></a></h2>
<p>For a primary key table, the default consumption method is a full snapshot followed by incremental data. First, the snapshot data of the table is consumed, followed by the binlog data of the table.</p>
<p>It is also possible to only consume the binlog data of the table. For more details, please refer to the <a class="" href="/docs/0.5/engine-flink/reads/">Flink Reads</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/apache/fluss/edit/main/website/docs/table-design/table-types/pk-table.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-p [...]
diff --git a/docs/0.6/concepts/architecture/index.html b/docs/0.6/concepts/architecture/index.html
index 3c7bbabc1..3da763fbf 100644
--- a/docs/0.6/concepts/architecture/index.html
+++ b/docs/0.6/concepts/architecture/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
diff --git a/docs/0.6/engine-flink/ddl/index.html b/docs/0.6/engine-flink/ddl/index.html
index c758ce8d2..557502e56 100644
--- a/docs/0.6/engine-flink/ddl/index.html
+++ b/docs/0.6/engine-flink/ddl/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -25,57 +25,57 @@
<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__d [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-catalog">Create Catalog<a href="#create-catalog" class="hash-link" aria-label="Direct link to Create Catalog" title="Direct link to Create Catalog" translate="no"></a></h2>
<p>Fluss supports creating and managing tables through the Fluss Catalog.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">USE</span>< [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">USE</span><span class [...]
<p>The following properties can be set if using the Fluss catalog:</p>
<table><thead><tr><th>Option</th><th>Required</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td>type</td><td>required</td><td>(none)</td><td>Catalog type, must to be 'fluss' here.</td></tr><tr><td>bootstrap.servers</td><td>required</td><td>(none)</td><td>Comma separated list of Fluss servers.</td></tr><tr><td>default-database</td><td>optional</td><td>fluss</td><td>The default database to use when switching to this catalog.</td></tr></tbody></table>
<p>The following introduced statements assuming the current catalog is switched to the Fluss catalog using <code>USE CATALOG <catalog_name></code> statement.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-database">Create Database<a href="#create-database" class="hash-link" aria-label="Direct link to Create Database" title="Direct link to Create Database" translate="no"></a></h2>
<p>By default, FlussCatalog will use the <code>fluss</code> database in Flink. Using the following example to create a separate database in order to avoid creating tables under the default <code>fluss</code> database:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">USE</span>< [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">USE</span><span class [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="drop-database">Drop Database<a href="#drop-database" class="hash-link" aria-label="Direct link to Drop Database" title="Direct link to Drop Database" translate="no"></a></h2>
<p>To delete a database, this will drop all the tables in the database as well:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Flink do [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- drop the [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-table">Create Table<a href="#create-table" class="hash-link" aria-label="Direct link to Create Table" title="Direct link to Create Table" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="primarykey-table">PrimaryKey Table<a href="#primarykey-table" class="hash-link" aria-label="Direct link to PrimaryKey Table" title="Direct link to PrimaryKey Table" translate="no"></a></h3>
<p>The following SQL statement will create a <a class="" href="/docs/0.6/table-design/table-types/pk-table/">PrimaryKey Table</a> with a primary key consisting of shop_id and user_id.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="log-table">Log Table<a href="#log-table" class="hash-link" aria-label="Direct link to Log Table" title="Direct link to Log Table" translate="no"></a></h3>
<p>The following SQL statement creates a <a class="" href="/docs/0.6/table-design/table-types/log-table/">Log Table</a> by not specifying primary key clause.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="partitioned-primarykeylog-table">Partitioned (PrimaryKey/Log) Table<a href="#partitioned-primarykeylog-table" class="hash-link" aria-label="Direct link to Partitioned (PrimaryKey/Log) Table" title="Direct link to Partitioned (PrimaryKey/Log) Table" translate="no"></a></h3>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<li class="">Currently, Fluss only supports one partitioned field with <code>STRING</code> type</li>
<li class="">For the Partitioned PrimaryKey Table, the partitioned field (<code>dt</code> in this case) must be a subset of the primary key (<code>dt, shop_id, user_id</code> in this case)</li>
</ol></div></div>
<p>The following SQL statement creates a Partitioned PrimaryKey Table in Fluss.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<p>The following SQL statement creates a Partitioned Log Table in Fluss.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
before you write/read data into this partition.</p></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="auto-partitioned-primarykeylog-table">Auto partitioned (PrimaryKey/Log) table<a href="#auto-partitioned-primarykeylog-table" class="hash-link" aria-label="Direct link to Auto partitioned (PrimaryKey/Log) table" title="Direct link to Auto partitioned (PrimaryKey/Log) table" translate="no"></a></h4>
<p>Fluss also support creat Auto Partitioned (PrimaryKey/Log) Table. The following SQL statement creates an Auto Partitioned PrimaryKey Table in Fluss.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<p>The following SQL statement creates an Auto Partitioned Log Table in Fluss.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<p>For more details about Auto Partitioned (PrimaryKey/Log) Table, refer to <a class="" href="/docs/0.6/table-design/data-distribution/partitioning/#auto-partitioning-options">Auto Partitioning Options</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="options">Options<a href="#options" class="hash-link" aria-label="Direct link to Options" title="Direct link to Options" translate="no"></a></h3>
<p>The supported option in <code>WITH</code> parameters when creating a table are listed in <a class="" href="/docs/0.6/engine-flink/options/">Connector Options</a> page.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="create-table-like">Create Table Like<a href="#create-table-like" class="hash-link" aria-label="Direct link to Create Table Like" title="Direct link to Create Table Like" translate="no"></a></h2>
<p>To create a table with the same schema, partitioning, and table properties as another table, use <code>CREATE TABLE LIKE</code>.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- there is [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- creates [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>For more details, refer to the <a href="https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/table/sql/create/#like" target="_blank" rel="noopener noreferrer" class="">Flink CREATE TABLE</a> documentation.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="drop-table">Drop Table<a href="#drop-table" class="hash-link" aria-label="Direct link to Drop Table" title="Direct link to Drop Table" translate="no"></a></h2>
<p>To delete a table, run:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">DROP</span> [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">DROP</span><span clas [...]
<p>This will entirely remove all the data of the table in the Fluss cluster.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="show-partitions">Show Partitions<a href="#show-partitions" class="hash-link" aria-label="Direct link to Show Partitions" title="Direct link to Show Partitions" translate="no"></a></h2>
<p>To show all the partitions of a partitioned table, run:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SHOW</span> [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SHOW</span><span clas [...]
<p>For more details, refer to the <a href="https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/table/sql/show/#show-partitions" target="_blank" rel="noopener noreferrer" class="">Flink SHOW PARTITIONS</a> documentation.</p>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-partition">Add Partition<a href="#add-partition" class="hash-link" aria-label="Direct link to Add Partition" title="Direct link to Add Partition" translate="no"></a></h2>
@@ -83,13 +83,13 @@ before you write/read data into this partition.</p></div></div>
not exists, Fluss will create the partition. If the specified partition already exists, Fluss will ignore the request
or throw an exception.</p>
<p>To add partitions, run:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">ALTER</span [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">ALTER</span><span cla [...]
<p>For more details, refer to the <a href="https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/table/sql/alter/#add" target="_blank" rel="noopener noreferrer" class="">Flink ALTER TABLE(ADD)</a> documentation.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="drop-partition">Drop Partition<a href="#drop-partition" class="hash-link" aria-label="Direct link to Drop Partition" title="Direct link to Drop Partition" translate="no"></a></h2>
<p>Fluss also support manually drop partitions from an exists partitioned table by Fluss Catalog. If the specified partition
not exists, Fluss will ignore the request or throw an exception.</p>
<p>To drop partitions, run:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">ALTER</span [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">ALTER</span><span cla [...]
<p>For more details, refer to the <a href="https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/table/sql/alter/#drop" target="_blank" rel="noopener noreferrer" class="">Flink ALTER TABLE(DROP)</a> documentation.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/apache/fluss/edit/main/website/docs/engine-flink/ddl.md" target="_blank" rel="noopen [...]
<p>Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>
<p>Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p></div></div></div></footer></div>
diff --git a/docs/0.6/engine-flink/getting-started/index.html b/docs/0.6/engine-flink/getting-started/index.html
index 54fd22bf0..029a2c373 100644
--- a/docs/0.6/engine-flink/getting-started/index.html
+++ b/docs/0.6/engine-flink/getting-started/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -36,29 +36,29 @@
</ul>
<p>Flink runs on all UNIX-like environments, i.e. Linux, Mac OS X, and Cygwin (for Windows).
If you haven’t downloaded Flink, you can download <a href="https://flink.apache.org/downloads.html" target="_blank" rel="noopener noreferrer" class="">the binary release</a> of Flink, then extract the archive with the following command.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">tar</span><span class="token plain"> </span><span cla [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">tar</span><span class="token plain"> </span><span class="token p [...]
<ul>
<li class=""><strong>Copy Fluss Connector Jar</strong></li>
</ul>
<p>Download <a class="" href="/downloads/#fluss-connector">Fluss connector jar</a> and copy to the lib directory of your Flink home.</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">cp</span><span class="token plain"> fluss-connector-f [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">cp</span><span class="token plain"> fluss-connector-flink-0.6.1. [...]
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
you should download the corresponding <a class="" href="/downloads/#filesystem-jars">Fluss filesystem jar</a> and also copy it to the lib directory of your Flink home.</p></div></div>
<ul>
<li class=""><strong>Start a local cluster</strong></li>
</ul>
<p>To start a local cluster, run the bash script that comes with Flink:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</spa [...]
<p>You should be able to navigate to the web UI at <a href="http://localhost:8081/" target="_blank" rel="noopener noreferrer" class="">localhost:8081</a> to view the Flink dashboard and see that the cluster is up and running. You can also check its status with the following command:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token function" style="color:rgb(220, 220, 170)">ps</span><span class="token plain"> aux </span><span [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token function" style="color:#a846b9">ps</span><span class="token plain"> aux </span><span class="toke [...]
<ul>
<li class=""><strong>Start a sql client</strong></li>
</ul>
<p>To quickly stop the cluster and all running components, you can use the provided script:</p>
-<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token operator" style="color:rgb(212, 212, 212)"><</span><span class="token plain">FLINK_HOME</span [...]
+<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token operator" style="color:rgba(0, 0, 0, 0.54)"><</span><span class="token plain">FLINK_HOME</spa [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="creating-a-catalog">Creating a Catalog<a href="#creating-a-catalog" class="hash-link" aria-label="Direct link to Creating a Catalog" title="Direct link to Creating a Catalog" translate="no"></a></h2>
<p>You can use the following SQL statement to create a catalog.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<li class="">The <code>bootstrap.servers</code> means the Fluss server address. Before you config the <code>bootstrap.servers</code>,
you should start the Fluss server first. See <a class="" href="/docs/0.6/install-deploy/overview/#how-to-deploy-fluss">Deploying Fluss</a>
@@ -67,25 +67,25 @@ Here, it is assumed that there is a Fluss cluster running on your local machine
<li class="">The<code> bootstrap.servers</code> configuration is used to discover all nodes within the Fluss cluster. It can be set with one or more (up to three) Fluss server addresses (either CoordinatorServer or TabletServer) separated by commas.</li>
</ol></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="creating-a-table">Creating a Table<a href="#creating-a-table" class="hash-link" aria-label="Direct link to Creating a Table" title="Direct link to Creating a Table" translate="no"></a></h2>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">USE</span>< [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">USE</span><span class [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="data-writing">Data Writing<a href="#data-writing" class="hash-link" aria-label="Direct link to Data Writing" title="Direct link to Data Writing" translate="no"></a></h2>
<p>To append new data to a table, you can use <code>INSERT INTO</code> in batch mode or streaming mode:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Execute [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- use tabl [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">INSERT</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">INSERT</span><span cl [...]
<p>To update data record with the primary key (1234, 1234) in a Flink streaming job, use the UPDATE statement as follows:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- should r [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>To delete the data record with primary key <code>(12345, 12345)</code>, use <code>DELETE FROM</code>:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- should r [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="data-reading">Data Reading<a href="#data-reading" class="hash-link" aria-label="Direct link to Data Reading" title="Direct link to Data Reading" translate="no"></a></h2>
<p>To retrieve data with the primary key <code>(1234, 1234)</code>, you can perform a point query by applying a filter on the primary key:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- should r [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>To preview a subset of the data in a table, you can use a <code>LIMIT</code> clause.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- should r [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>Fluss supports processing incremental data reading in flink streaming jobs:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Submit t [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- reading [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="type-conversion">Type Conversion<a href="#type-conversion" class="hash-link" aria-label="Direct link to Type Conversion" title="Direct link to Type Conversion" translate="no"></a></h2>
<p>Fluss's integration for Flink automatically converts between Flink and Fluss types.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluss---apache-flink">Fluss -> Apache Flink<a href="#fluss---apache-flink" class="hash-link" aria-label="Direct link to Fluss -> Apache Flink" title="Direct link to Fluss -> Apache Flink" translate="no"></a></h3>
diff --git a/docs/0.6/engine-flink/lookups/index.html b/docs/0.6/engine-flink/lookups/index.html
index 0bfcd6f0b..cd6c9d7f2 100644
--- a/docs/0.6/engine-flink/lookups/index.html
+++ b/docs/0.6/engine-flink/lookups/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -34,23 +34,23 @@
<ol>
<li class="">Create two tables.</li>
</ol>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">USE</span>< [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">USE</span>< [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">USE</span><span class [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">USE</span><span class [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<ol start="2">
<li class="">Perform lookup join.</li>
</ol>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- look up [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- look up [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="examples-partitioned-table">Examples (Partitioned Table)<a href="#examples-partitioned-table" class="hash-link" aria-label="Direct link to Examples (Partitioned Table)" title="Direct link to Examples (Partitioned Table)" translate="no"></a></h3>
<p>Continuing from the previous example, if our dimension table is a Fluss partitioned primary key table, as follows:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
<p>To do a lookup join with the Fluss partitioned primary key table, we need to specify the
primary keys (including partition key) in the join condition.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">INSERT</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">INSERT</span><span cl [...]
<p>For more details about Fluss partitioned table, see <a class="" href="/docs/0.6/table-design/data-distribution/partitioning/">Partitioned Tables</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="prefix-lookup">Prefix Lookup<a href="#prefix-lookup" class="hash-link" aria-label="Direct link to Prefix Lookup" title="Direct link to Prefix Lookup" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="instructions-1">Instructions<a href="#instructions-1" class="hash-link" aria-label="Direct link to Instructions" title="Direct link to Instructions" translate="no"></a></h3>
@@ -63,23 +63,23 @@ primary keys (including partition key) in the join condition.</p>
<ol>
<li class="">Create two tables.</li>
</ol>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">USE</span>< [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">USE</span>< [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- primary [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">USE</span><span class [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">USE</span><span class [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<ol start="2">
<li class="">Perform prefix lookup.</li>
</ol>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</spa [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- prefix l [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- prefix l [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span cl [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="examples-partitioned-table-1">Examples (Partitioned Table)<a href="#examples-partitioned-table-1" class="hash-link" aria-label="Direct link to Examples (Partitioned Table)" title="Direct link to Examples (Partitioned Table)" translate="no"></a></h3>
<p>Continuing from the previous prefix lookup example, if our dimension table is a Fluss partitioned primary key table, as follows:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- primary [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<p>To do a prefix lookup with the Fluss partitioned primary key table, the prefix lookup join key is in pattern of
<code>a prefix subset of primary keys (excluding partition key)</code> + <code>partition key</code>.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">INSERT</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">INSERT</span><span cl [...]
<p>For more details about Fluss partitioned table, see <a class="" href="/docs/0.6/table-design/data-distribution/partitioning/">Partitioned Tables</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="lookup-options">Lookup Options<a href="#lookup-options" class="hash-link" aria-label="Direct link to Lookup Options" title="Direct link to Lookup Options" translate="no"></a></h2>
<p>Fluss lookup join supports various configuration options. For more details, please refer to the <a class="" href="/docs/0.6/engine-flink/options/#lookup-options">Connector Options</a> page.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/apache/fluss/edit/main/website/docs/engine-flink/lookups.md" target="_blank" rel="noopener noreferrer" class="theme-edi [...]
diff --git a/docs/0.6/engine-flink/options/index.html b/docs/0.6/engine-flink/options/index.html
index 66811917a..a29cc46c9 100644
--- a/docs/0.6/engine-flink/options/index.html
+++ b/docs/0.6/engine-flink/options/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -29,17 +29,17 @@
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="configure-options-when-creating-a-table">Configure options when creating a table<a href="#configure-options-when-creating-a-table" class="hash-link" aria-label="Direct link to Configure options when creating a table" title="Direct link to Configure options when creating a table" translate="no"></a></h3>
<p>All the options in this page can be set when creating a table. Once a table is created, the defined options will be stored as a part of the metadata of the Fluss table. The stored options will be used when reading or writing the table.
For example, the following SQL statement creates a Fluss table with the <code>table.log.ttl</code> set to 7 days and disables the CRC check for the log reading:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">CREATE</span><span class="token plain"> </span><span class= [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">CREATE</span><span class="token plain"> </span><span class="token key [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dynamically-apply-options-via-sql-hints">Dynamically apply options via SQL hints<a href="#dynamically-apply-options-via-sql-hints" class="hash-link" aria-label="Direct link to Dynamically apply options via SQL hints" title="Direct link to Dynamically apply options via SQL hints" translate="no"></a></h3>
<p>You can dynamically apply the options via SQL hints. The dynamically applied options will not be stored as metadata of the table.
They will only be used for the current query and will not affect other queries on the table. The dynamically applied options have a higher priority than the options stored in the metadata of the table.</p>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
<p>For example, the following SQL statements temporarily disables the CRC check for the log reading and ignores deletes for writing:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- SQL hints on source tables</span><span class="token plai [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- SQL hints on source tables</span><span class="to [...]
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="configure-options-by-altering-table">Configure options by altering table<a href="#configure-options-by-altering-table" class="hash-link" aria-label="Direct link to Configure options by altering table" title="Direct link to Configure options by altering table" translate="no"></a></h3>
<p>This is not supported yet, but is planned in the near future.
For example, the following SQL statement alters the Fluss table with the <code>table.log.ttl</code> set to 7 days:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">ALTER</span><span class="token plain"> </span><span class=" [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">ALTER</span><span class="token plain"> </span><span class="token keyw [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="storage-options">Storage Options<a href="#storage-options" class="hash-link" aria-label="Direct link to Storage Options" title="Direct link to Storage Options" translate="no"></a></h2>
<table><thead><tr><th>Option</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td>bucket.num</td><td>int</td><td>The bucket number of Fluss cluster.</td><td>The number of buckets of a Fluss table.</td></tr><tr><td>bucket.key</td><td>String</td><td>(none)</td><td>Specific the distribution policy of the Fluss table. Data will be distributed to each bucket according to the hash value of bucket-key. If you specify multiple fields, delimiter is ','. If th [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="read-options">Read Options<a href="#read-options" class="hash-link" aria-label="Direct link to Read Options" title="Direct link to Read Options" translate="no"></a></h2>
diff --git a/docs/0.6/engine-flink/reads/index.html b/docs/0.6/engine-flink/reads/index.html
index bdb892e78..bbcd19fbf 100644
--- a/docs/0.6/engine-flink/reads/index.html
+++ b/docs/0.6/engine-flink/reads/index.html
@@ -14,9 +14,9 @@
<link rel="icon" href="/img/logo.svg">
<link rel="manifest" href="/manifest.json">
-<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.a7571857.css">
-<script src="/assets/js/runtime~main.932bddce.js" defer="defer"></script>
-<script src="/assets/js/main.238e594d.js" defer="defer"></script>
+<meta name="theme-color" content="#0071e3"><link rel="stylesheet" href="/assets/css/styles.22067dd8.css">
+<script src="/assets/js/runtime~main.20913baf.js" defer="defer"></script>
+<script src="/assets/js/main.4f96f7b5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
@@ -24,50 +24,50 @@
</defs></svg>
<script>document.documentElement.setAttribute("data-theme","light"),document.documentElement.setAttribute("data-theme-choice","light"),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__d [...]
<p>Fluss supports streaming and batch read with <a href="https://flink.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Flink</a>'s SQL & Table API. Execute the following SQL command to switch execution mode from streaming to batch, and vice versa:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Execute [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token comment" style="color:rgb(106, 153, 85)">-- Execute [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token comment" style="color:#8e908c;font-style:italic">-- [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="streaming-read">Streaming Read<a href="#streaming-read" class="hash-link" aria-label="Direct link to Streaming Read" title="Direct link to Streaming Read" translate="no"></a></h2>
<p>By default, Streaming read produces the latest snapshot on the table upon first startup, and continue to read the latest changes.</p>
<p>Fluss by default ensures that your startup is properly processed with all data included.</p>
<p>Fluss Source in streaming mode is unbounded, like a queue that never ends.</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SET</span>< [...]
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SELECT</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SET</span><span class [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SELECT</span><span cl [...]
<p>You can also do streaming read without reading the snapshot data, you can use <code>latest</code> scan mode, which only reads the changelogs (or logs) from the latest offset:</p>
-<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#9CDCFE;--prism-background-color:#1E1E1E"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#9CDCFE;background-color:#1E1E1E"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#9CDCFE"><span class="token keyword" style="color:rgb(86, 156, 214)">SELECT</spa [...]
+<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#36464e;--prism-background-color:#f5f5f5"><div class="codeBlockTitle_OeMC">Flink SQL</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#36464e;background-color:#f5f5f5"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#36464e"><span class="token keyword" style="color:#3f6ec6">SELECT</span><span cl [...]
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="batch-read">Batch Read<a href="#batch-read" class="hash-link" aria-label="Direct link to Batch Read" title="Direct link to Batch Read" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="limit-read">Limit Read<a href="#limit-read" class="hash-link" aria-label="Direct link to Limit Read" title="Direct link to Limit Read" translate="no"></a></h3>
<p>The Fluss source supports limiting reads for both primary-key tables and log tables, making it convenient to preview the latest <code>N</code> records in a table.</p>
-<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no">