This is an automated email from the ASF dual-hosted git repository.
xushiyan pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/asf-site by this push:
new bb05a71d47bf chore(site): add blog author cards (#17756)
bb05a71d47bf is described below
commit bb05a71d47bf65baccc16961b2007e16fdf2ec46
Author: Shiyan Xu <[email protected]>
AuthorDate: Tue Dec 30 13:35:01 2025 -0600
chore(site): add blog author cards (#17756)
---
website/blog/2019-03-07-batch-vs-incremental.md | 2 +-
.../blog/2019-05-14-registering-dataset-to-hive.md | 2 +-
.../blog/2019-09-09-ingesting-database-changes.md | 2 +-
website/blog/2020-01-15-delete-support-in-hudi.md | 2 +-
.../blog/2020-01-20-change-capture-using-aws.md | 2 +-
website/blog/2020-03-22-exporting-hudi-datasets.md | 2 +-
...0-05-28-monitoring-hudi-metrics-with-datadog.md | 2 +-
.../blog/2020-11-11-hudi-indexing-mechanisms.md | 2 +-
website/blog/2021-02-13-hudi-key-generators.md | 2 +-
website/blog/2021-03-01-hudi-file-sizing.md | 2 +-
.../2021-07-21-streaming-data-lake-platform.md | 2 +-
.../blog/2021-08-18-improving-marker-mechanism.md | 2 +-
website/blog/2021-08-18-virtual-keys.md | 2 +-
website/blog/2021-08-23-async-clustering.md | 2 +-
website/blog/2021-08-23-s3-events-source.md | 2 +-
...e-concurrency-control-are-we-too-optimistic.mdx | 2 +-
...022-01-06-apache-hudi-2021-a-year-in-review.mdx | 2 +-
...-data-capture-with-debezium-and-apache-hudi.mdx | 2 +-
...irst-Hudi-Lakehouse-with-AWS-Glue-and-AWS-S3.md | 2 +-
...022-12-29-Apache-Hudi-2022-A-Year-In-Review.mdx | 2 +-
...incrementally-process-data-with-apache-hudi.mdx | 3 +-
.../2023-08-28-Apache-Hudi-From-Zero-To-One.mdx | 2 +-
...3-09-06-Apache-Hudi-From-Zero-To-One-blog-2.mdx | 2 +-
...3-09-15-Apache-Hudi-From-Zero-To-One-blog-3.mdx | 2 +-
...ide-to-Apache-Hudi-with-PySpark-Part-1-of-2.mdx | 2 +-
...3-09-27-Apache-Hudi-From-Zero-To-One-blog-4.mdx | 2 +-
...3-10-18-Apache-Hudi-From-Zero-To-One-blog-5.mdx | 2 +-
...0-Its-Time-for-the-Universal-Data-Lakehouse.mdx | 2 +-
website/blog/2023-11-01-record-level-index.md | 2 +-
...3-11-13-Apache-Hudi-From-Zero-To-One-blog-6.mdx | 2 +-
...-Apache-Hudi-Part-1-History-Getting-Started.mdx | 2 +-
...3-12-06-Apache-Hudi-From-Zero-To-One-blog-7.mdx | 2 +-
...023-12-28-apache-hudi-2023-a-year-in-review.mdx | 2 +-
...4-01-05-Apache-Hudi-From-Zero-To-One-blog-8.mdx | 2 +-
...4-03-05-Apache-Hudi-From-Zero-To-One-blog-9.mdx | 2 +-
...-04-13-Apache-Hudi-From-Zero-To-One-blog-10.mdx | 2 +-
...-lakehouse-using-apache-hudi-daft-streamlit.mdx | 2 +-
.../blog/2024-05-19-apache-hudi-on-aws-glue.mdx | 2 +-
...6-18-how-to-use-apache-hudi-with-databricks.mdx | 2 +-
.../blog/2024-07-11-what-is-a-data-lakehouse.md | 2 +-
website/blog/2024-07-30-data-lake-cdc.md | 2 +-
.../2024-11-19-automated-small-file-handling.md | 2 +-
.../2024-12-06-non-blocking-concurrency-control.md | 2 +-
website/blog/2024-12-16-announcing-hudi-1-0-0.mdx | 2 +-
...024-12-29-apache-hudi-2024-a-year-in-review.mdx | 2 +-
.../2025-01-15-outofbox-key-generators-in-hudi.mdx | 2 +-
website/blog/2025-01-28-concurrency-control.md | 2 +-
website/blog/2025-03-03-record-mergers-in-hudi.mdx | 2 +-
.../2025-03-05-hudi-21-unique-differentiators.mdx | 2 +-
website/blog/2025-03-26-acid-transactions.mdx | 2 +-
website/blog/2025-03-26-clustering.mdx | 2 +-
website/blog/2025-03-26-dedupe.mdx | 2 +-
website/blog/2025-04-02-secondary-index.md | 2 +-
website/blog/2025-05-29-lsm-timeline.md | 2 +-
.../blog/2025-06-16-Apache-Hudi-does-XYZ-110.mdx | 2 +-
...5-07-10-building-a-rag-based-ai-recommender.mdx | 2 +-
website/blog/2025-07-21-mor-comparison.md | 2 +-
...08-29-building-a-rag-based-ai-recommender-2.mdx | 2 +-
website/blog/2025-09-17-hudi-auto-gen-keys.mdx | 2 +-
...ion_Stats_Enhancing_Column_Stats_in_Hudi_1.0.md | 2 +-
...ve-into-hudis-indexing-subsystem-part-1-of-2.md | 2 +-
...ve-into-hudis-indexing-subsystem-part-2-of-2.md | 2 +-
...5-11-25-apache-hudi-release-1-1-announcement.md | 2 +-
...ve-optimizing-streaming-ingestion-with-flink.md | 2 +-
.../blog/2025-12-16-maximizing-throughput-nbcc.md | 2 +-
...025-12-29-apache-hudi-2025-a-year-in-review.mdx | 2 +-
website/blog/authors.yml | 59 +++++++++++++++++++++
website/docusaurus.config.js | 4 +-
website/src/components/BlogsSlider/index.js | 2 +-
.../src/theme/BlogPostItem/Header/Authors/index.js | 37 +++++++------
.../BlogPostItem/Header/Authors/styles.module.css | 27 +++++-----
.../BlogPostItem/Header/Info/styles.module.css | 1 +
.../static/assets/images/authors/aditya-goenka.jpg | Bin 0 -> 17567 bytes
.../static/assets/images/authors/danny-chan.jpg | Bin 0 -> 84025 bytes
.../assets/images/authors/dipankar-mazumdar.jpg | Bin 0 -> 30770 bytes
website/static/assets/images/authors/ethan-guo.jpg | Bin 0 -> 47365 bytes
.../static/assets/images/authors/nadine-farah.png | Bin 0 -> 722576 bytes
.../assets/images/authors/rajesh-mahindra.jpg | Bin 0 -> 103928 bytes
.../assets/images/authors/sagar-lakshmipathy.jpg | Bin 0 -> 85354 bytes
.../static/assets/images/authors/sagar-sumit.jpg | Bin 0 -> 85068 bytes
.../static/assets/images/authors/shuo-cheng.jpg | Bin 0 -> 100977 bytes
website/static/assets/images/authors/sivabalan.jpg | Bin 0 -> 24022 bytes
.../assets/images/authors/vinoth-chandar.png | Bin 0 -> 382564 bytes
website/static/assets/images/authors/xushiyan.jpg | Bin 0 -> 1288871 bytes
84 files changed, 161 insertions(+), 102 deletions(-)
diff --git a/website/blog/2019-03-07-batch-vs-incremental.md
b/website/blog/2019-03-07-batch-vs-incremental.md
index aaec1d25e6c0..b08e15cd5b7a 100644
--- a/website/blog/2019-03-07-batch-vs-incremental.md
+++ b/website/blog/2019-03-07-batch-vs-incremental.md
@@ -1,6 +1,6 @@
---
title: "Big Batch vs Incremental Processing"
-author: vinoth
+authors: [vinoth-chandar]
category: blog
image: /assets/images/blog/batch_vs_incremental.png
---
diff --git a/website/blog/2019-05-14-registering-dataset-to-hive.md
b/website/blog/2019-05-14-registering-dataset-to-hive.md
index 0e8e20215129..02df299b0b1b 100644
--- a/website/blog/2019-05-14-registering-dataset-to-hive.md
+++ b/website/blog/2019-05-14-registering-dataset-to-hive.md
@@ -1,7 +1,7 @@
---
title: "Registering sample dataset to Hive via beeline"
excerpt: "How to manually register HUDI dataset into Hive using beeline"
-author: vinoth
+authors: [vinoth-chandar]
category: blog
tags:
- how-to
diff --git a/website/blog/2019-09-09-ingesting-database-changes.md
b/website/blog/2019-09-09-ingesting-database-changes.md
index 79373fd77681..ae54541b3c64 100644
--- a/website/blog/2019-09-09-ingesting-database-changes.md
+++ b/website/blog/2019-09-09-ingesting-database-changes.md
@@ -1,7 +1,7 @@
---
title: "Ingesting Database changes via Sqoop/Hudi"
excerpt: "Learn how to ingesting changes from a HUDI dataset using Sqoop/Hudi"
-author: vinoth
+authors: [vinoth-chandar]
category: blog
tags:
- how-to
diff --git a/website/blog/2020-01-15-delete-support-in-hudi.md
b/website/blog/2020-01-15-delete-support-in-hudi.md
index cacf5b428303..3e3215c10fe1 100644
--- a/website/blog/2020-01-15-delete-support-in-hudi.md
+++ b/website/blog/2020-01-15-delete-support-in-hudi.md
@@ -1,7 +1,7 @@
---
title: "Delete support in Hudi"
excerpt: "Deletes are supported at a record level in Hudi with 0.5.1 release.
This blog is a “how to” blog on how to delete records in hudi."
-author: shivnarayan
+authors: [sivabalan]
category: blog
tags:
- how-to
diff --git a/website/blog/2020-01-20-change-capture-using-aws.md
b/website/blog/2020-01-20-change-capture-using-aws.md
index 29b2589174d7..df97d93d57e2 100644
--- a/website/blog/2020-01-20-change-capture-using-aws.md
+++ b/website/blog/2020-01-20-change-capture-using-aws.md
@@ -1,7 +1,7 @@
---
title: "Change Capture Using AWS Database Migration Service and Hudi"
excerpt: "In this blog, we will build an end-end solution for capturing
changes from a MySQL instance running on AWS RDS to a Hudi table on S3, using
capabilities in the Hudi 0.5.1 release."
-author: vinoth
+authors: [vinoth-chandar]
category: blog
image: /assets/images/blog/change-capture-architecture.png
tags:
diff --git a/website/blog/2020-03-22-exporting-hudi-datasets.md
b/website/blog/2020-03-22-exporting-hudi-datasets.md
index 47b9435f6d3f..7a922ad34cde 100644
--- a/website/blog/2020-03-22-exporting-hudi-datasets.md
+++ b/website/blog/2020-03-22-exporting-hudi-datasets.md
@@ -1,7 +1,7 @@
---
title: "Export Hudi datasets as a copy or as different formats"
excerpt: "Learn how to copy or export HUDI dataset in various formats."
-author: rxu
+authors: [xushiyan]
category: blog
tags:
- how-to
diff --git a/website/blog/2020-05-28-monitoring-hudi-metrics-with-datadog.md
b/website/blog/2020-05-28-monitoring-hudi-metrics-with-datadog.md
index 5a9058f6fdba..a5a559729a4d 100644
--- a/website/blog/2020-05-28-monitoring-hudi-metrics-with-datadog.md
+++ b/website/blog/2020-05-28-monitoring-hudi-metrics-with-datadog.md
@@ -1,7 +1,7 @@
---
title: "Monitor Hudi metrics with Datadog"
excerpt: "Introducing the feature of reporting Hudi metrics via Datadog HTTP
API"
-author: rxu
+authors: [xushiyan]
category: blog
tags:
- how-to
diff --git a/website/blog/2020-11-11-hudi-indexing-mechanisms.md
b/website/blog/2020-11-11-hudi-indexing-mechanisms.md
index a25c81756c61..7340368f24a6 100644
--- a/website/blog/2020-11-11-hudi-indexing-mechanisms.md
+++ b/website/blog/2020-11-11-hudi-indexing-mechanisms.md
@@ -1,7 +1,7 @@
---
title: "Employing the right indexes for fast updates, deletes in Apache Hudi"
excerpt: "Detailing different indexing mechanisms in Hudi and when to use each
of them"
-author: vinoth
+authors: [vinoth-chandar]
category: blog
image: /assets/images/blog/hudi-indexes/with-and-without-index.png
tags:
diff --git a/website/blog/2021-02-13-hudi-key-generators.md
b/website/blog/2021-02-13-hudi-key-generators.md
index 18781cf74c04..f58111160afb 100644
--- a/website/blog/2021-02-13-hudi-key-generators.md
+++ b/website/blog/2021-02-13-hudi-key-generators.md
@@ -1,7 +1,7 @@
---
title: "Apache Hudi Key Generators"
excerpt: "Different key generators available with Apache Hudi"
-author: shivnarayan
+authors: [sivabalan]
category: blog
tags:
- blog
diff --git a/website/blog/2021-03-01-hudi-file-sizing.md
b/website/blog/2021-03-01-hudi-file-sizing.md
index 808688b37339..618ef8b2ab09 100644
--- a/website/blog/2021-03-01-hudi-file-sizing.md
+++ b/website/blog/2021-03-01-hudi-file-sizing.md
@@ -1,7 +1,7 @@
---
title: "Streaming Responsibly - How Apache Hudi maintains optimum sized files"
excerpt: "Maintaining well-sized files can improve query performance
significantly"
-author: shivnarayan
+authors: [sivabalan]
category: blog
image: /assets/images/blog/2021-03-01-hudi-file-sizing.png
tags:
diff --git a/website/blog/2021-07-21-streaming-data-lake-platform.md
b/website/blog/2021-07-21-streaming-data-lake-platform.md
index b59870323e3f..ae742997c07f 100644
--- a/website/blog/2021-07-21-streaming-data-lake-platform.md
+++ b/website/blog/2021-07-21-streaming-data-lake-platform.md
@@ -1,7 +1,7 @@
---
title: "Apache Hudi - The Data Lake Platform"
excerpt: "It's been called many things. But, we have always been building a
data lake platform"
-author: vinoth
+authors: [vinoth-chandar]
category: blog
image: /assets/images/blog/hudi_streaming.png
tags:
diff --git a/website/blog/2021-08-18-improving-marker-mechanism.md
b/website/blog/2021-08-18-improving-marker-mechanism.md
index db10831e8c35..2a97a7ea6284 100644
--- a/website/blog/2021-08-18-improving-marker-mechanism.md
+++ b/website/blog/2021-08-18-improving-marker-mechanism.md
@@ -1,7 +1,7 @@
---
title: "Improving Marker Mechanism in Apache Hudi"
excerpt: "We introduce a new marker mechanism leveraging the timeline server
to address performance bottlenecks due to rate-limiting on cloud storage like
AWS S3."
-author: yihua
+authors: [ethan-guo]
category: blog
image:
/assets/images/blog/marker-mechanism/timeline-server-based-marker-mechanism.png
tags:
diff --git a/website/blog/2021-08-18-virtual-keys.md
b/website/blog/2021-08-18-virtual-keys.md
index 20b090114f12..eb40c013d602 100644
--- a/website/blog/2021-08-18-virtual-keys.md
+++ b/website/blog/2021-08-18-virtual-keys.md
@@ -1,7 +1,7 @@
---
title: "Adding support for Virtual Keys in Hudi"
excerpt: "Supporting Virtual keys in Hudi for reducing storage overhead"
-author: shivnarayan
+authors: [sivabalan]
category: blog
tags:
- design
diff --git a/website/blog/2021-08-23-async-clustering.md
b/website/blog/2021-08-23-async-clustering.md
index 64cadd9e413f..f9ae37bbbcf9 100644
--- a/website/blog/2021-08-23-async-clustering.md
+++ b/website/blog/2021-08-23-async-clustering.md
@@ -1,7 +1,7 @@
---
title: "Asynchronous Clustering using Hudi"
excerpt: "How to setup Hudi for asynchronous clustering"
-author: codope
+authors: [sagar-sumit]
category: blog
image: /assets/images/blog/clustering/example_perf_improvement.png
tags:
diff --git a/website/blog/2021-08-23-s3-events-source.md
b/website/blog/2021-08-23-s3-events-source.md
index 682543aa3d72..7605788797e1 100644
--- a/website/blog/2021-08-23-s3-events-source.md
+++ b/website/blog/2021-08-23-s3-events-source.md
@@ -1,7 +1,7 @@
---
title: "Reliable ingestion from AWS S3 using Hudi"
excerpt: "From listing to log-based approach, a reliable way of ingesting data
from AWS S3 into Hudi."
-author: codope
+authors: [sagar-sumit]
category: blog
image: /assets/images/blog/s3_events_source_design.png
tags:
diff --git
a/website/blog/2021-12-16-lakehouse-concurrency-control-are-we-too-optimistic.mdx
b/website/blog/2021-12-16-lakehouse-concurrency-control-are-we-too-optimistic.mdx
index aa25490b268f..5c7f7a8570ac 100644
---
a/website/blog/2021-12-16-lakehouse-concurrency-control-are-we-too-optimistic.mdx
+++
b/website/blog/2021-12-16-lakehouse-concurrency-control-are-we-too-optimistic.mdx
@@ -1,7 +1,7 @@
---
title: "Lakehouse Concurrency Control: Are we too optimistic?"
excerpt: "Vinoth Chandar, original creator of Apache Hudi, dives into
concurrency control mechanisms"
-author: vinoth
+authors: [vinoth-chandar]
category: blog
image: /assets/images/blog/concurrency/MultiWriter.gif
tags:
diff --git a/website/blog/2022-01-06-apache-hudi-2021-a-year-in-review.mdx
b/website/blog/2022-01-06-apache-hudi-2021-a-year-in-review.mdx
index f56f50ed19e3..7e9102a00362 100644
--- a/website/blog/2022-01-06-apache-hudi-2021-a-year-in-review.mdx
+++ b/website/blog/2022-01-06-apache-hudi-2021-a-year-in-review.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi - 2021 a Year in Review"
excerpt: "A reflection on the growth and momentum of Apache Hudi in 2021"
-author: vinoth
+authors: [vinoth-chandar]
category: blog
image: /assets/images/Hudi_community.png
tags:
diff --git
a/website/blog/2022-01-14-change-data-capture-with-debezium-and-apache-hudi.mdx
b/website/blog/2022-01-14-change-data-capture-with-debezium-and-apache-hudi.mdx
index 8cac6e2918a3..3fc1e2002159 100644
---
a/website/blog/2022-01-14-change-data-capture-with-debezium-and-apache-hudi.mdx
+++
b/website/blog/2022-01-14-change-data-capture-with-debezium-and-apache-hudi.mdx
@@ -1,7 +1,7 @@
---
title: "Change Data Capture with Debezium and Apache Hudi"
excerpt: "A review of new Debezium source connector for Apache Hudi"
-author: Rajesh Mahindra
+authors: [rajesh-mahindra]
category: blog
image: /assets/images/blog/debezium.png
tags:
diff --git
a/website/blog/2022-12-19-Build-Your-First-Hudi-Lakehouse-with-AWS-Glue-and-AWS-S3.md
b/website/blog/2022-12-19-Build-Your-First-Hudi-Lakehouse-with-AWS-Glue-and-AWS-S3.md
index b4f7b2c5ec61..2357f2351675 100644
---
a/website/blog/2022-12-19-Build-Your-First-Hudi-Lakehouse-with-AWS-Glue-and-AWS-S3.md
+++
b/website/blog/2022-12-19-Build-Your-First-Hudi-Lakehouse-with-AWS-Glue-and-AWS-S3.md
@@ -1,7 +1,7 @@
---
title: "Build Your First Hudi Lakehouse with AWS S3 and AWS Glue"
excerpt: "Follow this tutorial on building your first hudi lakehouse with AWS
S3 & AWS Glue"
-author: Nadine Farah
+authors: [nadine-farah]
category: blog
image: /assets/images/blog/DataCouncil.jpg
tags:
diff --git a/website/blog/2022-12-29-Apache-Hudi-2022-A-Year-In-Review.mdx
b/website/blog/2022-12-29-Apache-Hudi-2022-A-Year-In-Review.mdx
index b9572cabf0d4..f79117afbb31 100644
--- a/website/blog/2022-12-29-Apache-Hudi-2022-A-Year-In-Review.mdx
+++ b/website/blog/2022-12-29-Apache-Hudi-2022-A-Year-In-Review.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi 2022 - A year in Review"
excerpt: "2022 was the best year for Apache Hudi yet! Huge thank you to
everyone who contributed!"
-author: Sivabalan Narayanan
+authors: [sivabalan]
category: blog
image: /assets/images/blog/Apache-Hudi-2022-Review.png
tags:
diff --git
a/website/blog/2023-04-18-getting-started-incrementally-process-data-with-apache-hudi.mdx
b/website/blog/2023-04-18-getting-started-incrementally-process-data-with-apache-hudi.mdx
index 4fc3b4398817..38cfabf25647 100644
---
a/website/blog/2023-04-18-getting-started-incrementally-process-data-with-apache-hudi.mdx
+++
b/website/blog/2023-04-18-getting-started-incrementally-process-data-with-apache-hudi.mdx
@@ -1,7 +1,6 @@
---
title: "Getting Started: Incrementally process data with Apache Hudi"
-authors:
-- name: Raymond Xu
+authors: [xushiyan]
category: blog
image:
/assets/images/blog/2023-04-18-getting-started-incrementally-process-data-with-apache-hudi.png
tags:
diff --git a/website/blog/2023-08-28-Apache-Hudi-From-Zero-To-One.mdx
b/website/blog/2023-08-28-Apache-Hudi-From-Zero-To-One.mdx
index d674e02ff947..b0797a460b89 100644
--- a/website/blog/2023-08-28-Apache-Hudi-From-Zero-To-One.mdx
+++ b/website/blog/2023-08-28-Apache-Hudi-From-Zero-To-One.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi: From Zero To One (1/10)"
excerpt: "A first glance at Hudi's storage format"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2023-08-28-Apache-Hudi-From-Zero-To-One-blog-1.png
tags:
diff --git a/website/blog/2023-09-06-Apache-Hudi-From-Zero-To-One-blog-2.mdx
b/website/blog/2023-09-06-Apache-Hudi-From-Zero-To-One-blog-2.mdx
index e1049c052448..6a3f7a8a9b8a 100644
--- a/website/blog/2023-09-06-Apache-Hudi-From-Zero-To-One-blog-2.mdx
+++ b/website/blog/2023-09-06-Apache-Hudi-From-Zero-To-One-blog-2.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi: From Zero To One (2/10)"
excerpt: "Dive into read operation flow and query types"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2023-09-06-Apache-Hudi-From-Zero-To-One-blog-2.png
tags:
diff --git a/website/blog/2023-09-15-Apache-Hudi-From-Zero-To-One-blog-3.mdx
b/website/blog/2023-09-15-Apache-Hudi-From-Zero-To-One-blog-3.mdx
index 9fc5651d9e02..e6f4f8ce7316 100644
--- a/website/blog/2023-09-15-Apache-Hudi-From-Zero-To-One-blog-3.mdx
+++ b/website/blog/2023-09-15-Apache-Hudi-From-Zero-To-One-blog-3.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi: From Zero To One (3/10)"
excerpt: "Understand write flows and operations"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2023-09-15-Apache-Hudi-From-Zero-To-One-blog-3.png
tags:
diff --git
a/website/blog/2023-09-19-A-Beginners-Guide-to-Apache-Hudi-with-PySpark-Part-1-of-2.mdx
b/website/blog/2023-09-19-A-Beginners-Guide-to-Apache-Hudi-with-PySpark-Part-1-of-2.mdx
index 863d6f51f5b8..3b674cedab50 100644
---
a/website/blog/2023-09-19-A-Beginners-Guide-to-Apache-Hudi-with-PySpark-Part-1-of-2.mdx
+++
b/website/blog/2023-09-19-A-Beginners-Guide-to-Apache-Hudi-with-PySpark-Part-1-of-2.mdx
@@ -1,6 +1,6 @@
---
title: "A Beginner’s Guide to Apache Hudi with PySpark — Part 1 of 2"
-author: Sagar Lakshmipathy
+authors: [sagar-lakshmipathy]
category: blog
image:
/assets/images/blog/2023-09-19-A-Beginners-Guide-to-Apache-Hudi-with-PySpark-Part-1-of-2.png
tags:
diff --git a/website/blog/2023-09-27-Apache-Hudi-From-Zero-To-One-blog-4.mdx
b/website/blog/2023-09-27-Apache-Hudi-From-Zero-To-One-blog-4.mdx
index 7caaa1d062d5..74b1fbc053e5 100644
--- a/website/blog/2023-09-27-Apache-Hudi-From-Zero-To-One-blog-4.mdx
+++ b/website/blog/2023-09-27-Apache-Hudi-From-Zero-To-One-blog-4.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi: From Zero To One (4/10)"
excerpt: "All about writer indexes"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2023-09-27-Apache-Hudi-From-Zero-To-One-blog-4.png
tags:
diff --git a/website/blog/2023-10-18-Apache-Hudi-From-Zero-To-One-blog-5.mdx
b/website/blog/2023-10-18-Apache-Hudi-From-Zero-To-One-blog-5.mdx
index 2f7ab2a074a1..876f1907a92f 100644
--- a/website/blog/2023-10-18-Apache-Hudi-From-Zero-To-One-blog-5.mdx
+++ b/website/blog/2023-10-18-Apache-Hudi-From-Zero-To-One-blog-5.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi: From Zero To One (5/10)"
excerpt: "Introduce table services: compaction, cleaning, and indexing"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2023-10-18-Apache-Hudi-From-Zero-To-One-blog-5.png
tags:
diff --git
a/website/blog/2023-10-20-Its-Time-for-the-Universal-Data-Lakehouse.mdx
b/website/blog/2023-10-20-Its-Time-for-the-Universal-Data-Lakehouse.mdx
index 3373e0d7f980..ee0aae712e52 100644
--- a/website/blog/2023-10-20-Its-Time-for-the-Universal-Data-Lakehouse.mdx
+++ b/website/blog/2023-10-20-Its-Time-for-the-Universal-Data-Lakehouse.mdx
@@ -1,7 +1,7 @@
---
title: "It's Time for the Universal Data Lakehouse"
excerpt: "Universal Lakehouse"
-author: Vinoth Chandar
+authors: [vinoth-chandar]
category: blog
image:
/assets/images/blog/2023-10-20-Its-Time-for-the-Universal-Data-Lakehouse.png
tags:
diff --git a/website/blog/2023-11-01-record-level-index.md
b/website/blog/2023-11-01-record-level-index.md
index 66089dce5d91..c3bc2e3d5cc5 100644
--- a/website/blog/2023-11-01-record-level-index.md
+++ b/website/blog/2023-11-01-record-level-index.md
@@ -1,7 +1,7 @@
---
title: "Record Level Index: Hudi's blazing fast indexing for large-scale
datasets"
excerpt: "Announcing the Record Level Index in Apache Hudi"
-author: Shiyan Xu and Sivabalan Narayanan
+authors: [xushiyan, sivabalan]
category: blog
image: /assets/images/blog/record-level-index/03.RLI_bulkinsert.png
tags:
diff --git a/website/blog/2023-11-13-Apache-Hudi-From-Zero-To-One-blog-6.mdx
b/website/blog/2023-11-13-Apache-Hudi-From-Zero-To-One-blog-6.mdx
index c9d6f65cefd6..6849136962ad 100644
--- a/website/blog/2023-11-13-Apache-Hudi-From-Zero-To-One-blog-6.mdx
+++ b/website/blog/2023-11-13-Apache-Hudi-From-Zero-To-One-blog-6.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi: From Zero To One (6/10)"
excerpt: "Demystify clustering and space-filling curves"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2023-11-13-Apache-Hudi-From-Zero-To-One-blog-6.png
tags:
diff --git
a/website/blog/2023-11-28-Apache-Hudi-Part-1-History-Getting-Started.mdx
b/website/blog/2023-11-28-Apache-Hudi-Part-1-History-Getting-Started.mdx
index f58d561acc88..a6cb38e505cd 100644
--- a/website/blog/2023-11-28-Apache-Hudi-Part-1-History-Getting-Started.mdx
+++ b/website/blog/2023-11-28-Apache-Hudi-Part-1-History-Getting-Started.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi (Part 1): History, Getting Started"
excerpt: "Apache Hudi (Part 1): History, Getting Started"
-author: Dipankar Mazumdar
+authors: [dipankar-mazumdar]
category: blog
image:
/assets/images/blog/2023-11-28-Apache-Hudi-Part-1-History-Getting-Started.png
tags:
diff --git a/website/blog/2023-12-06-Apache-Hudi-From-Zero-To-One-blog-7.mdx
b/website/blog/2023-12-06-Apache-Hudi-From-Zero-To-One-blog-7.mdx
index 37c03aeeffbc..a157bdb062a5 100644
--- a/website/blog/2023-12-06-Apache-Hudi-From-Zero-To-One-blog-7.mdx
+++ b/website/blog/2023-12-06-Apache-Hudi-From-Zero-To-One-blog-7.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi: From Zero To One (7/10)"
excerpt: "Concurrently run writers and table services"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2023-12-06-Apache-Hudi-From-Zero-To-One-blog-7.png
tags:
diff --git a/website/blog/2023-12-28-apache-hudi-2023-a-year-in-review.mdx
b/website/blog/2023-12-28-apache-hudi-2023-a-year-in-review.mdx
index 644f44130f5c..88b766c762cf 100644
--- a/website/blog/2023-12-28-apache-hudi-2023-a-year-in-review.mdx
+++ b/website/blog/2023-12-28-apache-hudi-2023-a-year-in-review.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi 2023: A Year In Review"
excerpt: "Reflect on and celebrate the myriad of exciting developments and
accomplishments that have defined the year 2023 for the Hudi community."
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2023-12-28-a-year-in-review-2023/00.cover.png
tags:
diff --git a/website/blog/2024-01-05-Apache-Hudi-From-Zero-To-One-blog-8.mdx
b/website/blog/2024-01-05-Apache-Hudi-From-Zero-To-One-blog-8.mdx
index ef8b3419b587..daeae15b1f4f 100644
--- a/website/blog/2024-01-05-Apache-Hudi-From-Zero-To-One-blog-8.mdx
+++ b/website/blog/2024-01-05-Apache-Hudi-From-Zero-To-One-blog-8.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi: From Zero To One (8/10)"
excerpt: "Read and process incrementally"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2024-01-05-Apache-Hudi-From-Zero-To-One-blog-8.png
tags:
diff --git a/website/blog/2024-03-05-Apache-Hudi-From-Zero-To-One-blog-9.mdx
b/website/blog/2024-03-05-Apache-Hudi-From-Zero-To-One-blog-9.mdx
index 806df01b461e..e47849d82c68 100644
--- a/website/blog/2024-03-05-Apache-Hudi-From-Zero-To-One-blog-9.mdx
+++ b/website/blog/2024-03-05-Apache-Hudi-From-Zero-To-One-blog-9.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi: From Zero To One (9/10)"
excerpt: "Hudi Streamer - a Swiss Army knife for ingestion"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2024-03-05-Apache-Hudi-From-Zero-To-One-blog-9.png
tags:
diff --git a/website/blog/2024-04-13-Apache-Hudi-From-Zero-To-One-blog-10.mdx
b/website/blog/2024-04-13-Apache-Hudi-From-Zero-To-One-blog-10.mdx
index 35ddfed8911d..63fb59759af5 100644
--- a/website/blog/2024-04-13-Apache-Hudi-From-Zero-To-One-blog-10.mdx
+++ b/website/blog/2024-04-13-Apache-Hudi-From-Zero-To-One-blog-10.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi: From Zero To One (10/10)"
excerpt: "Becoming 'One' - the upcoming 1.0 highlights"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2024-04-13-Apache-Hudi-From-Zero-To-One-blog-10.jpg
tags:
diff --git
a/website/blog/2024-05-10-building-analytical-apps-on-the-lakehouse-using-apache-hudi-daft-streamlit.mdx
b/website/blog/2024-05-10-building-analytical-apps-on-the-lakehouse-using-apache-hudi-daft-streamlit.mdx
index 15f1523053bd..4096fecc2709 100644
---
a/website/blog/2024-05-10-building-analytical-apps-on-the-lakehouse-using-apache-hudi-daft-streamlit.mdx
+++
b/website/blog/2024-05-10-building-analytical-apps-on-the-lakehouse-using-apache-hudi-daft-streamlit.mdx
@@ -1,6 +1,6 @@
---
title: "Building Analytical Apps on the Lakehouse using Apache Hudi, Daft &
Streamlit"
-author: Dipankar Mazumdar
+authors: [dipankar-mazumdar]
category: blog
image:
/assets/images/blog/2024-05-10-building-analytical-apps-on-the-lakehouse-using-apache-hudi-daft-streamlit.png
tags:
diff --git a/website/blog/2024-05-19-apache-hudi-on-aws-glue.mdx
b/website/blog/2024-05-19-apache-hudi-on-aws-glue.mdx
index 51095f7f03df..c59111f61879 100644
--- a/website/blog/2024-05-19-apache-hudi-on-aws-glue.mdx
+++ b/website/blog/2024-05-19-apache-hudi-on-aws-glue.mdx
@@ -1,6 +1,6 @@
---
title: "Apache Hudi on AWS Glue"
-author: Sagar Lakshmipathy
+authors: [sagar-lakshmipathy]
category: blog
image: /assets/images/blog/2024-05-19-apache-hudi-on-aws-glue.png
tags:
diff --git a/website/blog/2024-06-18-how-to-use-apache-hudi-with-databricks.mdx
b/website/blog/2024-06-18-how-to-use-apache-hudi-with-databricks.mdx
index 850e93b94e2d..4a4ca3b2cd88 100644
--- a/website/blog/2024-06-18-how-to-use-apache-hudi-with-databricks.mdx
+++ b/website/blog/2024-06-18-how-to-use-apache-hudi-with-databricks.mdx
@@ -1,6 +1,6 @@
---
title: "How to use Apache Hudi with Databricks"
-author: Sagar Lakshmipathy
+authors: [sagar-lakshmipathy]
category: blog
image:
/assets/images/blog/2024-06-18-how-to-use-apache-hudi-with-databricks.jpeg
tags:
diff --git a/website/blog/2024-07-11-what-is-a-data-lakehouse.md
b/website/blog/2024-07-11-what-is-a-data-lakehouse.md
index c8c7eabf5653..2e43a6487958 100644
--- a/website/blog/2024-07-11-what-is-a-data-lakehouse.md
+++ b/website/blog/2024-07-11-what-is-a-data-lakehouse.md
@@ -1,7 +1,7 @@
---
title: "What is a Data Lakehouse & How does it Work?"
excerpt: "Explains the concept of the lakehouse architecture"
-author: Dipankar Mazumdar
+authors: [dipankar-mazumdar]
category: blog
image: /assets/images/blog/dlh_1200.png
tags:
diff --git a/website/blog/2024-07-30-data-lake-cdc.md
b/website/blog/2024-07-30-data-lake-cdc.md
index 7207b9164f71..a3e4fd9760de 100644
--- a/website/blog/2024-07-30-data-lake-cdc.md
+++ b/website/blog/2024-07-30-data-lake-cdc.md
@@ -1,7 +1,7 @@
---
title: "Understanding Data Lake Change Data Capture"
excerpt: "Explains the concept of CDC in data lakes"
-author: Sagar Lakshmipathy
+authors: [sagar-lakshmipathy]
category: blog
image: /assets/images/blog/data-lake-cdc/hudi-cdc.jpg
tags:
diff --git a/website/blog/2024-11-19-automated-small-file-handling.md
b/website/blog/2024-11-19-automated-small-file-handling.md
index c49c7064768d..0d592d080057 100644
--- a/website/blog/2024-11-19-automated-small-file-handling.md
+++ b/website/blog/2024-11-19-automated-small-file-handling.md
@@ -1,7 +1,7 @@
---
title: "Hudi’s Automatic File Sizing Delivers Unmatched Performance"
excerpt: "Explains how Hudi handles small files during ingestion and its
benefits"
-author: Aditya Goenka
+authors: [aditya-goenka]
category: blog
image:
/assets/images/blog/2024-06-07-apache-hudi-a-deep-dive-with-python-code-examples.png
tags:
diff --git a/website/blog/2024-12-06-non-blocking-concurrency-control.md
b/website/blog/2024-12-06-non-blocking-concurrency-control.md
index 685c010d5adc..5b63e04347a1 100644
--- a/website/blog/2024-12-06-non-blocking-concurrency-control.md
+++ b/website/blog/2024-12-06-non-blocking-concurrency-control.md
@@ -1,7 +1,7 @@
---
title: "Introducing Hudi's Non-blocking Concurrency Control for streaming,
high-frequency writes"
excerpt: "Announcing the Non-blocking Concurrency Control in Apache Hudi"
-author: Danny Chan
+authors: [danny-chan]
category: blog
image:
/assets/images/blog/non-blocking-concurrency-control/lsm_archive_timeline.png
tags:
diff --git a/website/blog/2024-12-16-announcing-hudi-1-0-0.mdx
b/website/blog/2024-12-16-announcing-hudi-1-0-0.mdx
index e4f470a29e5d..d6bd9e74b452 100644
--- a/website/blog/2024-12-16-announcing-hudi-1-0-0.mdx
+++ b/website/blog/2024-12-16-announcing-hudi-1-0-0.mdx
@@ -1,7 +1,7 @@
---
title: "Announcing Apache Hudi 1.0 and the Next Generation of Data Lakehouses"
excerpt: "game-changing major release, that reimagines Hudi and Data
Lakehouses."
-author: Vinoth Chandar
+authors: [vinoth-chandar]
category: blog
image: /assets/images/blog/dlms-hierarchy.png
tags:
diff --git a/website/blog/2024-12-29-apache-hudi-2024-a-year-in-review.mdx
b/website/blog/2024-12-29-apache-hudi-2024-a-year-in-review.mdx
index 0ace1231068a..961a80754a5d 100644
--- a/website/blog/2024-12-29-apache-hudi-2024-a-year-in-review.mdx
+++ b/website/blog/2024-12-29-apache-hudi-2024-a-year-in-review.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi 2024: A Year In Review"
excerpt: "Reflect on and celebrate the myriad of exciting developments and
accomplishments that have defined the year 2024 for the Hudi community."
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2024-12-29-a-year-in-review-2024/cover.jpg
tags:
diff --git a/website/blog/2025-01-15-outofbox-key-generators-in-hudi.mdx
b/website/blog/2025-01-15-outofbox-key-generators-in-hudi.mdx
index 2752e7722f3d..2cfa06ee8a10 100644
--- a/website/blog/2025-01-15-outofbox-key-generators-in-hudi.mdx
+++ b/website/blog/2025-01-15-outofbox-key-generators-in-hudi.mdx
@@ -1,7 +1,7 @@
---
title: "Out of the box Key Generators in Apache Hudi"
excerpt: "Explain need for key gerators and out of box key generators in
Apache Hudi"
-author: Aditya Goenka
+authors: [aditya-goenka]
category: blog
image:
/assets/images/blog/2024-06-07-apache-hudi-a-deep-dive-with-python-code-examples.png
tags:
diff --git a/website/blog/2025-01-28-concurrency-control.md
b/website/blog/2025-01-28-concurrency-control.md
index a81416ed6196..6788449f1d8c 100644
--- a/website/blog/2025-01-28-concurrency-control.md
+++ b/website/blog/2025-01-28-concurrency-control.md
@@ -1,7 +1,7 @@
---
title: "Concurrency Control in Open Data Lakehouse"
excerpt: "How various concurrency control techniques works in Apache Hudi,
Apache Iceberg & Delta Lake"
-author: Dipankar Mazumdar
+authors: [dipankar-mazumdar]
category: blog
image: /assets/images/blog/concurrency_control/concurrency_blog_thumb.jpg
tags:
diff --git a/website/blog/2025-03-03-record-mergers-in-hudi.mdx
b/website/blog/2025-03-03-record-mergers-in-hudi.mdx
index 6ee14571eed6..171a2109c384 100644
--- a/website/blog/2025-03-03-record-mergers-in-hudi.mdx
+++ b/website/blog/2025-03-03-record-mergers-in-hudi.mdx
@@ -1,7 +1,7 @@
---
title: "Record Mergers in Apache Hudi"
excerpt: "Explain need for record mergers in Apache Hudi and implemenation
details"
-author: Aditya Goenka
+authors: [aditya-goenka]
category: blog
image: /assets/images/blog/2025-03-03-record-mergers-in-apache-hudi.png
tags:
diff --git a/website/blog/2025-03-05-hudi-21-unique-differentiators.mdx
b/website/blog/2025-03-05-hudi-21-unique-differentiators.mdx
index 2bd1825e4ca8..ff52c4d447d4 100644
--- a/website/blog/2025-03-05-hudi-21-unique-differentiators.mdx
+++ b/website/blog/2025-03-05-hudi-21-unique-differentiators.mdx
@@ -1,7 +1,7 @@
---
title: "21 Unique Reasons Why Apache Hudi Should Be Your Next Data Lakehouse"
excerpt: "Unique Differentiators of Apache Hudi, that stand out from other
projects"
-author: Vinoth Chandar
+authors: [vinoth-chandar]
category: blog
image: /assets/images/blog/2025-03-05-21-reasons-why.png
tags:
diff --git a/website/blog/2025-03-26-acid-transactions.mdx
b/website/blog/2025-03-26-acid-transactions.mdx
index 927611cc41c3..2bbd11b6abe2 100644
--- a/website/blog/2025-03-26-acid-transactions.mdx
+++ b/website/blog/2025-03-26-acid-transactions.mdx
@@ -1,6 +1,6 @@
---
title: "ACID Transactions in an Open Data Lakehouse"
-author: Dipankar Mazumdar
+authors: [dipankar-mazumdar]
category: blog
image: /assets/images/blog/acid.png
tags:
diff --git a/website/blog/2025-03-26-clustering.mdx
b/website/blog/2025-03-26-clustering.mdx
index d8bdaaab3663..d807afa48ba9 100644
--- a/website/blog/2025-03-26-clustering.mdx
+++ b/website/blog/2025-03-26-clustering.mdx
@@ -1,6 +1,6 @@
---
title: "What is Clustering in an Open Data Lakehouse?"
-author: Dipankar Mazumdar
+authors: [dipankar-mazumdar]
category: blog
image: /assets/images/blog/cluster.png
tags:
diff --git a/website/blog/2025-03-26-dedupe.mdx
b/website/blog/2025-03-26-dedupe.mdx
index 9307326bba80..6c77b27b65c3 100644
--- a/website/blog/2025-03-26-dedupe.mdx
+++ b/website/blog/2025-03-26-dedupe.mdx
@@ -1,6 +1,6 @@
---
title: "Data Deduplication Strategies in an Open Lakehouse Architecture"
-author: Dipankar Mazumdar, Aditya Goenka
+authors: [dipankar-mazumdar, aditya-goenka]
category: blog
image: /assets/images/blog/dedupe.png
tags:
diff --git a/website/blog/2025-04-02-secondary-index.md
b/website/blog/2025-04-02-secondary-index.md
index 6dd1309644f8..35c9400cf79e 100644
--- a/website/blog/2025-04-02-secondary-index.md
+++ b/website/blog/2025-04-02-secondary-index.md
@@ -1,7 +1,7 @@
---
title: "Introducing Secondary Index in Apache Hudi Lakehouse Platform"
excerpt: "What's & How's of Secondary indexes in Hudi 1.0"
-author: Dipankar Mazumdar, Aditya Goenka
+authors: [dipankar-mazumdar, aditya-goenka]
category: blog
image: /assets/images/blog/sec-thumb.jpg
tags:
diff --git a/website/blog/2025-05-29-lsm-timeline.md
b/website/blog/2025-05-29-lsm-timeline.md
index 6af7496cc32c..26b91d9d7f7f 100644
--- a/website/blog/2025-05-29-lsm-timeline.md
+++ b/website/blog/2025-05-29-lsm-timeline.md
@@ -1,7 +1,7 @@
---
title: "Exploring Apache Hudi’s New Log-Structured Merge (LSM) Timeline"
excerpt: "What is the new LSM timeline in Hudi & how is it implemented"
-author: Dipankar Mazumdar
+authors: [dipankar-mazumdar]
category: blog
image: /assets/images/blog/lsm-1200x600.jpg
tags:
diff --git a/website/blog/2025-06-16-Apache-Hudi-does-XYZ-110.mdx
b/website/blog/2025-06-16-Apache-Hudi-does-XYZ-110.mdx
index 5d2c70a2a7ac..5e3fa6f2f59f 100644
--- a/website/blog/2025-06-16-Apache-Hudi-does-XYZ-110.mdx
+++ b/website/blog/2025-06-16-Apache-Hudi-does-XYZ-110.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi does XYZ (1/10): File pruning with multi-modal index"
excerpt: "File pruning with multi-modal index"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2025-06-16-Apache-Hudi-does-XYZ-110-cover.jpg
tags:
diff --git a/website/blog/2025-07-10-building-a-rag-based-ai-recommender.mdx
b/website/blog/2025-07-10-building-a-rag-based-ai-recommender.mdx
index 5316d7e65d2e..5d657a6f64f7 100644
--- a/website/blog/2025-07-10-building-a-rag-based-ai-recommender.mdx
+++ b/website/blog/2025-07-10-building-a-rag-based-ai-recommender.mdx
@@ -1,6 +1,6 @@
---
title: "Building a RAG-based AI Recommender (Part 1/2)"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2025-07-10-building-a-rag-based-ai-recommender.png
tags:
diff --git a/website/blog/2025-07-21-mor-comparison.md
b/website/blog/2025-07-21-mor-comparison.md
index dd24acabd692..ea175c28a6df 100644
--- a/website/blog/2025-07-21-mor-comparison.md
+++ b/website/blog/2025-07-21-mor-comparison.md
@@ -1,7 +1,7 @@
---
title: "A Deep Dive on Merge-on-Read (MoR) in Lakehouse Table Formats"
excerpt: "How is MoR implemented in Hudi, Iceberg, Delta and how it impacts
workloads"
-author: Dipankar Mazumdar
+authors: [dipankar-mazumdar]
category: blog
image: /assets/images/blog/2025-07-21-mor-comparison/mor-1200x600.jpg
tags:
diff --git a/website/blog/2025-08-29-building-a-rag-based-ai-recommender-2.mdx
b/website/blog/2025-08-29-building-a-rag-based-ai-recommender-2.mdx
index b3ace2773e0d..4f6099905c87 100644
--- a/website/blog/2025-08-29-building-a-rag-based-ai-recommender-2.mdx
+++ b/website/blog/2025-08-29-building-a-rag-based-ai-recommender-2.mdx
@@ -1,6 +1,6 @@
---
title: "Building a RAG-based AI Recommender (2/2)"
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image: /assets/images/blog/2025-08-29-building-a-rag-based-ai-recommender-2.jpg
tags:
diff --git a/website/blog/2025-09-17-hudi-auto-gen-keys.mdx
b/website/blog/2025-09-17-hudi-auto-gen-keys.mdx
index 335169726863..4f0090a28099 100644
--- a/website/blog/2025-09-17-hudi-auto-gen-keys.mdx
+++ b/website/blog/2025-09-17-hudi-auto-gen-keys.mdx
@@ -1,7 +1,7 @@
---
title: "Automatic Record Key Generation in Apache Hudi"
excerpt: ""
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image:
/assets/images/blog/2025-09-17-hudi-auto-gen-keys/2025-09-17-hudi-auto-gen-keys.fig2.jpg
tags:
diff --git
a/website/blog/2025-10-22-Partition_Stats_Enhancing_Column_Stats_in_Hudi_1.0.md
b/website/blog/2025-10-22-Partition_Stats_Enhancing_Column_Stats_in_Hudi_1.0.md
index 3c922bfaaa60..9d8574bedb51 100644
---
a/website/blog/2025-10-22-Partition_Stats_Enhancing_Column_Stats_in_Hudi_1.0.md
+++
b/website/blog/2025-10-22-Partition_Stats_Enhancing_Column_Stats_in_Hudi_1.0.md
@@ -1,7 +1,7 @@
---
title: "Partition Stats: Enhancing Column Stats in Hudi 1.0"
excerpt: ""
-author: Aditya Goenka and Shiyan Xu
+authors: [aditya-goenka, xushiyan]
category: blog
image:
/assets/images/blog/2025-10-22-Partition_Stats_Enhancing_Column_Stats_in_Hudi_1.0/fig1.jpg
tags:
diff --git
a/website/blog/2025-10-29-deep-dive-into-hudis-indexing-subsystem-part-1-of-2.md
b/website/blog/2025-10-29-deep-dive-into-hudis-indexing-subsystem-part-1-of-2.md
index eac1c111e83a..231cf83aadc7 100644
---
a/website/blog/2025-10-29-deep-dive-into-hudis-indexing-subsystem-part-1-of-2.md
+++
b/website/blog/2025-10-29-deep-dive-into-hudis-indexing-subsystem-part-1-of-2.md
@@ -1,7 +1,7 @@
---
title: "Deep Dive Into Hudi’s Indexing Subsystem (Part 1 of 2)"
excerpt: ""
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image:
/assets/images/blog/2025-10-29-deep-dive-into-hudis-indexing-subsystem-part-1-of-2/fig1.png
tags:
diff --git
a/website/blog/2025-11-12-deep-dive-into-hudis-indexing-subsystem-part-2-of-2.md
b/website/blog/2025-11-12-deep-dive-into-hudis-indexing-subsystem-part-2-of-2.md
index 83170d4cfa25..2068a26e7287 100644
---
a/website/blog/2025-11-12-deep-dive-into-hudis-indexing-subsystem-part-2-of-2.md
+++
b/website/blog/2025-11-12-deep-dive-into-hudis-indexing-subsystem-part-2-of-2.md
@@ -1,7 +1,7 @@
---
title: Deep Dive Into Hudi's Indexing Subsystem (Part 2 of 2)
excerpt: 'Explore advanced indexing in Apache Hudi: record and secondary
indexes for fast point lookups, expression indexes for transformed predicates,
and async indexing for building indexes without blocking writes.'
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image:
/assets/images/blog/2025-11-12-deep-dive-into-hudis-indexing-subsystem-part-2-of-2/fig1.png
tags:
diff --git a/website/blog/2025-11-25-apache-hudi-release-1-1-announcement.md
b/website/blog/2025-11-25-apache-hudi-release-1-1-announcement.md
index b349a902d466..42de9804838e 100644
--- a/website/blog/2025-11-25-apache-hudi-release-1-1-announcement.md
+++ b/website/blog/2025-11-25-apache-hudi-release-1-1-announcement.md
@@ -1,7 +1,7 @@
---
title: Apache Hudi 1.1 is Here—Building the Foundation for the Next Generation
of Lakehouse
excerpt: ''
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image:
/assets/images/blog/2025-11-25-apache-hudi-release-1-1-announcement/1-pluggable-TF.png
tags:
diff --git
a/website/blog/2025-12-10-apache-hudi-11-deep-dive-optimizing-streaming-ingestion-with-flink.md
b/website/blog/2025-12-10-apache-hudi-11-deep-dive-optimizing-streaming-ingestion-with-flink.md
index 73737d4dd033..ff2d662db7c8 100644
---
a/website/blog/2025-12-10-apache-hudi-11-deep-dive-optimizing-streaming-ingestion-with-flink.md
+++
b/website/blog/2025-12-10-apache-hudi-11-deep-dive-optimizing-streaming-ingestion-with-flink.md
@@ -1,7 +1,7 @@
---
title: "Apache Hudi 1.1 Deep Dive: Optimizing Streaming Ingestion with Apache
Flink"
excerpt: ''
-author: 'Shuo Cheng'
+authors: [shuo-cheng]
category: blog
image:
/assets/images/blog/2025-12-10-apache-hudi-11-deep-dive-optimizing-streaming-ingestion-with-flink/benchmark-string-schemas.png
tags:
diff --git a/website/blog/2025-12-16-maximizing-throughput-nbcc.md
b/website/blog/2025-12-16-maximizing-throughput-nbcc.md
index 29480c0b6455..ebe63198a1a2 100644
--- a/website/blog/2025-12-16-maximizing-throughput-nbcc.md
+++ b/website/blog/2025-12-16-maximizing-throughput-nbcc.md
@@ -1,7 +1,7 @@
---
title: "Maximizing Throughput with Apache Hudi NBCC: Stop Retrying, Start
Scaling"
excerpt: "Learn how Hudi's Non-Blocking Concurrency Control eliminates retry
storms for concurrent writers, maximizing throughput in streaming and mixed
workloads."
-author: "Shiyan Xu"
+authors: [xushiyan]
category: blog
image:
/assets/images/blog/2025-12-16-maximizing-throughput-nbcc/p6-nbcc-compaction.png
tags:
diff --git a/website/blog/2025-12-29-apache-hudi-2025-a-year-in-review.mdx
b/website/blog/2025-12-29-apache-hudi-2025-a-year-in-review.mdx
index 1873042d8b10..94c6e8d45e61 100644
--- a/website/blog/2025-12-29-apache-hudi-2025-a-year-in-review.mdx
+++ b/website/blog/2025-12-29-apache-hudi-2025-a-year-in-review.mdx
@@ -1,7 +1,7 @@
---
title: "Apache Hudi 2025: A Year In Review"
excerpt: ""
-author: Shiyan Xu
+authors: [xushiyan]
category: blog
image:
/assets/images/blog/2025-12-29-apache-hudi-2025-a-year-in-review/00-og.png
tags:
diff --git a/website/blog/authors.yml b/website/blog/authors.yml
new file mode 100644
index 000000000000..b8cc3ff6b8e5
--- /dev/null
+++ b/website/blog/authors.yml
@@ -0,0 +1,59 @@
+aditya-goenka:
+ name: Aditya Goenka
+ url: https://www.linkedin.com/in/aditya-goenka-66a7b448/
+ image_url: /assets/images/authors/aditya-goenka.jpg
+
+danny-chan:
+ name: Danny Chan
+ url: https://www.linkedin.com/in/danny-chan-682943225/
+ image_url: /assets/images/authors/danny-chan.jpg
+
+dipankar-mazumdar:
+ name: Dipankar Mazumdar
+ url: https://www.linkedin.com/in/dipankar-mazumdar/
+ image_url: /assets/images/authors/dipankar-mazumdar.jpg
+
+ethan-guo:
+ name: Ethan Guo
+ url: https://www.linkedin.com/in/yihua-ethan-guo/
+ image_url: /assets/images/authors/ethan-guo.jpg
+
+nadine-farah:
+ name: Nadine Farah
+ url: https://www.linkedin.com/in/nadinefarah/
+ image_url: /assets/images/authors/nadine-farah.png
+
+rajesh-mahindra:
+ name: Rajesh Mahindra
+ url: https://www.linkedin.com/in/rajesh-mahindra-2017b140/
+ image_url: /assets/images/authors/rajesh-mahindra.jpg
+
+sagar-lakshmipathy:
+ name: Sagar Lakshmipathy
+ url: https://www.linkedin.com/in/sagarlakshmipathy/
+ image_url: /assets/images/authors/sagar-lakshmipathy.jpg
+
+sagar-sumit:
+ name: Sagar Sumit
+ url: https://www.linkedin.com/in/sagar-sumit/
+ image_url: /assets/images/authors/sagar-sumit.jpg
+
+shuo-cheng:
+ name: Shuo Cheng
+ url: https://www.linkedin.com/in/shuo-cheng-317b82aa/
+ image_url: /assets/images/authors/shuo-cheng.jpg
+
+sivabalan:
+ name: Sivabalan Narayanan
+ url: https://www.linkedin.com/in/sivabalan-narayanan-1040b45/
+ image_url: /assets/images/authors/sivabalan.jpg
+
+vinoth-chandar:
+ name: Vinoth Chandar
+ url: https://www.linkedin.com/in/vinothchandar/
+ image_url: /assets/images/authors/vinoth-chandar.png
+
+xushiyan:
+ name: Shiyan Xu
+ url: https://www.linkedin.com/in/xushiyan/
+ image_url: /assets/images/authors/xushiyan.jpg
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index 85904ea98f8c..07d506d0a1cb 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -536,6 +536,7 @@ module.exports = {
},
},
blog: {
+ authorsMapPath: "authors.yml",
editUrl:
"https://github.com/apache/hudi/edit/asf-site/website/blog/",
blogTitle: "Blogs List Page",
blogSidebarCount: 0,
@@ -545,7 +546,8 @@ module.exports = {
* *DO NOT* include a trailing slash.
*/
routeBasePath: "blog",
- include: ["*.md", "*.mdx"],
+ include: ["**/*.md", "**/*.mdx"],
+ exclude: ["**/authors.yml"],
postsPerPage: 12,
/**
* Theme components used by the blog pages.
diff --git a/website/src/components/BlogsSlider/index.js
b/website/src/components/BlogsSlider/index.js
index 07fb58243f16..419702d62bc0 100644
--- a/website/src/components/BlogsSlider/index.js
+++ b/website/src/components/BlogsSlider/index.js
@@ -27,7 +27,7 @@ const allPosts = ((ctx) => {
},
[]
);
-})(require.context('../../../blog', true));
+})(require.context('../../../blog', true, /\.mdx?$/));
const sortedPosts = allPosts.sort((a,b) => new Date(a.metadata.date).getTime()
- new Date(b.metadata.date).getTime()).reverse();
const latestPosts = [...sortedPosts.slice(0, 10)];
diff --git a/website/src/theme/BlogPostItem/Header/Authors/index.js
b/website/src/theme/BlogPostItem/Header/Authors/index.js
index dd243caffe3c..b72b46209735 100644
--- a/website/src/theme/BlogPostItem/Header/Authors/index.js
+++ b/website/src/theme/BlogPostItem/Header/Authors/index.js
@@ -1,35 +1,34 @@
import React from 'react';
import clsx from 'clsx';
import {useBlogPost} from '@docusaurus/plugin-content-blog/client';
-import BlogAuthor from '@theme/Blog/Components/Author';
+import Link from '@docusaurus/Link';
import styles from './styles.module.css';
-// Component responsible for the authors layout
+
export default function BlogPostItemHeaderAuthors({className}) {
const {
metadata: {authors},
- assets,
} = useBlogPost();
- const authorsCount = authors.length;
- if (authorsCount === 0) {
+ if (authors.length === 0) {
return null;
}
- const imageOnly = authors.every(({name}) => !name);
- const singleAuthor = authors.length === 1;
return (
- <div
- className={clsx(
- imageOnly ? styles.imageOnlyAuthorRow : 'row',
- className,
- )}>
+ <div className={clsx(styles.authorWrapper, className)}>
{authors.map((author, idx) => (
- <div
- className={clsx(
- styles.authorWrapper,
- !imageOnly && (singleAuthor ? 'col col--12' : 'col col--6'),
- imageOnly ? styles.imageOnlyAuthorCol : styles.authorCol,
+ <div key={idx} className={styles.author}>
+ {author.imageURL && (
+ <img
+ src={author.imageURL}
+ alt={author.name}
+ className={styles.authorImage}
+ />
+ )}
+ {author.url ? (
+ <Link href={author.url} className={styles.authorName}>
+ {author.name}
+ </Link>
+ ) : (
+ <span className={styles.authorName}>{author.name}</span>
)}
- key={idx}>
- {author.name}
</div>
))}
</div>
diff --git a/website/src/theme/BlogPostItem/Header/Authors/styles.module.css
b/website/src/theme/BlogPostItem/Header/Authors/styles.module.css
index 01a73306960b..f65e4aeae7b6 100644
--- a/website/src/theme/BlogPostItem/Header/Authors/styles.module.css
+++ b/website/src/theme/BlogPostItem/Header/Authors/styles.module.css
@@ -1,22 +1,21 @@
-.authorCol {
- max-width: inherit !important;
+.authorWrapper {
+ margin-left: 10px;
}
-.imageOnlyAuthorRow {
+.author {
display: flex;
- flex-flow: row wrap;
+ align-items: center;
+ gap: 8px;
}
-.imageOnlyAuthorCol {
- margin-left: 0.3rem;
- margin-right: 0.3rem;
+.authorImage {
+ width: 24px;
+ height: 24px;
+ border-radius: 50%;
+ object-fit: cover;
}
-.authorWrapper {
- margin-left: 10px;
- .avatar__name {
- span {
- font-weight: 600 !important;
- }
- }
+.authorName {
+ font-weight: 600;
+ font-size: 1.1rem;
}
diff --git a/website/src/theme/BlogPostItem/Header/Info/styles.module.css
b/website/src/theme/BlogPostItem/Header/Info/styles.module.css
index 46e2febfcba2..05909b0f370b 100644
--- a/website/src/theme/BlogPostItem/Header/Info/styles.module.css
+++ b/website/src/theme/BlogPostItem/Header/Info/styles.module.css
@@ -2,6 +2,7 @@
color: #1c1e21;
display: flex;
flex-direction: row;
+ align-items: center;
font-size: 1.1rem;
margin-left: 2px;
}
diff --git a/website/static/assets/images/authors/aditya-goenka.jpg
b/website/static/assets/images/authors/aditya-goenka.jpg
new file mode 100644
index 000000000000..1bfd993cb21c
Binary files /dev/null and
b/website/static/assets/images/authors/aditya-goenka.jpg differ
diff --git a/website/static/assets/images/authors/danny-chan.jpg
b/website/static/assets/images/authors/danny-chan.jpg
new file mode 100644
index 000000000000..52d2a48e456c
Binary files /dev/null and
b/website/static/assets/images/authors/danny-chan.jpg differ
diff --git a/website/static/assets/images/authors/dipankar-mazumdar.jpg
b/website/static/assets/images/authors/dipankar-mazumdar.jpg
new file mode 100644
index 000000000000..5c287caf8129
Binary files /dev/null and
b/website/static/assets/images/authors/dipankar-mazumdar.jpg differ
diff --git a/website/static/assets/images/authors/ethan-guo.jpg
b/website/static/assets/images/authors/ethan-guo.jpg
new file mode 100644
index 000000000000..63b00700fb50
Binary files /dev/null and b/website/static/assets/images/authors/ethan-guo.jpg
differ
diff --git a/website/static/assets/images/authors/nadine-farah.png
b/website/static/assets/images/authors/nadine-farah.png
new file mode 100644
index 000000000000..cb30cf6a85e4
Binary files /dev/null and
b/website/static/assets/images/authors/nadine-farah.png differ
diff --git a/website/static/assets/images/authors/rajesh-mahindra.jpg
b/website/static/assets/images/authors/rajesh-mahindra.jpg
new file mode 100644
index 000000000000..23dec0f9e9a3
Binary files /dev/null and
b/website/static/assets/images/authors/rajesh-mahindra.jpg differ
diff --git a/website/static/assets/images/authors/sagar-lakshmipathy.jpg
b/website/static/assets/images/authors/sagar-lakshmipathy.jpg
new file mode 100644
index 000000000000..f771be659b1f
Binary files /dev/null and
b/website/static/assets/images/authors/sagar-lakshmipathy.jpg differ
diff --git a/website/static/assets/images/authors/sagar-sumit.jpg
b/website/static/assets/images/authors/sagar-sumit.jpg
new file mode 100644
index 000000000000..b279ce2023db
Binary files /dev/null and
b/website/static/assets/images/authors/sagar-sumit.jpg differ
diff --git a/website/static/assets/images/authors/shuo-cheng.jpg
b/website/static/assets/images/authors/shuo-cheng.jpg
new file mode 100644
index 000000000000..89dd4d3711b1
Binary files /dev/null and
b/website/static/assets/images/authors/shuo-cheng.jpg differ
diff --git a/website/static/assets/images/authors/sivabalan.jpg
b/website/static/assets/images/authors/sivabalan.jpg
new file mode 100644
index 000000000000..3f96266dd6fb
Binary files /dev/null and b/website/static/assets/images/authors/sivabalan.jpg
differ
diff --git a/website/static/assets/images/authors/vinoth-chandar.png
b/website/static/assets/images/authors/vinoth-chandar.png
new file mode 100644
index 000000000000..7185b948fba9
Binary files /dev/null and
b/website/static/assets/images/authors/vinoth-chandar.png differ
diff --git a/website/static/assets/images/authors/xushiyan.jpg
b/website/static/assets/images/authors/xushiyan.jpg
new file mode 100644
index 000000000000..bac181a34073
Binary files /dev/null and b/website/static/assets/images/authors/xushiyan.jpg
differ