blob: 202821d957ef594ceb2698af2e22cae1dc46e344 [file] [log] [blame]
<!DOCTYPE html><!-- This site was created in Webflow. https://www.webflow.com -->
<!-- Last Published: Thu Nov 09 2023 05:12:58 GMT+0000 (Coordinated Universal Time) -->
<html data-wf-page="65402b66d39d6454e51fabf1" data-wf-site="65402b66d39d6454e51fabed">
<head>
<meta charset="utf-8">
<title>OneTable</title>
<meta content="OneTable is an omni-directional interop of lakehouse table formats Apache Hudi, Apache Iceberg, and Delta Lake. OneTable is NOT a new or separate format, OneTable provides abstractions and tools for the translation of lakehouse table format metadata." name="description">
<meta content="OneTable" property="og:title">
<meta content="OneTable is an omni-directional interop of lakehouse table formats Apache Hudi, Apache Iceberg, and Delta Lake. OneTable is NOT a new or separate format, OneTable provides abstractions and tools for the translation of lakehouse table format metadata." property="og:description">
<meta content="https://uploads-ssl.webflow.com/65402b66d39d6454e51fabed/654c643bf9cebe95d6c3dd50_Group%201562%20(1).png" property="og:image">
<meta content="OneTable" property="twitter:title">
<meta content="OneTable is an omni-directional interop of lakehouse table formats Apache Hudi, Apache Iceberg, and Delta Lake. OneTable is NOT a new or separate format, OneTable provides abstractions and tools for the translation of lakehouse table format metadata." property="twitter:description">
<meta content="https://uploads-ssl.webflow.com/65402b66d39d6454e51fabed/654c643bf9cebe95d6c3dd50_Group%201562%20(1).png" property="twitter:image">
<meta property="og:type" content="website">
<meta content="summary_large_image" name="twitter:card">
<meta content="width=device-width, initial-scale=1" name="viewport">
<meta content="Webflow" name="generator">
<link href="css/normalize.css" rel="stylesheet" type="text/css">
<link href="css/webflow.css" rel="stylesheet" type="text/css">
<link href="css/onetable-ad267e.webflow.css" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com" rel="preconnect">
<link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script>
<script type="text/javascript">WebFont.load({ google: { families: ["Material Icons:regular"] }});</script>
<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
<link href="images/favicon.png" rel="shortcut icon" type="image/x-icon">
<link href="images/webclip.png" rel="apple-touch-icon">
</head>
<body class="body">
<div data-animation="default" data-collapse="medium" data-duration="400" data-easing="ease" data-easing2="ease" role="banner" class="navbar w-nav">
<div class="container w-container">
<a href="#" class="brand w-nav-brand"><img src="images/nav-logo.png" loading="lazy" alt="" class="nav-logo"></a>
<nav role="navigation" class="nav-menu w-nav-menu">
<a href="#" class="nav-link w-nav-link">Home</a>
<a href="https://onetable.dev/docs/setup/" class="nav-link w-nav-link">Docs</a><img src="images/break.svg" loading="lazy" alt="" class="image-10">
<a href="https://github.com/onetable-io/onetable" class="nav-icon-link1 w-inline-block"><img src="images/Github.svg" loading="lazy" alt=""></a>
<a href="https://www.linkedin.com/company/onetable-oss/" class="nav-icon-link1 w-inline-block"><img src="images/linkedin.svg" loading="lazy" alt=""></a>
<a href="https://twitter.com/OnetableOSS" class="nav-icon-link1 w-inline-block"><img src="images/twitter.svg" loading="lazy" alt=""></a>
</nav>
<div class="menu-button w-nav-button">
<div class="icon w-icon-nav-menu"></div>
</div>
</div>
</div>
<div data-animation="default" data-collapse="medium" data-duration="400" data-easing="ease" data-easing2="ease" role="banner" class="navbar-copy w-nav">
<div class="container-copy w-container">
<a href="#" class="brand-copy w-nav-brand"><img src="images/nav-logo.png" loading="lazy" alt="" class="nav-logo-copy"></a>
<nav role="navigation" class="nav-menu-copy w-nav-menu">
<a href="#" class="nav-link-copy w-nav-link">Home</a>
<a href="https://onetable.dev/docs/setup/" class="nav-link-copy w-nav-link">Docs</a>
<a href="https://github.com/onetable-io/onetable" class="nav-link-copy w-nav-link">GitHub</a>
<a href="#" class="nav-link-copy w-nav-link">LinkedIn</a>
<a href="#" class="nav-link-copy w-nav-link">Twitter</a>
</nav>
<div class="menu-button-copy w-nav-button">
<div class="icon-copy w-icon-nav-menu"></div>
</div>
</div>
</div>
<section class="hero-section">
<div class="w-layout-blockcontainer hero-container w-container">
<div class="left-hero">
<h1 class="hero-heading">OneTable</h1>
<div class="hero-textblock">Seamlessly interoperate between Apache Hudi, Delta Lake, and Apache Iceberg.</div>
<div class="button-group">
<a href="https://github.com/onetable-io/onetable" class="primary-button w-button">Try it on GitHub</a>
<a href="https://onetable.dev/docs/setup/" class="secondary-button w-button">Learn More</a>
</div>
</div>
<div class="right-hero"><img src="images/Onetable-logo.png" loading="lazy" alt="" class="hero-image"></div>
</div>
</section>
<section class="logo-section">
<div class="w-layout-blockcontainer container-main w-container">
<h1 class="heading-2">Omni-Directional Interoperability</h1>
<div id="w-node-d571cd5e-cc0e-1042-de33-f17a18086aaf-e51fabf1" class="w-layout-layout onetable-logo wf-layout-layout">
<div id="w-node-d88ec824-8ab6-7c2f-72d9-d012b118fe5a-e51fabf1" class="w-layout-cell logo-cell"><img src="images/Apache-Hudi.png" loading="lazy" alt=""></div>
<div id="w-node-b95be66f-c44f-d25c-e39a-875e843342d8-e51fabf1" class="w-layout-cell logo-cell"><img src="images/Delta-lake.png" loading="lazy" alt=""></div>
<div id="w-node-f8b48bd1-af69-d5e5-3204-7c862539fbb9-e51fabf1" class="w-layout-cell logo-cell"><img src="images/Iceberg.png" loading="lazy" alt=""></div>
</div>
</div>
</section>
<section class="what-section">
<div class="w-layout-blockcontainer main-container-why w-container">
<div class="up-section-why">
<h1 class="heading-section why">What is<span class="text-span"> OneTable?</span></h1>
<ul role="list" class="list">
<li class="list-item why">Onetable provides omni-directional interop between lakehouse table formats</li>
<li class="list-item why">OneTable is NOT a new or separate format, OneTable provides abstractions and tools for the translation of lakehouse table format metadata</li>
</ul>
</div>
<div id="w-node-b5fb012b-3ce1-44e6-09e8-015167aa018f-e51fabf1" class="w-layout-layout quick-stack wf-layout-layout">
<div id="w-node-b5fb012b-3ce1-44e6-09e8-015167aa0190-e51fabf1" class="w-layout-cell what-cell"><img src="images/source-2.png" loading="lazy" alt="" class="image-6">
<div class="what-text">Choose your <span class="text-span-3">source</span> format</div>
</div>
<div id="w-node-_78ea2b2b-1c5a-5f05-38c6-1aec2d36f7f9-e51fabf1" class="w-layout-cell what-cell"><img src="images/destination-1.png" loading="lazy" alt="" class="image-5">
<div class="what-text">Choose your <span class="text-span-3">destination</span> format(s)</div>
</div>
<div id="w-node-a5b4b7dd-251e-d9a7-855d-46427e19ad9b-e51fabf1" class="w-layout-cell what-cell"><img src="images/metadata-1.png" loading="lazy" alt="" class="image-4">
<div class="what-text">Onetable will translate the <span class="text-span-3">Metadata</span> layers</div>
</div>
</div>
</div>
</section>
<section class="what-section-copy">
<div class="w-layout-blockcontainer main-container-why-copy w-container">
<div class="up-section-why-copy">
<h1 class="heading-section-copy why-copy">What is<span class="text-span"> OneTable?</span></h1>
<ul role="list" class="list-copy">
<li class="list-item why">OneTable is an omni-directional interop of lakehouse table formats</li>
<li class="list-item why">OneTable is NOT a new or separate format, OneTable provides abstractions and tools for the translation of lakehouse table format metadata</li>
</ul>
</div>
<div id="w-node-c7411165-6ba1-6089-10bd-ef98a599082e-e51fabf1" class="w-layout-layout quick-stack-copy wf-layout-layout">
<div id="w-node-c7411165-6ba1-6089-10bd-ef98a599082f-e51fabf1" class="w-layout-cell what-cell-copy"><img src="images/source1.svg" loading="lazy" alt="" class="image-6-copy">
<div class="what-text-copy">Choose your <span class="text-span-3-copy">source</span> format</div>
</div>
<div id="w-node-c7411165-6ba1-6089-10bd-ef98a5990836-e51fabf1" class="w-layout-cell what-cell-copy"><img src="images/destination1.svg" loading="lazy" alt="" class="image-5-copy">
<div class="what-text-copy">Choose your <span class="text-span-3-copy">destination</span> format(s)</div>
</div>
<div id="w-node-c7411165-6ba1-6089-10bd-ef98a599083d-e51fabf1" class="w-layout-cell what-cell-copy"><img src="images/metadata1.svg" loading="lazy" alt="" class="image-4-copy">
<div class="what-text-copy">Onetable will translate the <span class="text-span-3-copy">Metadata</span> layers</div>
</div>
</div>
</div>
</section>
<section class="build-section">
<div class="w-layout-blockcontainer main-container w-container">
<div class="left-section">
<h1 class="heading-section">Why <span class="text-span">build</span> OneTable?</h1>
<ul role="list" class="list">
<li class="list-item">Choosing a table format is a costly evaluation</li>
<li class="list-item">Each project has rich features that may fit different use-cases</li>
<li class="list-item">Some vendors use a table format as a point of lock-in</li>
<li class="list-item">Your data should be <span class="text-span-2">UNIVERSAL</span></li>
</ul>
</div>
<div class="right-section"><img src="images/Group-1562-1.png" loading="lazy" sizes="(max-width: 479px) 91vw, (max-width: 767px) 71vw, (max-width: 991px) 64vw, 43vw" srcset="images/Group-1562-1-p-500.png 500w, images/Group-1562-1-p-800.png 800w, images/Group-1562-1-p-1080.png 1080w, images/Group-1562-1.png 1311w" alt="" class="image-3"></div>
</div>
</section>
<section class="together-section">
<div class="w-layout-blockcontainer main-container w-container">
<div class="left-section-together"><img src="images/together.png" loading="lazy" sizes="(max-width: 479px) 91vw, (max-width: 767px) 71vw, (max-width: 991px) 64vw, 46vw" srcset="images/together-p-500.png 500w, images/together.png 614w" alt="" class="image-3"></div>
<div class="div-block-24">
<div class="right-section-together">
<h1 class="heading-section-together">Let&#x27;s <span class="text-span">build together</span></h1>
<div class="text-block">OneTable is a community driven open source project. Come join us on Github and find easy ways to contribute.</div>
</div>
<a href="https://github.com/onetable-io/onetable" class="primary-button w-button">Try it on GitHub</a>
</div>
</div>
</section>
<div class="faqs-section">
<div class="content-wrapper slim w-container">
<div class="header-center-box _75">
<h2>FAQs<br></h2>
<div class="text-block-copy">Got questions? We&#x27;ve got answers.</div>
</div>
<div class="accordion-wrapper">
<div class="accordion-item">
<div id="q1" class="accordion-item-trigger">
<h4 class="accordion-heading"><span><strong class="faq-q">How does it work?</strong></span></h4>
<div class="icon-2 accordion-icon">keyboard_arrow_down</div>
</div>
<div class="accordion-item-content">
<p class="faq-a">OneTable reads the existing metadata of your table and writes out metadata for one or more other table formats by leveraging the existing APIs provided by each table format project. The metadata will be persisted under a directory in the base path of your table (_delta_log for Delta, metadata for Iceberg, and .hoodie for Hudi). This allows your existing data to be read as though it was written using Delta, Hudi, or Iceberg. For example, a Spark reader can use spark.read.format(“delta | hudi | iceberg&gt;”).load(“path/to/data”). </p>
</div>
</div>
<div class="accordion-item">
<div id="q1" class="accordion-item-trigger">
<h4 class="accordion-heading"><span><strong class="faq-q">How is OneTable different from Delta Lake Uniform?</strong></span></h4>
<div class="icon-2 accordion-icon">keyboard_arrow_down</div>
</div>
<div class="accordion-item-content">
<p class="faq-a">OneTable provides abstraction interfaces that allow omni-directional interoperability across Delta, Hudi, Iceberg, and any other future lakehouse table formats such as Apache Paimon. OneTable is a standalone github project that provides a neutral space for all the lakehouse table formats to constructively collaborate together.<br><br>Delta Lake Uniform is a one-directional conversion from Delta Lake to Apache Hudi or Apache Iceberg. Uniform is also governed inside the Delta Lake repo.</p>
</div>
</div>
<div class="accordion-item">
<div id="q1" class="accordion-item-trigger">
<h4 class="accordion-heading"><span><strong class="faq-q">When should I consider OneTable?</strong></span></h4>
<div class="icon-2 accordion-icon">keyboard_arrow_down</div>
</div>
<div class="accordion-item-content">
<p class="faq-a">OneTable can be used to easily switch between any of the table formats or even benefit from more than one simultaneously. Some organizations use OneTable today because they have a diverse ecosystem of tools with polarized vendor support of table formats. Some users want lightning fast ingestion or indexing from Hudi and photon query accelerations of Delta Lake inside of Databricks. Some users want managed table services from Hudi, but also want write operations from Trino to Iceberg. Regardless of which combination of formats you need, OneTable ensures you can benefit from all 3 projects.</p>
</div>
</div>
<div class="accordion-item">
<div id="q1" class="accordion-item-trigger">
<h4 class="accordion-heading"><span><strong class="faq-q">Does OneTable work in every cloud?</strong></span></h4>
<div class="icon-2 accordion-icon">keyboard_arrow_down</div>
</div>
<div class="accordion-item-content">
<p class="faq-a">Yes, anywhere that Delta, Iceberg, or Hudi work, OneTable works.</p>
</div>
</div>
<div class="accordion-item">
<div id="q1" class="accordion-item-trigger">
<h4 class="accordion-heading"><span><strong class="faq-q">What are the current limitations?</strong></span></h4>
<div class="icon-2 accordion-icon">keyboard_arrow_down</div>
</div>
<div class="accordion-item-content">
<p class="faq-a">1. Hudi and Iceberg MoR tables not supported<br>2. Delta Delete Vectors are not supported<br>3. Synchronized transaction timestamps<br><br>With OneTable you pick one primary format and one or more secondary formats. The write operations with the primary format work as normal. OneTable than translates the metadata from the primary format to the secondaries. When committing the metadata of the secondary formats, the timestamp of the commit will not be the exact same timestamp as shown in the primary.<br></p>
</div>
</div>
<div class="accordion-item">
<div id="q1" class="accordion-item-trigger">
<h4 class="accordion-heading"><span><strong class="faq-q">How can I contribute?</strong></span></h4>
<div class="icon-2 accordion-icon">keyboard_arrow_down</div>
</div>
<div class="accordion-item-content">
<p class="faq-a">Come check out the project on Github and add a little star. There are some low hanging fruit features, bugs, and documentation that can be added. Reach out directly to any of the contributors on Github to ask for help.</p>
</div>
</div>
<div class="accordion-item">
<div id="q1" class="accordion-item-trigger">
<h4 class="accordion-heading"><span><strong class="faq-q">How can I learn more?</strong></span></h4>
<div class="icon-2 accordion-icon">keyboard_arrow_down</div>
</div>
<div class="accordion-item-content">
<p class="faq-a">Follow OneTable community channels on Linkedin and Twitter. Become a watcher on Github or reachout directly to any of the Github contributors to learn more.</p>
</div>
</div>
<div class="accordion-item">
<div id="q1" class="accordion-item-trigger">
<h4 class="accordion-heading"><span><strong class="faq-q">What are the future plans for open source governance?</strong></span></h4>
<div class="icon-2 accordion-icon">keyboard_arrow_down</div>
</div>
<div class="accordion-item-content">
<p class="faq-a">Current contributors across Onehouse, Microsoft, Google, and others are planning to incubate OneTable into the Apache Software Foundation. Stay tuned for more updates.</p>
</div>
</div>
</div>
</div>
</div>
<section class="footer-subscribe">
<div class="main-container-footer">
<div class="div-block-25"><img src="images/OneTable-F.png" loading="lazy" alt="" class="image-8"></div>
<div class="footer-block-three">
<a href="https://onetable.dev/docs/setup/" class="footer-link-three">Docs</a>
<a href="https://github.com/onetable-io/onetable" class="footer-link-three">GitHub</a>
<a href="https://www.linkedin.com/company/onetable-oss/" class="footer-link-three">LinkedIn</a>
<a href="https://twitter.com/OnetableOSS" class="footer-link-three l">Twitter</a>
</div>
<div class="footer-copyright">                          </div>
</div>
</section>
<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=65402b66d39d6454e51fabed" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="js/webflow.js" type="text/javascript"></script>
</body>
</html>