blob: ec82e5f6ca9799b83a16e4a876241fbcbc854c89 [file] [log] [blame]
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="icon" href="../../../../assets/images/favicon-96x96.png">
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.21">
<title>Flink Writes - Apache Iceberg</title>
<link rel="stylesheet" href="../../../../assets/stylesheets/main.66ac8b77.min.css">
<link rel="stylesheet" href="../../../../assets/stylesheets/palette.06af60db.min.css">
<link rel="stylesheet" href="../../../../assets/external/fonts.googleapis.com/css.46f4883b.css">
<style>:root{--md-text-font:"Nunito Sans";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../../../../assets/stylesheets/extra.css">
<link rel="stylesheet" href="../../../../assets/stylesheets/bootstrap-grid.css">
<link rel="stylesheet" href="../../../../assets/stylesheets/bootstrap-buttons.css">
<link rel="stylesheet" href="../../../../assets/stylesheets/home.css">
<script>__md_scope=new URL("../../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="iceberg" data-md-color-primary="indigo" data-md-color-accent="indigo">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#flink-writes" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<!--
Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
-->
<!-- Determine classes -->
<!-- Header -->
<header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<!-- Link to home -->
<a
href="../../../.."
title="Apache Iceberg"
class="md-header__button md-logo"
aria-label="Apache Iceberg"
data-md-component="logo"
>
<img src="../../../../assets/images/Iceberg-logo.svg" alt="logo">
</a>
<!-- Button to open drawer -->
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<!-- Header title -->
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis"> </span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Flink Writes
</span>
</div>
</div>
</div>
<!-- Button to open search modal -->
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<!-- Search interface -->
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-social">
<a href="https://iceberg.apache.org/community/" target="_blank" rel="noopener" title="iceberg.apache.org" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6-10.4-2-21.2-.6-30.7 4.2-4.1 2.1-8.3 4.1-12.6 6-16 7.2-32.9 13.5-49.9 18 2.8-4.6 5.4-9.1 7.9-13.6 1.1-1.9 2.2-3.9 3.2-5.9zM0 176c0 41.8 17.2 80.1 45.9 110.3-.9 1.7-1.9 3.5-2.8 5.1-10.3 18.4-22.3 36.5-36.6 52.1-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7 4.8-2.2 9.6-4.5 14.2-6.8 15.1 3 30.9 4.5 47.1 4.5 114.9 0 208-78.8 208-176S322.9 0 208 0 0 78.8 0 176zm432 304c16.2 0 31.9-1.6 47.1-4.5 4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5 3.8-8.8 2-19-4.6-25.9-14.2-15.6-26.2-33.7-36.6-52.1-.9-1.7-1.9-3.4-2.8-5.1 28.8-30.3 46-68.6 46-110.4 0-94.4-87.9-171.5-198.2-175.8 4.1 15.2 6.2 31.2 6.2 47.8v.6c87.2 6.7 144 67.5 144 127.4 0 28-11.4 54.9-32.7 77.2-14.3 15-17.3 37.6-7.5 55.8 1.1 2 2.2 4 3.2 5.9 2.5 4.5 5.2 9 7.9 13.6-17-4.5-33.9-10.7-49.9-18-4.3-1.9-8.5-3.9-12.6-6-9.5-4.8-20.3-6.2-30.7-4.2-12.1 2.4-24.7 3.6-37.8 3.6-61.7 0-110-26.5-136.8-62.3-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z"/></svg>
</a>
<a href="https://github.com/apache/iceberg" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://www.youtube.com/@ApacheIceberg" target="_blank" rel="noopener" title="www.youtube.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
</a>
<a href="https://join.slack.com/t/apache-iceberg/shared_invite/zt-287g3akar-K9Oe_En5j1UL7Y_Ikpai3A" target="_blank" rel="noopener" title="join.slack.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
</a>
</div>
<!-- Color palette toggle -->
<!-- User preference: color palette -->
<!-- Site language selector -->
<!-- Repository information -->
</nav>
<!-- Navigation tabs (sticky) -->
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../../../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../../../spark-quickstart/" class="md-tabs__link">
Quickstart
</a>
</li>
<li class="md-tabs__item">
<a href="../../../nightly/" class="md-tabs__link">
Docs
</a>
</li>
<li class="md-tabs__item">
<a href="../../../../releases/" class="md-tabs__link">
Releases
</a>
</li>
<li class="md-tabs__item">
<a href="../../../../blogs/" class="md-tabs__link">
Blogs
</a>
</li>
<li class="md-tabs__item">
<a href="../../../../talks/" class="md-tabs__link">
Talks
</a>
</li>
<li class="md-tabs__item">
<a href="../../../../vendors/" class="md-tabs__link">
Vendors
</a>
</li>
<li class="md-tabs__item">
<a href="../../../../community/" class="md-tabs__link">
Project
</a>
</li>
<li class="md-tabs__item">
<a href="../../../../concepts/catalog/" class="md-tabs__link">
Concepts
</a>
</li>
</ul>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../../../.." title="Apache Iceberg" class="md-nav__button md-logo" aria-label="Apache Iceberg" data-md-component="logo">
<img src="../../../../assets/images/Iceberg-logo.svg" alt="logo">
</a>
Apache Iceberg
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../.." class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-ellipsis">
Quickstart
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Quickstart
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../../spark-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Spark
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../../hive-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-ellipsis">
Docs
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Docs
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1" >
<label class="md-nav__link" for="__nav_3_1" id="__nav_3_1_label" tabindex="0">
<span class="md-ellipsis">
nightly
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1">
<span class="md-nav__icon md-icon"></span>
nightly
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../nightly/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1_2" >
<label class="md-nav__link" for="__nav_3_1_2" id="__nav_3_1_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_1_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../nightly/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1_3" >
<label class="md-nav__link" for="__nav_3_1_3" id="__nav_3_1_3_label" tabindex="0">
<span class="md-ellipsis">
Views
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_1_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1_3">
<span class="md-nav__icon md-icon"></span>
Views
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../nightly/view-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1_4" >
<label class="md-nav__link" for="__nav_3_1_4" id="__nav_3_1_4_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_1_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1_4">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../nightly/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1_5" >
<label class="md-nav__link" for="__nav_3_1_5" id="__nav_3_1_5_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_1_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1_5">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../nightly/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../nightly/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/daft/" class="md-nav__link">
<span class="md-ellipsis">
Daft
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.snowflake.com/en/user-guide/tables-iceberg" class="md-nav__link">
<span class="md-ellipsis">
Snowflake
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1_18" >
<label class="md-nav__link" for="__nav_3_1_18" id="__nav_3_1_18_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_1_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1_18">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../nightly/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1_19" >
<label class="md-nav__link" for="__nav_3_1_19" id="__nav_3_1_19_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_1_19_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_1_19">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../nightly/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../nightly/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../../javadoc/nightly" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://rust.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
IcebergRust
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2" >
<label class="md-nav__link" for="__nav_3_2" id="__nav_3_2_label" tabindex="0">
<span class="md-ellipsis">
latest
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2">
<span class="md-nav__icon md-icon"></span>
latest
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../latest/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_2" >
<label class="md-nav__link" for="__nav_3_2_2" id="__nav_3_2_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../latest/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_3" >
<label class="md-nav__link" for="__nav_3_2_3" id="__nav_3_2_3_label" tabindex="0">
<span class="md-ellipsis">
Views
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_3">
<span class="md-nav__icon md-icon"></span>
Views
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../latest/view-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_4" >
<label class="md-nav__link" for="__nav_3_2_4" id="__nav_3_2_4_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_4">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../latest/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_5" >
<label class="md-nav__link" for="__nav_3_2_5" id="__nav_3_2_5_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_5">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../latest/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../latest/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.snowflake.com/en/user-guide/tables-iceberg" class="md-nav__link">
<span class="md-ellipsis">
Snowflake
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_17" >
<label class="md-nav__link" for="__nav_3_2_17" id="__nav_3_2_17_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_17">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../latest/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_18" >
<label class="md-nav__link" for="__nav_3_2_18" id="__nav_3_2_18_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_18">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../latest/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../latest/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../../javadoc/latest" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://rust.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
IcebergRust
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
<label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
<span class="md-ellipsis">
1.5.2
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3">
<span class="md-nav__icon md-icon"></span>
1.5.2
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.2/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_2" >
<label class="md-nav__link" for="__nav_3_3_2" id="__nav_3_3_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.2/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_3" >
<label class="md-nav__link" for="__nav_3_3_3" id="__nav_3_3_3_label" tabindex="0">
<span class="md-ellipsis">
Views
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_3">
<span class="md-nav__icon md-icon"></span>
Views
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.2/view-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_4" >
<label class="md-nav__link" for="__nav_3_3_4" id="__nav_3_3_4_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_4">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.2/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_5" >
<label class="md-nav__link" for="__nav_3_3_5" id="__nav_3_3_5_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_5">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.2/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.snowflake.com/en/user-guide/tables-iceberg" class="md-nav__link">
<span class="md-ellipsis">
Snowflake
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_17" >
<label class="md-nav__link" for="__nav_3_3_17" id="__nav_3_3_17_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_17">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.2/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_18" >
<label class="md-nav__link" for="__nav_3_3_18" id="__nav_3_3_18_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_18">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.2/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.2/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../../javadoc/1.5.2/" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://rust.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
IcebergRust
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" >
<label class="md-nav__link" for="__nav_3_4" id="__nav_3_4_label" tabindex="0">
<span class="md-ellipsis">
1.5.1
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
1.5.1
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.1/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_2" >
<label class="md-nav__link" for="__nav_3_4_2" id="__nav_3_4_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.1/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_3" >
<label class="md-nav__link" for="__nav_3_4_3" id="__nav_3_4_3_label" tabindex="0">
<span class="md-ellipsis">
Views
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_3">
<span class="md-nav__icon md-icon"></span>
Views
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.1/view-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_4" >
<label class="md-nav__link" for="__nav_3_4_4" id="__nav_3_4_4_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_4">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.1/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_5" >
<label class="md-nav__link" for="__nav_3_4_5" id="__nav_3_4_5_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_5">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.1/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.snowflake.com/en/user-guide/tables-iceberg" class="md-nav__link">
<span class="md-ellipsis">
Snowflake
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_17" >
<label class="md-nav__link" for="__nav_3_4_17" id="__nav_3_4_17_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_17">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.1/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_18" >
<label class="md-nav__link" for="__nav_3_4_18" id="__nav_3_4_18_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_18">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.1/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.1/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../../javadoc/1.5.1/" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://rust.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
IcebergRust
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5" >
<label class="md-nav__link" for="__nav_3_5" id="__nav_3_5_label" tabindex="0">
<span class="md-ellipsis">
1.5.0
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
1.5.0
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.0/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_2" >
<label class="md-nav__link" for="__nav_3_5_2" id="__nav_3_5_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.0/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_3" >
<label class="md-nav__link" for="__nav_3_5_3" id="__nav_3_5_3_label" tabindex="0">
<span class="md-ellipsis">
Views
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5_3">
<span class="md-nav__icon md-icon"></span>
Views
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.0/view-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_4" >
<label class="md-nav__link" for="__nav_3_5_4" id="__nav_3_5_4_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5_4">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.0/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_5" >
<label class="md-nav__link" for="__nav_3_5_5" id="__nav_3_5_5_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5_5">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.0/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.snowflake.com/en/user-guide/tables-iceberg" class="md-nav__link">
<span class="md-ellipsis">
Snowflake
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_17" >
<label class="md-nav__link" for="__nav_3_5_17" id="__nav_3_5_17_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5_17">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.0/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5_18" >
<label class="md-nav__link" for="__nav_3_5_18" id="__nav_3_5_18_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_5_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5_18">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.5.0/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.5.0/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../../javadoc/1.5.0/" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://rust.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
IcebergRust
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
<label class="md-nav__link" for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
<span class="md-ellipsis">
1.4.3
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6">
<span class="md-nav__icon md-icon"></span>
1.4.3
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.3/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_2" >
<label class="md-nav__link" for="__nav_3_6_2" id="__nav_3_6_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.3/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/metrics-reporting/" class="md-nav__link">
<span class="md-ellipsis">
Metrics Reporting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_3" >
<label class="md-nav__link" for="__nav_3_6_3" id="__nav_3_6_3_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_3">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.3/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_4" >
<label class="md-nav__link" for="__nav_3_6_4" id="__nav_3_6_4_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_4">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.3/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_15" >
<label class="md-nav__link" for="__nav_3_6_15" id="__nav_3_6_15_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_15">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.3/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_16" >
<label class="md-nav__link" for="__nav_3_6_16" id="__nav_3_6_16_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_16">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.3/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6_17" >
<label class="md-nav__link" for="__nav_3_6_17" id="__nav_3_6_17_label" tabindex="0">
<span class="md-ellipsis">
Migration
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_6_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6_17">
<span class="md-nav__icon md-icon"></span>
Migration
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.3/table-migration/" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/hive-migration/" class="md-nav__link">
<span class="md-ellipsis">
Hive Migration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.3/delta-lake-migration/" class="md-nav__link">
<span class="md-ellipsis">
Delta Lake Migration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../../javadoc/1.4.3" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7" >
<label class="md-nav__link" for="__nav_3_7" id="__nav_3_7_label" tabindex="0">
<span class="md-ellipsis">
1.4.2
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7">
<span class="md-nav__icon md-icon"></span>
1.4.2
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.2/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_2" >
<label class="md-nav__link" for="__nav_3_7_2" id="__nav_3_7_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.2/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/metrics-reporting/" class="md-nav__link">
<span class="md-ellipsis">
Metrics Reporting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_3" >
<label class="md-nav__link" for="__nav_3_7_3" id="__nav_3_7_3_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_3">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.2/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_4" >
<label class="md-nav__link" for="__nav_3_7_4" id="__nav_3_7_4_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_4">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.2/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_15" >
<label class="md-nav__link" for="__nav_3_7_15" id="__nav_3_7_15_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_15">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.2/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_16" >
<label class="md-nav__link" for="__nav_3_7_16" id="__nav_3_7_16_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_16">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.2/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7_17" >
<label class="md-nav__link" for="__nav_3_7_17" id="__nav_3_7_17_label" tabindex="0">
<span class="md-ellipsis">
Migration
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_7_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7_17">
<span class="md-nav__icon md-icon"></span>
Migration
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.2/table-migration/" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/hive-migration/" class="md-nav__link">
<span class="md-ellipsis">
Hive Migration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.2/delta-lake-migration/" class="md-nav__link">
<span class="md-ellipsis">
Delta Lake Migration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../../javadoc/1.4.2" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8" >
<label class="md-nav__link" for="__nav_3_8" id="__nav_3_8_label" tabindex="0">
<span class="md-ellipsis">
1.4.1
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8">
<span class="md-nav__icon md-icon"></span>
1.4.1
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.1/" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_2" >
<label class="md-nav__link" for="__nav_3_8_2" id="__nav_3_8_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.1/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/metrics-reporting/" class="md-nav__link">
<span class="md-ellipsis">
Metrics Reporting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_3" >
<label class="md-nav__link" for="__nav_3_8_3" id="__nav_3_8_3_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_3">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.1/spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_4" >
<label class="md-nav__link" for="__nav_3_8_4" id="__nav_3_8_4_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_4">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.1/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_15" >
<label class="md-nav__link" for="__nav_3_8_15" id="__nav_3_8_15_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_15">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.1/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_16" >
<label class="md-nav__link" for="__nav_3_8_16" id="__nav_3_8_16_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_16">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.1/java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_8_17" >
<label class="md-nav__link" for="__nav_3_8_17" id="__nav_3_8_17_label" tabindex="0">
<span class="md-ellipsis">
Migration
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_8_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8_17">
<span class="md-nav__icon md-icon"></span>
Migration
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../1.4.1/table-migration/" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/hive-migration/" class="md-nav__link">
<span class="md-ellipsis">
Hive Migration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.1/delta-lake-migration/" class="md-nav__link">
<span class="md-ellipsis">
Delta Lake Migration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../../javadoc/1.4.1/" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9" >
<label class="md-nav__link" for="__nav_3_9" id="__nav_3_9_label" tabindex="0">
<span class="md-ellipsis">
1.4.0
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9">
<span class="md-nav__icon md-icon"></span>
1.4.0
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9_2" >
<label class="md-nav__link" for="__nav_3_9_2" id="__nav_3_9_2_label" tabindex="0">
<span class="md-ellipsis">
Tables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_9_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9_2">
<span class="md-nav__icon md-icon"></span>
Tables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../metrics-reporting/" class="md-nav__link">
<span class="md-ellipsis">
Metrics Reporting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../schemas/" class="md-nav__link">
<span class="md-ellipsis">
Schemas
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9_3" >
<label class="md-nav__link" for="__nav_3_9_3" id="__nav_3_9_3_label" tabindex="0">
<span class="md-ellipsis">
Spark
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_9_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9_3">
<span class="md-nav__icon md-icon"></span>
Spark
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../spark-getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../spark-structured-streaming/" class="md-nav__link">
<span class="md-ellipsis">
Structured Streaming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../spark-writes/" class="md-nav__link">
<span class="md-ellipsis">
Writes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9_4" >
<label class="md-nav__link" for="__nav_3_9_4" id="__nav_3_9_4_label" tabindex="0">
<span class="md-ellipsis">
Flink
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_9_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9_4">
<span class="md-nav__icon md-icon"></span>
Flink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../flink-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Flink Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../hive/" class="md-nav__link">
<span class="md-ellipsis">
Hive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://trino.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Trino
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://clickhouse.com/docs/en/engines/table-engines/integrations/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Clickhouse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://prestodb.io/docs/current/connector/iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Presto
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.dremio.com/data-formats/apache-iceberg/" class="md-nav__link">
<span class="md-ellipsis">
Dremio
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.starrocks.io/en-us/latest/data_source/catalog/iceberg_catalog" class="md-nav__link">
<span class="md-ellipsis">
Starrocks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon Athena
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-iceberg-use-cluster.html" class="md-nav__link">
<span class="md-ellipsis">
Amazon EMR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://impala.apache.org/docs/build/html/topics/impala_iceberg.html" class="md-nav__link">
<span class="md-ellipsis">
Impala
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://doris.apache.org/docs/dev/lakehouse/multi-catalog/iceberg" class="md-nav__link">
<span class="md-ellipsis">
Doris
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9_15" >
<label class="md-nav__link" for="__nav_3_9_15" id="__nav_3_9_15_label" tabindex="0">
<span class="md-ellipsis">
Integrations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_9_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9_15">
<span class="md-nav__icon md-icon"></span>
Integrations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../nessie/" class="md-nav__link">
<span class="md-ellipsis">
Nessie
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9_16" >
<label class="md-nav__link" for="__nav_3_9_16" id="__nav_3_9_16_label" tabindex="0">
<span class="md-ellipsis">
API
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_9_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9_16">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../java-api-quickstart/" class="md-nav__link">
<span class="md-ellipsis">
Java Quickstart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../custom-catalog/" class="md-nav__link">
<span class="md-ellipsis">
Java Custom Catalog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_9_17" >
<label class="md-nav__link" for="__nav_3_9_17" id="__nav_3_9_17_label" tabindex="0">
<span class="md-ellipsis">
Migration
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_9_17_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_9_17">
<span class="md-nav__icon md-icon"></span>
Migration
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../table-migration/" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../hive-migration/" class="md-nav__link">
<span class="md-ellipsis">
Hive Migration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../delta-lake-migration/" class="md-nav__link">
<span class="md-ellipsis">
Delta Lake Migration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../../javadoc/1.4.0/" class="md-nav__link">
<span class="md-ellipsis">
Javadoc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://py.iceberg.apache.org/" class="md-nav__link">
<span class="md-ellipsis">
PyIceberg
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../../releases/" class="md-nav__link">
<span class="md-ellipsis">
Releases
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../../blogs/" class="md-nav__link">
<span class="md-ellipsis">
Blogs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../../talks/" class="md-nav__link">
<span class="md-ellipsis">
Talks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../../vendors/" class="md-nav__link">
<span class="md-ellipsis">
Vendors
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
<span class="md-ellipsis">
Project
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
Project
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../../community/" class="md-nav__link">
<span class="md-ellipsis">
Community
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../../spec/" class="md-nav__link">
<span class="md-ellipsis">
Spec
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../../view-spec/" class="md-nav__link">
<span class="md-ellipsis">
View spec
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../../puffin-spec/" class="md-nav__link">
<span class="md-ellipsis">
Puffin spec
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../../gcm-stream-spec/" class="md-nav__link">
<span class="md-ellipsis">
AES GCM Stream spec
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../../multi-engine-support/" class="md-nav__link">
<span class="md-ellipsis">
Multi-engine support
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../../how-to-release/" class="md-nav__link">
<span class="md-ellipsis">
How to release
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../../terms/" class="md-nav__link">
<span class="md-ellipsis">
Terms
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_9" >
<label class="md-nav__link" for="__nav_8_9" id="__nav_8_9_label" tabindex="0">
<span class="md-ellipsis">
ASF
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_9">
<span class="md-nav__icon md-icon"></span>
ASF
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="https://www.apache.org/foundation/thanks.html" class="md-nav__link">
<span class="md-ellipsis">
Sponsorship
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/events/current-event.html" class="md-nav__link">
<span class="md-ellipsis">
Events
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://privacy.apache.org/policies/privacy-policy-public.html" class="md-nav__link">
<span class="md-ellipsis">
Privacy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/licenses/" class="md-nav__link">
<span class="md-ellipsis">
License
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/security/" class="md-nav__link">
<span class="md-ellipsis">
Security
</span>
</a>
</li>
<li class="md-nav__item">
<a href="https://www.apache.org/foundation/thanks.html" class="md-nav__link">
<span class="md-ellipsis">
Sponsors
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
<span class="md-ellipsis">
Concepts
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
Concepts
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../../concepts/catalog/" class="md-nav__link">
<span class="md-ellipsis">
Catalogs
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#writing-with-sql" class="md-nav__link">
<span class="md-ellipsis">
Writing with SQL
</span>
</a>
<nav class="md-nav" aria-label="Writing with SQL">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#insert-into" class="md-nav__link">
<span class="md-ellipsis">
INSERT INTO
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#insert-overwrite" class="md-nav__link">
<span class="md-ellipsis">
INSERT OVERWRITE
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#upsert" class="md-nav__link">
<span class="md-ellipsis">
UPSERT
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#writing-with-datastream" class="md-nav__link">
<span class="md-ellipsis">
Writing with DataStream
</span>
</a>
<nav class="md-nav" aria-label="Writing with DataStream">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#appending-data" class="md-nav__link">
<span class="md-ellipsis">
Appending data.
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#overwrite-data" class="md-nav__link">
<span class="md-ellipsis">
Overwrite data
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#upsert-data" class="md-nav__link">
<span class="md-ellipsis">
Upsert data
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#write-with-avro-genericrecord" class="md-nav__link">
<span class="md-ellipsis">
Write with Avro GenericRecord
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#branch-writes" class="md-nav__link">
<span class="md-ellipsis">
Branch Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#metrics" class="md-nav__link">
<span class="md-ellipsis">
Metrics
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#options" class="md-nav__link">
<span class="md-ellipsis">
Options
</span>
</a>
<nav class="md-nav" aria-label="Options">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#write-options" class="md-nav__link">
<span class="md-ellipsis">
Write options
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-->
<h1 id="flink-writes">Flink Writes<a class="headerlink" href="#flink-writes" title="Permanent link">🔗</a></h1>
<p>Iceberg support batch and streaming writes With <a href="https://flink.apache.org/">Apache Flink</a>'s DataStream API and Table API.</p>
<h2 id="writing-with-sql">Writing with SQL<a class="headerlink" href="#writing-with-sql" title="Permanent link">🔗</a></h2>
<p>Iceberg support both <code>INSERT INTO</code> and <code>INSERT OVERWRITE</code>.</p>
<h3 id="insert-into"><code>INSERT INTO</code><a class="headerlink" href="#insert-into" title="Permanent link">🔗</a></h3>
<p>To append new data to a table with a Flink streaming job, use <code>INSERT INTO</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="o">`</span><span class="n">hive_catalog</span><span class="o">`</span><span class="p">.</span><span class="o">`</span><span class="k">default</span><span class="o">`</span><span class="p">.</span><span class="o">`</span><span class="n">sample</span><span class="o">`</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;a&#39;</span><span class="p">);</span>
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="o">`</span><span class="n">hive_catalog</span><span class="o">`</span><span class="p">.</span><span class="o">`</span><span class="k">default</span><span class="o">`</span><span class="p">.</span><span class="o">`</span><span class="n">sample</span><span class="o">`</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">other_kafka_table</span><span class="p">;</span>
</code></pre></div>
<h3 id="insert-overwrite"><code>INSERT OVERWRITE</code><a class="headerlink" href="#insert-overwrite" title="Permanent link">🔗</a></h3>
<p>To replace data in the table with the result of a query, use <code>INSERT OVERWRITE</code> in batch job (flink streaming job does not support <code>INSERT OVERWRITE</code>). Overwrites are atomic operations for Iceberg tables.</p>
<p>Partitions that have rows produced by the SELECT query will be replaced, for example:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="k">INSERT</span><span class="w"> </span><span class="n">OVERWRITE</span><span class="w"> </span><span class="n">sample</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;a&#39;</span><span class="p">);</span>
</code></pre></div>
<p>Iceberg also support overwriting given partitions by the <code>select</code> values:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="k">INSERT</span><span class="w"> </span><span class="n">OVERWRITE</span><span class="w"> </span><span class="o">`</span><span class="n">hive_catalog</span><span class="o">`</span><span class="p">.</span><span class="o">`</span><span class="k">default</span><span class="o">`</span><span class="p">.</span><span class="o">`</span><span class="n">sample</span><span class="o">`</span><span class="w"> </span><span class="n">PARTITION</span><span class="p">(</span><span class="k">data</span><span class="o">=</span><span class="s1">&#39;a&#39;</span><span class="p">)</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="mi">6</span><span class="p">;</span>
</code></pre></div>
<p>For a partitioned iceberg table, when all the partition columns are set a value in <code>PARTITION</code> clause, it is inserting into a static partition, otherwise if partial partition columns (prefix part of all partition columns) are set a value in <code>PARTITION</code> clause, it is writing the query result into a dynamic partition.
For an unpartitioned iceberg table, its data will be completely overwritten by <code>INSERT OVERWRITE</code>.</p>
<h3 id="upsert"><code>UPSERT</code><a class="headerlink" href="#upsert" title="Permanent link">🔗</a></h3>
<p>Iceberg supports <code>UPSERT</code> based on the primary key when writing data into v2 table format. There are two ways to enable upsert.</p>
<ol>
<li>Enable the <code>UPSERT</code> mode as table-level property <code>write.upsert.enabled</code>. Here is an example SQL statement to set the table property when creating a table. It would be applied for all write paths to this table (batch or streaming) unless overwritten by write options as described later.</li>
</ol>
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="o">`</span><span class="n">hive_catalog</span><span class="o">`</span><span class="p">.</span><span class="o">`</span><span class="k">default</span><span class="o">`</span><span class="p">.</span><span class="o">`</span><span class="n">sample</span><span class="o">`</span><span class="w"> </span><span class="p">(</span>
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="w"> </span><span class="o">`</span><span class="n">id</span><span class="o">`</span><span class="w"> </span><span class="nb">INT</span><span class="w"> </span><span class="k">UNIQUE</span><span class="w"> </span><span class="k">COMMENT</span><span class="w"> </span><span class="s1">&#39;unique id&#39;</span><span class="p">,</span>
<a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="w"> </span><span class="o">`</span><span class="k">data</span><span class="o">`</span><span class="w"> </span><span class="n">STRING</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
<a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="p">(</span><span class="o">`</span><span class="n">id</span><span class="o">`</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="n">ENFORCED</span>
<a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a><span class="p">)</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;format-version&#39;</span><span class="o">=</span><span class="s1">&#39;2&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;write.upsert.enabled&#39;</span><span class="o">=</span><span class="s1">&#39;true&#39;</span><span class="p">);</span>
</code></pre></div>
<ol>
<li>Enabling <code>UPSERT</code> mode using <code>upsert-enabled</code> in the <a href="#write-options">write options</a> provides more flexibility than a table level config. Note that you still need to use v2 table format and specify the primary key when creating the table.</li>
</ol>
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">tableName</span><span class="w"> </span><span class="cm">/*+ OPTIONS(&#39;upsert-enabled&#39;=&#39;true&#39;) */</span>
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="p">...</span>
</code></pre></div>
<div class="admonition info">
<p class="admonition-title">Info</p>
<p>OVERWRITE and UPSERT can't be set together. In UPSERT mode, if the table is partitioned, the partition fields should be included in equality fields.</p>
</div>
<h2 id="writing-with-datastream">Writing with DataStream<a class="headerlink" href="#writing-with-datastream" title="Permanent link">🔗</a></h2>
<p>Iceberg support writing to iceberg table from different DataStream input.</p>
<h3 id="appending-data">Appending data.<a class="headerlink" href="#appending-data" title="Permanent link">🔗</a></h3>
<p>Flink supports writing <code>DataStream&lt;RowData&gt;</code> and <code>DataStream&lt;Row&gt;</code> to the sink iceberg table natively.</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="n">StreamExecutionEnvironment</span><span class="w"> </span><span class="n">env</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...;</span>
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="n">DataStream</span><span class="o">&lt;</span><span class="n">RowData</span><span class="o">&gt;</span><span class="w"> </span><span class="n">input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">;</span>
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="n">Configuration</span><span class="w"> </span><span class="n">hadoopConf</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Configuration</span><span class="p">();</span>
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="n">TableLoader</span><span class="w"> </span><span class="n">tableLoader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TableLoader</span><span class="p">.</span><span class="na">fromHadoopTable</span><span class="p">(</span><span class="s">&quot;hdfs://nn:8020/warehouse/path&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">hadoopConf</span><span class="p">);</span>
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a>
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a><span class="n">FlinkSink</span><span class="p">.</span><span class="na">forRowData</span><span class="p">(</span><span class="n">input</span><span class="p">)</span>
<a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a><span class="w"> </span><span class="p">.</span><span class="na">tableLoader</span><span class="p">(</span><span class="n">tableLoader</span><span class="p">)</span>
<a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a><span class="w"> </span><span class="p">.</span><span class="na">append</span><span class="p">();</span>
<a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a>
<a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a><span class="n">env</span><span class="p">.</span><span class="na">execute</span><span class="p">(</span><span class="s">&quot;Test Iceberg DataStream&quot;</span><span class="p">);</span>
</code></pre></div>
<p>The iceberg API also allows users to write generic <code>DataStream&lt;T&gt;</code> to iceberg table, more example could be found in this <a href="https://github.com/apache/iceberg/blob/main/flink/v1.16/flink/src/test/java/org/apache/iceberg/flink/sink/TestFlinkIcebergSink.java">unit test</a>.</p>
<h3 id="overwrite-data">Overwrite data<a class="headerlink" href="#overwrite-data" title="Permanent link">🔗</a></h3>
<p>Set the <code>overwrite</code> flag in FlinkSink builder to overwrite the data in existing iceberg tables:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="n">StreamExecutionEnvironment</span><span class="w"> </span><span class="n">env</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...;</span>
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a>
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="n">DataStream</span><span class="o">&lt;</span><span class="n">RowData</span><span class="o">&gt;</span><span class="w"> </span><span class="n">input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">;</span>
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="n">Configuration</span><span class="w"> </span><span class="n">hadoopConf</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Configuration</span><span class="p">();</span>
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a><span class="n">TableLoader</span><span class="w"> </span><span class="n">tableLoader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TableLoader</span><span class="p">.</span><span class="na">fromHadoopTable</span><span class="p">(</span><span class="s">&quot;hdfs://nn:8020/warehouse/path&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">hadoopConf</span><span class="p">);</span>
<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a>
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a><span class="n">FlinkSink</span><span class="p">.</span><span class="na">forRowData</span><span class="p">(</span><span class="n">input</span><span class="p">)</span>
<a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a><span class="w"> </span><span class="p">.</span><span class="na">tableLoader</span><span class="p">(</span><span class="n">tableLoader</span><span class="p">)</span>
<a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a><span class="w"> </span><span class="p">.</span><span class="na">overwrite</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span>
<a id="__codelineno-6-10" name="__codelineno-6-10" href="#__codelineno-6-10"></a><span class="w"> </span><span class="p">.</span><span class="na">append</span><span class="p">();</span>
<a id="__codelineno-6-11" name="__codelineno-6-11" href="#__codelineno-6-11"></a>
<a id="__codelineno-6-12" name="__codelineno-6-12" href="#__codelineno-6-12"></a><span class="n">env</span><span class="p">.</span><span class="na">execute</span><span class="p">(</span><span class="s">&quot;Test Iceberg DataStream&quot;</span><span class="p">);</span>
</code></pre></div>
<h3 id="upsert-data">Upsert data<a class="headerlink" href="#upsert-data" title="Permanent link">🔗</a></h3>
<p>Set the <code>upsert</code> flag in FlinkSink builder to upsert the data in existing iceberg table. The table must use v2 table format and have a primary key.</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="n">StreamExecutionEnvironment</span><span class="w"> </span><span class="n">env</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...;</span>
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="n">DataStream</span><span class="o">&lt;</span><span class="n">RowData</span><span class="o">&gt;</span><span class="w"> </span><span class="n">input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">;</span>
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="n">Configuration</span><span class="w"> </span><span class="n">hadoopConf</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Configuration</span><span class="p">();</span>
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a><span class="n">TableLoader</span><span class="w"> </span><span class="n">tableLoader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TableLoader</span><span class="p">.</span><span class="na">fromHadoopTable</span><span class="p">(</span><span class="s">&quot;hdfs://nn:8020/warehouse/path&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">hadoopConf</span><span class="p">);</span>
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a>
<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a><span class="n">FlinkSink</span><span class="p">.</span><span class="na">forRowData</span><span class="p">(</span><span class="n">input</span><span class="p">)</span>
<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a><span class="w"> </span><span class="p">.</span><span class="na">tableLoader</span><span class="p">(</span><span class="n">tableLoader</span><span class="p">)</span>
<a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a><span class="w"> </span><span class="p">.</span><span class="na">upsert</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span>
<a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a><span class="w"> </span><span class="p">.</span><span class="na">append</span><span class="p">();</span>
<a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a>
<a id="__codelineno-7-12" name="__codelineno-7-12" href="#__codelineno-7-12"></a><span class="n">env</span><span class="p">.</span><span class="na">execute</span><span class="p">(</span><span class="s">&quot;Test Iceberg DataStream&quot;</span><span class="p">);</span>
</code></pre></div>
<div class="admonition info">
<p class="admonition-title">Info</p>
<p>OVERWRITE and UPSERT can't be set together. In UPSERT mode, if the table is partitioned, the partition fields should be included in equality fields.</p>
</div>
<h3 id="write-with-avro-genericrecord">Write with Avro GenericRecord<a class="headerlink" href="#write-with-avro-genericrecord" title="Permanent link">🔗</a></h3>
<p>Flink Iceberg sink provides <code>AvroGenericRecordToRowDataMapper</code> that converts
Avro <code>GenericRecord</code> to Flink <code>RowData</code>. You can use the mapper to write
Avro GenericRecord DataStream to Iceberg.</p>
<p>Please make sure <code>flink-avro</code> jar is included in the classpath.
Also <code>iceberg-flink-runtime</code> shaded bundle jar can't be used
because the runtime jar shades the avro package.
Please use non-shaded <code>iceberg-flink</code> jar instead.</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="n">DataStream</span><span class="o">&lt;</span><span class="n">org</span><span class="p">.</span><span class="na">apache</span><span class="p">.</span><span class="na">avro</span><span class="p">.</span><span class="na">generic</span><span class="p">.</span><span class="na">GenericRecord</span><span class="o">&gt;</span><span class="w"> </span><span class="n">dataStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...;</span>
<a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a>
<a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a><span class="n">Schema</span><span class="w"> </span><span class="n">icebergSchema</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">table</span><span class="p">.</span><span class="na">schema</span><span class="p">();</span>
<a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a>
<a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a>
<a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a><span class="c1">// The Avro schema converted from Iceberg schema can&#39;t be used</span>
<a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a><span class="c1">// due to precision difference between how Iceberg schema (micro)</span>
<a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a><span class="c1">// and Flink AvroToRowDataConverters (milli) deal with time type.</span>
<a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a><span class="c1">// Instead, use the Avro schema defined directly.</span>
<a id="__codelineno-8-10" name="__codelineno-8-10" href="#__codelineno-8-10"></a><span class="c1">// See AvroGenericRecordToRowDataMapper Javadoc for more details.</span>
<a id="__codelineno-8-11" name="__codelineno-8-11" href="#__codelineno-8-11"></a><span class="n">org</span><span class="p">.</span><span class="na">apache</span><span class="p">.</span><span class="na">avro</span><span class="p">.</span><span class="na">Schema</span><span class="w"> </span><span class="n">avroSchema</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">AvroSchemaUtil</span><span class="p">.</span><span class="na">convert</span><span class="p">(</span><span class="n">icebergSchema</span><span class="p">,</span><span class="w"> </span><span class="n">table</span><span class="p">.</span><span class="na">name</span><span class="p">());</span>
<a id="__codelineno-8-12" name="__codelineno-8-12" href="#__codelineno-8-12"></a>
<a id="__codelineno-8-13" name="__codelineno-8-13" href="#__codelineno-8-13"></a><span class="n">GenericRecordAvroTypeInfo</span><span class="w"> </span><span class="n">avroTypeInfo</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">GenericRecordAvroTypeInfo</span><span class="p">(</span><span class="n">avroSchema</span><span class="p">);</span>
<a id="__codelineno-8-14" name="__codelineno-8-14" href="#__codelineno-8-14"></a><span class="n">RowType</span><span class="w"> </span><span class="n">rowType</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FlinkSchemaUtil</span><span class="p">.</span><span class="na">convert</span><span class="p">(</span><span class="n">icebergSchema</span><span class="p">);</span>
<a id="__codelineno-8-15" name="__codelineno-8-15" href="#__codelineno-8-15"></a>
<a id="__codelineno-8-16" name="__codelineno-8-16" href="#__codelineno-8-16"></a><span class="n">FlinkSink</span><span class="p">.</span><span class="na">builderFor</span><span class="p">(</span>
<a id="__codelineno-8-17" name="__codelineno-8-17" href="#__codelineno-8-17"></a><span class="w"> </span><span class="n">dataStream</span><span class="p">,</span>
<a id="__codelineno-8-18" name="__codelineno-8-18" href="#__codelineno-8-18"></a><span class="w"> </span><span class="n">AvroGenericRecordToRowDataMapper</span><span class="p">.</span><span class="na">forAvroSchema</span><span class="p">(</span><span class="n">avroSchema</span><span class="p">),</span>
<a id="__codelineno-8-19" name="__codelineno-8-19" href="#__codelineno-8-19"></a><span class="w"> </span><span class="n">FlinkCompatibilityUtil</span><span class="p">.</span><span class="na">toTypeInfo</span><span class="p">(</span><span class="n">rowType</span><span class="p">))</span>
<a id="__codelineno-8-20" name="__codelineno-8-20" href="#__codelineno-8-20"></a><span class="w"> </span><span class="p">.</span><span class="na">table</span><span class="p">(</span><span class="n">table</span><span class="p">)</span>
<a id="__codelineno-8-21" name="__codelineno-8-21" href="#__codelineno-8-21"></a><span class="w"> </span><span class="p">.</span><span class="na">tableLoader</span><span class="p">(</span><span class="n">tableLoader</span><span class="p">)</span>
<a id="__codelineno-8-22" name="__codelineno-8-22" href="#__codelineno-8-22"></a><span class="w"> </span><span class="p">.</span><span class="na">append</span><span class="p">();</span>
</code></pre></div>
<h3 id="branch-writes">Branch Writes<a class="headerlink" href="#branch-writes" title="Permanent link">🔗</a></h3>
<p>Writing to branches in Iceberg tables is also supported via the <code>toBranch</code> API in <code>FlinkSink</code>
For more information on branches please refer to <a href="../branching/">branches</a>.
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="n">FlinkSink</span><span class="p">.</span><span class="na">forRowData</span><span class="p">(</span><span class="n">input</span><span class="p">)</span>
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a><span class="w"> </span><span class="p">.</span><span class="na">tableLoader</span><span class="p">(</span><span class="n">tableLoader</span><span class="p">)</span>
<a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="w"> </span><span class="p">.</span><span class="na">toBranch</span><span class="p">(</span><span class="s">&quot;audit-branch&quot;</span><span class="p">)</span>
<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="w"> </span><span class="p">.</span><span class="na">append</span><span class="p">();</span>
</code></pre></div></p>
<h3 id="metrics">Metrics<a class="headerlink" href="#metrics" title="Permanent link">🔗</a></h3>
<p>The following Flink metrics are provided by the Flink Iceberg sink.</p>
<p>Parallel writer metrics are added under the sub group of <code>IcebergStreamWriter</code>.
They should have the following key-value tags.</p>
<ul>
<li>table: full table name (like iceberg.my_db.my_table)</li>
<li>subtask_index: writer subtask index starting from 0</li>
</ul>
<table>
<thead>
<tr>
<th>Metric name</th>
<th>Metric type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>lastFlushDurationMs</td>
<td>Gague</td>
<td>The duration (in milli) that writer subtasks take to flush and upload the files during checkpoint.</td>
</tr>
<tr>
<td>flushedDataFiles</td>
<td>Counter</td>
<td>Number of data files flushed and uploaded.</td>
</tr>
<tr>
<td>flushedDeleteFiles</td>
<td>Counter</td>
<td>Number of delete files flushed and uploaded.</td>
</tr>
<tr>
<td>flushedReferencedDataFiles</td>
<td>Counter</td>
<td>Number of data files referenced by the flushed delete files.</td>
</tr>
<tr>
<td>dataFilesSizeHistogram</td>
<td>Histogram</td>
<td>Histogram distribution of data file sizes (in bytes).</td>
</tr>
<tr>
<td>deleteFilesSizeHistogram</td>
<td>Histogram</td>
<td>Histogram distribution of delete file sizes (in bytes).</td>
</tr>
</tbody>
</table>
<p>Committer metrics are added under the sub group of <code>IcebergFilesCommitter</code>.
They should have the following key-value tags.</p>
<ul>
<li>table: full table name (like iceberg.my_db.my_table)</li>
</ul>
<table>
<thead>
<tr>
<th>Metric name</th>
<th>Metric type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>lastCheckpointDurationMs</td>
<td>Gague</td>
<td>The duration (in milli) that the committer operator checkpoints its state.</td>
</tr>
<tr>
<td>lastCommitDurationMs</td>
<td>Gague</td>
<td>The duration (in milli) that the Iceberg table commit takes.</td>
</tr>
<tr>
<td>committedDataFilesCount</td>
<td>Counter</td>
<td>Number of data files committed.</td>
</tr>
<tr>
<td>committedDataFilesRecordCount</td>
<td>Counter</td>
<td>Number of records contained in the committed data files.</td>
</tr>
<tr>
<td>committedDataFilesByteCount</td>
<td>Counter</td>
<td>Number of bytes contained in the committed data files.</td>
</tr>
<tr>
<td>committedDeleteFilesCount</td>
<td>Counter</td>
<td>Number of delete files committed.</td>
</tr>
<tr>
<td>committedDeleteFilesRecordCount</td>
<td>Counter</td>
<td>Number of records contained in the committed delete files.</td>
</tr>
<tr>
<td>committedDeleteFilesByteCount</td>
<td>Counter</td>
<td>Number of bytes contained in the committed delete files.</td>
</tr>
<tr>
<td>elapsedSecondsSinceLastSuccessfulCommit</td>
<td>Gague</td>
<td>Elapsed time (in seconds) since last successful Iceberg commit.</td>
</tr>
</tbody>
</table>
<p><code>elapsedSecondsSinceLastSuccessfulCommit</code> is an ideal alerting metric
to detect failed or missing Iceberg commits.</p>
<ul>
<li>Iceberg commit happened after successful Flink checkpoint in the <code>notifyCheckpointComplete</code> callback.
It could happen that Iceberg commits failed (for whatever reason), while Flink checkpoints succeeding.</li>
<li>It could also happen that <code>notifyCheckpointComplete</code> wasn't triggered (for whatever bug).
As a result, there won't be any Iceberg commits attempted.</li>
</ul>
<p>If the checkpoint interval (and expected Iceberg commit interval) is 5 minutes, set up alert with rule like <code>elapsedSecondsSinceLastSuccessfulCommit &gt; 60 minutes</code> to detect failed or missing Iceberg commits in the past hour.</p>
<h2 id="options">Options<a class="headerlink" href="#options" title="Permanent link">🔗</a></h2>
<h3 id="write-options">Write options<a class="headerlink" href="#write-options" title="Permanent link">🔗</a></h3>
<p>Flink write options are passed when configuring the FlinkSink, like this:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="n">FlinkSink</span><span class="p">.</span><span class="na">Builder</span><span class="w"> </span><span class="n">builder</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FlinkSink</span><span class="p">.</span><span class="na">forRow</span><span class="p">(</span><span class="n">dataStream</span><span class="p">,</span><span class="w"> </span><span class="n">SimpleDataUtil</span><span class="p">.</span><span class="na">FLINK_SCHEMA</span><span class="p">)</span>
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="w"> </span><span class="p">.</span><span class="na">table</span><span class="p">(</span><span class="n">table</span><span class="p">)</span>
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="w"> </span><span class="p">.</span><span class="na">tableLoader</span><span class="p">(</span><span class="n">tableLoader</span><span class="p">)</span>
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="w"> </span><span class="p">.</span><span class="na">set</span><span class="p">(</span><span class="s">&quot;write-format&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;orc&quot;</span><span class="p">)</span>
<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="w"> </span><span class="p">.</span><span class="na">set</span><span class="p">(</span><span class="n">FlinkWriteOptions</span><span class="p">.</span><span class="na">OVERWRITE_MODE</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;true&quot;</span><span class="p">);</span>
</code></pre></div>
<p>For Flink SQL, write options can be passed in via SQL hints like this:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">tableName</span><span class="w"> </span><span class="cm">/*+ OPTIONS(&#39;upsert-enabled&#39;=&#39;true&#39;) */</span>
<a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="p">...</span>
</code></pre></div>
<p>Check out all the options here: <a href="../flink-configuration/#write-options">write-options</a> </p>
</article>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var tab,labels=set.querySelector(".tabbed-labels");for(tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
Back to top
</button>
</main>
<footer id="footer" class="footer">
<div class="container-fluid footer-top">
<div class="d-flex justify-content-center pt-3 pb-3" >
<div class="col-lg-2 col-md-2 footer-links">
<h4>Features</h4>
<ul>
<li>
<a href="/docs/latest/evolution/#schema-evolution"
>Schema Evolution</a
>
</li>
<li>
<a href="/docs/latest/partitioning/">Hidden Partitioning</a>
</li>
<li>
<a href="/docs/latest/evolution/#partition-evolution"
>Partition Evolution</a
>
</li>
<li>
<a href="/docs/latest/reliability/">Serializable Isolation</a>
</li>
<li>
<a href="/docs/latest/branching/">Branching and Tagging</a>
</li>
<li>
<a href="/docs/latest/reliability/#concurrent-write-operations"
>Optimistic Concurrency</a
>
</li>
<li>
<a href="/docs/latest/performance/#data-filtering"
>Advanced Filtering</a
>
</li>
<li><a href="/docs/latest/">Compute Engine Integrations</a></li>
<li>
<a href="/concepts/catalog/#decoupling-using-the-rest-catalog"
>REST Catalog</a
>
</li>
<li><a href="/docs/latest/api/">Multiple language APIs</a></li>
</ul>
</div>
<div class="col-lg-2 col-md-2 footer-links">
<h4>Get Started</h4>
<ul>
<li><a href="/spark-quickstart">Spark Quickstart</a></li>
<li><a href="/hive-quickstart">Hive Quickstart</a></li>
<li><a href="/spec/">Open Table Spec</a></li>
<li><a href="/docs/latest">Docs</a></li>
<li><a href="/blogs/">Blogs</a></li>
<li><a href="/talks/">Talks</a></li>
</ul>
<br />
</div>
<div class="col-lg-2 col-md-2 footer-links">
<h4>Community</h4>
<ul>
<li><a href="/community/#slack">Support</a></li>
<li><a href="/community/#mailing-lists">Mailing Lists</a></li>
<li>
<a href="/community/#iceberg-community-events">Iceberg Events</a>
</li>
<li><a href="/community/#issues">Issues</a></li>
<li><a href="/community/#contribute">Contribute</a></li>
<li><a href="/community/#community-guidelines">Guidelines</a></li>
<!-- li><a href="/logos-and-assets.html">Solr Logos and Assets</a></li -->
</ul>
</div>
<div class="col-lg-2 col-md-2 footer-links">
<h4>ASF</h4>
<ul>
<li>
<a href="https://www.apache.org/">Apache Software Foundation</a>
</li>
<li>
<a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
<li>
<a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a
>
</li>
<li><a href="https://www.apache.org/security/">Security</a></li>
<li><a href="https://www.apache.org/licenses/">License</a></li>
</ul>
</div>
<div class="col-lg-2 col-md-2 mt-3 footer-icons">
<a href="https://iceberg.apache.org"><img
src="/assets/images/asf-estd-1999-logo.png"
alt="apache software foundation logo"
/></a>
<div class="d-flex justify-content-center">
<div class="social-links d-flex ">
<div class="md-social">
<a href="https://iceberg.apache.org/community/" target="_blank" rel="noopener" title="iceberg.apache.org" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6-10.4-2-21.2-.6-30.7 4.2-4.1 2.1-8.3 4.1-12.6 6-16 7.2-32.9 13.5-49.9 18 2.8-4.6 5.4-9.1 7.9-13.6 1.1-1.9 2.2-3.9 3.2-5.9zM0 176c0 41.8 17.2 80.1 45.9 110.3-.9 1.7-1.9 3.5-2.8 5.1-10.3 18.4-22.3 36.5-36.6 52.1-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7 4.8-2.2 9.6-4.5 14.2-6.8 15.1 3 30.9 4.5 47.1 4.5 114.9 0 208-78.8 208-176S322.9 0 208 0 0 78.8 0 176zm432 304c16.2 0 31.9-1.6 47.1-4.5 4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5 3.8-8.8 2-19-4.6-25.9-14.2-15.6-26.2-33.7-36.6-52.1-.9-1.7-1.9-3.4-2.8-5.1 28.8-30.3 46-68.6 46-110.4 0-94.4-87.9-171.5-198.2-175.8 4.1 15.2 6.2 31.2 6.2 47.8v.6c87.2 6.7 144 67.5 144 127.4 0 28-11.4 54.9-32.7 77.2-14.3 15-17.3 37.6-7.5 55.8 1.1 2 2.2 4 3.2 5.9 2.5 4.5 5.2 9 7.9 13.6-17-4.5-33.9-10.7-49.9-18-4.3-1.9-8.5-3.9-12.6-6-9.5-4.8-20.3-6.2-30.7-4.2-12.1 2.4-24.7 3.6-37.8 3.6-61.7 0-110-26.5-136.8-62.3-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z"/></svg>
</a>
<a href="https://github.com/apache/iceberg" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://www.youtube.com/@ApacheIceberg" target="_blank" rel="noopener" title="www.youtube.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
</a>
<a href="https://join.slack.com/t/apache-iceberg/shared_invite/zt-287g3akar-K9Oe_En5j1UL7Y_Ikpai3A" target="_blank" rel="noopener" title="join.slack.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container-fluid ">
<div class="d-flex justify-content-center ">
<div class="col-md-8">
<p class="copyright-text m-4">
Apache Iceberg, Iceberg, Apache, the Apache feather logo, and the
Apache Iceberg project logo are either registered trademarks or
trademarks of The Apache Software Foundation. Copyright © 2024 The
Apache Software Foundation, Licensed under the
<span
><a href="https://www.apache.org/licenses/">Apache License, Version 2.0</a
>.</span
>
</p>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.tabs", "navigation.tabs.sticky", "navigation.path", "navigation.top", "navigation.tracking", "toc.follow", "offline", "search.suggest", "search.highlight", "content.tabs.link", "content.code.copy", "content.code.annotate"], "search": "../../../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../../../../assets/javascripts/bundle.a7c05c9e.min.js"></script>
<script src="../../../../assets/javascript/extra.js"></script>
<script src="../../../../assets/external/unpkg.com/mermaid@10/dist/mermaid.min.js"></script>
</body>
</html>