You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by bl...@apache.org on 2019/10/18 17:52:30 UTC
[incubator-iceberg] branch asf-site updated: Deployed abe41004 with
MkDocs version: 1.0.4
This is an automated email from the ASF dual-hosted git repository.
blue pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-iceberg.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 6f35f9b Deployed abe41004 with MkDocs version: 1.0.4
6f35f9b is described below
commit 6f35f9bb915efc8531e4ccde2f5960bdf8d5f829
Author: Ryan Blue <bl...@apache.org>
AuthorDate: Fri Oct 18 09:52:20 2019 -0800
Deployed abe41004 with MkDocs version: 1.0.4
---
404.html | 28 +++-
api-quickstart/index.html | 28 +++-
api/index.html | 28 +++-
community/index.html | 30 +++-
configuration/index.html | 28 +++-
custom-catalog/index.html | 30 +++-
disclaimer/index.html | 30 +++-
evolution/index.html | 28 +++-
getting-started/index.html | 28 +++-
{community => how-to-release}/index.html | 187 ++++++++++++++-------
index.html | 30 +++-
partitioning/index.html | 28 +++-
performance/index.html | 28 +++-
presto/index.html | 28 +++-
{partitioning => python-api-intro}/index.html | 186 ++++++++++++++-------
{schemas => python-feature-support}/index.html | 220 ++++++++++++++++++-------
{presto => python-quickstart}/index.html | 88 ++++++++--
reliability/index.html | 28 +++-
schemas/index.html | 30 +++-
sitemap.xml | 54 ++++--
sitemap.xml.gz | Bin 215 -> 218 bytes
snapshots/index.html | 28 +++-
spark/index.html | 28 +++-
spec/index.html | 28 +++-
terms/index.html | 30 +++-
why-iceberg/index.html | 28 +++-
26 files changed, 1050 insertions(+), 257 deletions(-)
diff --git a/404.html b/404.html
index 3041feb..747f8d5 100644
--- a/404.html
+++ b/404.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="/community/">Information</a>
+ <a href="/community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="/how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="/python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="/python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="/python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/api-quickstart/index.html b/api-quickstart/index.html
index 92498f1..fa47a93 100644
--- a/api-quickstart/index.html
+++ b/api-quickstart/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/api/index.html b/api/index.html
index c3f1a18..985872c 100644
--- a/api/index.html
+++ b/api/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/community/index.html b/community/index.html
index 03bf93e..5ea8110 100644
--- a/community/index.html
+++ b/community/index.html
@@ -11,7 +11,7 @@
<link rel="../img/favicon.ico">
- <title>Information - Apache Iceberg (incubating)</title>
+ <title>Community - Apache Iceberg (incubating)</title>
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
@@ -78,12 +78,12 @@
<li class="dropdown active">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="active">
- <a href="./">Information</a>
+ <a href="./">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/configuration/index.html b/configuration/index.html
index 45b1aee..07f7746 100644
--- a/configuration/index.html
+++ b/configuration/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/custom-catalog/index.html b/custom-catalog/index.html
index e95f984..6c7046a 100644
--- a/custom-catalog/index.html
+++ b/custom-catalog/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
@@ -256,7 +280,7 @@
</a>
</li>
<li >
- <a rel="next" href="../terms/">
+ <a rel="next" href="../python-quickstart/">
Next <i class="fas fa-arrow-right"></i>
</a>
</li>
diff --git a/disclaimer/index.html b/disclaimer/index.html
index 60ebfe1..b1b7fa6 100644
--- a/disclaimer/index.html
+++ b/disclaimer/index.html
@@ -78,12 +78,12 @@
<li class="dropdown active">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
@@ -256,7 +280,7 @@
</a>
</li>
<li >
- <a rel="next" href="../schemas/">
+ <a rel="next" href="../how-to-release/">
Next <i class="fas fa-arrow-right"></i>
</a>
</li>
diff --git a/evolution/index.html b/evolution/index.html
index 4394ef4..6da0796 100644
--- a/evolution/index.html
+++ b/evolution/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/getting-started/index.html b/getting-started/index.html
index 0a24f8b..e87db83 100644
--- a/getting-started/index.html
+++ b/getting-started/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/community/index.html b/how-to-release/index.html
similarity index 59%
copy from community/index.html
copy to how-to-release/index.html
index 03bf93e..2296900 100644
--- a/community/index.html
+++ b/how-to-release/index.html
@@ -11,7 +11,7 @@
<link rel="../img/favicon.ico">
- <title>Information - Apache Iceberg (incubating)</title>
+ <title>How to Release - Apache Iceberg (incubating)</title>
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
@@ -78,12 +78,12 @@
<li class="dropdown active">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
-<li class="active">
- <a href="./">Information</a>
+<li >
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li class="active">
+ <a href="./">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
@@ -251,12 +275,12 @@
<ul class="nav navbar-nav navbar-right">
<li >
- <a rel="prev" href="..">
+ <a rel="prev" href="../disclaimer/">
<i class="fas fa-arrow-left"></i> Previous
</a>
</li>
<li >
- <a rel="next" href="../disclaimer/">
+ <a rel="next" href="../schemas/">
Next <i class="fas fa-arrow-right"></i>
</a>
</li>
@@ -270,72 +294,113 @@
<div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
<ul class="nav bs-sidenav">
- <li class="first-level active"><a href="#welcome">Welcome!</a></li>
- <li class="second-level"><a href="#contributing">Contributing</a></li>
+ <li class="first-level active"><a href="#setup">Setup</a></li>
+ <li class="second-level"><a href="#nexus-access">Nexus access</a></li>
+
+ <li class="second-level"><a href="#pgp-signing">PGP signing</a></li>
+
+ <li class="first-level "><a href="#creating-a-release-candidate">Creating a release candidate</a></li>
+ <li class="second-level"><a href="#build-the-source-release">Build the source release</a></li>
- <li class="second-level"><a href="#issues">Issues</a></li>
+ <li class="second-level"><a href="#build-and-stage-convenience-binaries">Build and stage convenience binaries</a></li>
- <li class="second-level"><a href="#mailing-lists">Mailing Lists</a></li>
+ <li class="second-level"><a href="#start-a-vote-thread">Start a VOTE thread</a></li>
</ul>
</div></div>
<div class="col-md-9" role="main">
-<!--
- - 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="welcome">Welcome!<a class="headerlink" href="#welcome" title="Permanent link">¶</a></h1>
-<p>Apache Iceberg tracks issues in GitHub and prefers to receive contributions as pull requests.</p>
-<p>Community discussions happen primarily on the dev mailing list or on specific issues.</p>
-<h2 id="contributing">Contributing<a class="headerlink" href="#contributing" title="Permanent link">¶</a></h2>
-<p>Iceberg uses Apache’s GitHub integration. The code is available at <a href="https://github.com/apache/incubator-iceberg">https://github.com/apache/incubator-iceberg</a></p>
-<p>The Iceberg community prefers to receive contributions as <a href="https://help.github.com/articles/about-pull-requests/">Github pull requests</a>.</p>
-<ul>
-<li><a href="https://github.com/apache/incubator-iceberg/pulls">View open pull requests</a></li>
-<li><a href="https://help.github.com/articles/about-pull-requests/">Learn about pull requests</a></li>
-</ul>
-<h2 id="issues">Issues<a class="headerlink" href="#issues" title="Permanent link">¶</a></h2>
-<p>Issues are tracked in GitHub:</p>
+<h2 id="setup">Setup<a class="headerlink" href="#setup" title="Permanent link">¶</a></h2>
+<p>To create a release candidate, you will need:</p>
<ul>
-<li><a href="https://github.com/apache/incubator-iceberg/issues">View open issues</a></li>
-<li><a href="https://github.com/apache/incubator-iceberg/issues/new">Open a new issue</a></li>
+<li>Apache LDAP credentals for Nexus and SVN</li>
+<li>A <a href="https://www.apache.org/dev/release-signing#generate">GPG key for signing</a>, published in <a href="https://dist.apache.org/repos/dist/dev/incubator/iceberg/KEYS">KEYS</a></li>
</ul>
-<h2 id="mailing-lists">Mailing Lists<a class="headerlink" href="#mailing-lists" title="Permanent link">¶</a></h2>
-<p>Iceberg has three mailing lists:</p>
-<ul>
-<li><strong>Developers</strong>: <a href="mailto:dev@iceberg.apache.org">dev@iceberg.apache.org</a> – used for community discussions<ul>
-<li><a href="mailto:dev-subscribe@iceberg.apache.org">Subscribe</a></li>
-<li><a href="mailto:dev-unsubscribe@iceberg.apache.org">Unsubscribe</a></li>
-<li><a href="https://lists.apache.org/list.html?dev@iceberg.apache.org">Archive</a></li>
-</ul>
-</li>
-<li><strong>Commits</strong>: <a href="mailto:commits@iceberg.apache.org">commits@iceberg.apache.org</a> – distributes commit notifications<ul>
-<li><a href="mailto:commits-subscribe@iceberg.apache.org">Subscribe</a></li>
-<li><a href="mailto:commits-unsubscribe@iceberg.apache.org">Unsubscribe</a></li>
-<li><a href="https://lists.apache.org/list.html?commits@iceberg.apache.org">Archive</a></li>
-</ul>
-</li>
-<li><strong>Private</strong>: <a href="mailto:private@iceberg.apache.org">private@iceberg.apache.org</a> – private PMC list for committer nominations<ul>
-<li><a href="https://lists.apache.org/list.html?private@iceberg.apache.org">Archive</a></li>
+<h3 id="nexus-access">Nexus access<a class="headerlink" href="#nexus-access" title="Permanent link">¶</a></h3>
+<p>Nexus credentials are configured in your personal <code>~/.gradle/gradle.properties</code> file using <code>mavenUser</code> and <code>mavenPassword</code>:</p>
+<pre><code>mavenUser=yourApacheID
+mavenPassword=SomePassword
+</code></pre>
+
+<h3 id="pgp-signing">PGP signing<a class="headerlink" href="#pgp-signing" title="Permanent link">¶</a></h3>
+<p>The release scripts use the command-line <code>gpg</code> utility so that signing can use the gpg-agent and does not require writing your private key’s passphrase to a configuration file.</p>
+<p>To configure gradle to sign convenience binary artifacts, add the following settings to <code>~/.gradle/gradle.properties</code>:</p>
+<pre><code>signing.gnupg.keyName=Your Name (CODE SIGNING KEY)
+</code></pre>
+
+<p>To use <code>gpg</code> instead of <code>gpg2</code>, also set <code>signing.gnupg.executable=gpg</code></p>
+<p>For more information, see the Gradle <a href="https://docs.gradle.org/current/userguide/signing_plugin.html#sec:signatory_credentials">signing documentation</a>.</p>
+<h2 id="creating-a-release-candidate">Creating a release candidate<a class="headerlink" href="#creating-a-release-candidate" title="Permanent link">¶</a></h2>
+<h3 id="build-the-source-release">Build the source release<a class="headerlink" href="#build-the-source-release" title="Permanent link">¶</a></h3>
+<p>To create the source release artifacts, run the <code>source-release.sh</code> script with the release version and release candidate number:</p>
+<pre><code class="bash">dev/source-release.sh 0.7.0 0
+</code></pre>
+
+<pre><code>Preparing source for apache-iceberg-0.7.0-incubating-rc0
+...
+Success! The release candidate is available here:
+ https://dist.apache.org/repos/dist/dev/incubator/iceberg/apache-iceberg-0.7.0-incubating-rc0/
+
+Commit SHA1: 4b4716c76559b3cdf3487e6b60ab52950241989b
+</code></pre>
+
+<p>The source release script will create a candidate tag based on the HEAD revision in git and will prepare the release tarball, signature, and checksum files. It will also upload the source artifacts to SVN.</p>
+<p>Note the commit SHA1 and candidate location because those will be added to the vote thread.</p>
+<p>Once the source release is ready, use it to stage convenience binary artifacts in Nexus.</p>
+<h3 id="build-and-stage-convenience-binaries">Build and stage convenience binaries<a class="headerlink" href="#build-and-stage-convenience-binaries" title="Permanent link">¶</a></h3>
+<p>Convenience binaries are created using the source release tarball from in the last step.</p>
+<p>Untar the source release and go into the release directory:</p>
+<pre><code class="bash">tar xzf apache-iceberg-0.7.0-incubating.tar.gz
+cd apache-iceberg-0.7.0-incubating
+</code></pre>
+
+<p>To build and publish the convenience binaries, run the <code>dev/stage-binaries.sh</code> script. This will push to a release staging repository.</p>
+<pre><code>dev/stage-binaries.sh
+</code></pre>
+
+<p>Next, you need to close the staging repository:</p>
+<ol>
+<li>Go to <a href="https://repository.apache.org/">Nexus</a> and log in</li>
+<li>In the menu on the left, choose “Staging Repositories”</li>
+<li>Select the Iceberg repository</li>
+<li>At the top, select “Close” and follow the instructions<ul>
+<li>In the comment field use “Apache Iceberg (incubating) <version> RC<num>“</li>
</ul>
</li>
-</ul></div>
+</ol>
+<h3 id="start-a-vote-thread">Start a VOTE thread<a class="headerlink" href="#start-a-vote-thread" title="Permanent link">¶</a></h3>
+<p>The last step for a candidate is to create a VOTE thread on the dev mailing list.</p>
+<pre><code class="text">Subject: [VOTE] Release Apache Iceberg <VERSION> RC<NUM>
+</code></pre>
+
+<pre><code class="text">Hi everyone,
+
+I propose the following RC to be released as official Apache Iceberg <VERSION> release.
+
+The commit id is <SHA1>
+* This corresponds to the tag: apache-iceberg-<VERSION>-rc<NUM>
+* https://github.com/apache/incubator-iceberg/commits/apache-iceberg-<VERSION>-rc<NUM>
+* https://github.com/apache/incubator-iceberg/tree/<SHA1>
+
+The release tarball, signature, and checksums are here:
+* https://dist.apache.org/repos/dist/dev/incubator/iceberg/apache-iceberg-<VERSION>-rc<NUM>/
+
+You can find the KEYS file here:
+* https://dist.apache.org/repos/dist/dev/incubator/iceberg/KEYS
+
+Convenience binary artifacts are staged in Nexus. The Maven repository URL is:
+* https://repository.apache.org/content/repositories/orgapacheiceberg-<ID>/
+
+This release includes important changes that I should have summarized here, but I'm lazy.
+
+Please download, verify, and test.
+
+Please vote in the next 72 hours.
+
+[ ] +1 Release this as Apache Parquet <VERSION>
+[ ] +0
+[ ] -1 Do not release this because...
+</code></pre></div>
</div>
diff --git a/index.html b/index.html
index 7d9cbc0..83db0f6 100644
--- a/index.html
+++ b/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="community/">Information</a>
+ <a href="community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
@@ -389,5 +413,5 @@
<!--
MkDocs version : 1.0.4
-Build Date UTC : 2019-10-09 23:05:15
+Build Date UTC : 2019-10-18 17:52:20
-->
diff --git a/partitioning/index.html b/partitioning/index.html
index 1a1717d..10312d8 100644
--- a/partitioning/index.html
+++ b/partitioning/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/performance/index.html b/performance/index.html
index 838b473..5a5a3d2 100644
--- a/performance/index.html
+++ b/performance/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/presto/index.html b/presto/index.html
index df2b756..393299d 100644
--- a/presto/index.html
+++ b/presto/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/partitioning/index.html b/python-api-intro/index.html
similarity index 61%
copy from partitioning/index.html
copy to python-api-intro/index.html
index 1a1717d..b4615c9 100644
--- a/partitioning/index.html
+++ b/python-api-intro/index.html
@@ -11,7 +11,7 @@
<link rel="../img/favicon.ico">
- <title>Partitioning - Apache Iceberg (incubating)</title>
+ <title>API intro - Apache Iceberg (incubating)</title>
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,12 +93,18 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
- <li class="dropdown active">
+ <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">User docs <b class="caret"></b></a>
<ul class="dropdown-menu">
@@ -109,8 +115,8 @@
-<li class="active">
- <a href="./">Partitioning</a>
+<li >
+ <a href="../partitioning/">Partitioning</a>
</li>
@@ -206,7 +212,7 @@
- <li class="dropdown">
+ <li class="dropdown active">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Python <b class="caret"></b></a>
<ul class="dropdown-menu">
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li class="active">
+ <a href="./">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
@@ -251,12 +275,12 @@
<ul class="nav navbar-nav navbar-right">
<li >
- <a rel="prev" href="../schemas/">
+ <a rel="prev" href="../python-quickstart/">
<i class="fas fa-arrow-left"></i> Previous
</a>
</li>
<li >
- <a rel="next" href="../configuration/">
+ <a rel="next" href="../python-feature-support/">
Next <i class="fas fa-arrow-right"></i>
</a>
</li>
@@ -270,13 +294,15 @@
<div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
<ul class="nav bs-sidenav">
- <li class="first-level active"><a href="#what-is-partitioning">What is partitioning?</a></li>
- <li class="first-level "><a href="#what-does-iceberg-do-differently">What does Iceberg do differently?</a></li>
- <li class="second-level"><a href="#partitioning-in-hive">Partitioning in Hive</a></li>
+ <li class="first-level active"><a href="#iceberg-python-api">Iceberg Python API</a></li>
+ <li class="second-level"><a href="#tables">Tables</a></li>
- <li class="second-level"><a href="#problems-with-hive-partitioning">Problems with Hive partitioning</a></li>
+ <li class="third-level"><a href="#scanning">Scanning</a></li>
+ <li class="second-level"><a href="#types">Types</a></li>
- <li class="second-level"><a href="#icebergs-hidden-partitioning">Iceberg's hidden partitioning</a></li>
+ <li class="third-level"><a href="#primitives">Primitives</a></li>
+ <li class="third-level"><a href="#nested-types">Nested types</a></li>
+ <li class="second-level"><a href="#expressions">Expressions</a></li>
</ul>
</div></div>
@@ -299,58 +325,104 @@
- limitations under the License.
-->
-<h2 id="what-is-partitioning">What is partitioning?<a class="headerlink" href="#what-is-partitioning" title="Permanent link">¶</a></h2>
-<p>Partitioning is a way to make queries faster by grouping similar rows together when writing.</p>
-<p>For example, queries for log entries from a <code>logs</code> table would usually include a time range, like this query for logs between 10 and 12 AM:</p>
-<pre><code class="sql">SELECT level, message FROM logs
-WHERE event_time BETWEEN '2018-12-01 10:00:00' AND '2018-12-01 12:00:00'
-</code></pre>
-
-<p>Configuring the <code>logs</code> table to partition by the date of <code>event_time</code> will group log events into files with the same event date. Iceberg keeps track of that date and will use it to skip files for other dates that don’t have useful data.</p>
-<p>Iceberg can partition timestamps by year, month, day, and hour granularity. It can also use a categorical column, like <code>level</code> in this logs example, to store rows together and speed up queries.</p>
-<h2 id="what-does-iceberg-do-differently">What does Iceberg do differently?<a class="headerlink" href="#what-does-iceberg-do-differently" title="Permanent link">¶</a></h2>
-<p>Other tables formats like Hive support partitioning, but Iceberg supports <em>hidden partitioning</em>.</p>
+<h1 id="iceberg-python-api">Iceberg Python API<a class="headerlink" href="#iceberg-python-api" title="Permanent link">¶</a></h1>
+<p>Much of the python api conforms to the java api. You can get more info about the java api <a href="https://iceberg.apache.org/api/">here</a>.</p>
+<h2 id="tables">Tables<a class="headerlink" href="#tables" title="Permanent link">¶</a></h2>
+<p>The Table interface provides access to table metadata</p>
<ul>
-<li>Iceberg handles the tedious and error-prone task of producing partition values for rows in a table.</li>
-<li>Iceberg avoids reading unnecessary partitions automatically. Consumers don’t need to know how the table is partitioned and add extra filters to their queries.</li>
-<li>Iceberg partition layouts can evolve as needed.</li>
+<li>schema returns the current table <code>Schema</code></li>
+<li>spec returns the current table <code>PartitonSpec</code></li>
+<li>properties returns a map of key-value <code>TableProperties</code></li>
+<li>currentSnapshot returns the current table <code>Snapshot</code></li>
+<li>snapshots returns all valid snapshots for the table</li>
+<li>snapshot(id) returns a specific snapshot by ID</li>
+<li>location returns the table’s base location</li>
</ul>
-<h3 id="partitioning-in-hive">Partitioning in Hive<a class="headerlink" href="#partitioning-in-hive" title="Permanent link">¶</a></h3>
-<p>To demonstrate the difference, consider how Hive would handle a <code>logs</code> table.</p>
-<p>In Hive, partitions are explicit and appear as a column, so the <code>logs</code> table would have a column called <code>event_date</code>. When writing, an insert needs to supply the data for the <code>event_date</code> column:</p>
-<pre><code class="sql">INSERT INTO logs PARTITION (event_date)
- SELECT level, message, event_time, format_time(event_time, 'YYYY-MM-dd')
- FROM unstructured_log_source
+<p>Tables also provide refresh to update the table to the latest version.</p>
+<h3 id="scanning">Scanning<a class="headerlink" href="#scanning" title="Permanent link">¶</a></h3>
+<p>Iceberg table scans start by creating a <code>TableScan</code> object with <code>newScan</code>.</p>
+<pre><code class="python">scan = table.new_scan();
+</code></pre>
+
+<p>To configure a scan, call filter and select on the <code>TableScan</code> to get a new <code>TableScan</code> with those changes.</p>
+<pre><code class="python">filtered_scan = scan.filter(Expressions.equal("id", 5))
+</code></pre>
+
+<p>String expressions can also be passed to the filter method.</p>
+<pre><code class="python">filtered_scan = scan.filter("id=5")
</code></pre>
-<p>Similarly, queries that search through the <code>logs</code> table must have an <code>event_date</code> filter in addition to an <code>event_time</code> filter.</p>
-<pre><code class="sql">SELECT level, count(1) as count FROM logs
-WHERE event_time BETWEEN '2018-12-01 10:00:00' AND '2018-12-01 12:00:00'
- AND event_date = '2018-12-01'
+<p><code>Schema</code> projections can be applied against a <code>TableScan</code> by passing a list of column names.</p>
+<pre><code class="python">filtered_scan = scan.select(["col_1", "col_2", "col_3"])
</code></pre>
-<p>If the <code>event_date</code> filter were missing, Hive would scan through every file in the table because it doesn’t know that the <code>event_time</code> column is related to the <code>event_date</code> column.</p>
-<h3 id="problems-with-hive-partitioning">Problems with Hive partitioning<a class="headerlink" href="#problems-with-hive-partitioning" title="Permanent link">¶</a></h3>
-<p>Hive must be given partition values. In the logs example, it doesn’t know the relationship between <code>event_time</code> and <code>event_date</code>.</p>
-<p>This leads to several problems:</p>
+<p>Because some data types cannot be read using the python library, a convenience method for excluding columns from projection is provided.</p>
+<pre><code class="python">filtered_scan = scan.select_except(["unsupported_col_1", "unsupported_col_2"])
+</code></pre>
+
+<p>Calls to configuration methods create a new <code>TableScan</code> so that each <code>TableScan</code> is immutable.</p>
+<p>When a scan is configured, <code>planFiles</code>, <code>planTasks</code>, and <code>Schema</code> are used to return files, tasks, and the read projection.</p>
+<pre><code class="python">scan = table.new_scan() \
+ .filter("id=5") \
+ .select(["id", "data"])
+
+projection = scan.schema
+for task in scan.plan_tasks():
+ print(task)
+</code></pre>
+
+<h2 id="types">Types<a class="headerlink" href="#types" title="Permanent link">¶</a></h2>
+<p>Iceberg data types are located in <code>iceberg.api.types.types</code></p>
+<h3 id="primitives">Primitives<a class="headerlink" href="#primitives" title="Permanent link">¶</a></h3>
+<p>Primitive type instances are available from static methods in each type class. Types without parameters use <code>get</code>, and types like <code>DecimalType</code> use factory methods:</p>
+<pre><code class="python">IntegerType.get() # int
+DoubleType.get() # double
+DecimalType.of(9, 2) # decimal(9, 2)
+</code></pre>
+
+<h3 id="nested-types">Nested types<a class="headerlink" href="#nested-types" title="Permanent link">¶</a></h3>
+<p>Structs, maps, and lists are created using factory methods in type classes.</p>
+<p>Like struct fields, map keys or values and list elements are tracked as nested fields. Nested fields track <a href="https://iceberg.apache.org/evolution/#correctness">field IDs</a> and nullability.</p>
+<p>Struct fields are created using <code>NestedField.optional</code> or <code>NestedField.required</code>. Map value and list element nullability is set in the map and list factory methods.</p>
+<pre><code class="python"># struct<1 id: int, 2 data: optional string>
+struct = StructType.of([NestedField.required(1, "id", IntegerType.get()),
+ NestedField.optional(2, "data", StringType.get()])
+ )
+</code></pre>
+
+<pre><code class="python"># map<1 key: int, 2 value: optional string>
+map_var = MapType.of_optional(1, IntegerType.get(),
+ 2, StringType.get())
+</code></pre>
+
+<pre><code class="python"># array<1 element: int>
+list_var = ListType.of_required(1, IntegerType.get());
+</code></pre>
+
+<h2 id="expressions">Expressions<a class="headerlink" href="#expressions" title="Permanent link">¶</a></h2>
+<p>Iceberg’s <code>Expressions</code> are used to configure table scans. To create Expressions<code>, use the factory methods in</code>Expressions`.</p>
+<p>Supported <code>Predicate</code> expressions are:</p>
<ul>
-<li>Hive can’t validate partition values – it is up to the writer to produce the correct value<ul>
-<li>Using the wrong format, <code>2018-12-01</code> instead of <code>20181201</code>, produces silently incorrect results, not query failures</li>
-<li>Using the wrong source column, like <code>processing_time</code>, or time zone also causes incorrect results, not failures</li>
-</ul>
-</li>
-<li>It is up to the user to write queries correctly<ul>
-<li>Using the wrong format also leads to silently incorrect results</li>
-<li>Users that don’t understand a table’s physical layout get needlessly slow queries – Hive can’t translate filters automatically</li>
+<li><code>is_null</code></li>
+<li><code>not_null</code></li>
+<li><code>equal</code></li>
+<li><code>not_equal</code></li>
+<li><code>less_than</code></li>
+<li><code>less_than_or_equal</code></li>
+<li><code>greater_than</code></li>
+<li><code>greater_than_or_equal</code></li>
</ul>
-</li>
-<li>Working queries are tied to the table’s partitioning scheme, so partitioning configuration cannot be changed without breaking queries</li>
+<p>Supported expression <code>Operations</code>are:</p>
+<ul>
+<li><code>and</code></li>
+<li><code>or</code></li>
+<li><code>not</code></li>
</ul>
-<h3 id="icebergs-hidden-partitioning">Iceberg’s hidden partitioning<a class="headerlink" href="#icebergs-hidden-partitioning" title="Permanent link">¶</a></h3>
-<p>Iceberg produces partition values by taking a column value and optionally transforming it. Iceberg is responsible for converting <code>event_time</code> into <code>event_date</code>, and keeps track of the relationship.</p>
-<p>Table partitioning is configured using these relationships. The <code>logs</code> table would be partitioned by <code>date(event_time)</code> and <code>level</code>.</p>
-<p>Because Iceberg doesn’t require user-maintained partition columns, it can hide partitioning. Partition values are produced correctly every time and always used to speed up queries, when possible. Producers and consumers wouldn’t even see <code>event_date</code>.</p>
-<p>Most importantly, queries no longer depend on a table’s physical layout. With a separation between physical and logical, Iceberg tables can evolve partition schemes over time as data volume changes. Misconfigured tables can be fixed without an expensive migration.</p></div>
+<p>Constant expressions are:</p>
+<ul>
+<li><code>always_true</code></li>
+<li><code>always_false</code></li>
+</ul></div>
</div>
diff --git a/schemas/index.html b/python-feature-support/index.html
similarity index 67%
copy from schemas/index.html
copy to python-feature-support/index.html
index 393bec8..519f41b 100644
--- a/schemas/index.html
+++ b/python-feature-support/index.html
@@ -11,7 +11,7 @@
<link rel="../img/favicon.ico">
- <title>Schemas - Apache Iceberg (incubating)</title>
+ <title>Feature Support - Apache Iceberg (incubating)</title>
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,18 +93,24 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
- <li class="dropdown active">
+ <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">User docs <b class="caret"></b></a>
<ul class="dropdown-menu">
-<li class="active">
- <a href="./">Schemas</a>
+<li >
+ <a href="../schemas/">Schemas</a>
</li>
@@ -206,7 +212,7 @@
- <li class="dropdown">
+ <li class="dropdown active">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Python <b class="caret"></b></a>
<ul class="dropdown-menu">
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li class="active">
+ <a href="./">Feature Support</a>
+</li>
+
+
</ul>
</li>
@@ -251,12 +275,12 @@
<ul class="nav navbar-nav navbar-right">
<li >
- <a rel="prev" href="../disclaimer/">
+ <a rel="prev" href="../python-api-intro/">
<i class="fas fa-arrow-left"></i> Previous
</a>
</li>
<li >
- <a rel="next" href="../partitioning/">
+ <a rel="next" href="../terms/">
Next <i class="fas fa-arrow-right"></i>
</a>
</li>
@@ -270,7 +294,12 @@
<div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
<ul class="nav bs-sidenav">
- <li class="first-level active"><a href="#schemas">Schemas</a></li>
+ <li class="first-level active"><a href="#feature-support">Feature Support</a></li>
+ <li class="second-level"><a href="#feature-comparison">Feature Comparison</a></li>
+
+ <li class="third-level"><a href="#metadata">Metadata</a></li>
+ <li class="third-level"><a href="#read-support">Read Support</a></li>
+ <li class="third-level"><a href="#write-support">Write Support</a></li>
</ul>
</div></div>
<div class="col-md-9" role="main">
@@ -292,100 +321,163 @@
- limitations under the License.
-->
-<h1 id="schemas">Schemas<a class="headerlink" href="#schemas" title="Permanent link">¶</a></h1>
-<p>Iceberg tables support the following types:</p>
+<h1 id="feature-support">Feature Support<a class="headerlink" href="#feature-support" title="Permanent link">¶</a></h1>
+<p>The goal is that the python library will provide a functional, performant subset of the java library. The initial focus has been on reading table metadata as well as providing the capability to both plan and execute a scan.</p>
+<h2 id="feature-comparison">Feature Comparison<a class="headerlink" href="#feature-comparison" title="Permanent link">¶</a></h2>
+<h3 id="metadata">Metadata<a class="headerlink" href="#metadata" title="Permanent link">¶</a></h3>
<table>
<thead>
<tr>
-<th>Type</th>
-<th>Description</th>
-<th>Notes</th>
+<th align="left">Operation</th>
+<th align="center">Java</th>
+<th align="center">Python</th>
</tr>
</thead>
<tbody>
<tr>
-<td><strong><code>boolean</code></strong></td>
-<td>True or false</td>
-<td></td>
+<td align="left">Get Schema</td>
+<td align="center">X</td>
+<td align="center">X</td>
</tr>
<tr>
-<td><strong><code>int</code></strong></td>
-<td>32-bit signed integers</td>
-<td>Can promote to <code>long</code></td>
+<td align="left">Get Snapshots</td>
+<td align="center">X</td>
+<td align="center">X</td>
</tr>
<tr>
-<td><strong><code>long</code></strong></td>
-<td>64-bit signed integers</td>
-<td></td>
+<td align="left">Plan Scan</td>
+<td align="center">X</td>
+<td align="center">X</td>
</tr>
<tr>
-<td><strong><code>float</code></strong></td>
-<td><a href="https://en.wikipedia.org/wiki/IEEE_754">32-bit IEEE 754</a> floating point</td>
-<td>Can promote to <code>double</code></td>
+<td align="left">Plan Scan for Snapshot</td>
+<td align="center">X</td>
+<td align="center">X</td>
</tr>
<tr>
-<td><strong><code>double</code></strong></td>
-<td><a href="https://en.wikipedia.org/wiki/IEEE_754">64-bit IEEE 754</a> floating point</td>
-<td></td>
+<td align="left">Update Current Snapshot</td>
+<td align="center">X</td>
+<td align="center"></td>
</tr>
<tr>
-<td><strong><code>decimal(P,S)</code></strong></td>
-<td>Fixed-point decimal; precision P, scale S</td>
-<td>Scale is fixed and precision must be 38 or less</td>
+<td align="left">Set Table Properties</td>
+<td align="center">X</td>
+<td align="center"></td>
</tr>
<tr>
-<td><strong><code>date</code></strong></td>
-<td>Calendar date without timezone or time</td>
-<td></td>
+<td align="left">Create Table</td>
+<td align="center">X</td>
+<td align="center"></td>
</tr>
<tr>
-<td><strong><code>time</code></strong></td>
-<td>Time of day without date, timezone</td>
-<td>Stored as microseconds</td>
+<td align="left">Drop Table</td>
+<td align="center">X</td>
+<td align="center"></td>
</tr>
<tr>
-<td><strong><code>timestamp</code></strong></td>
-<td>Timestamp without timezone</td>
-<td>Stored as microseconds</td>
+<td align="left">Alter Table</td>
+<td align="center">X</td>
+<td align="center"></td>
</tr>
+</tbody>
+</table>
+<h3 id="read-support">Read Support<a class="headerlink" href="#read-support" title="Permanent link">¶</a></h3>
+<p>Pyarrow is used for reading parquet files, so read support is limited to what is currently supported in the pyarrow.parquet package.</p>
+<p>There is a <a href="https://issues.apache.org/jira/browse/ARROW-1644">gap</a> in the current implementation that nested fields are only supported if they are:</p>
+<blockquote>
+<p>all repeated all repeated (lists) or all groups (structs) vs. a mix (structs and lists/repeated fields) then we can read and write them(otherwise we cannot)</p>
+</blockquote>
+<h4 id="primitive-types">Primitive Types<a class="headerlink" href="#primitive-types" title="Permanent link">¶</a></h4>
+<table>
+<thead>
+<tr>
+<th align="left">Data Type</th>
+<th align="center">Java</th>
+<th align="center">Python</th>
+</tr>
+</thead>
+<tbody>
<tr>
-<td><strong><code>timestamptz</code></strong></td>
-<td>Timestamp with timezone</td>
-<td>Stored as microseconds</td>
+<td align="left">BooleanType</td>
+<td align="center">X</td>
+<td align="center">X</td>
</tr>
<tr>
-<td><strong><code>string</code></strong></td>
-<td>Arbitrary-length character sequences</td>
-<td>Encoded with UTF-8</td>
+<td align="left">DateType</td>
+<td align="center">X</td>
+<td align="center">X</td>
</tr>
<tr>
-<td><strong><code>fixed(L)</code></strong></td>
-<td>Fixed-length byte array of length L</td>
-<td></td>
+<td align="left">DecimalType</td>
+<td align="center">X</td>
+<td align="center">X</td>
+</tr>
+<tr>
+<td align="left">FloatType</td>
+<td align="center">X</td>
+<td align="center">X</td>
+</tr>
+<tr>
+<td align="left">IntegerType</td>
+<td align="center">X</td>
+<td align="center">X</td>
+</tr>
+<tr>
+<td align="left">LongType</td>
+<td align="center">X</td>
+<td align="center">X</td>
+</tr>
+<tr>
+<td align="left">TimeType</td>
+<td align="center">X</td>
+<td align="center">X</td>
+</tr>
+<tr>
+<td align="left">TimestampType</td>
+<td align="center">X</td>
+<td align="center">X</td>
+</tr>
+</tbody>
+</table>
+<h4 id="nested-types">Nested Types<a class="headerlink" href="#nested-types" title="Permanent link">¶</a></h4>
+<table>
+<thead>
+<tr>
+<th align="left">Data Type</th>
+<th align="center">Java</th>
+<th align="center">Python</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left">ListType of primitives</td>
+<td align="center">X</td>
+<td align="center">X</td>
</tr>
<tr>
-<td><strong><code>binary</code></strong></td>
-<td>Arbitrary-length byte array</td>
-<td></td>
+<td align="left">MapType of primitives</td>
+<td align="center">X</td>
+<td align="center">X</td>
</tr>
<tr>
-<td><strong><code>struct<...></code></strong></td>
-<td>A record with named fields of any data type</td>
-<td></td>
+<td align="left">StructType of primitives</td>
+<td align="center">X</td>
+<td align="center">X</td>
</tr>
<tr>
-<td><strong><code>list<E></code></strong></td>
-<td>A list with elements of any data type</td>
-<td></td>
+<td align="left">ListType of Nested Types</td>
+<td align="center">X</td>
+<td align="center"></td>
</tr>
<tr>
-<td><strong><code>map<K, V></code></strong></td>
-<td>A map with keys and values of any data type</td>
-<td></td>
+<td align="left">MapType of Nested Types</td>
+<td align="center">X</td>
+<td align="center"></td>
</tr>
</tbody>
</table>
-<p>Iceberg tracks each field in a table schema using an ID that is never reused in a table. See <a href="../evolution#correctness">correctness guarantees</a> for more information.</p></div>
+<h3 id="write-support">Write Support<a class="headerlink" href="#write-support" title="Permanent link">¶</a></h3>
+<p>The python client does not currently support write capability</p></div>
</div>
diff --git a/presto/index.html b/python-quickstart/index.html
similarity index 78%
copy from presto/index.html
copy to python-quickstart/index.html
index df2b756..698858a 100644
--- a/presto/index.html
+++ b/python-quickstart/index.html
@@ -11,7 +11,7 @@
<link rel="../img/favicon.ico">
- <title>Presto - Apache Iceberg (incubating)</title>
+ <title>Quickstart - Apache Iceberg (incubating)</title>
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,12 +93,18 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
- <li class="dropdown active">
+ <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">User docs <b class="caret"></b></a>
<ul class="dropdown-menu">
@@ -157,8 +163,8 @@
-<li class="active">
- <a href="./">Presto</a>
+<li >
+ <a href="../presto/">Presto</a>
</li>
@@ -206,7 +212,7 @@
- <li class="dropdown">
+ <li class="dropdown active">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Python <b class="caret"></b></a>
<ul class="dropdown-menu">
@@ -216,6 +222,24 @@
</li>
+
+<li class="active">
+ <a href="./">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
@@ -251,12 +275,12 @@
<ul class="nav navbar-nav navbar-right">
<li >
- <a rel="prev" href="../spark/">
+ <a rel="prev" href="../custom-catalog/">
<i class="fas fa-arrow-left"></i> Previous
</a>
</li>
<li >
- <a rel="next" href="../api-quickstart/">
+ <a rel="next" href="../python-api-intro/">
Next <i class="fas fa-arrow-right"></i>
</a>
</li>
@@ -270,7 +294,14 @@
<div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
<ul class="nav bs-sidenav">
- <li class="first-level active"><a href="#presto">Presto</a></li>
+ <li class="first-level active"><a href="#getting-started">Getting Started</a></li>
+ <li class="second-level"><a href="#installation">Installation</a></li>
+
+ <li class="second-level"><a href="#testing">Testing</a></li>
+
+ <li class="first-level "><a href="#examples">Examples</a></li>
+ <li class="second-level"><a href="#inspect-table-metadata">Inspect Table Metadata</a></li>
+
</ul>
</div></div>
<div class="col-md-9" role="main">
@@ -292,8 +323,41 @@
- limitations under the License.
-->
-<h1 id="presto">Presto<a class="headerlink" href="#presto" title="Permanent link">¶</a></h1>
-<p>An Iceberg connector for Presto is available in <a href="https://github.com/prestosql/presto/pull/458">pull request #458 on prestosql/presto</a></p></div>
+<h1 id="getting-started">Getting Started<a class="headerlink" href="#getting-started" title="Permanent link">¶</a></h1>
+<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">¶</a></h2>
+<p>Iceberg python is currently in development, for development and testing purposes the best way to install the library is to perform the following steps:</p>
+<pre><code>git clone https://github.com/apache/incubator-iceberg.git
+cd incubator-iceberg/python
+pip install -e .
+</code></pre>
+
+<h2 id="testing">Testing<a class="headerlink" href="#testing" title="Permanent link">¶</a></h2>
+<p>Testing is done using tox. The config can be found in <code>tox.ini</code> within the python directory of the iceberg project.</p>
+<pre><code># simply run tox from within the python dir
+tox
+</code></pre>
+
+<h1 id="examples">Examples<a class="headerlink" href="#examples" title="Permanent link">¶</a></h1>
+<h2 id="inspect-table-metadata">Inspect Table Metadata<a class="headerlink" href="#inspect-table-metadata" title="Permanent link">¶</a></h2>
+<pre><code class="python">
+from iceberg.hive import HiveTables
+
+# instantiate Hive Tables
+conf = {"hive.metastore.uris": 'thrift://{hms_host}:{hms_port}'}
+tables = HiveTables(conf)
+
+# load table
+tbl = tables.load("iceberg_db.iceberg_test_table")
+
+# inspect metadata
+print(tbl.schema())
+print(tbl.spec())
+print(tbl.location())
+
+# get table level record count
+from pprint import pprint
+pprint(int(tbl.current_snapshot().summary.get("total-records")))
+</code></pre></div>
</div>
diff --git a/reliability/index.html b/reliability/index.html
index 61f9724..1d00590 100644
--- a/reliability/index.html
+++ b/reliability/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/schemas/index.html b/schemas/index.html
index 393bec8..7a7fbf9 100644
--- a/schemas/index.html
+++ b/schemas/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
@@ -251,7 +275,7 @@
<ul class="nav navbar-nav navbar-right">
<li >
- <a rel="prev" href="../disclaimer/">
+ <a rel="prev" href="../how-to-release/">
<i class="fas fa-arrow-left"></i> Previous
</a>
</li>
diff --git a/sitemap.xml b/sitemap.xml
index 3091b20..7c699be 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,47 +2,52 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
+ <changefreq>daily</changefreq>
+ </url>
+ <url>
+ <loc>None</loc>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
@@ -52,17 +57,17 @@
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
@@ -72,12 +77,12 @@
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
@@ -87,7 +92,7 @@
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
@@ -97,12 +102,27 @@
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
+ <changefreq>daily</changefreq>
+ </url>
+ <url>
+ <loc>None</loc>
+ <lastmod>2019-10-18</lastmod>
+ <changefreq>daily</changefreq>
+ </url>
+ <url>
+ <loc>None</loc>
+ <lastmod>2019-10-18</lastmod>
+ <changefreq>daily</changefreq>
+ </url>
+ <url>
+ <loc>None</loc>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
- <lastmod>2019-10-09</lastmod>
+ <lastmod>2019-10-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
diff --git a/sitemap.xml.gz b/sitemap.xml.gz
index e9aae68..1c0802d 100644
Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ
diff --git a/snapshots/index.html b/snapshots/index.html
index 7c6e357..c6a7b61 100644
--- a/snapshots/index.html
+++ b/snapshots/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/spark/index.html b/spark/index.html
index 1cda878..a1eac5b 100644
--- a/spark/index.html
+++ b/spark/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/spec/index.html b/spec/index.html
index 804b61d..65ef350 100644
--- a/spec/index.html
+++ b/spec/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
diff --git a/terms/index.html b/terms/index.html
index 67cc9b2..67e71a8 100644
--- a/terms/index.html
+++ b/terms/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>
@@ -251,7 +275,7 @@
<ul class="nav navbar-nav navbar-right">
<li >
- <a rel="prev" href="../custom-catalog/">
+ <a rel="prev" href="../python-feature-support/">
<i class="fas fa-arrow-left"></i> Previous
</a>
</li>
diff --git a/why-iceberg/index.html b/why-iceberg/index.html
index 00d8fe2..63ed91f 100644
--- a/why-iceberg/index.html
+++ b/why-iceberg/index.html
@@ -78,12 +78,12 @@
<li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
- <a href="../community/">Information</a>
+ <a href="../community/">Community</a>
</li>
@@ -93,6 +93,12 @@
</li>
+
+<li >
+ <a href="../how-to-release/">How to Release</a>
+</li>
+
+
</ul>
</li>
@@ -216,6 +222,24 @@
</li>
+
+<li >
+ <a href="../python-quickstart/">Quickstart</a>
+</li>
+
+
+
+<li >
+ <a href="../python-api-intro/">API intro</a>
+</li>
+
+
+
+<li >
+ <a href="../python-feature-support/">Feature Support</a>
+</li>
+
+
</ul>
</li>