blob: f4e477a6fd55b06c3060e760b8d84d259d3360d9 [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>DDL - 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="#spark-ddl" 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">
DDL
</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="../../" 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="../../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="../../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_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="../../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="../../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_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="../../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://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="../../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_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="../../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">
<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="../../../1.4.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_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="../../../1.4.0/branching/" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/evolution/" class="md-nav__link">
<span class="md-ellipsis">
Evolution
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/maintenance/" class="md-nav__link">
<span class="md-ellipsis">
Maintenance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/metrics-reporting/" class="md-nav__link">
<span class="md-ellipsis">
Metrics Reporting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/partitioning/" class="md-nav__link">
<span class="md-ellipsis">
Partitioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/performance/" class="md-nav__link">
<span class="md-ellipsis">
Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/reliability/" class="md-nav__link">
<span class="md-ellipsis">
Reliability
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.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_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="../../../1.4.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.4.0/spark-configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/spark-ddl/" class="md-nav__link">
<span class="md-ellipsis">
DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/spark-procedures/" class="md-nav__link">
<span class="md-ellipsis">
Procedures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/spark-queries/" class="md-nav__link">
<span class="md-ellipsis">
Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.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.4.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_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="../../../1.4.0/flink/" class="md-nav__link">
<span class="md-ellipsis">
Flink Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/flink-connector/" class="md-nav__link">
<span class="md-ellipsis">
Flink Connector
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/flink-ddl/" class="md-nav__link">
<span class="md-ellipsis">
Flink DDL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/flink-queries/" class="md-nav__link">
<span class="md-ellipsis">
Flink Queries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/flink-writes/" class="md-nav__link">
<span class="md-ellipsis">
Flink Writes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/flink-actions/" class="md-nav__link">
<span class="md-ellipsis">
Flink Actions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.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.4.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://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="../../../1.4.0/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/dell/" class="md-nav__link">
<span class="md-ellipsis">
Dell
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/jdbc/" class="md-nav__link">
<span class="md-ellipsis">
JDBC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.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_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="../../../1.4.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.4.0/api/" class="md-nav__link">
<span class="md-ellipsis">
Java API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.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 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="../../../1.4.0/table-migration/" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/hive-migration/" class="md-nav__link">
<span class="md-ellipsis">
Hive Migration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../1.4.0/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="#create-table" class="md-nav__link">
<span class="md-ellipsis">
CREATE TABLE
</span>
</a>
<nav class="md-nav" aria-label="CREATE TABLE">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#partitioned-by" class="md-nav__link">
<span class="md-ellipsis">
PARTITIONED BY
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#create-table-as-select" class="md-nav__link">
<span class="md-ellipsis">
CREATE TABLE ... AS SELECT
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#replace-table-as-select" class="md-nav__link">
<span class="md-ellipsis">
REPLACE TABLE ... AS SELECT
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#drop-table" class="md-nav__link">
<span class="md-ellipsis">
DROP TABLE
</span>
</a>
<nav class="md-nav" aria-label="DROP TABLE">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#drop-table_1" class="md-nav__link">
<span class="md-ellipsis">
DROP TABLE
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#drop-table-purge" class="md-nav__link">
<span class="md-ellipsis">
DROP TABLE PURGE
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#alter-table" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE
</span>
</a>
<nav class="md-nav" aria-label="ALTER TABLE">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#alter-table-rename-to" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... RENAME TO
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-set-tblproperties" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... SET TBLPROPERTIES
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-add-column" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... ADD COLUMN
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-rename-column" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... RENAME COLUMN
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-alter-column" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... ALTER COLUMN
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-drop-column" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... DROP COLUMN
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#alter-table-sql-extensions" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE SQL extensions
</span>
</a>
<nav class="md-nav" aria-label="ALTER TABLE SQL extensions">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#alter-table-add-partition-field" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... ADD PARTITION FIELD
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-drop-partition-field" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... DROP PARTITION FIELD
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-replace-partition-field" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... REPLACE PARTITION FIELD
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-write-ordered-by" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... WRITE ORDERED BY
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-write-distributed-by-partition" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... WRITE DISTRIBUTED BY PARTITION
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-set-identifier-fields" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... SET IDENTIFIER FIELDS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-drop-identifier-fields" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... DROP IDENTIFIER FIELDS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#branching-and-tagging-ddl" class="md-nav__link">
<span class="md-ellipsis">
Branching and Tagging DDL
</span>
</a>
<nav class="md-nav" aria-label="Branching and Tagging DDL">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#alter-table-create-branch" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... CREATE BRANCH
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-create-tag" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... CREATE TAG
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-replace-branch" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... REPLACE BRANCH
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-replace-tag" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... REPLACE TAG
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-drop-branch" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... DROP BRANCH
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#alter-table-drop-tag" class="md-nav__link">
<span class="md-ellipsis">
ALTER TABLE ... DROP TAG
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#iceberg-views-in-spark" class="md-nav__link">
<span class="md-ellipsis">
Iceberg views in Spark
</span>
</a>
<nav class="md-nav" aria-label="Iceberg views in Spark">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#creating-a-view" class="md-nav__link">
<span class="md-ellipsis">
Creating a view
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#creating-a-view-with-properties" class="md-nav__link">
<span class="md-ellipsis">
Creating a view with properties
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dropping-a-view" class="md-nav__link">
<span class="md-ellipsis">
Dropping a view
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#replacing-a-view" class="md-nav__link">
<span class="md-ellipsis">
Replacing a view
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#setting-and-removing-view-properties" class="md-nav__link">
<span class="md-ellipsis">
Setting and removing view properties
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#showing-available-views" class="md-nav__link">
<span class="md-ellipsis">
Showing available views
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#showing-the-create-statement-of-a-view" class="md-nav__link">
<span class="md-ellipsis">
Showing the CREATE statement of a view
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#displaying-view-details" class="md-nav__link">
<span class="md-ellipsis">
Displaying view details
</span>
</a>
</li>
</ul>
</nav>
</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="spark-ddl">Spark DDL<a class="headerlink" href="#spark-ddl" title="Permanent link">🔗</a></h1>
<p>To use Iceberg in Spark, first configure <a href="../spark-configuration/">Spark catalogs</a>. Iceberg uses Apache Spark's DataSourceV2 API for data source and catalog implementations.</p>
<h2 id="create-table"><code>CREATE TABLE</code><a class="headerlink" href="#create-table" title="Permanent link">🔗</a></h2>
<p>Spark 3 can create tables in any Iceberg catalog with the clause <code>USING iceberg</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">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="p">(</span>
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="nb">bigint</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</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-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">string</span><span class="p">)</span>
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="k">USING</span><span class="w"> </span><span class="n">iceberg</span><span class="p">;</span>
</code></pre></div>
<p>Iceberg will convert the column type in Spark to corresponding Iceberg type. Please check the section of <a href="../../spark-getting-started/#spark-type-to-iceberg-type">type compatibility on creating table</a> for details.</p>
<p>Table create commands, including CTAS and RTAS, support the full range of Spark create clauses, including:</p>
<ul>
<li><code>PARTITIONED BY (partition-expressions)</code> to configure partitioning</li>
<li><code>LOCATION '(fully-qualified-uri)'</code> to set the table location</li>
<li><code>COMMENT 'table documentation'</code> to set a table description</li>
<li><code>TBLPROPERTIES ('key'='value', ...)</code> to set <a href="../../configuration/">table configuration</a></li>
</ul>
<p>Create commands may also set the default format with the <code>USING</code> clause. This is only supported for <code>SparkCatalog</code> because Spark handles the <code>USING</code> clause differently for the built-in catalog.</p>
<p><code>CREATE TABLE ... LIKE ...</code> syntax is not supported.</p>
<h3 id="partitioned-by"><code>PARTITIONED BY</code><a class="headerlink" href="#partitioned-by" title="Permanent link">🔗</a></h3>
<p>To create a partitioned table, use <code>PARTITIONED BY</code>:</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">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="p">(</span>
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="nb">bigint</span><span class="p">,</span>
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">string</span><span class="p">,</span>
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="w"> </span><span class="n">category</span><span class="w"> </span><span class="n">string</span><span class="p">)</span>
<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="k">USING</span><span class="w"> </span><span class="n">iceberg</span>
<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a><span class="n">PARTITIONED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="p">(</span><span class="n">category</span><span class="p">);</span>
</code></pre></div>
<p>The <code>PARTITIONED BY</code> clause supports transform expressions to create <a href="../../partitioning/">hidden partitions</a>.</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">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="p">(</span>
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="nb">bigint</span><span class="p">,</span>
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">string</span><span class="p">,</span>
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="w"> </span><span class="n">category</span><span class="w"> </span><span class="n">string</span><span class="p">,</span>
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="w"> </span><span class="n">ts</span><span class="w"> </span><span class="k">timestamp</span><span class="p">)</span>
<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="k">USING</span><span class="w"> </span><span class="n">iceberg</span>
<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="n">PARTITIONED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="p">(</span><span class="n">bucket</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="p">),</span><span class="w"> </span><span class="n">days</span><span class="p">(</span><span class="n">ts</span><span class="p">),</span><span class="w"> </span><span class="n">category</span><span class="p">);</span>
</code></pre></div>
<p>Supported transformations are:</p>
<ul>
<li><code>year(ts)</code>: partition by year</li>
<li><code>month(ts)</code>: partition by month</li>
<li><code>day(ts)</code> or <code>date(ts)</code>: equivalent to dateint partitioning</li>
<li><code>hour(ts)</code> or <code>date_hour(ts)</code>: equivalent to dateint and hour partitioning</li>
<li><code>bucket(N, col)</code>: partition by hashed value mod N buckets</li>
<li><code>truncate(L, col)</code>: partition by value truncated to L<ul>
<li>Strings are truncated to the given length</li>
<li>Integers and longs truncate to bins: <code>truncate(10, i)</code> produces partitions 0, 10, 20, 30, ...</li>
</ul>
</li>
</ul>
<p>Note: Old syntax of <code>years(ts)</code>, <code>months(ts)</code>, <code>days(ts)</code> and <code>hours(ts)</code> are also supported for compatibility. </p>
<h2 id="create-table-as-select"><code>CREATE TABLE ... AS SELECT</code><a class="headerlink" href="#create-table-as-select" title="Permanent link">🔗</a></h2>
<p>Iceberg supports CTAS as an atomic operation when using a <a href="../../spark-configuration/#catalog-configuration"><code>SparkCatalog</code></a>. CTAS is supported, but is not atomic when using <a href="../../spark-configuration/#replacing-the-session-catalog"><code>SparkSessionCatalog</code></a>.</p>
<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="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="k">USING</span><span class="w"> </span><span class="n">iceberg</span>
<a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="k">AS</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="p">...</span>
</code></pre></div>
<p>The newly created table won't inherit the partition spec and table properties from the source table in SELECT, you can use PARTITIONED BY and TBLPROPERTIES in CTAS to declare partition spec and table properties for the new table.</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="k">USING</span><span class="w"> </span><span class="n">iceberg</span>
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="n">PARTITIONED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="n">TBLPROPERTIES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;key&#39;</span><span class="o">=</span><span class="s1">&#39;value&#39;</span><span class="p">)</span>
<a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="k">AS</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="p">...</span>
</code></pre></div>
<h2 id="replace-table-as-select"><code>REPLACE TABLE ... AS SELECT</code><a class="headerlink" href="#replace-table-as-select" title="Permanent link">🔗</a></h2>
<p>Iceberg supports RTAS as an atomic operation when using a <a href="../../spark-configuration/#catalog-configuration"><code>SparkCatalog</code></a>. RTAS is supported, but is not atomic when using <a href="../../spark-configuration/#replacing-the-session-catalog"><code>SparkSessionCatalog</code></a>.</p>
<p>Atomic table replacement creates a new snapshot with the results of the <code>SELECT</code> query, but keeps table history.</p>
<p><div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="k">REPLACE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a><span class="k">USING</span><span class="w"> </span><span class="n">iceberg</span>
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="k">AS</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="p">...</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="k">REPLACE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a><span class="k">USING</span><span class="w"> </span><span class="n">iceberg</span>
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="n">PARTITIONED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="n">TBLPROPERTIES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;key&#39;</span><span class="o">=</span><span class="s1">&#39;value&#39;</span><span class="p">)</span>
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a><span class="k">AS</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="p">...</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="k">USING</span><span class="w"> </span><span class="n">iceberg</span>
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="k">AS</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="p">...</span>
</code></pre></div></p>
<p>The schema and partition spec will be replaced if changed. To avoid modifying the table's schema and partitioning, use <code>INSERT OVERWRITE</code> instead of <code>REPLACE TABLE</code>.
The new table properties in the <code>REPLACE TABLE</code> command will be merged with any existing table properties. The existing table properties will be updated if changed else they are preserved.</p>
<h2 id="drop-table"><code>DROP TABLE</code><a class="headerlink" href="#drop-table" title="Permanent link">🔗</a></h2>
<p>The drop table behavior changed in 0.14.</p>
<p>Prior to 0.14, running <code>DROP TABLE</code> would remove the table from the catalog and delete the table contents as well.</p>
<p>From 0.14 onwards, <code>DROP TABLE</code> would only remove the table from the catalog.
In order to delete the table contents <code>DROP TABLE PURGE</code> should be used.</p>
<h3 id="drop-table_1"><code>DROP TABLE</code><a class="headerlink" href="#drop-table_1" title="Permanent link">🔗</a></h3>
<p>To drop the table from the catalog, run:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="p">;</span>
</code></pre></div>
<h3 id="drop-table-purge"><code>DROP TABLE PURGE</code><a class="headerlink" href="#drop-table-purge" title="Permanent link">🔗</a></h3>
<p>To drop the table from the catalog and delete the table's contents, run:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="n">PURGE</span><span class="p">;</span>
</code></pre></div>
<h2 id="alter-table"><code>ALTER TABLE</code><a class="headerlink" href="#alter-table" title="Permanent link">🔗</a></h2>
<p>Iceberg has full <code>ALTER TABLE</code> support in Spark 3, including:</p>
<ul>
<li>Renaming a table</li>
<li>Setting or removing table properties</li>
<li>Adding, deleting, and renaming columns</li>
<li>Adding, deleting, and renaming nested fields</li>
<li>Reordering top-level columns and nested struct fields</li>
<li>Widening the type of <code>int</code>, <code>float</code>, and <code>decimal</code> fields</li>
<li>Making required columns optional</li>
</ul>
<p>In addition, <a href="../../spark-configuration/#sql-extensions">SQL extensions</a> can be used to add support for partition evolution and setting a table's write order</p>
<h3 id="alter-table-rename-to"><code>ALTER TABLE ... RENAME TO</code><a class="headerlink" href="#alter-table-rename-to" title="Permanent link">🔗</a></h3>
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">RENAME</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">new_name</span><span class="p">;</span>
</code></pre></div>
<h3 id="alter-table-set-tblproperties"><code>ALTER TABLE ... SET TBLPROPERTIES</code><a class="headerlink" href="#alter-table-set-tblproperties" title="Permanent link">🔗</a></h3>
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">TBLPROPERTIES</span><span class="w"> </span><span class="p">(</span>
<a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="w"> </span><span class="s1">&#39;read.split.target-size&#39;</span><span class="o">=</span><span class="s1">&#39;268435456&#39;</span>
<a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="p">);</span>
</code></pre></div>
<p>Iceberg uses table properties to control table behavior. For a list of available properties, see <a href="../../configuration/">Table configuration</a>.</p>
<p><code>UNSET</code> is used to remove properties:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="n">UNSET</span><span class="w"> </span><span class="n">TBLPROPERTIES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;read.split.target-size&#39;</span><span class="p">);</span>
</code></pre></div>
<p><code>SET TBLPROPERTIES</code> can also be used to set the table comment (description):</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">TBLPROPERTIES</span><span class="w"> </span><span class="p">(</span>
<a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a><span class="w"> </span><span class="s1">&#39;comment&#39;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;A table comment.&#39;</span>
<a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a><span class="p">);</span>
</code></pre></div>
<h3 id="alter-table-add-column"><code>ALTER TABLE ... ADD COLUMN</code><a class="headerlink" href="#alter-table-add-column" title="Permanent link">🔗</a></h3>
<p>To add a column to Iceberg, use the <code>ADD COLUMNS</code> clause with <code>ALTER TABLE</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a><span class="k">ADD</span><span class="w"> </span><span class="n">COLUMNS</span><span class="w"> </span><span class="p">(</span>
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a><span class="w"> </span><span class="n">new_column</span><span class="w"> </span><span class="n">string</span><span class="w"> </span><span class="k">comment</span><span class="w"> </span><span class="s1">&#39;new_column docs&#39;</span>
<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a><span class="p">);</span>
</code></pre></div>
<p>Multiple columns can be added at the same time, separated by commas.</p>
<p>Nested columns should be identified using the full column name:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="c1">-- create a struct column</span>
<a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a><span class="k">ADD</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">point</span><span class="w"> </span><span class="n">struct</span><span class="o">&lt;</span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="n">double</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p">:</span><span class="w"> </span><span class="n">double</span><span class="o">&gt;</span><span class="p">;</span>
<a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a>
<a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a><span class="c1">-- add a field to the struct</span>
<a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a><span class="k">ADD</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">point</span><span class="p">.</span><span class="n">z</span><span class="w"> </span><span class="n">double</span><span class="p">;</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="c1">-- create a nested array column of struct</span>
<a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a><span class="k">ADD</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">points</span><span class="w"> </span><span class="nb">array</span><span class="o">&lt;</span><span class="n">struct</span><span class="o">&lt;</span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="n">double</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p">:</span><span class="w"> </span><span class="n">double</span><span class="o">&gt;&gt;</span><span class="p">;</span>
<a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a>
<a id="__codelineno-16-5" name="__codelineno-16-5" href="#__codelineno-16-5"></a><span class="c1">-- add a field to the struct within an array. Using keyword &#39;element&#39; to access the array&#39;s element column.</span>
<a id="__codelineno-16-6" name="__codelineno-16-6" href="#__codelineno-16-6"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-16-7" name="__codelineno-16-7" href="#__codelineno-16-7"></a><span class="k">ADD</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">points</span><span class="p">.</span><span class="n">element</span><span class="p">.</span><span class="n">z</span><span class="w"> </span><span class="n">double</span><span class="p">;</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a><span class="c1">-- create a map column of struct key and struct value</span>
<a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-17-3" name="__codelineno-17-3" href="#__codelineno-17-3"></a><span class="k">ADD</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">points</span><span class="w"> </span><span class="k">map</span><span class="o">&lt;</span><span class="n">struct</span><span class="o">&lt;</span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="nb">int</span><span class="o">&gt;</span><span class="p">,</span><span class="w"> </span><span class="n">struct</span><span class="o">&lt;</span><span class="n">a</span><span class="p">:</span><span class="w"> </span><span class="nb">int</span><span class="o">&gt;&gt;</span><span class="p">;</span>
<a id="__codelineno-17-4" name="__codelineno-17-4" href="#__codelineno-17-4"></a>
<a id="__codelineno-17-5" name="__codelineno-17-5" href="#__codelineno-17-5"></a><span class="c1">-- add a field to the value struct in a map. Using keyword &#39;value&#39; to access the map&#39;s value column.</span>
<a id="__codelineno-17-6" name="__codelineno-17-6" href="#__codelineno-17-6"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-17-7" name="__codelineno-17-7" href="#__codelineno-17-7"></a><span class="k">ADD</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">points</span><span class="p">.</span><span class="n">value</span><span class="p">.</span><span class="n">b</span><span class="w"> </span><span class="nb">int</span><span class="p">;</span>
</code></pre></div>
<p>Note: Altering a map 'key' column by adding columns is not allowed. Only map values can be updated.</p>
<p>Add columns in any position by adding <code>FIRST</code> or <code>AFTER</code> clauses:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a><span class="k">ADD</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">new_column</span><span class="w"> </span><span class="nb">bigint</span><span class="w"> </span><span class="k">AFTER</span><span class="w"> </span><span class="n">other_column</span><span class="p">;</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a><span class="k">ADD</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">nested</span><span class="p">.</span><span class="n">new_column</span><span class="w"> </span><span class="nb">bigint</span><span class="w"> </span><span class="k">FIRST</span><span class="p">;</span>
</code></pre></div>
<h3 id="alter-table-rename-column"><code>ALTER TABLE ... RENAME COLUMN</code><a class="headerlink" href="#alter-table-rename-column" title="Permanent link">🔗</a></h3>
<p>Iceberg allows any field to be renamed. To rename a field, use <code>RENAME COLUMN</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">RENAME</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">payload</span><span class="p">;</span>
<a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">RENAME</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="k">location</span><span class="p">.</span><span class="n">lat</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">latitude</span><span class="p">;</span>
</code></pre></div>
<p>Note that nested rename commands only rename the leaf field. The above command renames <code>location.lat</code> to <code>location.latitude</code></p>
<h3 id="alter-table-alter-column"><code>ALTER TABLE ... ALTER COLUMN</code><a class="headerlink" href="#alter-table-alter-column" title="Permanent link">🔗</a></h3>
<p>Alter column is used to widen types, make a field optional, set comments, and reorder fields.</p>
<p>Iceberg allows updating column types if the update is safe. Safe updates are:</p>
<ul>
<li><code>int</code> to <code>bigint</code></li>
<li><code>float</code> to <code>double</code></li>
<li><code>decimal(P,S)</code> to <code>decimal(P2,S)</code> when P2 &gt; P (scale cannot change)</li>
</ul>
<div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">ALTER</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">measurement</span><span class="w"> </span><span class="k">TYPE</span><span class="w"> </span><span class="n">double</span><span class="p">;</span>
</code></pre></div>
<p>To add or remove columns from a struct, use <code>ADD COLUMN</code> or <code>DROP COLUMN</code> with a nested column name.</p>
<p>Column comments can also be updated using <code>ALTER COLUMN</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">ALTER</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">measurement</span><span class="w"> </span><span class="k">TYPE</span><span class="w"> </span><span class="n">double</span><span class="w"> </span><span class="k">COMMENT</span><span class="w"> </span><span class="s1">&#39;unit is bytes per second&#39;</span><span class="p">;</span>
<a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">ALTER</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">measurement</span><span class="w"> </span><span class="k">COMMENT</span><span class="w"> </span><span class="s1">&#39;unit is kilobytes per second&#39;</span><span class="p">;</span>
</code></pre></div>
<p>Iceberg allows reordering top-level columns or columns in a struct using <code>FIRST</code> and <code>AFTER</code> clauses:</p>
<p><div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">ALTER</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">col</span><span class="w"> </span><span class="k">FIRST</span><span class="p">;</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">ALTER</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">nested</span><span class="p">.</span><span class="n">col</span><span class="w"> </span><span class="k">AFTER</span><span class="w"> </span><span class="n">other_col</span><span class="p">;</span>
</code></pre></div></p>
<p>Nullability for a non-nullable column can be changed using <code>DROP NOT NULL</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">ALTER</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">;</span>
</code></pre></div>
<div class="admonition info">
<p class="admonition-title">Info</p>
<p>It is not possible to change a nullable column to a non-nullable column with <code>SET NOT NULL</code> because Iceberg doesn't know whether there is existing data with null values.</p>
</div>
<div class="admonition info">
<p class="admonition-title">Info</p>
<p><code>ALTER COLUMN</code> is not used to update <code>struct</code> types. Use <code>ADD COLUMN</code> and <code>DROP COLUMN</code> to add or remove struct fields.</p>
</div>
<h3 id="alter-table-drop-column"><code>ALTER TABLE ... DROP COLUMN</code><a class="headerlink" href="#alter-table-drop-column" title="Permanent link">🔗</a></h3>
<p>To drop columns, use <code>ALTER TABLE ... DROP COLUMN</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">id</span><span class="p">;</span>
<a id="__codelineno-26-2" name="__codelineno-26-2" href="#__codelineno-26-2"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="k">COLUMN</span><span class="w"> </span><span class="n">point</span><span class="p">.</span><span class="n">z</span><span class="p">;</span>
</code></pre></div>
<h2 id="alter-table-sql-extensions"><code>ALTER TABLE</code> SQL extensions<a class="headerlink" href="#alter-table-sql-extensions" title="Permanent link">🔗</a></h2>
<p>These commands are available in Spark 3 when using Iceberg <a href="../../spark-configuration/#sql-extensions">SQL extensions</a>.</p>
<h3 id="alter-table-add-partition-field"><code>ALTER TABLE ... ADD PARTITION FIELD</code><a class="headerlink" href="#alter-table-add-partition-field" title="Permanent link">🔗</a></h3>
<p>Iceberg supports adding new partition fields to a spec using <code>ADD PARTITION FIELD</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">ADD</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">FIELD</span><span class="w"> </span><span class="k">catalog</span><span class="p">;</span><span class="w"> </span><span class="c1">-- identity transform</span>
</code></pre></div>
<p><a href="#partitioned-by">Partition transforms</a> are also supported:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">ADD</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">FIELD</span><span class="w"> </span><span class="n">bucket</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="p">);</span>
<a id="__codelineno-28-2" name="__codelineno-28-2" href="#__codelineno-28-2"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">ADD</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">FIELD</span><span class="w"> </span><span class="k">truncate</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">);</span>
<a id="__codelineno-28-3" name="__codelineno-28-3" href="#__codelineno-28-3"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">ADD</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">FIELD</span><span class="w"> </span><span class="k">year</span><span class="p">(</span><span class="n">ts</span><span class="p">);</span>
<a id="__codelineno-28-4" name="__codelineno-28-4" href="#__codelineno-28-4"></a><span class="c1">-- use optional AS keyword to specify a custom name for the partition field </span>
<a id="__codelineno-28-5" name="__codelineno-28-5" href="#__codelineno-28-5"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">ADD</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">FIELD</span><span class="w"> </span><span class="n">bucket</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">shard</span><span class="p">;</span>
</code></pre></div>
<p>Adding a partition field is a metadata operation and does not change any of the existing table data. New data will be written with the new partitioning, but existing data will remain in the old partition layout. Old data files will have null values for the new partition fields in metadata tables.</p>
<p>Dynamic partition overwrite behavior will change when the table's partitioning changes because dynamic overwrite replaces partitions implicitly. To overwrite explicitly, use the new <code>DataFrameWriterV2</code> API.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>To migrate from daily to hourly partitioning with transforms, it is not necessary to drop the daily partition field. Keeping the field ensures existing metadata table queries continue to work.</p>
</div>
<div class="admonition danger">
<p class="admonition-title">Danger</p>
<p><strong>Dynamic partition overwrite behavior will change</strong> when partitioning changes
For example, if you partition by days and move to partitioning by hours, overwrites will overwrite hourly partitions but not days anymore.</p>
</div>
<h3 id="alter-table-drop-partition-field"><code>ALTER TABLE ... DROP PARTITION FIELD</code><a class="headerlink" href="#alter-table-drop-partition-field" title="Permanent link">🔗</a></h3>
<p>Partition fields can be removed using <code>DROP PARTITION FIELD</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">FIELD</span><span class="w"> </span><span class="k">catalog</span><span class="p">;</span>
<a id="__codelineno-29-2" name="__codelineno-29-2" href="#__codelineno-29-2"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">FIELD</span><span class="w"> </span><span class="n">bucket</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="p">);</span>
<a id="__codelineno-29-3" name="__codelineno-29-3" href="#__codelineno-29-3"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">FIELD</span><span class="w"> </span><span class="k">truncate</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="k">data</span><span class="p">);</span>
<a id="__codelineno-29-4" name="__codelineno-29-4" href="#__codelineno-29-4"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">FIELD</span><span class="w"> </span><span class="k">year</span><span class="p">(</span><span class="n">ts</span><span class="p">);</span>
<a id="__codelineno-29-5" name="__codelineno-29-5" href="#__codelineno-29-5"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">FIELD</span><span class="w"> </span><span class="n">shard</span><span class="p">;</span>
</code></pre></div>
<p>Note that although the partition is removed, the column will still exist in the table schema.</p>
<p>Dropping a partition field is a metadata operation and does not change any of the existing table data. New data will be written with the new partitioning, but existing data will remain in the old partition layout.</p>
<div class="admonition danger">
<p class="admonition-title">Danger</p>
<p><strong>Dynamic partition overwrite behavior will change</strong> when partitioning changes
For example, if you partition by days and move to partitioning by hours, overwrites will overwrite hourly partitions but not days anymore.</p>
</div>
<div class="admonition danger">
<p class="admonition-title">Danger</p>
<p>Be careful when dropping a partition field because it will change the schema of metadata tables, like <code>files</code>, and may cause metadata queries to fail or produce different results.</p>
</div>
<h3 id="alter-table-replace-partition-field"><code>ALTER TABLE ... REPLACE PARTITION FIELD</code><a class="headerlink" href="#alter-table-replace-partition-field" title="Permanent link">🔗</a></h3>
<p>A partition field can be replaced by a new partition field in a single metadata update by using <code>REPLACE PARTITION FIELD</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">FIELD</span><span class="w"> </span><span class="n">ts_day</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="k">day</span><span class="p">(</span><span class="n">ts</span><span class="p">);</span>
<a id="__codelineno-30-2" name="__codelineno-30-2" href="#__codelineno-30-2"></a><span class="c1">-- use optional AS keyword to specify a custom name for the new partition field </span>
<a id="__codelineno-30-3" name="__codelineno-30-3" href="#__codelineno-30-3"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">FIELD</span><span class="w"> </span><span class="n">ts_day</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="k">day</span><span class="p">(</span><span class="n">ts</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">day_of_ts</span><span class="p">;</span>
</code></pre></div>
<h3 id="alter-table-write-ordered-by"><code>ALTER TABLE ... WRITE ORDERED BY</code><a class="headerlink" href="#alter-table-write-ordered-by" title="Permanent link">🔗</a></h3>
<p>Iceberg tables can be configured with a sort order that is used to automatically sort data that is written to the table in some engines. For example, <code>MERGE INTO</code> in Spark will use the table ordering.</p>
<p>To set the write order for a table, use <code>WRITE ORDERED BY</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">WRITE</span><span class="w"> </span><span class="n">ORDERED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">category</span><span class="p">,</span><span class="w"> </span><span class="n">id</span>
<a id="__codelineno-31-2" name="__codelineno-31-2" href="#__codelineno-31-2"></a><span class="c1">-- use optional ASC/DEC keyword to specify sort order of each field (default ASC)</span>
<a id="__codelineno-31-3" name="__codelineno-31-3" href="#__codelineno-31-3"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">WRITE</span><span class="w"> </span><span class="n">ORDERED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">category</span><span class="w"> </span><span class="k">ASC</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="k">DESC</span>
<a id="__codelineno-31-4" name="__codelineno-31-4" href="#__codelineno-31-4"></a><span class="c1">-- use optional NULLS FIRST/NULLS LAST keyword to specify null order of each field (default FIRST)</span>
<a id="__codelineno-31-5" name="__codelineno-31-5" href="#__codelineno-31-5"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">WRITE</span><span class="w"> </span><span class="n">ORDERED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">category</span><span class="w"> </span><span class="k">ASC</span><span class="w"> </span><span class="n">NULLS</span><span class="w"> </span><span class="k">LAST</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="k">DESC</span><span class="w"> </span><span class="n">NULLS</span><span class="w"> </span><span class="k">FIRST</span>
</code></pre></div>
<div class="admonition info">
<p class="admonition-title">Info</p>
<p>Table write order does not guarantee data order for queries. It only affects how data is written to the table.</p>
</div>
<p><code>WRITE ORDERED BY</code> sets a global ordering where rows are ordered across tasks, like using <code>ORDER BY</code> in an <code>INSERT</code> command:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span>
<a id="__codelineno-32-2" name="__codelineno-32-2" href="#__codelineno-32-2"></a><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="p">,</span><span class="w"> </span><span class="n">category</span><span class="p">,</span><span class="w"> </span><span class="n">ts</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">another_table</span>
<a id="__codelineno-32-3" name="__codelineno-32-3" href="#__codelineno-32-3"></a><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">ts</span><span class="p">,</span><span class="w"> </span><span class="n">category</span>
</code></pre></div>
<p>To order within each task, not across tasks, use <code>LOCALLY ORDERED BY</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">WRITE</span><span class="w"> </span><span class="n">LOCALLY</span><span class="w"> </span><span class="n">ORDERED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">category</span><span class="p">,</span><span class="w"> </span><span class="n">id</span>
</code></pre></div>
<p>To unset the sort order of the table, use <code>UNORDERED</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">WRITE</span><span class="w"> </span><span class="n">UNORDERED</span>
</code></pre></div>
<h3 id="alter-table-write-distributed-by-partition"><code>ALTER TABLE ... WRITE DISTRIBUTED BY PARTITION</code><a class="headerlink" href="#alter-table-write-distributed-by-partition" title="Permanent link">🔗</a></h3>
<p><code>WRITE DISTRIBUTED BY PARTITION</code> will request that each partition is handled by one writer, the default implementation is hash distribution.</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-35-1" name="__codelineno-35-1" href="#__codelineno-35-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">WRITE</span><span class="w"> </span><span class="n">DISTRIBUTED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">PARTITION</span>
</code></pre></div>
<p><code>DISTRIBUTED BY PARTITION</code> and <code>LOCALLY ORDERED BY</code> may be used together, to distribute by partition and locally order rows within each task.</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-36-1" name="__codelineno-36-1" href="#__codelineno-36-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">WRITE</span><span class="w"> </span><span class="n">DISTRIBUTED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">LOCALLY</span><span class="w"> </span><span class="n">ORDERED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">category</span><span class="p">,</span><span class="w"> </span><span class="n">id</span>
</code></pre></div>
<h3 id="alter-table-set-identifier-fields"><code>ALTER TABLE ... SET IDENTIFIER FIELDS</code><a class="headerlink" href="#alter-table-set-identifier-fields" title="Permanent link">🔗</a></h3>
<p>Iceberg supports setting <a href="https://iceberg.apache.org/spec/#identifier-field-ids">identifier fields</a> to a spec using <code>SET IDENTIFIER FIELDS</code>:
Spark table can support Flink SQL upsert operation if the table has identifier fields.</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-37-1" name="__codelineno-37-1" href="#__codelineno-37-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">IDENTIFIER</span><span class="w"> </span><span class="n">FIELDS</span><span class="w"> </span><span class="n">id</span>
<a id="__codelineno-37-2" name="__codelineno-37-2" href="#__codelineno-37-2"></a><span class="c1">-- single column</span>
<a id="__codelineno-37-3" name="__codelineno-37-3" href="#__codelineno-37-3"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">IDENTIFIER</span><span class="w"> </span><span class="n">FIELDS</span><span class="w"> </span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span>
<a id="__codelineno-37-4" name="__codelineno-37-4" href="#__codelineno-37-4"></a><span class="c1">-- multiple columns</span>
</code></pre></div>
<p>Identifier fields must be <code>NOT NULL</code> columns when they are created or added.
The later <code>ALTER</code> statement will overwrite the previous setting.</p>
<h3 id="alter-table-drop-identifier-fields"><code>ALTER TABLE ... DROP IDENTIFIER FIELDS</code><a class="headerlink" href="#alter-table-drop-identifier-fields" title="Permanent link">🔗</a></h3>
<p>Identifier fields can be removed using <code>DROP IDENTIFIER FIELDS</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-38-1" name="__codelineno-38-1" href="#__codelineno-38-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="n">IDENTIFIER</span><span class="w"> </span><span class="n">FIELDS</span><span class="w"> </span><span class="n">id</span>
<a id="__codelineno-38-2" name="__codelineno-38-2" href="#__codelineno-38-2"></a><span class="c1">-- single column</span>
<a id="__codelineno-38-3" name="__codelineno-38-3" href="#__codelineno-38-3"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="n">IDENTIFIER</span><span class="w"> </span><span class="n">FIELDS</span><span class="w"> </span><span class="n">id</span><span class="p">,</span><span class="w"> </span><span class="k">data</span>
<a id="__codelineno-38-4" name="__codelineno-38-4" href="#__codelineno-38-4"></a><span class="c1">-- multiple columns</span>
</code></pre></div>
<p>Note that although the identifier is removed, the column will still exist in the table schema.</p>
<h3 id="branching-and-tagging-ddl">Branching and Tagging DDL<a class="headerlink" href="#branching-and-tagging-ddl" title="Permanent link">🔗</a></h3>
<h4 id="alter-table-create-branch"><code>ALTER TABLE ... CREATE BRANCH</code><a class="headerlink" href="#alter-table-create-branch" title="Permanent link">🔗</a></h4>
<p>Branches can be created via the <code>CREATE BRANCH</code> statement with the following options:
* Do not fail if the branch already exists with <code>IF NOT EXISTS</code>
* Update the branch if it already exists with <code>CREATE OR REPLACE</code>
* Create at a snapshot
* Create with retention</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-39-1" name="__codelineno-39-1" href="#__codelineno-39-1"></a><span class="c1">-- CREATE audit-branch at current snapshot with default retention.</span>
<a id="__codelineno-39-2" name="__codelineno-39-2" href="#__codelineno-39-2"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="n">BRANCH</span><span class="w"> </span><span class="o">`</span><span class="n">audit</span><span class="o">-</span><span class="n">branch</span><span class="o">`</span>
<a id="__codelineno-39-3" name="__codelineno-39-3" href="#__codelineno-39-3"></a>
<a id="__codelineno-39-4" name="__codelineno-39-4" href="#__codelineno-39-4"></a><span class="c1">-- CREATE audit-branch at current snapshot with default retention if it doesn&#39;t exist.</span>
<a id="__codelineno-39-5" name="__codelineno-39-5" href="#__codelineno-39-5"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="n">BRANCH</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="o">`</span><span class="n">audit</span><span class="o">-</span><span class="n">branch</span><span class="o">`</span>
<a id="__codelineno-39-6" name="__codelineno-39-6" href="#__codelineno-39-6"></a>
<a id="__codelineno-39-7" name="__codelineno-39-7" href="#__codelineno-39-7"></a><span class="c1">-- CREATE audit-branch at current snapshot with default retention or REPLACE it if it already exists.</span>
<a id="__codelineno-39-8" name="__codelineno-39-8" href="#__codelineno-39-8"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="n">BRANCH</span><span class="w"> </span><span class="o">`</span><span class="n">audit</span><span class="o">-</span><span class="n">branch</span><span class="o">`</span>
<a id="__codelineno-39-9" name="__codelineno-39-9" href="#__codelineno-39-9"></a>
<a id="__codelineno-39-10" name="__codelineno-39-10" href="#__codelineno-39-10"></a><span class="c1">-- CREATE audit-branch at snapshot 1234 with default retention.</span>
<a id="__codelineno-39-11" name="__codelineno-39-11" href="#__codelineno-39-11"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="n">BRANCH</span><span class="w"> </span><span class="o">`</span><span class="n">audit</span><span class="o">-</span><span class="n">branch</span><span class="o">`</span>
<a id="__codelineno-39-12" name="__codelineno-39-12" href="#__codelineno-39-12"></a><span class="k">AS</span><span class="w"> </span><span class="k">OF</span><span class="w"> </span><span class="k">VERSION</span><span class="w"> </span><span class="mi">1234</span>
<a id="__codelineno-39-13" name="__codelineno-39-13" href="#__codelineno-39-13"></a>
<a id="__codelineno-39-14" name="__codelineno-39-14" href="#__codelineno-39-14"></a><span class="c1">-- CREATE audit-branch at snapshot 1234, retain audit-branch for 31 days, and retain the latest 31 days. The latest 3 snapshot snapshots, and 2 days worth of snapshots. </span>
<a id="__codelineno-39-15" name="__codelineno-39-15" href="#__codelineno-39-15"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="n">BRANCH</span><span class="w"> </span><span class="o">`</span><span class="n">audit</span><span class="o">-</span><span class="n">branch</span><span class="o">`</span>
<a id="__codelineno-39-16" name="__codelineno-39-16" href="#__codelineno-39-16"></a><span class="k">AS</span><span class="w"> </span><span class="k">OF</span><span class="w"> </span><span class="k">VERSION</span><span class="w"> </span><span class="mi">1234</span><span class="w"> </span><span class="n">RETAIN</span><span class="w"> </span><span class="mi">30</span><span class="w"> </span><span class="n">DAYS</span><span class="w"> </span>
<a id="__codelineno-39-17" name="__codelineno-39-17" href="#__codelineno-39-17"></a><span class="k">WITH</span><span class="w"> </span><span class="n">SNAPSHOT</span><span class="w"> </span><span class="n">RETENTION</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="n">SNAPSHOTS</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="n">DAYS</span>
</code></pre></div>
<h4 id="alter-table-create-tag"><code>ALTER TABLE ... CREATE TAG</code><a class="headerlink" href="#alter-table-create-tag" title="Permanent link">🔗</a></h4>
<p>Tags can be created via the <code>CREATE TAG</code> statement with the following options:
* Do not fail if the tag already exists with <code>IF NOT EXISTS</code>
* Update the tag if it already exists with <code>CREATE OR REPLACE</code>
* Create at a snapshot
* Create with retention</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-40-1" name="__codelineno-40-1" href="#__codelineno-40-1"></a><span class="c1">-- CREATE historical-tag at current snapshot with default retention.</span>
<a id="__codelineno-40-2" name="__codelineno-40-2" href="#__codelineno-40-2"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="n">TAG</span><span class="w"> </span><span class="o">`</span><span class="n">historical</span><span class="o">-</span><span class="n">tag</span><span class="o">`</span>
<a id="__codelineno-40-3" name="__codelineno-40-3" href="#__codelineno-40-3"></a>
<a id="__codelineno-40-4" name="__codelineno-40-4" href="#__codelineno-40-4"></a><span class="c1">-- CREATE historical-tag at current snapshot with default retention if it doesn&#39;t exist.</span>
<a id="__codelineno-40-5" name="__codelineno-40-5" href="#__codelineno-40-5"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="n">TAG</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="o">`</span><span class="n">historical</span><span class="o">-</span><span class="n">tag</span><span class="o">`</span>
<a id="__codelineno-40-6" name="__codelineno-40-6" href="#__codelineno-40-6"></a>
<a id="__codelineno-40-7" name="__codelineno-40-7" href="#__codelineno-40-7"></a><span class="c1">-- CREATE historical-tag at current snapshot with default retention or REPLACE it if it already exists.</span>
<a id="__codelineno-40-8" name="__codelineno-40-8" href="#__codelineno-40-8"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="n">TAG</span><span class="w"> </span><span class="o">`</span><span class="n">historical</span><span class="o">-</span><span class="n">tag</span><span class="o">`</span>
<a id="__codelineno-40-9" name="__codelineno-40-9" href="#__codelineno-40-9"></a>
<a id="__codelineno-40-10" name="__codelineno-40-10" href="#__codelineno-40-10"></a><span class="c1">-- CREATE historical-tag at snapshot 1234 with default retention.</span>
<a id="__codelineno-40-11" name="__codelineno-40-11" href="#__codelineno-40-11"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="n">TAG</span><span class="w"> </span><span class="o">`</span><span class="n">historical</span><span class="o">-</span><span class="n">tag</span><span class="o">`</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">OF</span><span class="w"> </span><span class="k">VERSION</span><span class="w"> </span><span class="mi">1234</span>
<a id="__codelineno-40-12" name="__codelineno-40-12" href="#__codelineno-40-12"></a>
<a id="__codelineno-40-13" name="__codelineno-40-13" href="#__codelineno-40-13"></a><span class="c1">-- CREATE historical-tag at snapshot 1234 and retain it for 1 year. </span>
<a id="__codelineno-40-14" name="__codelineno-40-14" href="#__codelineno-40-14"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="n">TAG</span><span class="w"> </span><span class="o">`</span><span class="n">historical</span><span class="o">-</span><span class="n">tag</span><span class="o">`</span><span class="w"> </span>
<a id="__codelineno-40-15" name="__codelineno-40-15" href="#__codelineno-40-15"></a><span class="k">AS</span><span class="w"> </span><span class="k">OF</span><span class="w"> </span><span class="k">VERSION</span><span class="w"> </span><span class="mi">1234</span><span class="w"> </span><span class="n">RETAIN</span><span class="w"> </span><span class="mi">365</span><span class="w"> </span><span class="n">DAYS</span>
</code></pre></div>
<h4 id="alter-table-replace-branch"><code>ALTER TABLE ... REPLACE BRANCH</code><a class="headerlink" href="#alter-table-replace-branch" title="Permanent link">🔗</a></h4>
<p>The snapshot which a branch references can be updated via
the <code>REPLACE BRANCH</code> sql. Retention can also be updated in this statement. </p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-41-1" name="__codelineno-41-1" href="#__codelineno-41-1"></a><span class="c1">-- REPLACE audit-branch to reference snapshot 4567 and update the retention to 60 days.</span>
<a id="__codelineno-41-2" name="__codelineno-41-2" href="#__codelineno-41-2"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="n">BRANCH</span><span class="w"> </span><span class="o">`</span><span class="n">audit</span><span class="o">-</span><span class="n">branch</span><span class="o">`</span>
<a id="__codelineno-41-3" name="__codelineno-41-3" href="#__codelineno-41-3"></a><span class="k">AS</span><span class="w"> </span><span class="k">OF</span><span class="w"> </span><span class="k">VERSION</span><span class="w"> </span><span class="mi">4567</span><span class="w"> </span><span class="n">RETAIN</span><span class="w"> </span><span class="mi">60</span><span class="w"> </span><span class="n">DAYS</span>
</code></pre></div>
<h4 id="alter-table-replace-tag"><code>ALTER TABLE ... REPLACE TAG</code><a class="headerlink" href="#alter-table-replace-tag" title="Permanent link">🔗</a></h4>
<p>The snapshot which a tag references can be updated via
the <code>REPLACE TAG</code> sql. Retention can also be updated in this statement.</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-42-1" name="__codelineno-42-1" href="#__codelineno-42-1"></a><span class="c1">-- REPLACE historical-tag to reference snapshot 4567 and update the retention to 60 days.</span>
<a id="__codelineno-42-2" name="__codelineno-42-2" href="#__codelineno-42-2"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="n">TAG</span><span class="w"> </span><span class="o">`</span><span class="n">historical</span><span class="o">-</span><span class="n">tag</span><span class="o">`</span>
<a id="__codelineno-42-3" name="__codelineno-42-3" href="#__codelineno-42-3"></a><span class="k">AS</span><span class="w"> </span><span class="k">OF</span><span class="w"> </span><span class="k">VERSION</span><span class="w"> </span><span class="mi">4567</span><span class="w"> </span><span class="n">RETAIN</span><span class="w"> </span><span class="mi">60</span><span class="w"> </span><span class="n">DAYS</span>
</code></pre></div>
<h4 id="alter-table-drop-branch"><code>ALTER TABLE ... DROP BRANCH</code><a class="headerlink" href="#alter-table-drop-branch" title="Permanent link">🔗</a></h4>
<p>Branches can be removed via the <code>DROP BRANCH</code> sql</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-43-1" name="__codelineno-43-1" href="#__codelineno-43-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="n">BRANCH</span><span class="w"> </span><span class="o">`</span><span class="n">audit</span><span class="o">-</span><span class="n">branch</span><span class="o">`</span>
</code></pre></div>
<h4 id="alter-table-drop-tag"><code>ALTER TABLE ... DROP TAG</code><a class="headerlink" href="#alter-table-drop-tag" title="Permanent link">🔗</a></h4>
<p>Tags can be removed via the <code>DROP TAG</code> sql</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-44-1" name="__codelineno-44-1" href="#__codelineno-44-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">prod</span><span class="p">.</span><span class="n">db</span><span class="p">.</span><span class="n">sample</span><span class="w"> </span><span class="k">DROP</span><span class="w"> </span><span class="n">TAG</span><span class="w"> </span><span class="o">`</span><span class="n">historical</span><span class="o">-</span><span class="n">tag</span><span class="o">`</span>
</code></pre></div>
<h3 id="iceberg-views-in-spark">Iceberg views in Spark<a class="headerlink" href="#iceberg-views-in-spark" title="Permanent link">🔗</a></h3>
<p>Iceberg views are a <a href="../../view-spec.md">common representation</a> of a SQL view that aim to be interpreted across multiple query engines.
This section covers how to create and manage views in Spark using Spark 3.4 and above (earlier versions of Spark are not supported).</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>All the SQL examples in this section follow the official Spark SQL syntax:</p>
<ul>
<li><a href="https://spark.apache.org/docs/latest/sql-ref-syntax-ddl-create-view.html#create-view">CREATE VIEW</a></li>
<li><a href="https://spark.apache.org/docs/latest/sql-ref-syntax-ddl-alter-view.html">ALTER VIEW</a></li>
<li><a href="https://spark.apache.org/docs/latest/sql-ref-syntax-ddl-drop-view.html">DROP VIEW</a></li>
<li><a href="https://spark.apache.org/docs/latest/sql-ref-syntax-aux-show-views.html">SHOW VIEWS</a></li>
<li><a href="https://spark.apache.org/docs/latest/sql-ref-syntax-aux-show-tblproperties.html">SHOW TBLPROPERTIES</a></li>
<li><a href="https://spark.apache.org/docs/latest/sql-ref-syntax-aux-show-create-table.html">SHOW CREATE TABLE</a></li>
</ul>
</div>
<h4 id="creating-a-view">Creating a view<a class="headerlink" href="#creating-a-view" title="Permanent link">🔗</a></h4>
<p>Create a simple view without any comments or properties:
<div class="highlight"><pre><span></span><code><a id="__codelineno-45-1" name="__codelineno-45-1" href="#__codelineno-45-1"></a><span class="k">CREATE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="o">&lt;</span><span class="n">viewName</span><span class="o">&gt;</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="o">&lt;</span><span class="n">tableName</span><span class="o">&gt;</span>
</code></pre></div></p>
<p>Using <code>IF NOT EXISTS</code> prevents the SQL statement from failing in case the view already exists:
<div class="highlight"><pre><span></span><code><a id="__codelineno-46-1" name="__codelineno-46-1" href="#__codelineno-46-1"></a><span class="k">CREATE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="o">&lt;</span><span class="n">viewName</span><span class="o">&gt;</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="o">&lt;</span><span class="n">tableName</span><span class="o">&gt;</span>
</code></pre></div></p>
<p>Create a view with a comment, including aliased and commented columns that are different from the source table:
<div class="highlight"><pre><span></span><code><a id="__codelineno-47-1" name="__codelineno-47-1" href="#__codelineno-47-1"></a><span class="k">CREATE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="o">&lt;</span><span class="n">viewName</span><span class="o">&gt;</span><span class="w"> </span><span class="p">(</span><span class="n">ID</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><span class="w"> </span><span class="n">ZIP</span><span class="w"> </span><span class="k">COMMENT</span><span class="w"> </span><span class="s1">&#39;Zipcode&#39;</span><span class="p">)</span>
<a id="__codelineno-47-2" name="__codelineno-47-2" href="#__codelineno-47-2"></a><span class="w"> </span><span class="k">COMMENT</span><span class="w"> </span><span class="s1">&#39;View Comment&#39;</span>
<a id="__codelineno-47-3" name="__codelineno-47-3" href="#__codelineno-47-3"></a><span class="w"> </span><span class="k">AS</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="n">zip</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="o">&lt;</span><span class="n">tableName</span><span class="o">&gt;</span>
</code></pre></div></p>
<h4 id="creating-a-view-with-properties">Creating a view with properties<a class="headerlink" href="#creating-a-view-with-properties" title="Permanent link">🔗</a></h4>
<p>Create a view with properties using <code>TBLPROPERTIES</code>:
<div class="highlight"><pre><span></span><code><a id="__codelineno-48-1" name="__codelineno-48-1" href="#__codelineno-48-1"></a><span class="k">CREATE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="o">&lt;</span><span class="n">viewName</span><span class="o">&gt;</span>
<a id="__codelineno-48-2" name="__codelineno-48-2" href="#__codelineno-48-2"></a><span class="w"> </span><span class="n">TBLPROPERTIES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;key1&#39;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;val1&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;key2&#39;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;val2&#39;</span><span class="p">)</span>
<a id="__codelineno-48-3" name="__codelineno-48-3" href="#__codelineno-48-3"></a><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="o">&lt;</span><span class="n">tableName</span><span class="o">&gt;</span>
</code></pre></div></p>
<p>Display view properties:
<div class="highlight"><pre><span></span><code><a id="__codelineno-49-1" name="__codelineno-49-1" href="#__codelineno-49-1"></a><span class="k">SHOW</span><span class="w"> </span><span class="n">TBLPROPERTIES</span><span class="w"> </span><span class="o">&lt;</span><span class="n">viewName</span><span class="o">&gt;</span>
</code></pre></div></p>
<h4 id="dropping-a-view">Dropping a view<a class="headerlink" href="#dropping-a-view" title="Permanent link">🔗</a></h4>
<p>Drop an existing view:
<div class="highlight"><pre><span></span><code><a id="__codelineno-50-1" name="__codelineno-50-1" href="#__codelineno-50-1"></a><span class="k">DROP</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="o">&lt;</span><span class="n">viewName</span><span class="o">&gt;</span>
</code></pre></div></p>
<p>Using <code>IF EXISTS</code> prevents the SQL statement from failing if the view does not exist:
<div class="highlight"><pre><span></span><code><a id="__codelineno-51-1" name="__codelineno-51-1" href="#__codelineno-51-1"></a><span class="k">DROP</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="o">&lt;</span><span class="n">viewName</span><span class="o">&gt;</span>
</code></pre></div></p>
<h4 id="replacing-a-view">Replacing a view<a class="headerlink" href="#replacing-a-view" title="Permanent link">🔗</a></h4>
<p>Update a view's schema, its properties, or the underlying SQL statement using <code>CREATE OR REPLACE</code>:
<div class="highlight"><pre><span></span><code><a id="__codelineno-52-1" name="__codelineno-52-1" href="#__codelineno-52-1"></a><span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="o">&lt;</span><span class="n">viewName</span><span class="o">&gt;</span><span class="w"> </span><span class="p">(</span><span class="n">updated_id</span><span class="w"> </span><span class="k">COMMENT</span><span class="w"> </span><span class="s1">&#39;updated ID&#39;</span><span class="p">)</span>
<a id="__codelineno-52-2" name="__codelineno-52-2" href="#__codelineno-52-2"></a><span class="w"> </span><span class="n">TBLPROPERTIES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;key1&#39;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;new_val1&#39;</span><span class="p">)</span>
<a id="__codelineno-52-3" name="__codelineno-52-3" href="#__codelineno-52-3"></a><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="o">&lt;</span><span class="n">tableName</span><span class="o">&gt;</span>
</code></pre></div></p>
<h4 id="setting-and-removing-view-properties">Setting and removing view properties<a class="headerlink" href="#setting-and-removing-view-properties" title="Permanent link">🔗</a></h4>
<p>Set the properties of an existing view using <code>ALTER VIEW ... SET TBLPROPERTIES</code>:
<div class="highlight"><pre><span></span><code><a id="__codelineno-53-1" name="__codelineno-53-1" href="#__codelineno-53-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="o">&lt;</span><span class="n">viewName</span><span class="o">&gt;</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">TBLPROPERTIES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;key1&#39;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;val1&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;key2&#39;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;val2&#39;</span><span class="p">)</span>
</code></pre></div></p>
<p>Remove the properties from an existing view using <code>ALTER VIEW ... UNSET TBLPROPERTIES</code>:
<div class="highlight"><pre><span></span><code><a id="__codelineno-54-1" name="__codelineno-54-1" href="#__codelineno-54-1"></a><span class="k">ALTER</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="o">&lt;</span><span class="n">viewName</span><span class="o">&gt;</span><span class="w"> </span><span class="n">UNSET</span><span class="w"> </span><span class="n">TBLPROPERTIES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;key1&#39;</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;key2&#39;</span><span class="p">)</span>
</code></pre></div></p>
<h4 id="showing-available-views">Showing available views<a class="headerlink" href="#showing-available-views" title="Permanent link">🔗</a></h4>
<p>List all views in the currently set namespace (via <code>USE &lt;namespace&gt;</code>):
<div class="highlight"><pre><span></span><code><a id="__codelineno-55-1" name="__codelineno-55-1" href="#__codelineno-55-1"></a><span class="k">SHOW</span><span class="w"> </span><span class="n">VIEWS</span>
</code></pre></div></p>
<p>List all available views in the defined catalog and/or namespace using one of the below variations:
<div class="highlight"><pre><span></span><code><a id="__codelineno-56-1" name="__codelineno-56-1" href="#__codelineno-56-1"></a><span class="k">SHOW</span><span class="w"> </span><span class="n">VIEWS</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="o">&lt;</span><span class="k">catalog</span><span class="o">&gt;</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><a id="__codelineno-57-1" name="__codelineno-57-1" href="#__codelineno-57-1"></a><span class="k">SHOW</span><span class="w"> </span><span class="n">VIEWS</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="o">&lt;</span><span class="n">namespace</span><span class="o">&gt;</span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><a id="__codelineno-58-1" name="__codelineno-58-1" href="#__codelineno-58-1"></a><span class="k">SHOW</span><span class="w"> </span><span class="n">VIEWS</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="o">&lt;</span><span class="k">catalog</span><span class="o">&gt;</span><span class="p">.</span><span class="o">&lt;</span><span class="n">namespace</span><span class="o">&gt;</span>
</code></pre></div></p>
<h4 id="showing-the-create-statement-of-a-view">Showing the CREATE statement of a view<a class="headerlink" href="#showing-the-create-statement-of-a-view" title="Permanent link">🔗</a></h4>
<p>Show the CREATE statement of a view:
<div class="highlight"><pre><span></span><code><a id="__codelineno-59-1" name="__codelineno-59-1" href="#__codelineno-59-1"></a><span class="k">SHOW</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="o">&lt;</span><span class="n">viewName</span><span class="o">&gt;</span>
</code></pre></div></p>
<h4 id="displaying-view-details">Displaying view details<a class="headerlink" href="#displaying-view-details" title="Permanent link">🔗</a></h4>
<p>Display additional view details using <code>DESCRIBE</code>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-60-1" name="__codelineno-60-1" href="#__codelineno-60-1"></a><span class="k">DESCRIBE</span><span class="w"> </span><span class="p">[</span><span class="n">EXTENDED</span><span class="p">]</span><span class="w"> </span><span class="o">&lt;</span><span class="n">viewName</span><span class="o">&gt;</span>
</code></pre></div>
</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>