You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by ac...@apache.org on 2024/04/30 18:03:17 UTC
(kudu-site) branch asf-site updated: Publish commit(s) from site source repo: b7bf6b0 [blog] blogpost about auto-incrementing column in Kudu
This is an automated email from the ASF dual-hosted git repository.
achennaka pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/kudu-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 1be8fc31 Publish commit(s) from site source repo: b7bf6b0 [blog] blogpost about auto-incrementing column in Kudu
1be8fc31 is described below
commit 1be8fc311d5b424058425b502862aaa0ed0fbf74
Author: root <ro...@kudu-doc.vpc.cloudera.com>
AuthorDate: Tue Apr 30 10:59:23 2024 -0700
Publish commit(s) from site source repo:
b7bf6b0 [blog] blogpost about auto-incrementing column in Kudu
Site-Repo-Commit: b7bf6b03b01a7c8f561d9bd7ff132fc255b2209f
---
2016/02/26/apache-kudu-0-7-0-released.html | 4 +-
2016/03/10/apache-kudu-0-7-1-released.html | 4 +-
2016/03/20/weekly-update.html | 4 +-
2016/03/28/weekly-update.html | 4 +-
2016/04/04/weekly-update.html | 4 +-
2016/04/11/weekly-update.html | 4 +-
2016/04/12/apache-kudu-0-8-0-released.html | 4 +-
...json-apache-kudu-streamsets-data-collector.html | 4 +-
2016/04/18/weekly-update.html | 4 +-
2016/04/19/kudu-0-8-0-predicate-improvements.html | 4 +-
2016/04/25/weekly-update.html | 4 +-
2016/04/26/ycsb.html | 4 +-
2016/05/03/weekly-update.html | 4 +-
2016/05/09/weekly-update.html | 4 +-
2016/05/16/weekly-update.html | 4 +-
2016/05/23/weekly-update.html | 4 +-
2016/06/01/weekly-update.html | 4 +-
2016/06/02/no-default-partitioning.html | 4 +-
2016/06/06/weekly-update.html | 4 +-
2016/06/10/apache-kudu-0-9-0-released.html | 4 +-
2016/06/13/weekly-update.html | 4 +-
2016/06/17/raft-consensus-single-node.html | 4 +-
2016/06/21/weekly-update.html | 4 +-
2016/06/24/multi-master-1-0-0.html | 4 +-
2016/06/27/weekly-update.html | 4 +-
2016/07/01/apache-kudu-0-9-1-released.html | 4 +-
2016/07/11/weekly-update.html | 4 +-
2016/07/18/weekly-update.html | 4 +-
2016/07/25/asf-graduation.html | 4 +-
2016/07/26/weekly-update.html | 4 +-
2016/08/08/weekly-update.html | 4 +-
2016/08/16/weekly-update.html | 4 +-
2016/08/23/apache-kudu-0-10-0-released.html | 4 +-
2016/08/23/new-range-partitioning-features.html | 4 +-
2016/08/31/intro-flume-kudu-sink.html | 4 +-
2016/09/16/predicate-pushdown.html | 4 +-
2016/09/20/apache-kudu-1-0-0-released.html | 4 +-
2016/09/26/strata-nyc-kudu-talks.html | 4 +-
2016/10/11/weekly-update.html | 4 +-
2016/10/20/weekly-update.html | 4 +-
2016/11/01/weekly-update.html | 4 +-
2016/11/15/weekly-update.html | 4 +-
2017/01/20/apache-kudu-1-2-0-released.html | 4 +-
2017/03/20/apache-kudu-1-3-0-released.html | 4 +-
2017/04/19/apache-kudu-1-3-1-released.html | 4 +-
2017/06/13/apache-kudu-1-4-0-released.html | 4 +-
2017/09/08/apache-kudu-1-5-0-released.html | 4 +-
2017/09/18/kudu-consistency-pt1.html | 4 +-
2017/10/23/nosql-kudu-spanner-slides.html | 4 +-
2017/12/08/apache-kudu-1-6-0-released.html | 4 +-
2018/03/23/apache-kudu-1-7-0-released.html | 4 +-
2018/07/10/instrumentation-in-kudu.html | 4 +-
...getting-started-with-kudu-an-oreilly-title.html | 4 +-
2018/09/11/simplified-pipelines-with-kudu.html | 4 +-
.../26/index-skip-scan-optimization-in-kudu.html | 4 +-
2018/10/26/apache-kudu-1-8-0-released.html | 4 +-
2018/12/11/call-for-posts.html | 4 +-
...age-management-with-apache-kudu-and-impala.html | 4 +-
2019/03/15/apache-kudu-1-9-0-release.html | 4 +-
...esting-apache-kudu-applications-on-the-jvm.html | 4 +-
...-authorization-with-apache-kudu-and-impala.html | 4 +-
2019/04/30/location-awareness.html | 4 +-
2019/07/09/apache-kudu-1-10-0-release.html | 4 +-
2019/11/20/apache-kudu-1-10-1-release.html | 4 +-
2019/11/20/apache-kudu-1-11-1-release.html | 4 +-
2020/05/18/apache-kudu-1-12-0-release.html | 4 +-
.../30/building-near-real-time-big-data-lake.html | 4 +-
2020/08/11/fine-grained-authz-ranger.html | 4 +-
2020/09/21/apache-kudu-1-13-0-release.html | 4 +-
2021/01/15/bloom-filter-predicate.html | 4 +-
2021/01/28/apache-kudu-1-14-0-release.html | 4 +-
2021/06/22/apache-kudu-1-15-0-released.html | 4 +-
2022/06/17/apache-kudu-1-16-0-released.html | 4 +-
2023/09/07/apache-kudu-1-17-0-released.html | 4 +-
.../07/introducing-auto-incrementing-column.html | 227 ++++++++++----
blog/index.html | 59 ++--
blog/page/10/index.html | 46 +--
blog/page/11/index.html | 55 ++--
blog/page/12/index.html | 55 ++--
blog/page/13/index.html | 48 ++-
blog/page/14/index.html | 48 +--
blog/page/15/index.html | 25 +-
blog/page/2/index.html | 63 ++--
blog/page/3/index.html | 56 ++--
blog/page/4/index.html | 56 ++--
blog/page/5/index.html | 52 ++--
blog/page/6/index.html | 62 ++--
blog/page/7/index.html | 58 ++--
blog/page/8/index.html | 338 ++-------------------
blog/page/9/index.html | 338 +++++++++++++++++++--
feed.xml | 194 ++++++++++--
91 files changed, 1173 insertions(+), 903 deletions(-)
diff --git a/2016/02/26/apache-kudu-0-7-0-released.html b/2016/02/26/apache-kudu-0-7-0-released.html
index e457bb85..627e329f 100644
--- a/2016/02/26/apache-kudu-0-7-0-released.html
+++ b/2016/02/26/apache-kudu-0-7-0-released.html
@@ -151,6 +151,8 @@ part of the ASF Incubator, version 0.7.0!</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -179,8 +181,6 @@ part of the ASF Incubator, version 0.7.0!</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/03/10/apache-kudu-0-7-1-released.html b/2016/03/10/apache-kudu-0-7-1-released.html
index 66309c87..2a74dc74 100644
--- a/2016/03/10/apache-kudu-0-7-1-released.html
+++ b/2016/03/10/apache-kudu-0-7-1-released.html
@@ -150,6 +150,8 @@ bugs fixed in this release:
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -178,8 +180,6 @@ bugs fixed in this release:
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/03/20/weekly-update.html b/2016/03/20/weekly-update.html
index f6184f37..7fa1d42b 100644
--- a/2016/03/20/weekly-update.html
+++ b/2016/03/20/weekly-update.html
@@ -210,6 +210,8 @@ at the <a href="http://www.meetup.com/Rust-Bay-Area/events/229107276/">Rust Bay
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -238,8 +240,6 @@ at the <a href="http://www.meetup.com/Rust-Bay-Area/events/229107276/">Rust Bay
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/03/28/weekly-update.html b/2016/03/28/weekly-update.html
index 518772fb..c8c91a8f 100644
--- a/2016/03/28/weekly-update.html
+++ b/2016/03/28/weekly-update.html
@@ -201,6 +201,8 @@ in San Jose. The conference will feature two talks on Kudu:</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -229,8 +231,6 @@ in San Jose. The conference will feature two talks on Kudu:</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/04/04/weekly-update.html b/2016/04/04/weekly-update.html
index 1e68e296..7a20b49d 100644
--- a/2016/04/04/weekly-update.html
+++ b/2016/04/04/weekly-update.html
@@ -220,6 +220,8 @@ on Friday, April 8th.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -248,8 +250,6 @@ on Friday, April 8th.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/04/11/weekly-update.html b/2016/04/11/weekly-update.html
index a354b67b..f5fbbff9 100644
--- a/2016/04/11/weekly-update.html
+++ b/2016/04/11/weekly-update.html
@@ -220,6 +220,8 @@ please pipe up on the mailing list.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -248,8 +250,6 @@ please pipe up on the mailing list.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/04/12/apache-kudu-0-8-0-released.html b/2016/04/12/apache-kudu-0-8-0-released.html
index 6c51b745..7b2eee87 100644
--- a/2016/04/12/apache-kudu-0-8-0-released.html
+++ b/2016/04/12/apache-kudu-0-8-0-released.html
@@ -141,6 +141,8 @@ client, plus many other improvements and bug fixes.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -169,8 +171,6 @@ client, plus many other improvements and bug fixes.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/04/14/ingesting-json-apache-kudu-streamsets-data-collector.html b/2016/04/14/ingesting-json-apache-kudu-streamsets-data-collector.html
index 7ec1b54c..8e44faaf 100644
--- a/2016/04/14/ingesting-json-apache-kudu-streamsets-data-collector.html
+++ b/2016/04/14/ingesting-json-apache-kudu-streamsets-data-collector.html
@@ -164,6 +164,8 @@ kernel drivers in C to web front ends in JavaScript.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -192,8 +194,6 @@ kernel drivers in C to web front ends in JavaScript.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/04/18/weekly-update.html b/2016/04/18/weekly-update.html
index 8a2fb1d1..7840d75a 100644
--- a/2016/04/18/weekly-update.html
+++ b/2016/04/18/weekly-update.html
@@ -218,6 +218,8 @@ Data Collector</a>.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -246,8 +248,6 @@ Data Collector</a>.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/04/19/kudu-0-8-0-predicate-improvements.html b/2016/04/19/kudu-0-8-0-predicate-improvements.html
index eb12fc28..6acad559 100644
--- a/2016/04/19/kudu-0-8-0-predicate-improvements.html
+++ b/2016/04/19/kudu-0-8-0-predicate-improvements.html
@@ -198,6 +198,8 @@ where to start, consider adding a new predicate type; for example the <code clas
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -226,8 +228,6 @@ where to start, consider adding a new predicate type; for example the <code clas
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/04/25/weekly-update.html b/2016/04/25/weekly-update.html
index 36615fd8..43638037 100644
--- a/2016/04/25/weekly-update.html
+++ b/2016/04/25/weekly-update.html
@@ -217,6 +217,8 @@ Kudu 0.8</a>.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -245,8 +247,6 @@ Kudu 0.8</a>.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/04/26/ycsb.html b/2016/04/26/ycsb.html
index 8c0ae7d5..2b38fba7 100644
--- a/2016/04/26/ycsb.html
+++ b/2016/04/26/ycsb.html
@@ -426,6 +426,8 @@ for each column:
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -454,8 +456,6 @@ for each column:
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/05/03/weekly-update.html b/2016/05/03/weekly-update.html
index 63f901bd..a8eb7975 100644
--- a/2016/05/03/weekly-update.html
+++ b/2016/05/03/weekly-update.html
@@ -192,6 +192,8 @@ list of conferenace sessions and meetups near you.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -220,8 +222,6 @@ list of conferenace sessions and meetups near you.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/05/09/weekly-update.html b/2016/05/09/weekly-update.html
index a504c445..e53aa499 100644
--- a/2016/05/09/weekly-update.html
+++ b/2016/05/09/weekly-update.html
@@ -182,6 +182,8 @@ on May 10.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -210,8 +212,6 @@ on May 10.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/05/16/weekly-update.html b/2016/05/16/weekly-update.html
index 09fa76e2..f46e8ed8 100644
--- a/2016/05/16/weekly-update.html
+++ b/2016/05/16/weekly-update.html
@@ -217,6 +217,8 @@ meetup.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -245,8 +247,6 @@ meetup.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/05/23/weekly-update.html b/2016/05/23/weekly-update.html
index 8f4fbcf5..d2b4d053 100644
--- a/2016/05/23/weekly-update.html
+++ b/2016/05/23/weekly-update.html
@@ -206,6 +206,8 @@ Cloudera User Group</a>.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -234,8 +236,6 @@ Cloudera User Group</a>.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/06/01/weekly-update.html b/2016/06/01/weekly-update.html
index 2902bd15..78f80cc7 100644
--- a/2016/06/01/weekly-update.html
+++ b/2016/06/01/weekly-update.html
@@ -172,6 +172,8 @@ hadoop-common test jar. This solved build issues while also removing a nasty dep
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -200,8 +202,6 @@ hadoop-common test jar. This solved build issues while also removing a nasty dep
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/06/02/no-default-partitioning.html b/2016/06/02/no-default-partitioning.html
index 4d4018b6..23aa0a90 100644
--- a/2016/06/02/no-default-partitioning.html
+++ b/2016/06/02/no-default-partitioning.html
@@ -213,6 +213,8 @@ clause is now required:</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -241,8 +243,6 @@ clause is now required:</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/06/06/weekly-update.html b/2016/06/06/weekly-update.html
index 4a1139e3..4ccec527 100644
--- a/2016/06/06/weekly-update.html
+++ b/2016/06/06/weekly-update.html
@@ -167,6 +167,8 @@ patches in for the <a href="https://gerrit.cloudera.org/#/c/2642/">Replay Cache<
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -195,8 +197,6 @@ patches in for the <a href="https://gerrit.cloudera.org/#/c/2642/">Replay Cache<
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/06/10/apache-kudu-0-9-0-released.html b/2016/06/10/apache-kudu-0-9-0-released.html
index 3fcc4b0d..fdb23cc7 100644
--- a/2016/06/10/apache-kudu-0-9-0-released.html
+++ b/2016/06/10/apache-kudu-0-9-0-released.html
@@ -142,6 +142,8 @@ the specification of a partitioning scheme for new tables.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -170,8 +172,6 @@ the specification of a partitioning scheme for new tables.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/06/13/weekly-update.html b/2016/06/13/weekly-update.html
index 562448b9..ed8d252c 100644
--- a/2016/06/13/weekly-update.html
+++ b/2016/06/13/weekly-update.html
@@ -175,6 +175,8 @@ removal happening in this <a href="https://gerrit.cloudera.org/#/c/3350/">patch<
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -203,8 +205,6 @@ removal happening in this <a href="https://gerrit.cloudera.org/#/c/3350/">patch<
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/06/17/raft-consensus-single-node.html b/2016/06/17/raft-consensus-single-node.html
index 6ac49a8a..bd13b4eb 100644
--- a/2016/06/17/raft-consensus-single-node.html
+++ b/2016/06/17/raft-consensus-single-node.html
@@ -217,6 +217,8 @@ dissertation, which you can find linked from the above web site.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -245,8 +247,6 @@ dissertation, which you can find linked from the above web site.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/06/21/weekly-update.html b/2016/06/21/weekly-update.html
index 6271afab..45d22fcf 100644
--- a/2016/06/21/weekly-update.html
+++ b/2016/06/21/weekly-update.html
@@ -168,6 +168,8 @@ a future post.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -196,8 +198,6 @@ a future post.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/06/24/multi-master-1-0-0.html b/2016/06/24/multi-master-1-0-0.html
index 8f481582..2b48e4e9 100644
--- a/2016/06/24/multi-master-1-0-0.html
+++ b/2016/06/24/multi-master-1-0-0.html
@@ -230,6 +230,8 @@ nothing has been implemented yet. Stay tuned!</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -258,8 +260,6 @@ nothing has been implemented yet. Stay tuned!</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/06/27/weekly-update.html b/2016/06/27/weekly-update.html
index b92bbe38..5c0add9d 100644
--- a/2016/06/27/weekly-update.html
+++ b/2016/06/27/weekly-update.html
@@ -232,6 +232,8 @@ a future post.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -260,8 +262,6 @@ a future post.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/07/01/apache-kudu-0-9-1-released.html b/2016/07/01/apache-kudu-0-9-1-released.html
index 97bcba4a..db8bd1c4 100644
--- a/2016/07/01/apache-kudu-0-9-1-released.html
+++ b/2016/07/01/apache-kudu-0-9-1-released.html
@@ -140,6 +140,8 @@ of 0.9.0 are encouraged to update to the new version at their earliest convenien
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -168,8 +170,6 @@ of 0.9.0 are encouraged to update to the new version at their earliest convenien
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/07/11/weekly-update.html b/2016/07/11/weekly-update.html
index e59020b7..1689ffbc 100644
--- a/2016/07/11/weekly-update.html
+++ b/2016/07/11/weekly-update.html
@@ -198,6 +198,8 @@ a future post.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -226,8 +228,6 @@ a future post.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/07/18/weekly-update.html b/2016/07/18/weekly-update.html
index f5b8d0f4..89c898f8 100644
--- a/2016/07/18/weekly-update.html
+++ b/2016/07/18/weekly-update.html
@@ -190,6 +190,8 @@ a future post.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -218,8 +220,6 @@ a future post.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/07/25/asf-graduation.html b/2016/07/25/asf-graduation.html
index 47d55495..1e8a68de 100644
--- a/2016/07/25/asf-graduation.html
+++ b/2016/07/25/asf-graduation.html
@@ -166,6 +166,8 @@ Established in 1999, the all-volunteer Foundation oversees more than 350 leading
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -194,8 +196,6 @@ Established in 1999, the all-volunteer Foundation oversees more than 350 leading
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/07/26/weekly-update.html b/2016/07/26/weekly-update.html
index dc7e6871..2f619ced 100644
--- a/2016/07/26/weekly-update.html
+++ b/2016/07/26/weekly-update.html
@@ -198,6 +198,8 @@ a future post.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -226,8 +228,6 @@ a future post.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/08/08/weekly-update.html b/2016/08/08/weekly-update.html
index e5a50f1a..c769f384 100644
--- a/2016/08/08/weekly-update.html
+++ b/2016/08/08/weekly-update.html
@@ -197,6 +197,8 @@ a future post.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -225,8 +227,6 @@ a future post.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/08/16/weekly-update.html b/2016/08/16/weekly-update.html
index 9a24ce31..b3f457fb 100644
--- a/2016/08/16/weekly-update.html
+++ b/2016/08/16/weekly-update.html
@@ -247,6 +247,8 @@ a future post.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -275,8 +277,6 @@ a future post.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/08/23/apache-kudu-0-10-0-released.html b/2016/08/23/apache-kudu-0-10-0-released.html
index bfe0fea5..fd480b7c 100644
--- a/2016/08/23/apache-kudu-0-10-0-released.html
+++ b/2016/08/23/apache-kudu-0-10-0-released.html
@@ -163,6 +163,8 @@ the release notes below.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -191,8 +193,6 @@ the release notes below.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/08/23/new-range-partitioning-features.html b/2016/08/23/new-range-partitioning-features.html
index 5907dfd7..1d01992f 100644
--- a/2016/08/23/new-range-partitioning-features.html
+++ b/2016/08/23/new-range-partitioning-features.html
@@ -223,6 +223,8 @@ be updated to 0.10.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -251,8 +253,6 @@ be updated to 0.10.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/08/31/intro-flume-kudu-sink.html b/2016/08/31/intro-flume-kudu-sink.html
index a38c8140..7114a794 100644
--- a/2016/08/31/intro-flume-kudu-sink.html
+++ b/2016/08/31/intro-flume-kudu-sink.html
@@ -425,6 +425,8 @@ is included in the Kudu distribution. You can follow him on Twitter at
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -453,8 +455,6 @@ is included in the Kudu distribution. You can follow him on Twitter at
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/09/16/predicate-pushdown.html b/2016/09/16/predicate-pushdown.html
index 8cc5ffcc..ba8fbb80 100644
--- a/2016/09/16/predicate-pushdown.html
+++ b/2016/09/16/predicate-pushdown.html
@@ -271,6 +271,8 @@ coordinators, and from the Cloudera community as a whole.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -299,8 +301,6 @@ coordinators, and from the Cloudera community as a whole.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/09/20/apache-kudu-1-0-0-released.html b/2016/09/20/apache-kudu-1-0-0-released.html
index 20c7eacf..5e021ece 100644
--- a/2016/09/20/apache-kudu-1-0-0-released.html
+++ b/2016/09/20/apache-kudu-1-0-0-released.html
@@ -166,6 +166,8 @@ repository.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -194,8 +196,6 @@ repository.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/09/26/strata-nyc-kudu-talks.html b/2016/09/26/strata-nyc-kudu-talks.html
index 06894c50..dbdb552b 100644
--- a/2016/09/26/strata-nyc-kudu-talks.html
+++ b/2016/09/26/strata-nyc-kudu-talks.html
@@ -187,6 +187,8 @@ Be sure to RSVP as spots are filling up fast.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -215,8 +217,6 @@ Be sure to RSVP as spots are filling up fast.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/10/11/weekly-update.html b/2016/10/11/weekly-update.html
index 98109a9e..f9e023d2 100644
--- a/2016/10/11/weekly-update.html
+++ b/2016/10/11/weekly-update.html
@@ -289,6 +289,8 @@ a future post.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -317,8 +319,6 @@ a future post.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/10/20/weekly-update.html b/2016/10/20/weekly-update.html
index 2c0fb790..710ba868 100644
--- a/2016/10/20/weekly-update.html
+++ b/2016/10/20/weekly-update.html
@@ -218,6 +218,8 @@ a future post.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -246,8 +248,6 @@ a future post.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/11/01/weekly-update.html b/2016/11/01/weekly-update.html
index 840ac727..c4e32467 100644
--- a/2016/11/01/weekly-update.html
+++ b/2016/11/01/weekly-update.html
@@ -216,6 +216,8 @@ a future post.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -244,8 +246,6 @@ a future post.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2016/11/15/weekly-update.html b/2016/11/15/weekly-update.html
index 1e60c5d7..6ed61674 100644
--- a/2016/11/15/weekly-update.html
+++ b/2016/11/15/weekly-update.html
@@ -237,6 +237,8 @@ a future post.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -265,8 +267,6 @@ a future post.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2017/01/20/apache-kudu-1-2-0-released.html b/2017/01/20/apache-kudu-1-2-0-released.html
index b2eb24a5..8020307a 100644
--- a/2017/01/20/apache-kudu-1-2-0-released.html
+++ b/2017/01/20/apache-kudu-1-2-0-released.html
@@ -162,6 +162,8 @@ repository.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -190,8 +192,6 @@ repository.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2017/03/20/apache-kudu-1-3-0-released.html b/2017/03/20/apache-kudu-1-3-0-released.html
index 2b66d916..8b658298 100644
--- a/2017/03/20/apache-kudu-1-3-0-released.html
+++ b/2017/03/20/apache-kudu-1-3-0-released.html
@@ -161,6 +161,8 @@ repository.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -189,8 +191,6 @@ repository.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2017/04/19/apache-kudu-1-3-1-released.html b/2017/04/19/apache-kudu-1-3-1-released.html
index a4c3868a..5d301b02 100644
--- a/2017/04/19/apache-kudu-1-3-1-released.html
+++ b/2017/04/19/apache-kudu-1-3-1-released.html
@@ -145,6 +145,8 @@ repository.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -173,8 +175,6 @@ repository.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2017/06/13/apache-kudu-1-4-0-released.html b/2017/06/13/apache-kudu-1-4-0-released.html
index 4ae798a3..ff49746e 100644
--- a/2017/06/13/apache-kudu-1-4-0-released.html
+++ b/2017/06/13/apache-kudu-1-4-0-released.html
@@ -161,6 +161,8 @@ repository.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -189,8 +191,6 @@ repository.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2017/09/08/apache-kudu-1-5-0-released.html b/2017/09/08/apache-kudu-1-5-0-released.html
index 3484bc7d..f01161e0 100644
--- a/2017/09/08/apache-kudu-1-5-0-released.html
+++ b/2017/09/08/apache-kudu-1-5-0-released.html
@@ -167,6 +167,8 @@ repository.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -195,8 +197,6 @@ repository.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2017/09/18/kudu-consistency-pt1.html b/2017/09/18/kudu-consistency-pt1.html
index 442d22e1..ad0e21b1 100644
--- a/2017/09/18/kudu-consistency-pt1.html
+++ b/2017/09/18/kudu-consistency-pt1.html
@@ -304,6 +304,8 @@ to enable the consistency semantics introduced in the previous section, includin
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -332,8 +334,6 @@ to enable the consistency semantics introduced in the previous section, includin
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2017/10/23/nosql-kudu-spanner-slides.html b/2017/10/23/nosql-kudu-spanner-slides.html
index c770607d..eaae0b86 100644
--- a/2017/10/23/nosql-kudu-spanner-slides.html
+++ b/2017/10/23/nosql-kudu-spanner-slides.html
@@ -185,6 +185,8 @@ below:</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -213,8 +215,6 @@ below:</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2017/12/08/apache-kudu-1-6-0-released.html b/2017/12/08/apache-kudu-1-6-0-released.html
index a704de75..b5c4a294 100644
--- a/2017/12/08/apache-kudu-1-6-0-released.html
+++ b/2017/12/08/apache-kudu-1-6-0-released.html
@@ -186,6 +186,8 @@ Maven repository and are
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -214,8 +216,6 @@ Maven repository and are
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2018/03/23/apache-kudu-1-7-0-released.html b/2018/03/23/apache-kudu-1-7-0-released.html
index a9ee5129..a21e538f 100644
--- a/2018/03/23/apache-kudu-1-7-0-released.html
+++ b/2018/03/23/apache-kudu-1-7-0-released.html
@@ -198,6 +198,8 @@ Maven repository and are
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -226,8 +228,6 @@ Maven repository and are
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2018/07/10/instrumentation-in-kudu.html b/2018/07/10/instrumentation-in-kudu.html
index 99c9fc0b..6da64365 100644
--- a/2018/07/10/instrumentation-in-kudu.html
+++ b/2018/07/10/instrumentation-in-kudu.html
@@ -160,6 +160,8 @@ below. My talk spans the first 34 minutes.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -188,8 +190,6 @@ below. My talk spans the first 34 minutes.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2018/08/06/getting-started-with-kudu-an-oreilly-title.html b/2018/08/06/getting-started-with-kudu-an-oreilly-title.html
index 2092b0d9..619a447c 100644
--- a/2018/08/06/getting-started-with-kudu-an-oreilly-title.html
+++ b/2018/08/06/getting-started-with-kudu-an-oreilly-title.html
@@ -185,6 +185,8 @@ communication, please use the user@ mailing list!</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -213,8 +215,6 @@ communication, please use the user@ mailing list!</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2018/09/11/simplified-pipelines-with-kudu.html b/2018/09/11/simplified-pipelines-with-kudu.html
index 2394cf5a..2386ea9d 100644
--- a/2018/09/11/simplified-pipelines-with-kudu.html
+++ b/2018/09/11/simplified-pipelines-with-kudu.html
@@ -168,6 +168,8 @@ the backend.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -196,8 +198,6 @@ the backend.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2018/09/26/index-skip-scan-optimization-in-kudu.html b/2018/09/26/index-skip-scan-optimization-in-kudu.html
index b4f7d666..0aee035e 100644
--- a/2018/09/26/index-skip-scan-optimization-in-kudu.html
+++ b/2018/09/26/index-skip-scan-optimization-in-kudu.html
@@ -232,6 +232,8 @@ Geo-replicated, near real-time, scalable data warehousing.” Proceedings of the
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -260,8 +262,6 @@ Geo-replicated, near real-time, scalable data warehousing.” Proceedings of the
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2018/10/26/apache-kudu-1-8-0-released.html b/2018/10/26/apache-kudu-1-8-0-released.html
index 3ed36f3e..6169e97a 100644
--- a/2018/10/26/apache-kudu-1-8-0-released.html
+++ b/2018/10/26/apache-kudu-1-8-0-released.html
@@ -167,6 +167,8 @@ available</a>.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -195,8 +197,6 @@ available</a>.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2018/12/11/call-for-posts.html b/2018/12/11/call-for-posts.html
index d16f18db..13594532 100644
--- a/2018/12/11/call-for-posts.html
+++ b/2018/12/11/call-for-posts.html
@@ -145,6 +145,8 @@ and post it to the blog for you.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -173,8 +175,6 @@ and post it to the blog for you.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2019/03/05/transparent-hierarchical-storage-management-with-apache-kudu-and-impala.html b/2019/03/05/transparent-hierarchical-storage-management-with-apache-kudu-and-impala.html
index 3b2089e5..265ebbfd 100644
--- a/2019/03/05/transparent-hierarchical-storage-management-with-apache-kudu-and-impala.html
+++ b/2019/03/05/transparent-hierarchical-storage-management-with-apache-kudu-and-impala.html
@@ -530,6 +530,8 @@ and year columns in the “SCAN HDFS” section.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -558,8 +560,6 @@ and year columns in the “SCAN HDFS” section.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2019/03/15/apache-kudu-1-9-0-release.html b/2019/03/15/apache-kudu-1-9-0-release.html
index 96ca557f..e1b8ec10 100644
--- a/2019/03/15/apache-kudu-1-9-0-release.html
+++ b/2019/03/15/apache-kudu-1-9-0-release.html
@@ -169,6 +169,8 @@ available</a>.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -197,8 +199,6 @@ available</a>.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html b/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html
index b0a4531b..929a5f50 100644
--- a/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html
+++ b/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html
@@ -347,6 +347,8 @@ tremendously.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -375,8 +377,6 @@ tremendously.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html b/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html
index 28ba4ed8..d1d030e5 100644
--- a/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html
+++ b/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html
@@ -253,6 +253,8 @@ Apache Sentry and Apache Ranger.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -281,8 +283,6 @@ Apache Sentry and Apache Ranger.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2019/04/30/location-awareness.html b/2019/04/30/location-awareness.html
index 283528bd..8037389f 100644
--- a/2019/04/30/location-awareness.html
+++ b/2019/04/30/location-awareness.html
@@ -494,6 +494,8 @@ request is tracked by KUDU-2604 in Apache JIRA, see
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -522,8 +524,6 @@ request is tracked by KUDU-2604 in Apache JIRA, see
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2019/07/09/apache-kudu-1-10-0-release.html b/2019/07/09/apache-kudu-1-10-0-release.html
index 886adf93..14b8eef2 100644
--- a/2019/07/09/apache-kudu-1-10-0-release.html
+++ b/2019/07/09/apache-kudu-1-10-0-release.html
@@ -193,6 +193,8 @@ available</a>.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -221,8 +223,6 @@ available</a>.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2019/11/20/apache-kudu-1-10-1-release.html b/2019/11/20/apache-kudu-1-10-1-release.html
index f4a4703c..3c289e20 100644
--- a/2019/11/20/apache-kudu-1-10-1-release.html
+++ b/2019/11/20/apache-kudu-1-10-1-release.html
@@ -156,6 +156,8 @@ available</a>.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -184,8 +186,6 @@ available</a>.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2019/11/20/apache-kudu-1-11-1-release.html b/2019/11/20/apache-kudu-1-11-1-release.html
index de4f9dfd..07f03600 100644
--- a/2019/11/20/apache-kudu-1-11-1-release.html
+++ b/2019/11/20/apache-kudu-1-11-1-release.html
@@ -189,6 +189,8 @@ available</a>.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -217,8 +219,6 @@ available</a>.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2020/05/18/apache-kudu-1-12-0-release.html b/2020/05/18/apache-kudu-1-12-0-release.html
index 0701fedd..aec387c0 100644
--- a/2020/05/18/apache-kudu-1-12-0-release.html
+++ b/2020/05/18/apache-kudu-1-12-0-release.html
@@ -195,6 +195,8 @@ available</a>.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -223,8 +225,6 @@ available</a>.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2020/07/30/building-near-real-time-big-data-lake.html b/2020/07/30/building-near-real-time-big-data-lake.html
index da6f2c8d..37ff7e45 100644
--- a/2020/07/30/building-near-real-time-big-data-lake.html
+++ b/2020/07/30/building-near-real-time-big-data-lake.html
@@ -391,6 +391,8 @@ amazing and you are building fantastic products!</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -419,8 +421,6 @@ amazing and you are building fantastic products!</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2020/08/11/fine-grained-authz-ranger.html b/2020/08/11/fine-grained-authz-ranger.html
index 48883d0d..2ac8f67e 100644
--- a/2020/08/11/fine-grained-authz-ranger.html
+++ b/2020/08/11/fine-grained-authz-ranger.html
@@ -335,6 +335,8 @@ run into any issues, feel free to reach out to us on either platform, or open a
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -363,8 +365,6 @@ run into any issues, feel free to reach out to us on either platform, or open a
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2020/09/21/apache-kudu-1-13-0-release.html b/2020/09/21/apache-kudu-1-13-0-release.html
index 65f146f2..0ce8ef6e 100644
--- a/2020/09/21/apache-kudu-1-13-0-release.html
+++ b/2020/09/21/apache-kudu-1-13-0-release.html
@@ -180,6 +180,8 @@ architectures (ARM).</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -208,8 +210,6 @@ architectures (ARM).</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2021/01/15/bloom-filter-predicate.html b/2021/01/15/bloom-filter-predicate.html
index 4a08a47a..644c7d3b 100644
--- a/2021/01/15/bloom-filter-predicate.html
+++ b/2021/01/15/bloom-filter-predicate.html
@@ -268,6 +268,8 @@ feedback and benchmarks.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -296,8 +298,6 @@ feedback and benchmarks.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2021/01/28/apache-kudu-1-14-0-release.html b/2021/01/28/apache-kudu-1-14-0-release.html
index f19802ab..a2d5dd19 100644
--- a/2021/01/28/apache-kudu-1-14-0-release.html
+++ b/2021/01/28/apache-kudu-1-14-0-release.html
@@ -204,6 +204,8 @@ architectures (ARM).</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -232,8 +234,6 @@ architectures (ARM).</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2021/06/22/apache-kudu-1-15-0-released.html b/2021/06/22/apache-kudu-1-15-0-released.html
index 6e07cf33..9a9c14c7 100644
--- a/2021/06/22/apache-kudu-1-15-0-released.html
+++ b/2021/06/22/apache-kudu-1-15-0-released.html
@@ -205,6 +205,8 @@ architectures (ARM).</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -233,8 +235,6 @@ architectures (ARM).</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2022/06/17/apache-kudu-1-16-0-released.html b/2022/06/17/apache-kudu-1-16-0-released.html
index 7dbbd628..bc269a7e 100644
--- a/2022/06/17/apache-kudu-1-16-0-released.html
+++ b/2022/06/17/apache-kudu-1-16-0-released.html
@@ -171,6 +171,8 @@ available</a>.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -199,8 +201,6 @@ available</a>.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2023/09/07/apache-kudu-1-17-0-released.html b/2023/09/07/apache-kudu-1-17-0-released.html
index 4315d2a2..d190ab25 100644
--- a/2023/09/07/apache-kudu-1-17-0-released.html
+++ b/2023/09/07/apache-kudu-1-17-0-released.html
@@ -243,6 +243,8 @@ available</a>.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -271,8 +273,6 @@ available</a>.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/2018/08/06/getting-started-with-kudu-an-oreilly-title.html b/2024/03/07/introducing-auto-incrementing-column.html
similarity index 53%
copy from 2018/08/06/getting-started-with-kudu-an-oreilly-title.html
copy to 2024/03/07/introducing-auto-incrementing-column.html
index 2092b0d9..98b465ec 100644
--- a/2018/08/06/getting-started-with-kudu-an-oreilly-title.html
+++ b/2024/03/07/introducing-auto-incrementing-column.html
@@ -7,7 +7,7 @@
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="A new open source Apache Hadoop ecosystem project, Apache Kudu completes Hadoop's storage layer to enable fast analytics on fast data" />
<meta name="author" content="Cloudera" />
- <title>Apache Kudu - Getting Started with Kudu - an O'Reilly Title</title>
+ <title>Apache Kudu - Introducing Auto-incrementing Column in Kudu</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
@@ -116,65 +116,176 @@
<div class="col-lg-9">
<article>
<header>
- <h1 class="entry-title">Getting Started with Kudu - an O'Reilly Title</h1>
- <p class="meta">Posted 06 Aug 2018 by Brock Noland</p>
+ <h1 class="entry-title">Introducing Auto-incrementing Column in Kudu</h1>
+ <p class="meta">Posted 07 Mar 2024 by Abhishek Chennaka</p>
</header>
<div class="entry-content">
- <p>The following article by Brock Noland was reposted from the
-<a href="https://www.phdata.io/getting-started-with-kudu/">phData</a>
-blog with their permission.</p>
-
-<p>Five years ago, enabling Data Science and Advanced Analytics on the
-Hadoop platform was hard. Organizations required strong Software Engineering
-capabilities to successfully implement complex Lambda architectures or even
-simply implement continuous ingest. Updating or deleting data, were simply a
-nightmare. General Data Protection Regulation (GDPR) would have been an extreme
-challenge at that time.
-<!--more-->
-In that context, on October 11th 2012 Todd Lipcon perform Apache Kudu’s initial
-commit. The commit message was:</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Code for writing cfiles seems to basically work
-Need to write code for reading cfiles, still
+ <!--more-->
+
+<h1 id="introduction">Introduction</h1>
+
+<p>Kudu has a strict requirement for a primary key presence in a table. This is primarily to help in
+point lookups and support DELETE and UPDATE operations on the table data. There are situations where
+users are unable to define a unique primary key in their data set and have to either introduce
+additional columns to be a part of the primary key or define a new column and maintain it to enforce
+uniqueness. Kudu 1.17 has introduced support for the auto-incrementing column to have partially
+defined primary keys (keys which are not unique across the table) during table creation. This way a
+user does not have to worry about the uniqueness constraint when defining a primary key.</p>
+
+<h1 id="implementation-details">Implementation Details</h1>
+
+<p>When a primary key is partially defined, Kudu internally creates a new column named
+“auto_incrementing_id” as a part of the primary key. The column is populated with a monotonically
+increasing counter. The system updates the counter value upon every INSERT operation and populates
+the “auto_incrementing_id” column on the server side. The counter is partition-local i.e. every
+tablet has its own counter.</p>
+
+<h2 id="server-side">Server Side</h2>
+
+<p>When a user writes data into a table with the auto-incrementing column, the server makes sure that
+no INSERT operations have the “auto_incrementing_id” column field value set and populates this
+column value. The highest value of the counter written into the “auto_incrementing_id” column
+until any particular point is stored in memory and this is used to set the column value for the
+next INSERT operation.</p>
+
+<h2 id="client-side">Client Side</h2>
+
+<p>When creating a table without an explicitly defined primary key, users will have to declare the key
+as non-unique. Internally, the client builds a schema with an extra column named
+“auto_incrementing_id” and forwards the request to the server where the table is created. For
+INSERT operations, the user shouldn’t specify the “auto_incrementing_id” column value as it will be
+populated on the server side.</p>
+
+<h3 id="impala-integration">Impala Integration</h3>
+
+<p>In Impala, the new column is not exposed to the user by default. This is due to the reason that it
+is not a part of the user table schema. The below query will not return the “auto_incrementing_id”
+column
+SELECT * FROM <tablename></p>
+
+<p>If the auto-incrementing column’s data is needed, the column name has to be specifically requested.
+The below query will return the column values:
+SELECT *, auto_incrementing_id FROM <tablename></p>
+
+<h4 id="examples">Examples</h4>
+
+<p>Create a table with two columns and two hash partitions:</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default> CREATE TABLE demo_table(id INT NON UNIQUE PRIMARY KEY, name STRING) PARTITION BY HASH (id) PARTITIONS 2 STORED AS KUDU;
+Query: CREATE TABLE demo_table(id INT NON UNIQUE PRIMARY KEY, name STRING) PARTITION BY HASH (id) PARTITIONS 2 STORED AS KUDU
++-------------------------+
+| summary |
++-------------------------+
+| Table has been created. |
++-------------------------+
+Fetched 1 row(s) in 3.94s
+</code></pre></div></div>
+
+<p>Describe the table:</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default> DESCRIBE demo_table;
+Query: DESCRIBE demo_table
++----------------------+--------+---------+-------------+------------+----------+---------------+---------------+---------------------+------------+
+| name | type | comment | primary_key | key_unique | nullable | default_value | encoding | compression | block_size |
++----------------------+--------+---------+-------------+------------+----------+---------------+---------------+---------------------+------------+
+| id | int | | true | false | false | | AUTO_ENCODING | DEFAULT_COMPRESSION | 0 |
+| auto_incrementing_id | bigint | | true | false | false | | AUTO_ENCODING | DEFAULT_COMPRESSION | 0 |
+| name | string | | false | | true | | AUTO_ENCODING | DEFAULT_COMPRESSION | 0 |
++----------------------+--------+---------+-------------+------------+----------+---------------+---------------+---------------------+------------+
+</code></pre></div></div>
+
+<p><br />Insert rows with duplicate partial primary key column values:</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default> INSERT INTO demo_table VALUES (1, 'John'), (2, 'Bob'), (3, 'Mary'), (1, 'Joe');
+Query: INSERT INTO demo_table VALUES (1, 'John'), (2, 'Bob'), (3, 'Mary'), (1, 'Joe')
+..
+Modified 4 row(s), 0 row error(s) in 0.41s
+</code></pre></div></div>
+<p><br />Scan the table (notice the duplicate values in the ‘id’ column):</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default> SELECT * FROM demo_table;
+Query: SELECT * FROM demo_table
+..
++----+------+
+| id | name |
++----+------+
+| 3 | Mary |
+| 1 | John |
+| 1 | Joe |
+| 2 | Bob |
++----+------+
+Fetched 4 row(s) in 0.24s
+</code></pre></div></div>
+
+<p>Explicitly specify the auto-incrementing column name to fetch the column values:</p>
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default> SELECT *, auto_incrementing_id FROM demo_table;
+Query: SELECT *, auto_incrementing_id FROM demo_table
+..
++----+------+----------------------+
+| id | name | auto_incrementing_id |
++----+------+----------------------+
+| 3 | Mary | 1 |
+| 1 | John | 1 |
+| 1 | Joe | 2 |
+| 2 | Bob | 2 |
++----+------+----------------------+
+Fetched 4 row(s) in 0.24s
</code></pre></div></div>
-<p>And Kudu development was off and running. Around this same time Todd, on his
-internal Wiki page, started listing out the papers he was reading to develop
-the theoretical background for creating Kudu. I followed along, reading as many
-as I could, understanding little, because I knew Todd was up to something
-important. About a year after that initial commit, I got my
-<a href="https://github.com/apache/kudu/commit/1d7e6864b4a31d3fe6897e4cb484dfcda6608d43">Kudu first commit</a>,
-documenting the upper bound of a library. This is a small contribution of which I am still
-proud.</p>
-
-<p>In the meantime, I was lucky enough to be a founder of a Hadoop Managed Services
-and Consulting company known as <a href="http://phdata.io/">phData</a>. We found that a majority
-of our customers had use cases which Kudu vastly simplified. Whether it’s Change Data
-Capture (CDC) from thousands of source tables to Internet of Things (IoT) ingest, Kudu
-makes life much easier as both an operator of a Hadoop cluster and a developer providing
-business value on the platform.</p>
-
-<p>Through this work, I was lucky enough to be a co-author of
-<a href="http://shop.oreilly.com/product/0636920065739.do">Getting Started with Kudu</a>.
-The book is a summation of mine and our co-authors, Jean-Marc Spaggiari, Mladen
-Kovacevic, and Ryan Bosshart, learnings while cutting our teeth on early versions
-of Kudu. Specifically you will learn:</p>
-
-<ul>
- <li>Theoretical understanding of Kudu concepts in simple plain spoken words and simple diagrams</li>
- <li>Why, for many use cases, using Kudu is so much easier than other ecosystem storage technologies</li>
- <li>How Kudu enables Hybrid Transactional/Analytical Processing (HTAP) use cases</li>
- <li>How to design IoT, Predictive Modeling, and Mixed Platform Solutions using Kudu</li>
- <li>How to design Kudu Schemas</li>
-</ul>
-
-<p><img src="/img/2018-08-06-getting-started-with-kudu-an-oreilly-title.gif" alt="Getting Started with Kudu Cover" class="img-responsive" /></p>
-
-<p>Looking forward, I am excited to see Kudu gain additional features and adoption
-and eventually the second revision of this title. In the meantime, if you have
-feedback or questions, please reach out on the <code class="language-plaintext highlighter-rouge">#getting-started-kudu</code> channel of
-the <a href="https://join.slack.com/t/getkudu/shared_invite/zt-244b4zvki-hB1q9IbAk6CqHNMZHvUALA">Kudu Slack</a> or if you prefer non-real-time
-communication, please use the user@ mailing list!</p>
+<p>Update and Delete rows:</p>
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default> UPDATE demo_table SET name='Matt' WHERE id=3;
+Query: UPDATE demo_table SET name='Matt' WHERE id=3
+Modified 1 row(s), 0 row error(s) in 1.99s
+default> UPDATE demo_table SET name='Liam' WHERE id=1;
+Query: UPDATE demo_table SET name='Liam' WHERE id=1
+Modified 2 row(s), 0 row error(s) in 2.15s
+default> DELETE FROM demo_table where id=2;
+Query: DELETE FROM demo_table where id=2;
+Modified 1 row(s), 0 row error(s) in 1.40s
+</code></pre></div></div>
+<p>Scan all the columns of the table:</p>
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default> SELECT *, auto_incrementing_id FROM demo_table;
+Query: SELECT *, auto_incrementing_id FROM demo_table
+..
++----+------+----------------------+
+| id | name | auto_incrementing_id |
++----+------+----------------------+
+| 3 | Matt | 1 |
+| 1 | Liam | 1 |
+| 1 | Liam | 2 |
++----+------+----------------------+
+Fetched 3 row(s) in 0.20s
+</code></pre></div></div>
+<h4 id="limitations">Limitations</h4>
+
+<p>Impala doesn’t support UPSERT operations on tables with the auto-incrementing column as of writing
+this article.</p>
+
+<h3 id="kudu-clientsjava-c-python">Kudu clients(Java, C++, Python)</h3>
+
+<p>Unlike in Impala, scanning the table fetches all the table data including the auto incrementing column.
+There is no need to explicitly request the auto-incrementing column.</p>
+
+<p>There is also support for UPSERT operations but the user has to provide the entire primary key
+including the value for the auto-incrementing column. If the row is present, it will be considered a
+regular UPDATE operation. If the row is not present, it is considered an INSERT operation.</p>
+
+<h4 id="examples-1">Examples</h4>
+
+<p><a href="https://github.com/apache/kudu/blob/master/examples/cpp/non_unique_primary_key.cc">https://github.com/apache/kudu/blob/master/examples/cpp/non_unique_primary_key.cc</a></p>
+
+<p><a href="https://github.com/apache/kudu/blob/master/examples/python/basic-python-example/non_unique_primary_key.py">https://github.com/apache/kudu/blob/master/examples/python/basic-python-example/non_unique_primary_key.py</a></p>
+
+<p>##Backup and Restore</p>
+
+<p>The Kudu backup tool from Kudu 1.17 and later supports backing up tables with the
+auto-incrementing column. The prior backup tools will fail with an error message -
+“auto_incrementing_id is a reserved column name” during backup and restore operations.</p>
+
+<p>The backed up data (from Kudu 1.17 and later) includes the auto-incrementing column in the table
+schema and the column values as well. Restoring this backed up table with the Kudu restore tool
+will create a table with the auto-incrementing column and the column values identical to the
+original source table.</p>
</div>
</article>
@@ -185,6 +296,8 @@ communication, please use the user@ mailing list!</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -213,8 +326,6 @@ communication, please use the user@ mailing list!</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/index.html b/blog/index.html
index d32850d9..4352975b 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -116,6 +116,25 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a></h1>
+ <p class="meta">Posted 07 Mar 2024 by Abhishek Chennaka</p>
+ </header>
+ <div class="entry-content">
+
+
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2024/03/07/introducing-auto-incrementing-column.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -208,42 +227,6 @@ following:</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a></h1>
- <p class="meta">Posted 15 Jan 2021 by Bankim Bhavsar</p>
- </header>
- <div class="entry-content">
-
- <p>Note: This is a cross-post from the Cloudera Engineering Blog
-<a href="https://blog.cloudera.com/optimized-joins-filtering-with-bloom-filter-predicate-in-kudu/">Optimized joins & filtering with Bloom filter predicate in Kudu</a></p>
-
-<p>Cloudera’s CDP Runtime version 7.1.5 maps to Apache Kudu 1.13 and upcoming Apache Impala 4.0</p>
-
-<h2 id="introduction">Introduction</h2>
-<p>In database systems one of the most effective ways to improve performance is to avoid doing
-unnecessary work, such as network transfers and reading data from disk. One of the ways Apache
-Kudu achieves this is by supporting column predicates with scanners. Pushing down column predicate
-filters to Kudu allows for optimized execution by skipping reading column values for filtered out
-rows and reducing network IO between a client, like the distributed query engine Apache Impala, and
-Kudu. See the documentation on
-<a href="https://docs.cloudera.com/runtime/latest/impala-reference/topics/impala-runtime-filtering.html">runtime filtering in Impala</a>
-for details.</p>
-
-<p>CDP Runtime 7.1.5 and CDP Public Cloud added support for Bloom filter column predicate pushdown in
-Kudu and the associated integration in Impala.</p>
-
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2021/01/15/bloom-filter-predicate.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -262,6 +245,8 @@ Kudu and the associated integration in Impala.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -290,8 +275,6 @@ Kudu and the associated integration in Impala.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/10/index.html b/blog/page/10/index.html
index e1842aec..95cac0b3 100644
--- a/blog/page/10/index.html
+++ b/blog/page/10/index.html
@@ -116,6 +116,27 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2016/07/26/weekly-update.html">Apache Kudu Weekly Update July 26, 2016</a></h1>
+ <p class="meta">Posted 26 Jul 2016 by Jean-Daniel Cryans</p>
+ </header>
+ <div class="entry-content">
+
+ <p>Welcome to the eighteenth edition of the Kudu Weekly Update. This weekly blog post
+covers ongoing development and news in the Apache Kudu project.</p>
+
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2016/07/26/weekly-update.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -210,27 +231,6 @@ of 0.9.0 are encouraged to update to the new version at their earliest convenien
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2016/06/27/weekly-update.html">Apache Kudu (incubating) Weekly Update June 27, 2016</a></h1>
- <p class="meta">Posted 27 Jun 2016 by Todd Lipcon</p>
- </header>
- <div class="entry-content">
-
- <p>Welcome to the fifteenth edition of the Kudu Weekly Update. This weekly blog post
-covers ongoing development and news in the Apache Kudu (incubating) project.</p>
-
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2016/06/27/weekly-update.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -251,6 +251,8 @@ covers ongoing development and news in the Apache Kudu (incubating) project.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -279,8 +281,6 @@ covers ongoing development and news in the Apache Kudu (incubating) project.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/11/index.html b/blog/page/11/index.html
index e27887f0..56de0b63 100644
--- a/blog/page/11/index.html
+++ b/blog/page/11/index.html
@@ -116,6 +116,27 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2016/06/27/weekly-update.html">Apache Kudu (incubating) Weekly Update June 27, 2016</a></h1>
+ <p class="meta">Posted 27 Jun 2016 by Todd Lipcon</p>
+ </header>
+ <div class="entry-content">
+
+ <p>Welcome to the fifteenth edition of the Kudu Weekly Update. This weekly blog post
+covers ongoing development and news in the Apache Kudu (incubating) project.</p>
+
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2016/06/27/weekly-update.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -204,36 +225,6 @@ covers ongoing development and news in the Apache Kudu (incubating) project.</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2016/06/10/apache-kudu-0-9-0-released.html">Apache Kudu (incubating) 0.9.0 released</a></h1>
- <p class="meta">Posted 10 Jun 2016 by Jean-Daniel Cryans</p>
- </header>
- <div class="entry-content">
-
- <p>The Apache Kudu (incubating) team is happy to announce the release of Kudu
-0.9.0!</p>
-
-<p>This latest version adds basic UPSERT functionality and an improved Apache Spark Data Source
-that doesn’t rely on the MapReduce I/O formats. It also improves Tablet Server
-restart time as well as write performance under high load. Finally, Kudu now enforces
-the specification of a partitioning scheme for new tables.</p>
-
-<ul>
- <li>Read the detailed <a href="http://kudu.apache.org/releases/0.9.0/docs/release_notes.html">Kudu 0.9.0 release notes</a></li>
- <li>Download the <a href="http://kudu.apache.org/releases/0.9.0/">Kudu 0.9.0 source release</a></li>
-</ul>
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2016/06/10/apache-kudu-0-9-0-released.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -254,6 +245,8 @@ the specification of a partitioning scheme for new tables.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -282,8 +275,6 @@ the specification of a partitioning scheme for new tables.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/12/index.html b/blog/page/12/index.html
index 0fc1b13e..86256e91 100644
--- a/blog/page/12/index.html
+++ b/blog/page/12/index.html
@@ -116,6 +116,36 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2016/06/10/apache-kudu-0-9-0-released.html">Apache Kudu (incubating) 0.9.0 released</a></h1>
+ <p class="meta">Posted 10 Jun 2016 by Jean-Daniel Cryans</p>
+ </header>
+ <div class="entry-content">
+
+ <p>The Apache Kudu (incubating) team is happy to announce the release of Kudu
+0.9.0!</p>
+
+<p>This latest version adds basic UPSERT functionality and an improved Apache Spark Data Source
+that doesn’t rely on the MapReduce I/O formats. It also improves Tablet Server
+restart time as well as write performance under high load. Finally, Kudu now enforces
+the specification of a partitioning scheme for new tables.</p>
+
+<ul>
+ <li>Read the detailed <a href="http://kudu.apache.org/releases/0.9.0/docs/release_notes.html">Kudu 0.9.0 release notes</a></li>
+ <li>Download the <a href="http://kudu.apache.org/releases/0.9.0/">Kudu 0.9.0 source release</a></li>
+</ul>
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2016/06/10/apache-kudu-0-9-0-released.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -202,27 +232,6 @@ covers ongoing development and news in the Apache Kudu (incubating) project.</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2016/05/16/weekly-update.html">Apache Kudu (incubating) Weekly Update May 16, 2016</a></h1>
- <p class="meta">Posted 16 May 2016 by Todd Lipcon</p>
- </header>
- <div class="entry-content">
-
- <p>Welcome to the ninth edition of the Kudu Weekly Update. This weekly blog post
-covers ongoing development and news in the Apache Kudu (incubating) project.</p>
-
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2016/05/16/weekly-update.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -243,6 +252,8 @@ covers ongoing development and news in the Apache Kudu (incubating) project.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -271,8 +282,6 @@ covers ongoing development and news in the Apache Kudu (incubating) project.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/13/index.html b/blog/page/13/index.html
index b3c0b1ef..b973e327 100644
--- a/blog/page/13/index.html
+++ b/blog/page/13/index.html
@@ -116,6 +116,27 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2016/05/16/weekly-update.html">Apache Kudu (incubating) Weekly Update May 16, 2016</a></h1>
+ <p class="meta">Posted 16 May 2016 by Todd Lipcon</p>
+ </header>
+ <div class="entry-content">
+
+ <p>Welcome to the ninth edition of the Kudu Weekly Update. This weekly blog post
+covers ongoing development and news in the Apache Kudu (incubating) project.</p>
+
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2016/05/16/weekly-update.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -199,29 +220,6 @@ covers ongoing development and news in the Apache Kudu (incubating) project.</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2016/04/19/kudu-0-8-0-predicate-improvements.html">Predicate Improvements in Kudu 0.8</a></h1>
- <p class="meta">Posted 19 Apr 2016 by Dan Burkert</p>
- </header>
- <div class="entry-content">
-
- <p>The recently released Kudu version 0.8 ships with a host of new improvements to
-scan predicates. Performance and usability have been improved, especially for
-tables taking advantage of <a href="http://kudu.apache.org/docs/schema_design.html#data-distribution">advanced partitioning
-options</a>.</p>
-
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2016/04/19/kudu-0-8-0-predicate-improvements.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -242,6 +240,8 @@ options</a>.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -270,8 +270,6 @@ options</a>.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/14/index.html b/blog/page/14/index.html
index 68edd803..98d19fb0 100644
--- a/blog/page/14/index.html
+++ b/blog/page/14/index.html
@@ -116,6 +116,29 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2016/04/19/kudu-0-8-0-predicate-improvements.html">Predicate Improvements in Kudu 0.8</a></h1>
+ <p class="meta">Posted 19 Apr 2016 by Dan Burkert</p>
+ </header>
+ <div class="entry-content">
+
+ <p>The recently released Kudu version 0.8 ships with a host of new improvements to
+scan predicates. Performance and usability have been improved, especially for
+tables taking advantage of <a href="http://kudu.apache.org/docs/schema_design.html#data-distribution">advanced partitioning
+options</a>.</p>
+
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2016/04/19/kudu-0-8-0-predicate-improvements.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -218,27 +241,6 @@ covers ongoing development and news in the Apache Kudu (incubating) project.</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2016/04/04/weekly-update.html">Apache Kudu (incubating) Weekly Update April 4, 2016</a></h1>
- <p class="meta">Posted 04 Apr 2016 by Todd Lipcon</p>
- </header>
- <div class="entry-content">
-
- <p>Welcome to the third edition of the Kudu Weekly Update. This weekly blog post
-covers ongoing development and news in the Apache Kudu (incubating) project.</p>
-
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2016/04/04/weekly-update.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -259,6 +261,8 @@ covers ongoing development and news in the Apache Kudu (incubating) project.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -287,8 +291,6 @@ covers ongoing development and news in the Apache Kudu (incubating) project.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/15/index.html b/blog/page/15/index.html
index 925c2362..aebf3346 100644
--- a/blog/page/15/index.html
+++ b/blog/page/15/index.html
@@ -116,6 +116,27 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2016/04/04/weekly-update.html">Apache Kudu (incubating) Weekly Update April 4, 2016</a></h1>
+ <p class="meta">Posted 04 Apr 2016 by Todd Lipcon</p>
+ </header>
+ <div class="entry-content">
+
+ <p>Welcome to the third edition of the Kudu Weekly Update. This weekly blog post
+covers ongoing development and news in the Apache Kudu (incubating) project.</p>
+
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2016/04/04/weekly-update.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -229,6 +250,8 @@ part of the ASF Incubator, version 0.7.0!</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -257,8 +280,6 @@ part of the ASF Incubator, version 0.7.0!</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/2/index.html b/blog/page/2/index.html
index 4436a9e0..d3646007 100644
--- a/blog/page/2/index.html
+++ b/blog/page/2/index.html
@@ -116,6 +116,42 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2021/01/15/bloom-filter-predicate.html">Optimized joins & filtering with Bloom filter predicate in Kudu</a></h1>
+ <p class="meta">Posted 15 Jan 2021 by Bankim Bhavsar</p>
+ </header>
+ <div class="entry-content">
+
+ <p>Note: This is a cross-post from the Cloudera Engineering Blog
+<a href="https://blog.cloudera.com/optimized-joins-filtering-with-bloom-filter-predicate-in-kudu/">Optimized joins & filtering with Bloom filter predicate in Kudu</a></p>
+
+<p>Cloudera’s CDP Runtime version 7.1.5 maps to Apache Kudu 1.13 and upcoming Apache Impala 4.0</p>
+
+<h2 id="introduction">Introduction</h2>
+<p>In database systems one of the most effective ways to improve performance is to avoid doing
+unnecessary work, such as network transfers and reading data from disk. One of the ways Apache
+Kudu achieves this is by supporting column predicates with scanners. Pushing down column predicate
+filters to Kudu allows for optimized execution by skipping reading column values for filtered out
+rows and reducing network IO between a client, like the distributed query engine Apache Impala, and
+Kudu. See the documentation on
+<a href="https://docs.cloudera.com/runtime/latest/impala-reference/topics/impala-runtime-filtering.html">runtime filtering in Impala</a>
+for details.</p>
+
+<p>CDP Runtime 7.1.5 and CDP Public Cloud added support for Bloom filter column predicate pushdown in
+Kudu and the associated integration in Impala.</p>
+
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2021/01/15/bloom-filter-predicate.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -222,29 +258,6 @@ following:</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2019/11/20/apache-kudu-1-11-1-release.html">Apache Kudu 1.11.1 released</a></h1>
- <p class="meta">Posted 20 Nov 2019 by Alexey Serbin</p>
- </header>
- <div class="entry-content">
-
- <p>The Apache Kudu team is happy to announce the release of Kudu 1.11.1!</p>
-
-<p>This release contains a fix which addresses a critical issue discovered in
-1.10.0 and 1.11.0 and adds several new features and improvements since 1.10.0.</p>
-
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2019/11/20/apache-kudu-1-11-1-release.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -265,6 +278,8 @@ following:</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -293,8 +308,6 @@ following:</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/3/index.html b/blog/page/3/index.html
index bb7175fe..c0997964 100644
--- a/blog/page/3/index.html
+++ b/blog/page/3/index.html
@@ -116,6 +116,29 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2019/11/20/apache-kudu-1-11-1-release.html">Apache Kudu 1.11.1 released</a></h1>
+ <p class="meta">Posted 20 Nov 2019 by Alexey Serbin</p>
+ </header>
+ <div class="entry-content">
+
+ <p>The Apache Kudu team is happy to announce the release of Kudu 1.11.1!</p>
+
+<p>This release contains a fix which addresses a critical issue discovered in
+1.10.0 and 1.11.0 and adds several new features and improvements since 1.10.0.</p>
+
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2019/11/20/apache-kudu-1-11-1-release.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -222,35 +245,6 @@ achieve a secure multi-tenant deployment.</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a></h1>
- <p class="meta">Posted 19 Mar 2019 by Grant Henke & Mike Percy</p>
- </header>
- <div class="entry-content">
-
- <p>Note: This is a cross-post from the Cloudera Engineering Blog
-<a href="https://blog.cloudera.com/blog/2019/03/testing-apache-kudu-applications-on-the-jvm/">Testing Apache Kudu Applications on the JVM</a></p>
-
-<p>Although the Kudu server is written in C++ for performance and efficiency, developers can write
-client applications in C++, Java, or Python. To make it easier for Java developers to create
-reliable client applications, we’ve added new utilities in Kudu 1.9.0 that allow you to write tests
-using a Kudu cluster without needing to build Kudu yourself, without any knowledge of C++,
-and without any complicated coordination around starting and stopping Kudu clusters for each test.
-This post describes how the new testing utilities work and how you can use them in your application
-tests.</p>
-
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -271,6 +265,8 @@ tests.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -299,8 +295,6 @@ tests.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/4/index.html b/blog/page/4/index.html
index 1ae48baf..42dfb04b 100644
--- a/blog/page/4/index.html
+++ b/blog/page/4/index.html
@@ -116,6 +116,35 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a></h1>
+ <p class="meta">Posted 19 Mar 2019 by Grant Henke & Mike Percy</p>
+ </header>
+ <div class="entry-content">
+
+ <p>Note: This is a cross-post from the Cloudera Engineering Blog
+<a href="https://blog.cloudera.com/blog/2019/03/testing-apache-kudu-applications-on-the-jvm/">Testing Apache Kudu Applications on the JVM</a></p>
+
+<p>Although the Kudu server is written in C++ for performance and efficiency, developers can write
+client applications in C++, Java, or Python. To make it easier for Java developers to create
+reliable client applications, we’ve added new utilities in Kudu 1.9.0 that allow you to write tests
+using a Kudu cluster without needing to build Kudu yourself, without any knowledge of C++,
+and without any complicated coordination around starting and stopping Kudu clusters for each test.
+This post describes how the new testing utilities work and how you can use them in your application
+tests.</p>
+
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -215,29 +244,6 @@ following:</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a></h1>
- <p class="meta">Posted 26 Sep 2018 by Anupama Gupta</p>
- </header>
- <div class="entry-content">
-
- <p>This summer I got the opportunity to intern with the Apache Kudu team at Cloudera.
-My project was to optimize the Kudu scan path by implementing a technique called
-index skip scan (a.k.a. scan-to-seek, see section 4.1 in [1]). I wanted to share
-my experience and the progress we’ve made so far on the approach.</p>
-
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -258,6 +264,8 @@ my experience and the progress we’ve made so far on the approach.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -286,8 +294,6 @@ my experience and the progress we’ve made so far on the approach.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/5/index.html b/blog/page/5/index.html
index ba1476fb..6c5d05eb 100644
--- a/blog/page/5/index.html
+++ b/blog/page/5/index.html
@@ -116,6 +116,29 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Index Skip Scan Optimization in Kudu</a></h1>
+ <p class="meta">Posted 26 Sep 2018 by Anupama Gupta</p>
+ </header>
+ <div class="entry-content">
+
+ <p>This summer I got the opportunity to intern with the Apache Kudu team at Cloudera.
+My project was to optimize the Kudu scan path by implementing a technique called
+index skip scan (a.k.a. scan-to-seek, see section 4.1 in [1]). I wanted to share
+my experience and the progress we’ve made so far on the approach.</p>
+
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2018/09/26/index-skip-scan-optimization-in-kudu.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -218,31 +241,6 @@ optimizations, incremental improvements, and bug fixes.</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2017/12/08/apache-kudu-1-6-0-released.html">Apache Kudu 1.6.0 released</a></h1>
- <p class="meta">Posted 08 Dec 2017 by Mike Percy</p>
- </header>
- <div class="entry-content">
-
- <p>The Apache Kudu team is happy to announce the release of Kudu 1.6.0!</p>
-
-<p>Apache Kudu 1.6.0 is a minor release that offers new features, performance
-optimizations, incremental improvements, and bug fixes.</p>
-
-<p>Release highlights:</p>
-
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2017/12/08/apache-kudu-1-6-0-released.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -263,6 +261,8 @@ optimizations, incremental improvements, and bug fixes.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -291,8 +291,6 @@ optimizations, incremental improvements, and bug fixes.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/6/index.html b/blog/page/6/index.html
index dcddadcc..48599ab6 100644
--- a/blog/page/6/index.html
+++ b/blog/page/6/index.html
@@ -116,6 +116,31 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2017/12/08/apache-kudu-1-6-0-released.html">Apache Kudu 1.6.0 released</a></h1>
+ <p class="meta">Posted 08 Dec 2017 by Mike Percy</p>
+ </header>
+ <div class="entry-content">
+
+ <p>The Apache Kudu team is happy to announce the release of Kudu 1.6.0!</p>
+
+<p>Apache Kudu 1.6.0 is a minor release that offers new features, performance
+optimizations, incremental improvements, and bug fixes.</p>
+
+<p>Release highlights:</p>
+
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2017/12/08/apache-kudu-1-6-0-released.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -219,39 +244,6 @@ improvements, optimizations, and bug fixes.</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2017/04/19/apache-kudu-1-3-1-released.html">Apache Kudu 1.3.1 released</a></h1>
- <p class="meta">Posted 19 Apr 2017 by Todd Lipcon</p>
- </header>
- <div class="entry-content">
-
- <p>The Apache Kudu team is happy to announce the release of Kudu 1.3.1!</p>
-
-<p>Apache Kudu 1.3.1 is a bug fix release which fixes critical issues discovered
-in Apache Kudu 1.3.0. In particular, this fixes a bug in which data could be
-incorrectly deleted after certain sequences of node failures. Several other
-bugs are also fixed. See the release notes for details.</p>
-
-<p>Users of Kudu 1.3.0 are encouraged to upgrade to 1.3.1 immediately.</p>
-
-<ul>
- <li>Download the <a href="/releases/1.3.1/">Kudu 1.3.1 source release</a></li>
- <li>Convenience binary artifacts for the Java client and various Java
-integrations (eg Spark, Flume) are also now available via the ASF Maven
-repository.</li>
-</ul>
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2017/04/19/apache-kudu-1-3-1-released.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -272,6 +264,8 @@ repository.</li>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -300,8 +294,6 @@ repository.</li>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/7/index.html b/blog/page/7/index.html
index b3b0db9a..5cb803aa 100644
--- a/blog/page/7/index.html
+++ b/blog/page/7/index.html
@@ -116,6 +116,39 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2017/04/19/apache-kudu-1-3-1-released.html">Apache Kudu 1.3.1 released</a></h1>
+ <p class="meta">Posted 19 Apr 2017 by Todd Lipcon</p>
+ </header>
+ <div class="entry-content">
+
+ <p>The Apache Kudu team is happy to announce the release of Kudu 1.3.1!</p>
+
+<p>Apache Kudu 1.3.1 is a bug fix release which fixes critical issues discovered
+in Apache Kudu 1.3.0. In particular, this fixes a bug in which data could be
+incorrectly deleted after certain sequences of node failures. Several other
+bugs are also fixed. See the release notes for details.</p>
+
+<p>Users of Kudu 1.3.0 are encouraged to upgrade to 1.3.1 immediately.</p>
+
+<ul>
+ <li>Download the <a href="/releases/1.3.1/">Kudu 1.3.1 source release</a></li>
+ <li>Convenience binary artifacts for the Java client and various Java
+integrations (eg Spark, Flume) are also now available via the ASF Maven
+repository.</li>
+</ul>
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2017/04/19/apache-kudu-1-3-1-released.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -204,27 +237,6 @@ covers ongoing development and news in the Apache Kudu project.</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2016/10/20/weekly-update.html">Apache Kudu Weekly Update October 20th, 2016</a></h1>
- <p class="meta">Posted 20 Oct 2016 by Todd Lipcon</p>
- </header>
- <div class="entry-content">
-
- <p>Welcome to the twenty-second edition of the Kudu Weekly Update. This weekly blog post
-covers ongoing development and news in the Apache Kudu project.</p>
-
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2016/10/20/weekly-update.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -245,6 +257,8 @@ covers ongoing development and news in the Apache Kudu project.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -273,8 +287,6 @@ covers ongoing development and news in the Apache Kudu project.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/8/index.html b/blog/page/8/index.html
index 3531cea7..2e5ede39 100644
--- a/blog/page/8/index.html
+++ b/blog/page/8/index.html
@@ -116,6 +116,27 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2016/10/20/weekly-update.html">Apache Kudu Weekly Update October 20th, 2016</a></h1>
+ <p class="meta">Posted 20 Oct 2016 by Todd Lipcon</p>
+ </header>
+ <div class="entry-content">
+
+ <p>Welcome to the twenty-second edition of the Kudu Weekly Update. This weekly blog post
+covers ongoing development and news in the Apache Kudu project.</p>
+
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2016/10/20/weekly-update.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -212,319 +233,6 @@ scan path to speed up queries.</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2016/08/31/intro-flume-kudu-sink.html">An Introduction to the Flume Kudu Sink</a></h1>
- <p class="meta">Posted 31 Aug 2016 by Ara Abrahamian</p>
- </header>
- <div class="entry-content">
-
- <p>This post discusses the Kudu Flume Sink. First, I’ll give some background on why we considered
-using Kudu, what Flume does for us, and how Flume fits with Kudu in our project.</p>
-
-<h2 id="why-kudu">Why Kudu</h2>
-
-<p>Traditionally in the Hadoop ecosystem we’ve dealt with various <em>batch processing</em> technologies such
-as MapReduce and the many libraries and tools built on top of it in various languages (Apache Pig,
-Apache Hive, Apache Oozie and many others). The main problem with this approach is that it needs to
-process the whole data set in batches, again and again, as soon as new data gets added. Things get
-really complicated when a few such tasks need to get chained together, or when the same data set
-needs to be processed in various ways by different jobs, while all compete for the shared cluster
-resources.</p>
-
-<p>The opposite of this approach is <em>stream processing</em>: process the data as soon as it arrives, not
-in batches. Streaming systems such as Spark Streaming, Storm, Kafka Streams, and many others make
-this possible. But writing streaming services is not trivial. The streaming systems are becoming
-more and more capable and support more complex constructs, but they are not yet easy to use. All
-queries and processes need to be carefully planned and implemented.</p>
-
-<p>To summarize, <em>batch processing</em> is:</p>
-
-<ul>
- <li>file-based</li>
- <li>a paradigm that processes large chunks of data as a group</li>
- <li>high latency and high throughput, both for ingest and query</li>
- <li>typically easy to program, but hard to orchestrate</li>
- <li>well suited for writing ad-hoc queries, although they are typically high latency</li>
-</ul>
-
-<p>While <em>stream processing</em> is:</p>
-
-<ul>
- <li>a totally different paradigm, which involves single events and time windows instead of large groups of events</li>
- <li>still file-based and not a long-term database</li>
- <li>not batch-oriented, but incremental</li>
- <li>ultra-fast ingest and ultra-fast query (query results basically pre-calculated)</li>
- <li>not so easy to program, relatively easy to orchestrate</li>
- <li>impossible to write ad-hoc queries</li>
-</ul>
-
-<p>And a Kudu-based <em>near real-time</em> approach is:</p>
-
-<ul>
- <li>flexible and expressive, thanks to SQL support via Apache Impala (incubating)</li>
- <li>a table-oriented, mutable data store that feels like a traditional relational database</li>
- <li>very easy to program, you can even pretend it’s good old MySQL</li>
- <li>low-latency and relatively high throughput, both for ingest and query</li>
-</ul>
-
-<p>At Argyle Data, we’re dealing with complex fraud detection scenarios. We need to ingest massive
-amounts of data, run machine learning algorithms and generate reports. When we created our current
-architecture two years ago we decided to opt for a database as the backbone of our system. That
-database is Apache Accumulo. It’s a key-value based database which runs on top of Hadoop HDFS,
-quite similar to HBase but with some important improvements such as cell level security and ease
-of deployment and management. To enable querying of this data for quite complex reporting and
-analytics, we used Presto, a distributed query engine with a pluggable architecture open-sourced
-by Facebook. We wrote a connector for it to let it run queries against the Accumulo database. This
-architecture has served us well, but there were a few problems:</p>
-
-<ul>
- <li>we need to ingest even more massive volumes of data in real-time</li>
- <li>we need to perform complex machine-learning calculations on even larger data-sets</li>
- <li>we need to support ad-hoc queries, plus long-term data warehouse functionality</li>
-</ul>
-
-<p>So, we’ve started gradually moving the core machine-learning pipeline to a streaming based
-solution. This way we can ingest and process larger data-sets faster in the real-time. But then how
-would we take care of ad-hoc queries and long-term persistence? This is where Kudu comes in. While
-the machine learning pipeline ingests and processes real-time data, we store a copy of the same
-ingested data in Kudu for long-term access and ad-hoc queries. Kudu is our <em>data warehouse</em>. By
-using Kudu and Impala, we can retire our in-house Presto connector and rely on Impala’s
-super-fast query engine.</p>
-
-<p>But how would we make sure data is reliably ingested into the streaming pipeline <em>and</em> the
-Kudu-based data warehouse? This is where Apache Flume comes in.</p>
-
-<h2 id="why-flume">Why Flume</h2>
-
-<p>According to their <a href="http://flume.apache.org/">website</a> “Flume is a distributed, reliable, and
-available service for efficiently collecting, aggregating, and moving large amounts of log data.
-It has a simple and flexible architecture based on streaming data flows. It is robust and fault
-tolerant with tunable reliability mechanisms and many failover and recovery mechanisms.” As you
-can see, nowhere is Hadoop mentioned but Flume is typically used for ingesting data to Hadoop
-clusters.</p>
-
-<p><img src="https://blogs.apache.org/flume/mediaresource/ab0d50f6-a960-42cc-971e-3da38ba3adad" alt="png" /></p>
-
-<p>Flume has an extensible architecture. An instance of Flume, called an <em>agent</em>, can have multiple
-<em>channels</em>, with each having multiple <em>sources</em> and <em>sinks</em> of various types. Sources queue data
-in channels, which in turn write out data to sinks. Such <em>pipelines</em> can be chained together to
-create even more complex ones. There may be more than one agent and agents can be configured to
-support failover and recovery.</p>
-
-<p>Flume comes with a bunch of built-in types of channels, sources and sinks. Memory channel is the
-default (an in-memory queue with no persistence to disk), but other options such as Kafka- and
-File-based channels are also provided. As for the sources, Avro, JMS, Thrift, spooling directory
-source are some of the built-in ones. Flume also ships with many sinks, including sinks for writing
-data to HDFS, HBase, Hive, Kafka, as well as to other Flume agents.</p>
-
-<p>In the rest of this post I’ll go over the Kudu Flume sink and show you how to configure Flume to
-write ingested data to a Kudu table. The sink has been part of the Kudu distribution since the 0.8
-release and the source code can be found <a href="https://github.com/apache/kudu/tree/master/java/kudu-flume-sink">here</a>.</p>
-
-<h2 id="configuring-the-kudu-flume-sink">Configuring the Kudu Flume Sink</h2>
-
-<p>Here is a sample flume configuration file:</p>
-
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>agent1.sources = source1
-agent1.channels = channel1
-agent1.sinks = sink1
-
-agent1.sources.source1.type = exec
-agent1.sources.source1.command = /usr/bin/vmstat 1
-agent1.sources.source1.channels = channel1
-
-agent1.channels.channel1.type = memory
-agent1.channels.channel1.capacity = 10000
-agent1.channels.channel1.transactionCapacity = 1000
-
-agent1.sinks.sink1.type = org.apache.flume.sink.kudu.KuduSink
-agent1.sinks.sink1.masterAddresses = localhost
-agent1.sinks.sink1.tableName = stats
-agent1.sinks.sink1.channel = channel1
-agent1.sinks.sink1.batchSize = 50
-agent1.sinks.sink1.producer = org.apache.kudu.flume.sink.SimpleKuduEventProducer
-</code></pre></div></div>
-
-<p>We define a source called <code class="language-plaintext highlighter-rouge">source1</code> which simply executes a <code class="language-plaintext highlighter-rouge">vmstat</code> command to continuously generate
-virtual memory statistics for the machine and queue events into an in-memory <code class="language-plaintext highlighter-rouge">channel1</code> channel,
-which in turn is used for writing these events to a Kudu table called <code class="language-plaintext highlighter-rouge">stats</code>. We are using
-<code class="language-plaintext highlighter-rouge">org.apache.kudu.flume.sink.SimpleKuduEventProducer</code> as the producer. <code class="language-plaintext highlighter-rouge">SimpleKuduEventProducer</code> is
-the built-in and default producer, but it’s implemented as a showcase for how to write Flume
-events into Kudu tables. For any serious functionality we’d have to write a custom producer. We
-need to make this producer and the <code class="language-plaintext highlighter-rouge">KuduSink</code> class available to Flume. We can do that by simply
-copying the <code class="language-plaintext highlighter-rouge">kudu-flume-sink-<VERSION>.jar</code> jar file from the Kudu distribution to the
-<code class="language-plaintext highlighter-rouge">$FLUME_HOME/plugins.d/kudu-sink/lib</code> directory in the Flume installation. The jar file contains
-<code class="language-plaintext highlighter-rouge">KuduSink</code> and all of its dependencies (including Kudu java client classes).</p>
-
-<p>At a minimum, the Kudu Flume Sink needs to know where the Kudu masters are
-(<code class="language-plaintext highlighter-rouge">agent1.sinks.sink1.masterAddresses = localhost</code>) and which Kudu table should be used for writing
-Flume events to (<code class="language-plaintext highlighter-rouge">agent1.sinks.sink1.tableName = stats</code>). The Kudu Flume Sink doesn’t create this
-table, it has to be created before the Kudu Flume Sink is started.</p>
-
-<p>You may also notice the <code class="language-plaintext highlighter-rouge">batchSize</code> parameter. Batch size is used for batching up to that many
-Flume events and flushing the entire batch in one shot. Tuning batchSize properly can have a huge
-impact on ingest performance of the Kudu cluster.</p>
-
-<p>Here is a complete list of KuduSink parameters:</p>
-
-<table>
- <thead>
- <tr>
- <th>Parameter Name</th>
- <th>Default</th>
- <th>Description</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>masterAddresses</td>
- <td>N/A</td>
- <td>Comma-separated list of “host:port” pairs of the masters (port optional)</td>
- </tr>
- <tr>
- <td>tableName</td>
- <td>N/A</td>
- <td>The name of the table in Kudu to write to</td>
- </tr>
- <tr>
- <td>producer</td>
- <td>org.apache.kudu.flume.sink.SimpleKuduEventProducer</td>
- <td>The fully qualified class name of the Kudu event producer the sink should use</td>
- </tr>
- <tr>
- <td>batchSize</td>
- <td>100</td>
- <td>Maximum number of events the sink should take from the channel per transaction, if available</td>
- </tr>
- <tr>
- <td>timeoutMillis</td>
- <td>30000</td>
- <td>Timeout period for Kudu operations, in milliseconds</td>
- </tr>
- <tr>
- <td>ignoreDuplicateRows</td>
- <td>true</td>
- <td>Whether to ignore errors indicating that we attempted to insert duplicate rows into Kudu</td>
- </tr>
- </tbody>
-</table>
-
-<p>Let’s take a look at the source code for the built-in producer class:</p>
-
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">SimpleKuduEventProducer</span> <span class="kd">implements</span> <span class="nc">KuduEventProducer</span> <span class="o">{</span>
- <span class="kd">private</span> <span class="kt">byte</span><span class="o">[]</span> <span class="n">payload</span><span class="o">;</span>
- <span class="kd">private</span> <span class="nc">KuduTable</span> <span class="n">table</span><span class="o">;</span>
- <span class="kd">private</span> <span class="nc">String</span> <span class="n">payloadColumn</span><span class="o">;</span>
-
- <span class="kd">public</span> <span class="nf">SimpleKuduEventProducer</span><span class="o">(){</span>
- <span class="o">}</span>
-
- <span class="nd">@Override</span>
- <span class="kd">public</span> <span class="kt">void</span> <span class="nf">configure</span><span class="o">(</span><span class="nc">Context</span> <span class="n">context</span><span class="o">)</span> <span class="o">{</span>
- <span class="n">payloadColumn</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="s">"payloadColumn"</span><span class="o">,</span><span class="s">"payload"</span><span class="o">);</span>
- <span class="o">}</span>
-
- <span class="nd">@Override</span>
- <span class="kd">public</span> <span class="kt">void</span> <span class="nf">configure</span><span class="o">(</span><span class="nc">ComponentConfiguration</span> <span class="n">conf</span><span class="o">)</span> <span class="o">{</span>
- <span class="o">}</span>
-
- <span class="nd">@Override</span>
- <span class="kd">public</span> <span class="kt">void</span> <span class="nf">initialize</span><span class="o">(</span><span class="nc">Event</span> <span class="n">event</span><span class="o">,</span> <span class="nc">KuduTable</span> <span class="n">table</span><span class="o">)</span> <span class="o">{</span>
- <span class="k">this</span><span class="o">.</span><span class="na">payload</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="na">getBody</span><span class="o">();</span>
- <span class="k">this</span><span class="o">.</span><span class="na">table</span> <span class="o">=</span> <span class="n">table</span><span class="o">;</span>
- <span class="o">}</span>
-
- <span class="nd">@Override</span>
- <span class="kd">public</span> <span class="nc">List</span><span class="o"><</span><span class="nc">Operation</span><span class="o">></span> <span class="nf">getOperations</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">FlumeException</span> <span class="o">{</span>
- <span class="k">try</span> <span class="o">{</span>
- <span class="nc">Insert</span> <span class="n">insert</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="na">newInsert</span><span class="o">();</span>
- <span class="nc">PartialRow</span> <span class="n">row</span> <span class="o">=</span> <span class="n">insert</span><span class="o">.</span><span class="na">getRow</span><span class="o">();</span>
- <span class="n">row</span><span class="o">.</span><span class="na">addBinary</span><span class="o">(</span><span class="n">payloadColumn</span><span class="o">,</span> <span class="n">payload</span><span class="o">);</span>
-
- <span class="k">return</span> <span class="nc">Collections</span><span class="o">.</span><span class="na">singletonList</span><span class="o">((</span><span class="nc">Operation</span><span class="o">)</span> <span class="n">insert</span><span class="o">);</span>
- <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">Exception</span> <span class="n">e</span><span class="o">){</span>
- <span class="k">throw</span> <span class="k">new</span> <span class="nf">FlumeException</span><span class="o">(</span><span class="s">"Failed to create Kudu Insert object!"</span><span class="o">,</span> <span class="n">e</span><span class="o">);</span>
- <span class="o">}</span>
- <span class="o">}</span>
-
- <span class="nd">@Override</span>
- <span class="kd">public</span> <span class="kt">void</span> <span class="nf">close</span><span class="o">()</span> <span class="o">{</span>
- <span class="o">}</span>
-<span class="o">}</span>
-</code></pre></div></div>
-
-<p><code class="language-plaintext highlighter-rouge">SimpleKuduEventProducer</code> implements the <code class="language-plaintext highlighter-rouge">org.apache.kudu.flume.sink.KuduEventProducer</code> interface,
-which itself looks like this:</p>
-
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">interface</span> <span class="nc">KuduEventProducer</span> <span class="kd">extends</span> <span class="nc">Configurable</span><span class="o">,</span> <span class="nc">ConfigurableComponent</span> <span class="o">{</span>
- <span class="cm">/**
- * Initialize the event producer.
- * @param event to be written to Kudu
- * @param table the KuduTable object used for creating Kudu Operation objects
- */</span>
- <span class="kt">void</span> <span class="nf">initialize</span><span class="o">(</span><span class="nc">Event</span> <span class="n">event</span><span class="o">,</span> <span class="nc">KuduTable</span> <span class="n">table</span><span class="o">);</span>
-
- <span class="cm">/**
- * Get the operations that should be written out to Kudu as a result of this
- * event. This list is written to Kudu using the Kudu client API.
- * @return List of {@link org.kududb.client.Operation} which
- * are written as such to Kudu
- */</span>
- <span class="nc">List</span><span class="o"><</span><span class="nc">Operation</span><span class="o">></span> <span class="nf">getOperations</span><span class="o">();</span>
-
- <span class="cm">/*
- * Clean up any state. This will be called when the sink is being stopped.
- */</span>
- <span class="kt">void</span> <span class="nf">close</span><span class="o">();</span>
-<span class="o">}</span>
-</code></pre></div></div>
-
-<p><code class="language-plaintext highlighter-rouge">public void configure(Context context)</code> is called when an instance of our producer is instantiated
-by the KuduSink. SimpleKuduEventProducer’s implementation looks for a producer parameter named
-<code class="language-plaintext highlighter-rouge">payloadColumn</code> and uses its value (“payload” if not overridden in Flume configuration file) as the
-column which will hold the value of the Flume event payload. If you recall from above, we had
-configured the KuduSink to listen for events generated from the <code class="language-plaintext highlighter-rouge">vmstat</code> command. Each output row
-from that command will be stored as a new row containing a <code class="language-plaintext highlighter-rouge">payload</code> column in the <code class="language-plaintext highlighter-rouge">stats</code> table.
-<code class="language-plaintext highlighter-rouge">SimpleKuduEventProducer</code> does not have any configuration parameters, but if it had any we would
-define them by prefixing it with <code class="language-plaintext highlighter-rouge">producer.</code> (<code class="language-plaintext highlighter-rouge">agent1.sinks.sink1.producer.parameter1</code> for
-example).</p>
-
-<p>The main producer logic resides in the <code class="language-plaintext highlighter-rouge">public List<Operation> getOperations()</code> method. In
-SimpleKuduEventProducer’s implementation we simply insert the binary body of the Flume event into
-the Kudu table. Here we call Kudu’s <code class="language-plaintext highlighter-rouge">newInsert()</code> to initiate an insert, but could have used
-<code class="language-plaintext highlighter-rouge">Upsert</code> if updating an existing row was also an option, in fact there’s another producer
-implementation available for doing just that: <code class="language-plaintext highlighter-rouge">SimpleKeyedKuduEventProducer</code>. Most probably you
-will need to write your own custom producer in the real world, but you can base your implementation
-on the built-in ones.</p>
-
-<p>In the future, we plan to add more flexible event producer implementations so that creation of a
-custom event producer is not required to write data to Kudu. See
-<a href="https://gerrit.cloudera.org/#/c/4034/">here</a> for a work-in-progress generic event producer for
-Avro-encoded Events.</p>
-
-<h2 id="conclusion">Conclusion</h2>
-
-<p>Kudu is a scalable data store which lets us ingest insane amounts of data per second. Apache Flume
-helps us aggregate data from various sources, and the Kudu Flume Sink lets us easily store
-the aggregated Flume events into Kudu. Together they enable us to create a data warehouse out of
-disparate sources.</p>
-
-<p><em>Ara Abrahamian is a software engineer at Argyle Data building fraud detection systems using
-sophisticated machine learning methods. Ara is the original author of the Flume Kudu Sink that
-is included in the Kudu distribution. You can follow him on Twitter at
-<a href="https://twitter.com/ara_e">@ara_e</a>.</em></p>
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2016/08/31/intro-flume-kudu-sink.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -545,6 +253,8 @@ is included in the Kudu distribution. You can follow him on Twitter at
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -573,8 +283,6 @@ is included in the Kudu distribution. You can follow him on Twitter at
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/blog/page/9/index.html b/blog/page/9/index.html
index edddcf74..7498bd65 100644
--- a/blog/page/9/index.html
+++ b/blog/page/9/index.html
@@ -116,6 +116,319 @@
<div class="col-lg-9">
+<!-- Articles -->
+<article>
+ <header>
+ <h1 class="entry-title"><a href="/2016/08/31/intro-flume-kudu-sink.html">An Introduction to the Flume Kudu Sink</a></h1>
+ <p class="meta">Posted 31 Aug 2016 by Ara Abrahamian</p>
+ </header>
+ <div class="entry-content">
+
+ <p>This post discusses the Kudu Flume Sink. First, I’ll give some background on why we considered
+using Kudu, what Flume does for us, and how Flume fits with Kudu in our project.</p>
+
+<h2 id="why-kudu">Why Kudu</h2>
+
+<p>Traditionally in the Hadoop ecosystem we’ve dealt with various <em>batch processing</em> technologies such
+as MapReduce and the many libraries and tools built on top of it in various languages (Apache Pig,
+Apache Hive, Apache Oozie and many others). The main problem with this approach is that it needs to
+process the whole data set in batches, again and again, as soon as new data gets added. Things get
+really complicated when a few such tasks need to get chained together, or when the same data set
+needs to be processed in various ways by different jobs, while all compete for the shared cluster
+resources.</p>
+
+<p>The opposite of this approach is <em>stream processing</em>: process the data as soon as it arrives, not
+in batches. Streaming systems such as Spark Streaming, Storm, Kafka Streams, and many others make
+this possible. But writing streaming services is not trivial. The streaming systems are becoming
+more and more capable and support more complex constructs, but they are not yet easy to use. All
+queries and processes need to be carefully planned and implemented.</p>
+
+<p>To summarize, <em>batch processing</em> is:</p>
+
+<ul>
+ <li>file-based</li>
+ <li>a paradigm that processes large chunks of data as a group</li>
+ <li>high latency and high throughput, both for ingest and query</li>
+ <li>typically easy to program, but hard to orchestrate</li>
+ <li>well suited for writing ad-hoc queries, although they are typically high latency</li>
+</ul>
+
+<p>While <em>stream processing</em> is:</p>
+
+<ul>
+ <li>a totally different paradigm, which involves single events and time windows instead of large groups of events</li>
+ <li>still file-based and not a long-term database</li>
+ <li>not batch-oriented, but incremental</li>
+ <li>ultra-fast ingest and ultra-fast query (query results basically pre-calculated)</li>
+ <li>not so easy to program, relatively easy to orchestrate</li>
+ <li>impossible to write ad-hoc queries</li>
+</ul>
+
+<p>And a Kudu-based <em>near real-time</em> approach is:</p>
+
+<ul>
+ <li>flexible and expressive, thanks to SQL support via Apache Impala (incubating)</li>
+ <li>a table-oriented, mutable data store that feels like a traditional relational database</li>
+ <li>very easy to program, you can even pretend it’s good old MySQL</li>
+ <li>low-latency and relatively high throughput, both for ingest and query</li>
+</ul>
+
+<p>At Argyle Data, we’re dealing with complex fraud detection scenarios. We need to ingest massive
+amounts of data, run machine learning algorithms and generate reports. When we created our current
+architecture two years ago we decided to opt for a database as the backbone of our system. That
+database is Apache Accumulo. It’s a key-value based database which runs on top of Hadoop HDFS,
+quite similar to HBase but with some important improvements such as cell level security and ease
+of deployment and management. To enable querying of this data for quite complex reporting and
+analytics, we used Presto, a distributed query engine with a pluggable architecture open-sourced
+by Facebook. We wrote a connector for it to let it run queries against the Accumulo database. This
+architecture has served us well, but there were a few problems:</p>
+
+<ul>
+ <li>we need to ingest even more massive volumes of data in real-time</li>
+ <li>we need to perform complex machine-learning calculations on even larger data-sets</li>
+ <li>we need to support ad-hoc queries, plus long-term data warehouse functionality</li>
+</ul>
+
+<p>So, we’ve started gradually moving the core machine-learning pipeline to a streaming based
+solution. This way we can ingest and process larger data-sets faster in the real-time. But then how
+would we take care of ad-hoc queries and long-term persistence? This is where Kudu comes in. While
+the machine learning pipeline ingests and processes real-time data, we store a copy of the same
+ingested data in Kudu for long-term access and ad-hoc queries. Kudu is our <em>data warehouse</em>. By
+using Kudu and Impala, we can retire our in-house Presto connector and rely on Impala’s
+super-fast query engine.</p>
+
+<p>But how would we make sure data is reliably ingested into the streaming pipeline <em>and</em> the
+Kudu-based data warehouse? This is where Apache Flume comes in.</p>
+
+<h2 id="why-flume">Why Flume</h2>
+
+<p>According to their <a href="http://flume.apache.org/">website</a> “Flume is a distributed, reliable, and
+available service for efficiently collecting, aggregating, and moving large amounts of log data.
+It has a simple and flexible architecture based on streaming data flows. It is robust and fault
+tolerant with tunable reliability mechanisms and many failover and recovery mechanisms.” As you
+can see, nowhere is Hadoop mentioned but Flume is typically used for ingesting data to Hadoop
+clusters.</p>
+
+<p><img src="https://blogs.apache.org/flume/mediaresource/ab0d50f6-a960-42cc-971e-3da38ba3adad" alt="png" /></p>
+
+<p>Flume has an extensible architecture. An instance of Flume, called an <em>agent</em>, can have multiple
+<em>channels</em>, with each having multiple <em>sources</em> and <em>sinks</em> of various types. Sources queue data
+in channels, which in turn write out data to sinks. Such <em>pipelines</em> can be chained together to
+create even more complex ones. There may be more than one agent and agents can be configured to
+support failover and recovery.</p>
+
+<p>Flume comes with a bunch of built-in types of channels, sources and sinks. Memory channel is the
+default (an in-memory queue with no persistence to disk), but other options such as Kafka- and
+File-based channels are also provided. As for the sources, Avro, JMS, Thrift, spooling directory
+source are some of the built-in ones. Flume also ships with many sinks, including sinks for writing
+data to HDFS, HBase, Hive, Kafka, as well as to other Flume agents.</p>
+
+<p>In the rest of this post I’ll go over the Kudu Flume sink and show you how to configure Flume to
+write ingested data to a Kudu table. The sink has been part of the Kudu distribution since the 0.8
+release and the source code can be found <a href="https://github.com/apache/kudu/tree/master/java/kudu-flume-sink">here</a>.</p>
+
+<h2 id="configuring-the-kudu-flume-sink">Configuring the Kudu Flume Sink</h2>
+
+<p>Here is a sample flume configuration file:</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>agent1.sources = source1
+agent1.channels = channel1
+agent1.sinks = sink1
+
+agent1.sources.source1.type = exec
+agent1.sources.source1.command = /usr/bin/vmstat 1
+agent1.sources.source1.channels = channel1
+
+agent1.channels.channel1.type = memory
+agent1.channels.channel1.capacity = 10000
+agent1.channels.channel1.transactionCapacity = 1000
+
+agent1.sinks.sink1.type = org.apache.flume.sink.kudu.KuduSink
+agent1.sinks.sink1.masterAddresses = localhost
+agent1.sinks.sink1.tableName = stats
+agent1.sinks.sink1.channel = channel1
+agent1.sinks.sink1.batchSize = 50
+agent1.sinks.sink1.producer = org.apache.kudu.flume.sink.SimpleKuduEventProducer
+</code></pre></div></div>
+
+<p>We define a source called <code class="language-plaintext highlighter-rouge">source1</code> which simply executes a <code class="language-plaintext highlighter-rouge">vmstat</code> command to continuously generate
+virtual memory statistics for the machine and queue events into an in-memory <code class="language-plaintext highlighter-rouge">channel1</code> channel,
+which in turn is used for writing these events to a Kudu table called <code class="language-plaintext highlighter-rouge">stats</code>. We are using
+<code class="language-plaintext highlighter-rouge">org.apache.kudu.flume.sink.SimpleKuduEventProducer</code> as the producer. <code class="language-plaintext highlighter-rouge">SimpleKuduEventProducer</code> is
+the built-in and default producer, but it’s implemented as a showcase for how to write Flume
+events into Kudu tables. For any serious functionality we’d have to write a custom producer. We
+need to make this producer and the <code class="language-plaintext highlighter-rouge">KuduSink</code> class available to Flume. We can do that by simply
+copying the <code class="language-plaintext highlighter-rouge">kudu-flume-sink-<VERSION>.jar</code> jar file from the Kudu distribution to the
+<code class="language-plaintext highlighter-rouge">$FLUME_HOME/plugins.d/kudu-sink/lib</code> directory in the Flume installation. The jar file contains
+<code class="language-plaintext highlighter-rouge">KuduSink</code> and all of its dependencies (including Kudu java client classes).</p>
+
+<p>At a minimum, the Kudu Flume Sink needs to know where the Kudu masters are
+(<code class="language-plaintext highlighter-rouge">agent1.sinks.sink1.masterAddresses = localhost</code>) and which Kudu table should be used for writing
+Flume events to (<code class="language-plaintext highlighter-rouge">agent1.sinks.sink1.tableName = stats</code>). The Kudu Flume Sink doesn’t create this
+table, it has to be created before the Kudu Flume Sink is started.</p>
+
+<p>You may also notice the <code class="language-plaintext highlighter-rouge">batchSize</code> parameter. Batch size is used for batching up to that many
+Flume events and flushing the entire batch in one shot. Tuning batchSize properly can have a huge
+impact on ingest performance of the Kudu cluster.</p>
+
+<p>Here is a complete list of KuduSink parameters:</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Parameter Name</th>
+ <th>Default</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>masterAddresses</td>
+ <td>N/A</td>
+ <td>Comma-separated list of “host:port” pairs of the masters (port optional)</td>
+ </tr>
+ <tr>
+ <td>tableName</td>
+ <td>N/A</td>
+ <td>The name of the table in Kudu to write to</td>
+ </tr>
+ <tr>
+ <td>producer</td>
+ <td>org.apache.kudu.flume.sink.SimpleKuduEventProducer</td>
+ <td>The fully qualified class name of the Kudu event producer the sink should use</td>
+ </tr>
+ <tr>
+ <td>batchSize</td>
+ <td>100</td>
+ <td>Maximum number of events the sink should take from the channel per transaction, if available</td>
+ </tr>
+ <tr>
+ <td>timeoutMillis</td>
+ <td>30000</td>
+ <td>Timeout period for Kudu operations, in milliseconds</td>
+ </tr>
+ <tr>
+ <td>ignoreDuplicateRows</td>
+ <td>true</td>
+ <td>Whether to ignore errors indicating that we attempted to insert duplicate rows into Kudu</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Let’s take a look at the source code for the built-in producer class:</p>
+
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">SimpleKuduEventProducer</span> <span class="kd">implements</span> <span class="nc">KuduEventProducer</span> <span class="o">{</span>
+ <span class="kd">private</span> <span class="kt">byte</span><span class="o">[]</span> <span class="n">payload</span><span class="o">;</span>
+ <span class="kd">private</span> <span class="nc">KuduTable</span> <span class="n">table</span><span class="o">;</span>
+ <span class="kd">private</span> <span class="nc">String</span> <span class="n">payloadColumn</span><span class="o">;</span>
+
+ <span class="kd">public</span> <span class="nf">SimpleKuduEventProducer</span><span class="o">(){</span>
+ <span class="o">}</span>
+
+ <span class="nd">@Override</span>
+ <span class="kd">public</span> <span class="kt">void</span> <span class="nf">configure</span><span class="o">(</span><span class="nc">Context</span> <span class="n">context</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">payloadColumn</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="s">"payloadColumn"</span><span class="o">,</span><span class="s">"payload"</span><span class="o">);</span>
+ <span class="o">}</span>
+
+ <span class="nd">@Override</span>
+ <span class="kd">public</span> <span class="kt">void</span> <span class="nf">configure</span><span class="o">(</span><span class="nc">ComponentConfiguration</span> <span class="n">conf</span><span class="o">)</span> <span class="o">{</span>
+ <span class="o">}</span>
+
+ <span class="nd">@Override</span>
+ <span class="kd">public</span> <span class="kt">void</span> <span class="nf">initialize</span><span class="o">(</span><span class="nc">Event</span> <span class="n">event</span><span class="o">,</span> <span class="nc">KuduTable</span> <span class="n">table</span><span class="o">)</span> <span class="o">{</span>
+ <span class="k">this</span><span class="o">.</span><span class="na">payload</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="na">getBody</span><span class="o">();</span>
+ <span class="k">this</span><span class="o">.</span><span class="na">table</span> <span class="o">=</span> <span class="n">table</span><span class="o">;</span>
+ <span class="o">}</span>
+
+ <span class="nd">@Override</span>
+ <span class="kd">public</span> <span class="nc">List</span><span class="o"><</span><span class="nc">Operation</span><span class="o">></span> <span class="nf">getOperations</span><span class="o">()</span> <span class="kd">throws</span> <span class="nc">FlumeException</span> <span class="o">{</span>
+ <span class="k">try</span> <span class="o">{</span>
+ <span class="nc">Insert</span> <span class="n">insert</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="na">newInsert</span><span class="o">();</span>
+ <span class="nc">PartialRow</span> <span class="n">row</span> <span class="o">=</span> <span class="n">insert</span><span class="o">.</span><span class="na">getRow</span><span class="o">();</span>
+ <span class="n">row</span><span class="o">.</span><span class="na">addBinary</span><span class="o">(</span><span class="n">payloadColumn</span><span class="o">,</span> <span class="n">payload</span><span class="o">);</span>
+
+ <span class="k">return</span> <span class="nc">Collections</span><span class="o">.</span><span class="na">singletonList</span><span class="o">((</span><span class="nc">Operation</span><span class="o">)</span> <span class="n">insert</span><span class="o">);</span>
+ <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nc">Exception</span> <span class="n">e</span><span class="o">){</span>
+ <span class="k">throw</span> <span class="k">new</span> <span class="nf">FlumeException</span><span class="o">(</span><span class="s">"Failed to create Kudu Insert object!"</span><span class="o">,</span> <span class="n">e</span><span class="o">);</span>
+ <span class="o">}</span>
+ <span class="o">}</span>
+
+ <span class="nd">@Override</span>
+ <span class="kd">public</span> <span class="kt">void</span> <span class="nf">close</span><span class="o">()</span> <span class="o">{</span>
+ <span class="o">}</span>
+<span class="o">}</span>
+</code></pre></div></div>
+
+<p><code class="language-plaintext highlighter-rouge">SimpleKuduEventProducer</code> implements the <code class="language-plaintext highlighter-rouge">org.apache.kudu.flume.sink.KuduEventProducer</code> interface,
+which itself looks like this:</p>
+
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">interface</span> <span class="nc">KuduEventProducer</span> <span class="kd">extends</span> <span class="nc">Configurable</span><span class="o">,</span> <span class="nc">ConfigurableComponent</span> <span class="o">{</span>
+ <span class="cm">/**
+ * Initialize the event producer.
+ * @param event to be written to Kudu
+ * @param table the KuduTable object used for creating Kudu Operation objects
+ */</span>
+ <span class="kt">void</span> <span class="nf">initialize</span><span class="o">(</span><span class="nc">Event</span> <span class="n">event</span><span class="o">,</span> <span class="nc">KuduTable</span> <span class="n">table</span><span class="o">);</span>
+
+ <span class="cm">/**
+ * Get the operations that should be written out to Kudu as a result of this
+ * event. This list is written to Kudu using the Kudu client API.
+ * @return List of {@link org.kududb.client.Operation} which
+ * are written as such to Kudu
+ */</span>
+ <span class="nc">List</span><span class="o"><</span><span class="nc">Operation</span><span class="o">></span> <span class="nf">getOperations</span><span class="o">();</span>
+
+ <span class="cm">/*
+ * Clean up any state. This will be called when the sink is being stopped.
+ */</span>
+ <span class="kt">void</span> <span class="nf">close</span><span class="o">();</span>
+<span class="o">}</span>
+</code></pre></div></div>
+
+<p><code class="language-plaintext highlighter-rouge">public void configure(Context context)</code> is called when an instance of our producer is instantiated
+by the KuduSink. SimpleKuduEventProducer’s implementation looks for a producer parameter named
+<code class="language-plaintext highlighter-rouge">payloadColumn</code> and uses its value (“payload” if not overridden in Flume configuration file) as the
+column which will hold the value of the Flume event payload. If you recall from above, we had
+configured the KuduSink to listen for events generated from the <code class="language-plaintext highlighter-rouge">vmstat</code> command. Each output row
+from that command will be stored as a new row containing a <code class="language-plaintext highlighter-rouge">payload</code> column in the <code class="language-plaintext highlighter-rouge">stats</code> table.
+<code class="language-plaintext highlighter-rouge">SimpleKuduEventProducer</code> does not have any configuration parameters, but if it had any we would
+define them by prefixing it with <code class="language-plaintext highlighter-rouge">producer.</code> (<code class="language-plaintext highlighter-rouge">agent1.sinks.sink1.producer.parameter1</code> for
+example).</p>
+
+<p>The main producer logic resides in the <code class="language-plaintext highlighter-rouge">public List<Operation> getOperations()</code> method. In
+SimpleKuduEventProducer’s implementation we simply insert the binary body of the Flume event into
+the Kudu table. Here we call Kudu’s <code class="language-plaintext highlighter-rouge">newInsert()</code> to initiate an insert, but could have used
+<code class="language-plaintext highlighter-rouge">Upsert</code> if updating an existing row was also an option, in fact there’s another producer
+implementation available for doing just that: <code class="language-plaintext highlighter-rouge">SimpleKeyedKuduEventProducer</code>. Most probably you
+will need to write your own custom producer in the real world, but you can base your implementation
+on the built-in ones.</p>
+
+<p>In the future, we plan to add more flexible event producer implementations so that creation of a
+custom event producer is not required to write data to Kudu. See
+<a href="https://gerrit.cloudera.org/#/c/4034/">here</a> for a work-in-progress generic event producer for
+Avro-encoded Events.</p>
+
+<h2 id="conclusion">Conclusion</h2>
+
+<p>Kudu is a scalable data store which lets us ingest insane amounts of data per second. Apache Flume
+helps us aggregate data from various sources, and the Kudu Flume Sink lets us easily store
+the aggregated Flume events into Kudu. Together they enable us to create a data warehouse out of
+disparate sources.</p>
+
+<p><em>Ara Abrahamian is a software engineer at Argyle Data building fraud detection systems using
+sophisticated machine learning methods. Ara is the original author of the Flume Kudu Sink that
+is included in the Kudu distribution. You can follow him on Twitter at
+<a href="https://twitter.com/ara_e">@ara_e</a>.</em></p>
+
+
+ </div>
+ <div class="read-full">
+ <a class="btn btn-info" href="/2016/08/31/intro-flume-kudu-sink.html">Read full post...</a>
+ </div>
+</article>
+
+
+
<!-- Articles -->
<article>
<header>
@@ -202,27 +515,6 @@ covers ongoing development and news in the Apache Kudu project.</p>
-<!-- Articles -->
-<article>
- <header>
- <h1 class="entry-title"><a href="/2016/07/26/weekly-update.html">Apache Kudu Weekly Update July 26, 2016</a></h1>
- <p class="meta">Posted 26 Jul 2016 by Jean-Daniel Cryans</p>
- </header>
- <div class="entry-content">
-
- <p>Welcome to the eighteenth edition of the Kudu Weekly Update. This weekly blog post
-covers ongoing development and news in the Apache Kudu project.</p>
-
-
-
- </div>
- <div class="read-full">
- <a class="btn btn-info" href="/2016/07/26/weekly-update.html">Read full post...</a>
- </div>
-</article>
-
-
-
<!-- Pagination links -->
<nav>
@@ -243,6 +535,8 @@ covers ongoing development and news in the Apache Kudu project.</p>
<h3>Recent posts</h3>
<ul>
+ <li> <a href="/2024/03/07/introducing-auto-incrementing-column.html">Introducing Auto-incrementing Column in Kudu</a> </li>
+
<li> <a href="/2023/09/07/apache-kudu-1-17-0-released.html">Apache Kudu 1.17.0 Released</a> </li>
<li> <a href="/2022/06/17/apache-kudu-1-16-0-released.html">Apache Kudu 1.16.0 Released</a> </li>
@@ -271,8 +565,6 @@ covers ongoing development and news in the Apache Kudu project.</p>
<li> <a href="/2019/04/22/fine-grained-authorization-with-apache-kudu-and-impala.html">Fine-Grained Authorization with Apache Kudu and Impala</a> </li>
- <li> <a href="/2019/03/19/testing-apache-kudu-applications-on-the-jvm.html">Testing Apache Kudu Applications on the JVM</a> </li>
-
</ul>
</div>
</div>
diff --git a/feed.xml b/feed.xml
index 9f13ce40..07cb02de 100644
--- a/feed.xml
+++ b/feed.xml
@@ -1,4 +1,169 @@
-<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.1.1">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2023-10-24T17:30:11-07:00</updated><id>/feed.xml</id><entry><title type="html">Apache Kudu 1.17.0 Released</title><link href="/2023/09/07/apache-kudu-1-17-0-released.html" rel="alternate" type="text/html" title="Apa [...]
+<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.1.1">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2024-04-30T10:59:16-07:00</updated><id>/feed.xml</id><entry><title type="html">Introducing Auto-incrementing Column in Kudu</title><link href="/2024/03/07/introducing-auto-incrementing-column.html" rel="alternate" t [...]
+
+<h1 id="introduction">Introduction</h1>
+
+<p>Kudu has a strict requirement for a primary key presence in a table. This is primarily to help in
+point lookups and support DELETE and UPDATE operations on the table data. There are situations where
+users are unable to define a unique primary key in their data set and have to either introduce
+additional columns to be a part of the primary key or define a new column and maintain it to enforce
+uniqueness. Kudu 1.17 has introduced support for the auto-incrementing column to have partially
+defined primary keys (keys which are not unique across the table) during table creation. This way a
+user does not have to worry about the uniqueness constraint when defining a primary key.</p>
+
+<h1 id="implementation-details">Implementation Details</h1>
+
+<p>When a primary key is partially defined, Kudu internally creates a new column named
+“auto_incrementing_id” as a part of the primary key. The column is populated with a monotonically
+increasing counter. The system updates the counter value upon every INSERT operation and populates
+the “auto_incrementing_id” column on the server side. The counter is partition-local i.e. every
+tablet has its own counter.</p>
+
+<h2 id="server-side">Server Side</h2>
+
+<p>When a user writes data into a table with the auto-incrementing column, the server makes sure that
+no INSERT operations have the “auto_incrementing_id” column field value set and populates this
+column value. The highest value of the counter written into the “auto_incrementing_id” column
+until any particular point is stored in memory and this is used to set the column value for the
+next INSERT operation.</p>
+
+<h2 id="client-side">Client Side</h2>
+
+<p>When creating a table without an explicitly defined primary key, users will have to declare the key
+as non-unique. Internally, the client builds a schema with an extra column named
+“auto_incrementing_id” and forwards the request to the server where the table is created. For
+INSERT operations, the user shouldn’t specify the “auto_incrementing_id” column value as it will be
+populated on the server side.</p>
+
+<h3 id="impala-integration">Impala Integration</h3>
+
+<p>In Impala, the new column is not exposed to the user by default. This is due to the reason that it
+is not a part of the user table schema. The below query will not return the “auto_incrementing_id”
+column
+SELECT * FROM &lt;tablename&gt;</p>
+
+<p>If the auto-incrementing column’s data is needed, the column name has to be specifically requested.
+The below query will return the column values:
+SELECT *, auto_incrementing_id FROM &lt;tablename&gt;</p>
+
+<h4 id="examples">Examples</h4>
+
+<p>Create a table with two columns and two hash partitions:</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default&gt; CREATE TABLE demo_table(id INT NON UNIQUE PRIMARY KEY, name STRING) PARTITION BY HASH (id) PARTITIONS 2 STORED AS KUDU;
+Query: CREATE TABLE demo_table(id INT NON UNIQUE PRIMARY KEY, name STRING) PARTITION BY HASH (id) PARTITIONS 2 STORED AS KUDU
++-------------------------+
+| summary |
++-------------------------+
+| Table has been created. |
++-------------------------+
+Fetched 1 row(s) in 3.94s
+</code></pre></div></div>
+
+<p>Describe the table:</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default&gt; DESCRIBE demo_table;
+Query: DESCRIBE demo_table
++----------------------+--------+---------+-------------+------------+----------+---------------+---------------+---------------------+------------+
+| name | type | comment | primary_key | key_unique | nullable | default_value | encoding | compression | block_size |
++----------------------+--------+---------+-------------+------------+----------+---------------+---------------+---------------------+------------+
+| id | int | | true | false | false | | AUTO_ENCODING | DEFAULT_COMPRESSION | 0 |
+| auto_incrementing_id | bigint | | true | false | false | | AUTO_ENCODING | DEFAULT_COMPRESSION | 0 |
+| name | string | | false | | true | | AUTO_ENCODING | DEFAULT_COMPRESSION | 0 |
++----------------------+--------+---------+-------------+------------+----------+---------------+---------------+---------------------+------------+
+</code></pre></div></div>
+
+<p><br />Insert rows with duplicate partial primary key column values:</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default&gt; INSERT INTO demo_table VALUES (1, 'John'), (2, 'Bob'), (3, 'Mary'), (1, 'Joe');
+Query: INSERT INTO demo_table VALUES (1, 'John'), (2, 'Bob'), (3, 'Mary'), (1, 'Joe')
+..
+Modified 4 row(s), 0 row error(s) in 0.41s
+</code></pre></div></div>
+<p><br />Scan the table (notice the duplicate values in the ‘id’ column):</p>
+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default&gt; SELECT * FROM demo_table;
+Query: SELECT * FROM demo_table
+..
++----+------+
+| id | name |
++----+------+
+| 3 | Mary |
+| 1 | John |
+| 1 | Joe |
+| 2 | Bob |
++----+------+
+Fetched 4 row(s) in 0.24s
+</code></pre></div></div>
+
+<p>Explicitly specify the auto-incrementing column name to fetch the column values:</p>
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default&gt; SELECT *, auto_incrementing_id FROM demo_table;
+Query: SELECT *, auto_incrementing_id FROM demo_table
+..
++----+------+----------------------+
+| id | name | auto_incrementing_id |
++----+------+----------------------+
+| 3 | Mary | 1 |
+| 1 | John | 1 |
+| 1 | Joe | 2 |
+| 2 | Bob | 2 |
++----+------+----------------------+
+Fetched 4 row(s) in 0.24s
+</code></pre></div></div>
+
+<p>Update and Delete rows:</p>
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default&gt; UPDATE demo_table SET name='Matt' WHERE id=3;
+Query: UPDATE demo_table SET name='Matt' WHERE id=3
+Modified 1 row(s), 0 row error(s) in 1.99s
+default&gt; UPDATE demo_table SET name='Liam' WHERE id=1;
+Query: UPDATE demo_table SET name='Liam' WHERE id=1
+Modified 2 row(s), 0 row error(s) in 2.15s
+default&gt; DELETE FROM demo_table where id=2;
+Query: DELETE FROM demo_table where id=2;
+Modified 1 row(s), 0 row error(s) in 1.40s
+</code></pre></div></div>
+<p>Scan all the columns of the table:</p>
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>default&gt; SELECT *, auto_incrementing_id FROM demo_table;
+Query: SELECT *, auto_incrementing_id FROM demo_table
+..
++----+------+----------------------+
+| id | name | auto_incrementing_id |
++----+------+----------------------+
+| 3 | Matt | 1 |
+| 1 | Liam | 1 |
+| 1 | Liam | 2 |
++----+------+----------------------+
+Fetched 3 row(s) in 0.20s
+</code></pre></div></div>
+<h4 id="limitations">Limitations</h4>
+
+<p>Impala doesn’t support UPSERT operations on tables with the auto-incrementing column as of writing
+this article.</p>
+
+<h3 id="kudu-clientsjava-c-python">Kudu clients(Java, C++, Python)</h3>
+
+<p>Unlike in Impala, scanning the table fetches all the table data including the auto incrementing column.
+There is no need to explicitly request the auto-incrementing column.</p>
+
+<p>There is also support for UPSERT operations but the user has to provide the entire primary key
+including the value for the auto-incrementing column. If the row is present, it will be considered a
+regular UPDATE operation. If the row is not present, it is considered an INSERT operation.</p>
+
+<h4 id="examples-1">Examples</h4>
+
+<p><a href="https://github.com/apache/kudu/blob/master/examples/cpp/non_unique_primary_key.cc">https://github.com/apache/kudu/blob/master/examples/cpp/non_unique_primary_key.cc</a></p>
+
+<p><a href="https://github.com/apache/kudu/blob/master/examples/python/basic-python-example/non_unique_primary_key.py">https://github.com/apache/kudu/blob/master/examples/python/basic-python-example/non_unique_primary_key.py</a></p>
+
+<p>##Backup and Restore</p>
+
+<p>The Kudu backup tool from Kudu 1.17 and later supports backing up tables with the
+auto-incrementing column. The prior backup tools will fail with an error message -
+“auto_incrementing_id is a reserved column name” during backup and restore operations.</p>
+
+<p>The backed up data (from Kudu 1.17 and later) includes the auto-incrementing column in the table
+schema and the column values as well. Restoring this backed up table with the Kudu restore tool
+will create a table with the auto-incrementing column and the column values identical to the
+original source table.</p></content><author><name>Abhishek Chennaka</name></author><summary type="html"></summary></entry><entry><title type="html">Apache Kudu 1.17.0 Released</title><link href="/2023/09/07/apache-kudu-1-17-0-released.html" rel="alternate" type="text/html" title="Apache Kudu 1.17.0 Released" /><published>2023-09-07T00:00:00-07:00</published><updated>2023-09-07T00:00:00-07:00</updated><id>/2023/09/07/apache-kudu-1-17-0-released</id><content type="html" xml:base="/20 [...]
<p>The new release adds several new features and improvements, including the
following:</p>
@@ -1010,29 +1175,4 @@ available</a>.</p>
<a href="https://pypi.org/project/kudu-python/">PyPI</a>.</p>
<p>Additionally, experimental Docker images are published to
-<a href="https://hub.docker.com/r/apache/kudu">Docker Hub</a>.</p></content><author><name>Hao Hao</name></author><summary type="html">The Apache Kudu team is happy to announce the release of Kudu 1.12.0! The new release adds several new features and improvements, including the following:</summary></entry><entry><title type="html">Apache Kudu 1.10.1 released</title><link href="/2019/11/20/apache-kudu-1-10-1-release.html" rel="alternate" type="text/html" title=" [...]
-
-<p>Apache Kudu 1.10.1 is a bug fix release which fixes critical issues discovered
-in Apache Kudu 1.10.0. In particular, this fixes a licensing issue with
-distributing libnuma library with the kudu-binary JAR artifact. Users of
-Kudu 1.10.0 are encouraged to upgrade to 1.10.1 as soon as possible. See the
-<a href="/releases/1.10.1/docs/release_notes.html">release notes</a> for details.</p>
-
-<!--more-->
-
-<p>The Apache Kudu project only publishes source code releases. To build Kudu
-1.10.1, follow these steps:</p>
-
-<ul>
- <li>Download the Kudu <a href="/releases/1.10.1">1.10.1 source release</a></li>
- <li>Follow the instructions in the documentation to build Kudu <a href="/releases/1.10.1/docs/installation.html#build_from_source">1.10.1 from
-source</a></li>
-</ul>
-
-<p>For your convenience, binary JAR files for the Kudu Java client library, Spark
-DataSource, Flume sink, and other Java integrations are published to the ASF
-Maven repository and are <a href="https://search.maven.org/search?q=g:org.apache.kudu%20AND%20v:1.10.1">now
-available</a>.</p>
-
-<p>The Python client source is also available on
-<a href="https://pypi.org/project/kudu-python/">PyPI</a>.</p></content><author><name>Alexey Serbin</name></author><summary type="html">The Apache Kudu team is happy to announce the release of Kudu 1.10.1! Apache Kudu 1.10.1 is a bug fix release which fixes critical issues discovered in Apache Kudu 1.10.0. In particular, this fixes a licensing issue with distributing libnuma library with the kudu-binary JAR artifact. Users of Kudu 1.10.0 are encouraged to upgra [...]
\ No newline at end of file
+<a href="https://hub.docker.com/r/apache/kudu">Docker Hub</a>.</p></content><author><name>Hao Hao</name></author><summary type="html">The Apache Kudu team is happy to announce the release of Kudu 1.12.0! The new release adds several new features and improvements, including the following:</summary></entry></feed>
\ No newline at end of file