hudi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vin...@apache.org
Subject [incubator-hudi] branch asf-site updated: [HUDI-555] Support for separate 0.5.0 site docs + instructions for future (#1249)
Date Sun, 19 Jan 2020 02:08:28 GMT
This is an automated email from the ASF dual-hosted git repository.

vinoth pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-hudi.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 3367d87  [HUDI-555] Support for separate 0.5.0 site docs + instructions for future (#1249)
3367d87 is described below

commit 3367d8730da138720abdb24197f1b85f017c83bf
Author: vinoth chandar <vinothchandar@users.noreply.github.com>
AuthorDate: Sat Jan 18 18:08:17 2020 -0800

    [HUDI-555] Support for separate 0.5.0 site docs + instructions for future (#1249)
    
    - Moving 0.5.0 docs into its own separate files
    - README.md documented with process to do this
    - Bit suboptimal. CN docs don't work yet
    - Updating site with 0.5.0 docs, so new changes can be now made for 0.5.1
---
 README.md                                          |  101 ++
 content/assets/js/lunr/lunr-store.js               |  165 +++
 content/cn/activity.html                           |    4 +-
 content/cn/community.html                          |    4 +-
 content/cn/contributing.html                       |    4 +-
 .../{admin_guide.html => 0.5.0-admin_guide.html}   |   38 +-
 .../{comparison.html => 0.5.0-comparison.html}     |   36 +-
 .../cn/docs/{concepts.html => 0.5.0-concepts.html} |   36 +-
 ...nfigurations.html => 0.5.0-configurations.html} |   40 +-
 .../{docker_demo.html => 0.5.0-docker_demo.html}   |   36 +-
 ...docs-versions.html => 0.5.0-docs-versions.html} |   36 +-
 .../{gcs_hoodie.html => 0.5.0-gcs_hoodie.html}     |   36 +-
 ...ation_guide.html => 0.5.0-migration_guide.html} |   38 +-
 .../{performance.html => 0.5.0-performance.html}   |   36 +-
 .../{powered_by.html => 0.5.0-powered_by.html}     |   36 +-
 .../cn/docs/{privacy.html => 0.5.0-privacy.html}   |   36 +-
 ...querying_data.html => 0.5.0-querying_data.html} |   44 +-
 ...art-guide.html => 0.5.0-quick-start-guide.html} |   50 +-
 .../docs/{s3_hoodie.html => 0.5.0-s3_hoodie.html}  |   36 +-
 .../docs/{use_cases.html => 0.5.0-use_cases.html}  |   36 +-
 .../{writing_data.html => 0.5.0-writing_data.html} |   52 +-
 content/cn/docs/admin_guide.html                   |    2 +
 content/cn/docs/comparison.html                    |    2 +
 content/cn/docs/concepts.html                      |    2 +
 content/cn/docs/configurations.html                |    2 +
 content/cn/docs/docker_demo.html                   |    2 +
 content/cn/docs/docs-versions.html                 |    2 +
 content/cn/docs/gcs_hoodie.html                    |    2 +
 content/cn/docs/migration_guide.html               |    2 +
 content/cn/docs/performance.html                   |    2 +
 content/cn/docs/powered_by.html                    |    2 +
 content/cn/docs/privacy.html                       |    2 +
 content/cn/docs/querying_data.html                 |    2 +
 content/cn/docs/quick-start-guide.html             |    2 +
 content/cn/docs/s3_hoodie.html                     |    2 +
 content/cn/docs/use_cases.html                     |    2 +
 content/cn/docs/writing_data.html                  |    2 +
 content/cn/releases.html                           |    4 +-
 .../{admin_guide.html => 0.5.0-admin_guide.html}   |   28 +-
 .../{comparison.html => 0.5.0-comparison.html}     |   26 +-
 .../docs/{concepts.html => 0.5.0-concepts.html}    |   26 +-
 ...nfigurations.html => 0.5.0-configurations.html} |   30 +-
 .../{docker_demo.html => 0.5.0-docker_demo.html}   |   26 +-
 ...docs-versions.html => 0.5.0-docs-versions.html} |   28 +-
 .../{gcs_hoodie.html => 0.5.0-gcs_hoodie.html}     |   26 +-
 ...ation_guide.html => 0.5.0-migration_guide.html} |   28 +-
 .../{performance.html => 0.5.0-performance.html}   |   26 +-
 .../{powered_by.html => 0.5.0-powered_by.html}     |   26 +-
 content/docs/{privacy.html => 0.5.0-privacy.html}  |   28 +-
 ...querying_data.html => 0.5.0-querying_data.html} |   34 +-
 ...art-guide.html => 0.5.0-quick-start-guide.html} |   38 +-
 .../docs/{s3_hoodie.html => 0.5.0-s3_hoodie.html}  |   26 +-
 .../docs/{structure.html => 0.5.0-structure.html}  |   28 +-
 .../docs/{use_cases.html => 0.5.0-use_cases.html}  |   26 +-
 .../{writing_data.html => 0.5.0-writing_data.html} |   40 +-
 content/docs/admin_guide.html                      |    2 +
 content/docs/comparison.html                       |    2 +
 content/docs/concepts.html                         |    2 +
 content/docs/configurations.html                   |    2 +
 content/docs/docker_demo.html                      |    2 +
 content/docs/docs-versions.html                    |    2 +
 content/docs/gcs_hoodie.html                       |    2 +
 content/docs/migration_guide.html                  |    2 +
 content/docs/performance.html                      |    2 +
 content/docs/powered_by.html                       |    2 +
 content/docs/privacy.html                          |    2 +
 content/docs/querying_data.html                    |    2 +
 content/docs/quick-start-guide.html                |    2 +
 content/docs/s3_hoodie.html                        |    2 +
 content/docs/structure.html                        |    2 +
 content/docs/use_cases.html                        |    2 +
 content/docs/writing_data.html                     |    2 +
 content/releases.html                              |    4 +-
 content/sitemap.xml                                |  132 +++
 docs/README.md                                     |   46 -
 docs/_config.yml                                   |   24 +
 docs/_data/navigation.yml                          |   34 +-
 docs/_docs/0.5.0/0_1_s3_filesystem.cn.md           |   83 ++
 docs/_docs/0.5.0/0_1_s3_filesystem.md              |   82 ++
 docs/_docs/0.5.0/0_2_gcs_filesystem.cn.md          |   63 ++
 docs/_docs/0.5.0/0_2_gcs_filesystem.md             |   62 ++
 docs/_docs/0.5.0/0_3_migration_guide.cn.md         |   74 ++
 docs/_docs/0.5.0/0_3_migration_guide.md            |   73 ++
 docs/_docs/0.5.0/0_4_docker_demo.cn.md             | 1154 ++++++++++++++++++++
 docs/_docs/0.5.0/0_4_docker_demo.md                | 1153 +++++++++++++++++++
 docs/_docs/0.5.0/1_1_quick_start_guide.cn.md       |  162 +++
 docs/_docs/0.5.0/1_1_quick_start_guide.md          |  175 +++
 docs/_docs/0.5.0/1_2_structure.md                  |   22 +
 docs/_docs/0.5.0/1_3_use_cases.cn.md               |   69 ++
 docs/_docs/0.5.0/1_3_use_cases.md                  |   68 ++
 docs/_docs/0.5.0/1_4_powered_by.cn.md              |   59 +
 docs/_docs/0.5.0/1_4_powered_by.md                 |   70 ++
 docs/_docs/0.5.0/1_5_comparison.cn.md              |   50 +
 docs/_docs/0.5.0/1_5_comparison.md                 |   58 +
 docs/_docs/0.5.0/2_1_concepts.cn.md                |  156 +++
 docs/_docs/0.5.0/2_1_concepts.md                   |  172 +++
 docs/_docs/0.5.0/2_2_writing_data.cn.md            |  224 ++++
 docs/_docs/0.5.0/2_2_writing_data.md               |  223 ++++
 docs/_docs/0.5.0/2_3_querying_data.cn.md           |  148 +++
 docs/_docs/0.5.0/2_3_querying_data.md              |  147 +++
 docs/_docs/0.5.0/2_4_configurations.cn.md          |  470 ++++++++
 docs/_docs/0.5.0/2_4_configurations.md             |  433 ++++++++
 docs/_docs/0.5.0/2_5_performance.cn.md             |   64 ++
 docs/_docs/0.5.0/2_5_performance.md                |   66 ++
 docs/_docs/0.5.0/2_6_admin_guide.cn.md             |  435 ++++++++
 docs/_docs/0.5.0/2_6_admin_guide.md                |  445 ++++++++
 docs/_docs/0.5.0/3_1_privacy.cn.md                 |   25 +
 docs/_docs/0.5.0/3_1_privacy.md                    |   24 +
 docs/_docs/0.5.0/3_2_docs_versions.cn.md           |   20 +
 docs/_docs/0.5.0/3_2_docs_versions.md              |   19 +
 docs/_includes/nav_list                            |    6 +
 docs/_includes/quick_link.html                     |    7 +
 docs/_pages/releases.md                            |    2 +-
 113 files changed, 7682 insertions(+), 581 deletions(-)

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..bffe5a3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,101 @@
+## Site Documentation
+
+This folder contains resources that build the [Apache Hudi website](https://hudi.apache.org)
+
+
+### Building docs
+
+The site is based on a [Jekyll](https://jekyllrb.com/) theme hosted [here](https://github.com/mmistakes/minimal-mistakes/) with detailed instructions.
+
+#### Docker
+
+Simply run `docker-compose build --no-cache && docker-compose up` from the `docs` folder and the site should be up & running at `http://localhost:4000`
+
+To see edits reflect on the site, you may have to bounce the container
+
+ - Stop existing container by `ctrl+c` the docker-compose program
+ - (or) alternatively via `docker stop docs_server_1`
+ - Bring up container again using `docker-compose up`
+
+#### Host OS
+
+To build directly on host OS (\*nix), first you need to install
+
+- gem, ruby (using apt-get/brew)
+- bundler (`gem install bundler`)
+- jekyll (`gem install jekyll`)
+- Update bundler `bundle update --bundler`
+
+and then run the following commands from `docs` folder to install dependencies
+
+`bundle install`
+
+and serve a local site
+
+`bundle exec jekyll serve`
+
+### Submitting changes
+
+To submit changes to the docs, please make the changes on the `asf-site` branch, build the site locally, test it out and submit a pull request with the changes to .md and theme files under `docs`
+
+### Updating site
+
+At a regular cadence, one of the Hudi committers will regenerate the site. In order to do this, first build it locally, test and then move the generated site from `_site` locally to `docs/../content`. Submit changes as a PR.
+
+### Adding docs for version
+
+During each release, we must preserve the old version's docs so users on that version can refer to it. 
+Below documents the steps needed to do that. 
+
+#### Make a copy of current docs 
+
+Copy the docs as-is into another folder
+
+```
+cd docs/_docs
+export VERSION=0.5.0
+mkdir -p $VERSION && cp *.md $VERSION/
+```
+
+#### Rewrite links & add version to each page
+
+This step changes the permalink (location where these pages would be placed) with a version prefix and also changes links to each other.
+
+```
+cd $VERSION
+sed -i "s/permalink: \/docs\//permalink: \/docs\/${VERSION}-/g" *.md
+sed -i "s/permalink: \/cn\/docs\//permalink: \/cn\/docs\/${VERSION}-/g" *.cn.md
+sed -i "s/](\/docs\//](\/docs\/${VERSION}-/g" *.md
+sed -i "s/](\/cn\/docs\//](\/cn\/docs\/${VERSION}-/g" *.cn.md
+sed -i "0,/---/s//---\nversion: ${VERSION}/" *.md
+```
+
+#### Reworking site navigation
+
+In `_config.yml`, add a new author section similar to `0.5.0_author`. Then, change `quick_link.html` with a if block to use this navigation, when the new version's page is rendered
+  
+```
+{%- if page.language == "0.5.0" -%}
+  {%- assign author = site.0.5.0_author -%}
+{%- else -%}
+  {%- assign author = site.author -%}
+{%- endif -%}
+```
+
+Then in `navigation.yml`, add a new section similar to `0.5.0_docs` (or the last release), with each link pointing to pages starting with `$VERSION-`. Change `nav_list` with else-if to 
+render the new version's equivalent navigation links. 
+
+```
+{% if page.version %}
+    {% if page.version == "0.5.0" %}
+        {% assign navigation = site.data.navigation["0.5.0_docs"] %}
+    {% endif %}
+{% endif %}
+```
+
+#### Link to this version's doc
+
+
+
+
+
diff --git a/content/assets/js/lunr/lunr-store.js b/content/assets/js/lunr/lunr-store.js
index 45e3608..559627f 100644
--- a/content/assets/js/lunr/lunr-store.js
+++ b/content/assets/js/lunr/lunr-store.js
@@ -2,6 +2,171 @@ var store = [{
         "title": "S3 Filesystem",
         "excerpt":"In this page, we explain how to get your Hudi spark job to store into AWS S3. AWS configs There are two configurations required for Hudi-S3 compatibility: Adding AWS Credentials for Hudi Adding required Jars to classpath AWS Credentials Simplest way to use Hudi with S3, is to configure your...","categories": [],
         "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-s3_hoodie.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "S3 Filesystem",
+        "excerpt":"In this page, we explain how to get your Hudi spark job to store into AWS S3. AWS configs There are two configurations required for Hudi-S3 compatibility: Adding AWS Credentials for Hudi Adding required Jars to classpath AWS Credentials Simplest way to use Hudi with S3, is to configure your...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-s3_hoodie.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "GCS Filesystem",
+        "excerpt":"For Hudi storage on GCS, regional buckets provide an DFS API with strong consistency. GCS Configs There are two configurations required for Hudi GCS compatibility: Adding GCS Credentials for Hudi Adding required jars to classpath GCS Credentials Add the required configs in your core-site.xml from where Hudi can fetch them....","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-gcs_hoodie.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "GCS Filesystem",
+        "excerpt":"For Hudi storage on GCS, regional buckets provide an DFS API with strong consistency. GCS Configs There are two configurations required for Hudi GCS compatibility: Adding GCS Credentials for Hudi Adding required jars to classpath GCS Credentials Add the required configs in your core-site.xml from where Hudi can fetch them....","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-gcs_hoodie.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Migration Guide",
+        "excerpt":"Hudi maintains metadata such as commit timeline and indexes to manage a dataset. The commit timelines helps to understand the actions happening on a dataset as well as the current state of a dataset. Indexes are used by Hudi to maintain a record key to file id mapping to efficiently...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-migration_guide.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Migration Guide",
+        "excerpt":"Hudi maintains metadata such as commit timeline and indexes to manage a dataset. The commit timelines helps to understand the actions happening on a dataset as well as the current state of a dataset. Indexes are used by Hudi to maintain a record key to file id mapping to efficiently...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-migration_guide.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Docker Demo",
+        "excerpt":"A Demo using docker containers Lets use a real world example to see how hudi works end to end. For this purpose, a self contained data infrastructure is brought up in a local docker cluster within your computer. The steps have been tested on a Mac laptop Prerequisites Docker Setup...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-docker_demo.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Docker Demo",
+        "excerpt":"A Demo using docker containers Lets use a real world example to see how hudi works end to end. For this purpose, a self contained data infrastructure is brought up in a local docker cluster within your computer. The steps have been tested on a Mac laptop Prerequisites Docker Setup...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-docker_demo.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Quick-Start Guide",
+        "excerpt":"本指南通过使用spark-shell简要介绍了Hudi功能。使用Spark数据源,我们将通过代码段展示如何插入和更新的Hudi默认存储类型数据集: 写时复制。每次写操作之后,我们还将展示如何读取快照和增量读取数据。 设置spark-shell Hudi适用于Spark-2.x版本。您可以按照此处的说明设置spark。 在提取的目录中,使用spark-shell运行Hudi: bin/spark-shell --packages org.apache.hudi:hudi-spark-bundle:0.5.0-incubating --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer' 设置表名、基本路径和数据生成器来为本指南生成记录。 import org.apache.hudi.QuickstartUtils._ import scala.collection.JavaConversions._ import org.apache.spark.sql. [...]
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-quick-start-guide.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Quick-Start Guide",
+        "excerpt":"This guide provides a quick peek at Hudi’s capabilities using spark-shell. Using Spark datasources, we will walk through code snippets that allows you to insert and update a Hudi dataset of default storage type: Copy on Write. After each write operation we will also show how to read the data...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-quick-start-guide.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Structure",
+        "excerpt":"Hudi (pronounced “Hoodie”) ingests &amp; manages storage of large analytical datasets over DFS (HDFS or cloud stores) and provides three logical views for query access. Read Optimized View - Provides excellent query performance on pure columnar storage, much like plain Parquet tables. Incremental View - Provides a change stream out...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-structure.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "使用案例",
+        "excerpt":"以下是一些使用Hudi的示例,说明了加快处理速度和提高效率的好处 近实时摄取 将外部源(如事件日志、数据库、外部源)的数据摄取到Hadoop数据湖是一个众所周知的问题。 尽管这些数据对整个组织来说是最有价值的,但不幸的是,在大多数(如果不是全部)Hadoop部署中都使用零散的方式解决,即使用多个不同的摄取工具。 对于RDBMS摄取,Hudi提供 通过更新插入达到更快加载,而不是昂贵且低效的批量加载。例如,您可以读取MySQL BIN日志或Sqoop增量导入并将其应用于 DFS上的等效Hudi表。这比批量合并任务及复杂的手工合并工作流更快/更有效率。 对于NoSQL数据存储,如Cassandra / Voldemort / HBase,即使是中等规模大小也会存储数十亿行。 毫无疑问, 全量加载不可行,如果摄取需要跟上较高的更新量,那么则需要更有效的方法。 即使对于像Kafka
 样的不可变数据源,Hudi也可以 强制在HDFS上使用最小文件大小, 这采取了综合方式解决HDFS小文件问题来改善NameNode的健康状况。这对事件流来说更为 [...]
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-use_cases.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Use Cases",
+        "excerpt":"Near Real-Time Ingestion Ingesting data from external sources like (event logs, databases, external sources) into a Hadoop Data Lake is a well known problem. In most (if not all) Hadoop deployments, it is unfortunately solved in a piecemeal fashion, using a medley of ingestion tools, even though this data is...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-use_cases.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "演讲 & Hudi 用户",
+        "excerpt":"已使用 Uber Hudi最初由Uber开发,用于实现低延迟、高效率的数据库摄取。 Hudi自2016年8月开始在生产环境上线,在Hadoop上驱动约100个非常关键的业务表,支撑约几百TB的数据规模(前10名包括行程、乘客、司机)。 Hudi还支持几个增量的Hive ETL管道,并且目前已集成到Uber的数据分发系统中。 EMIS Health EMIS Health是英国最大的初级保健IT软件提供商,其数据集包括超过5000亿的医疗保健记录。HUDI用于管理生产中的分析数据集,并使其与上游源保持同步。Presto用于查询以HUDI格式写入的数据。 Yields.io Yields.io是第一个使用AI在企业范围内进行自动模型验证和实时监控的金融科技平台。他们的数据湖由Hudi管理,他们还积极使用Hudi为增量式、跨语言/平台机器学习构建基础架构。 Yotpo Hudi在Yotpo有不少用途。首先,在他们的开源ETL框架中集成了Hudi作为CDC
 道的输出写入程序,即从数据库binlog生成的事件流到Kafka然后再写入S3。 演 [...]
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-powered_by.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Talks & Powered By",
+        "excerpt":"Adoption Uber Apache Hudi was originally developed at Uber, to achieve low latency database ingestion, with high efficiency. It has been in production since Aug 2016, powering the massive 100PB data lake, including highly business critical tables like core trips,riders,partners. It also powers several incremental Hive ETL pipelines and being...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-powered_by.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "对比",
+        "excerpt":"Apache Hudi填补了在DFS上处理数据的巨大空白,并可以和这些技术很好地共存。然而, 通过将Hudi与一些相关系统进行对比,来了解Hudi如何适应当前的大数据生态系统,并知晓这些系统在设计中做的不同权衡仍将非常有用。   Kudu   Apache Kudu是一个与Hudi具有相似目标的存储系统,该系统通过对upserts支持来对PB级数据进行实时分析。 一个关键的区别是Kudu还试图充当OLTP工作负载的数据存储,而Hudi并不希望这样做。 因此,Kudu不支持增量拉取(截至2017年初),而Hudi支持以便进行增量处理。   Kudu与分布式文件系统抽象和HDFS完全不同,它自己的一组存储服务器通过RAFT相互通信。 与之不同的是,Hudi旨在与底层Hadoop兼容的文件系统(HDFS,S3或Ceph)一起使用,并且没有自己的存储服务器群,而是依靠Apache Spark来完成繁重的工作。 因此,Hudi可以像其他S
 park作业一样轻松扩展,而Kudu则需要硬件和运营支持,特别是HBase或Vertica等数据存储系统。 [...]
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-comparison.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Comparison",
+        "excerpt":"Apache Hudi fills a big void for processing data on top of DFS, and thus mostly co-exists nicely with these technologies. However, it would be useful to understand how Hudi fits into the current big data ecosystem, contrasting it with a few related systems and bring out the different tradeoffs...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-comparison.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "概念",
+        "excerpt":"Apache Hudi(发音为“Hudi”)在DFS的数据集上提供以下流原语 插入更新 (如何改变数据集?) 增量拉取 (如何获取变更的数据?) 在本节中,我们将讨论重要的概念和术语,这些概念和术语有助于理解并有效使用这些原语。 时间轴 在它的核心,Hudi维护一条包含在不同的即时时间所有对数据集操作的时间轴,从而提供,从不同时间点出发得到不同的视图下的数据集。Hudi即时包含以下组件 操作类型 : 对数据集执行的操作类型 即时时间 : 即时时间通常是一个时间戳(例如:20190117010349),该时间戳按操作开始时间的顺序单调增加。 状态 : 即时的状态 Hudi保证在时间轴上执行的操作的原子性和基于即时时间的时间轴一致性。 执行的关键操作包括 COMMITS - 一次提交表示将一组记录原子写入到数据集中。 CLEANS - 删除数据集中不再需要的旧文件版本的后台
 活动。 DELTA_COMMIT - 增量提交是指将一批记录原子写入到MergeOnRead存储类型的数据集中,其中一些/所有数据都可以只写到增量日志中。 COMPA [...]
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-concepts.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Concepts",
+        "excerpt":"Apache Hudi (pronounced “Hudi”) provides the following streaming primitives over datasets on DFS Upsert (how do I change the dataset?) Incremental pull (how do I fetch data that changed?) In this section, we will discuss key concepts &amp; terminologies that are important to understand, to be able to effectively use...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-concepts.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "写入 Hudi 数据集",
+        "excerpt":"这一节我们将介绍使用DeltaStreamer工具从外部源甚至其他Hudi数据集摄取新更改的方法, 以及通过使用Hudi数据源的upserts加快大型Spark作业的方法。 对于此类数据集,我们可以使用各种查询引擎查询它们。 写操作 在此之前,了解Hudi数据源及delta streamer工具提供的三种不同的写操作以及如何最佳利用它们可能会有所帮助。 这些操作可以在针对数据集发出的每个提交/增量提交中进行选择/更改。 UPSERT(插入更新) :这是默认操作,在该操作中,通过查找索引,首先将输入记录标记为插入或更新。 在运行启发式方法以确定如何最好地将这些记录放到存储上,如优化文件大小之类后,这些记录最终会被写入。 对于诸如数据库更改捕获之类的用例,建议该操作,因为输入几乎肯定包含更新。 INSERT(插入) :就使用启发式方法确定文件大小
 言,此操作与插入更新(UPSERT)非常相似,但此操作完全跳过了索引查找步骤。 因此,对于日志重复数据删除等用例(结合下面提到的过滤重复项的选项),它可以比插入更新快得多。 插入也适用于这种用 [...]
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-writing_data.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Writing Hudi Datasets",
+        "excerpt":"In this section, we will cover ways to ingest new changes from external sources or even other Hudi datasets using the DeltaStreamer tool, as well as speeding up large Spark jobs via upserts using the Hudi datasource. Such datasets can then be queried using various query engines. Write Operations Before...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-writing_data.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "查询 Hudi 数据集",
+        "excerpt":"从概念上讲,Hudi物理存储一次数据到DFS上,同时在其上提供三个逻辑视图,如之前所述。 数据集同步到Hive Metastore后,它将提供由Hudi的自定义输入格式支持的Hive外部表。一旦提供了适当的Hudi捆绑包, 就可以通过Hive、Spark和Presto之类的常用查询引擎来查询数据集。 具体来说,在写入过程中传递了两个由table name命名的Hive表。 例如,如果table name = hudi_tbl,我们得到 hudi_tbl 实现了由 HoodieParquetInputFormat 支持的数据集的读优化视图,从而提供了纯列式数据。 hudi_tbl_rt 实现了由 HoodieParquetRealtimeInputFormat 支持的数据集的实时视图,从而提供了基础数据和日志数据的合并视图。 如概念部分所述,增量处理所需要的 一个关键原语是增量拉取(以从数据集中获取更改流/日志)。您可以增量提取Hudi数据集,这意味着自指定的即时时间起, 您可
 只获得全部更新和新行。 这与插入更新一起使用,对于构建某 [...]
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-querying_data.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Querying Hudi Datasets",
+        "excerpt":"Conceptually, Hudi stores data physically once on DFS, while providing 3 logical views on top, as explained before. Once the dataset is synced to the Hive metastore, it provides external Hive tables backed by Hudi’s custom inputformats. Once the proper hudi bundle has been provided, the dataset can be queried...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-querying_data.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "配置",
+        "excerpt":"该页面介绍了几种配置写入或读取Hudi数据集的作业的方法。 简而言之,您可以在几个级别上控制行为。 Spark数据源配置 : 这些配置控制Hudi Spark数据源,提供如下功能: 定义键和分区、选择写操作、指定如何合并记录或选择要读取的视图类型。 WriteClient 配置 : 在内部,Hudi数据源使用基于RDD的HoodieWriteClient API 真正执行对存储的写入。 这些配置可对文件大小、压缩(compression)、并行度、压缩(compaction)、写入模式、清理等底层方面进行完全控制。 尽管Hudi提供了合理的默认设置,但在不同情形下,可能需要对这些配置进行调整以针对特定的工作负载进行优化。 RecordPayload 配置 : 这是Hudi提供的最底层的定制。 RecordPayload定义了如何根据传入的新记录和存储的旧记录来产生新值以进行插入更新。 Hudi提供了诸如OverwriteWithLatestAvroPayload的
 默认实现,该实现仅使用最新或最后写入的记录来更新存储。 在数据源和Wr [...]
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-configurations.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Configurations",
+        "excerpt":"This page covers the different ways of configuring your job to write/read Hudi datasets. At a high level, you can control behaviour at few levels. Spark Datasource Configs : These configs control the Hudi Spark Datasource, providing ability to define keys/partitioning, pick out the write operation, specify how to merge...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-configurations.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "性能",
+        "excerpt":"在本节中,我们将介绍一些有关Hudi插入更新、增量提取的实际性能数据,并将其与实现这些任务的其它传统工具进行比较。   插入更新   下面显示了从NoSQL数据库摄取获得的速度提升,这些速度提升数据是通过在写入时复制存储上的Hudi数据集上插入更新而获得的, 数据集包括5个从小到大的表(相对于批量加载表)。           由于Hudi可以通过增量构建数据集,它也为更频繁地调度摄取提供了可能性,从而减少了延迟,并显著节省了总体计算成本。           Hudi插入更新在t1表的一次提交中就进行了高达4TB的压力测试。 有关一些调优技巧,请参见这里。   索引   为了有效地插入更新数据,Hudi需要将要写入的批量数据中的记录分类为插入和更新(并标记它所属的文件组)。 为了加快此操作的速度,Hudi采用了可插拔索引机制,该机制存储
 了recordKey和它所属的文件组ID之间的映射。 默认情况下,Hudi使用内置索引,该索引使用文件范围和布隆过滤器来完成此任务,相比于Spark Join,其速度最高可提高10倍。   当您将r [...]
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-performance.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Performance",
+        "excerpt":"In this section, we go over some real world performance numbers for Hudi upserts, incremental pull and compare them against the conventional alternatives for achieving these tasks. Upserts Following shows the speed up obtained for NoSQL database ingestion, from incrementally upserting on a Hudi dataset on the copy-on-write storage, on...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-performance.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "管理 Hudi Pipelines",
+        "excerpt":"管理员/运维人员可以通过以下方式了解Hudi数据集/管道 通过Admin CLI进行管理 Graphite指标 Hudi应用程序的Spark UI 本节简要介绍了每一种方法,并提供了有关故障排除的一些常规指南 Admin CLI 一旦构建了hudi,就可以通过cd hudi-cli &amp;&amp; ./hudi-cli.sh启动shell。 一个hudi数据集位于DFS上的basePath位置,我们需要该位置才能连接到Hudi数据集。 Hudi库使用.hoodie子文件夹跟踪所有元数据,从而有效地在内部管理该数据集。 初始化hudi表,可使用如下命令。 18/09/06 15:56:52 INFO annotation.AutowiredAnnotationBeanPostProcessor: JSR-330 'javax.inject.Inject' annotation found and supported for autowiring ========================================== [...]
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-admin_guide.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Administering Hudi Pipelines",
+        "excerpt":"Admins/ops can gain visibility into Hudi datasets/pipelines in the following ways Administering via the Admin CLI Graphite metrics Spark UI of the Hudi Application This section provides a glimpse into each of these, with some general guidance on troubleshooting Admin CLI Once hudi has been built, the shell can be...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-admin_guide.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Privacy Policy",
+        "excerpt":"Information about your use of this website is collected using server access logs and a tracking cookie. The collected information consists of the following: The IP address from which you access the website; The type of browser and operating system you use to access our site; The date and time...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-privacy.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Privacy Policy",
+        "excerpt":"Information about your use of this website is collected using server access logs and a tracking cookie. The collected information consists of the following: The IP address from which you access the website; The type of browser and operating system you use to access our site; The date and time...","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-privacy.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "文档版本",
+        "excerpt":"                                  latest             英文版             中文版                       ","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/cn/docs/0.5.0-docs-versions.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "Docs Versions",
+        "excerpt":"                                  latest             English Version             Chinese Version                       ","categories": [],
+        "tags": [],
+        "url": "http://0.0.0.0:4000/docs/0.5.0-docs-versions.html",
+        "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
+        "title": "S3 Filesystem",
+        "excerpt":"In this page, we explain how to get your Hudi spark job to store into AWS S3. AWS configs There are two configurations required for Hudi-S3 compatibility: Adding AWS Credentials for Hudi Adding required Jars to classpath AWS Credentials Simplest way to use Hudi with S3, is to configure your...","categories": [],
+        "tags": [],
         "url": "http://0.0.0.0:4000/cn/docs/s3_hoodie.html",
         "teaser":"http://0.0.0.0:4000/assets/images/500x300.png"},{
         "title": "S3 Filesystem",
diff --git a/content/cn/activity.html b/content/cn/activity.html
index b5a16fb..b07da72 100644
--- a/content/cn/activity.html
+++ b/content/cn/activity.html
@@ -137,7 +137,7 @@
     <ul class="author__urls social-icons">
       
         
-          <li><a href="/cn/docs/quick-start-guide" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-book" aria-hidden="true"></i> Documentation</a></li>
+          <li><a href="/docs/quick-start-guide" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-book" aria-hidden="true"></i> Documentation</a></li>
 
           
         
@@ -145,7 +145,7 @@
 
           
         
-          <li><a href="/cn/contributing" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> Contribution Guide</a></li>
+          <li><a href="/contributing" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> Contribution Guide</a></li>
 
           
         
diff --git a/content/cn/community.html b/content/cn/community.html
index 8ac88d8..bcef2d4 100644
--- a/content/cn/community.html
+++ b/content/cn/community.html
@@ -137,7 +137,7 @@
     <ul class="author__urls social-icons">
       
         
-          <li><a href="/cn/docs/quick-start-guide" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-book" aria-hidden="true"></i> Documentation</a></li>
+          <li><a href="/docs/quick-start-guide" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-book" aria-hidden="true"></i> Documentation</a></li>
 
           
         
@@ -145,7 +145,7 @@
 
           
         
-          <li><a href="/cn/contributing" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> Contribution Guide</a></li>
+          <li><a href="/contributing" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> Contribution Guide</a></li>
 
           
         
diff --git a/content/cn/contributing.html b/content/cn/contributing.html
index f8913c7..a7dffca 100644
--- a/content/cn/contributing.html
+++ b/content/cn/contributing.html
@@ -137,7 +137,7 @@
     <ul class="author__urls social-icons">
       
         
-          <li><a href="/cn/docs/quick-start-guide" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-book" aria-hidden="true"></i> Documentation</a></li>
+          <li><a href="/docs/quick-start-guide" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-book" aria-hidden="true"></i> Documentation</a></li>
 
           
         
@@ -145,7 +145,7 @@
 
           
         
-          <li><a href="/cn/contributing" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> Contribution Guide</a></li>
+          <li><a href="/contributing" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> Contribution Guide</a></li>
 
           
         
diff --git a/content/cn/docs/admin_guide.html b/content/cn/docs/0.5.0-admin_guide.html
similarity index 98%
copy from content/cn/docs/admin_guide.html
copy to content/cn/docs/0.5.0-admin_guide.html
index a3a1e19..87750e2 100644
--- a/content/cn/docs/admin_guide.html
+++ b/content/cn/docs/0.5.0-admin_guide.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="管理 Hudi Pipelines">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/admin_guide.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-admin_guide.html">
 
 
   <meta property="og:description" content="管理员/运维人员可以通过以下方式了解Hudi数据集/管道">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="active">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
@@ -734,7 +736,7 @@ Hudi库使用.hoodie子文件夹跟踪所有元数据,从而有效地在内部
 
 <h3 id="重复">重复</h3>
 
-<p>首先,请确保访问Hudi数据集的查询是<a href="sql_queries.html">没有问题的</a>,并之后确认的确有重复。</p>
+<p>首先,请确保访问Hudi数据集的查询是<a href="/docs/0.5.0-querying_data.html">没有问题的</a>,并之后确认的确有重复。</p>
 
 <ul>
   <li>如果确认,请使用上面的元数据字段来标识包含记录的物理文件和分区文件。</li>
diff --git a/content/cn/docs/comparison.html b/content/cn/docs/0.5.0-comparison.html
similarity index 90%
copy from content/cn/docs/comparison.html
copy to content/cn/docs/0.5.0-comparison.html
index e31422a..0e1b61d 100644
--- a/content/cn/docs/comparison.html
+++ b/content/cn/docs/0.5.0-comparison.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="对比">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/comparison.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-comparison.html">
 
 
   <meta property="og:description" content="Apache Hudi填补了在DFS上处理数据的巨大空白,并可以和这些技术很好地共存。然而,通过将Hudi与一些相关系统进行对比,来了解Hudi如何适应当前的大数据生态系统,并知晓这些系统在设计中做的不同权衡仍将非常有用。">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="active">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
diff --git a/content/cn/docs/concepts.html b/content/cn/docs/0.5.0-concepts.html
similarity index 94%
copy from content/cn/docs/concepts.html
copy to content/cn/docs/0.5.0-concepts.html
index ad98033..f137143 100644
--- a/content/cn/docs/concepts.html
+++ b/content/cn/docs/0.5.0-concepts.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="概念">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/concepts.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-concepts.html">
 
 
   <meta property="og:description" content="Apache Hudi(发音为“Hudi”)在DFS的数据集上提供以下流原语">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="active">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
diff --git a/content/cn/docs/configurations.html b/content/cn/docs/0.5.0-configurations.html
similarity index 96%
copy from content/cn/docs/configurations.html
copy to content/cn/docs/0.5.0-configurations.html
index 5294812..54d5772 100644
--- a/content/cn/docs/configurations.html
+++ b/content/cn/docs/0.5.0-configurations.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="配置">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/configurations.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-configurations.html">
 
 
   <meta property="og:description" content="该页面介绍了几种配置写入或读取Hudi数据集的作业的方法。简而言之,您可以在几个级别上控制行为。">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="active">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
@@ -380,9 +382,9 @@
 <p>无论使用RDD/WriteClient API还是数据源,以下信息都有助于配置对云存储的访问。</p>
 
 <ul>
-  <li><a href="/cn/docs/s3_hoodie.html">AWS S3</a> <br />
+  <li><a href="/cn/docs/0.5.0-s3_hoodie.html">AWS S3</a> <br />
 S3和Hudi协同工作所需的配置。</li>
-  <li><a href="/cn/docs/gcs_hoodie.html">Google Cloud Storage</a> <br />
+  <li><a href="/cn/docs/0.5.0-gcs_hoodie.html">Google Cloud Storage</a> <br />
 GCS和Hudi协同工作所需的配置。</li>
 </ul>
 
diff --git a/content/cn/docs/docker_demo.html b/content/cn/docs/0.5.0-docker_demo.html
similarity index 99%
copy from content/cn/docs/docker_demo.html
copy to content/cn/docs/0.5.0-docker_demo.html
index bbe50b1..7fc5f0a 100644
--- a/content/cn/docs/docker_demo.html
+++ b/content/cn/docs/0.5.0-docker_demo.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Docker Demo">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/docker_demo.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-docker_demo.html">
 
 
   <meta property="og:description" content="A Demo using docker containers">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="active">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
diff --git a/content/cn/docs/docs-versions.html b/content/cn/docs/0.5.0-docs-versions.html
similarity index 85%
copy from content/cn/docs/docs-versions.html
copy to content/cn/docs/0.5.0-docs-versions.html
index 579def3..260cbd9 100644
--- a/content/cn/docs/docs-versions.html
+++ b/content/cn/docs/0.5.0-docs-versions.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="文档版本">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/docs-versions.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-docs-versions.html">
 
 
   <meta property="og:description" content="                              latest            英文版            中文版                  ">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="active">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
diff --git a/content/cn/docs/gcs_hoodie.html b/content/cn/docs/0.5.0-gcs_hoodie.html
similarity index 88%
copy from content/cn/docs/gcs_hoodie.html
copy to content/cn/docs/0.5.0-gcs_hoodie.html
index 8179ab5..5f0415b 100644
--- a/content/cn/docs/gcs_hoodie.html
+++ b/content/cn/docs/0.5.0-gcs_hoodie.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="GCS Filesystem">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/gcs_hoodie.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-gcs_hoodie.html">
 
 
   <meta property="og:description" content="For Hudi storage on GCS, regional buckets provide an DFS API with strong consistency.">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
diff --git a/content/cn/docs/migration_guide.html b/content/cn/docs/0.5.0-migration_guide.html
similarity index 90%
copy from content/cn/docs/migration_guide.html
copy to content/cn/docs/0.5.0-migration_guide.html
index 2c28b03..47e4945 100644
--- a/content/cn/docs/migration_guide.html
+++ b/content/cn/docs/0.5.0-migration_guide.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Migration Guide">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/migration_guide.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-migration_guide.html">
 
 
   <meta property="og:description" content="Hudi maintains metadata such as commit timeline and indexes to manage a dataset. The commit timelines helps to understand the actions happening on a dataset as well as the current state of a dataset. Indexes are used by Hudi to maintain a record key to file id mapping to efficiently locate a record. At the moment, Hudi supports writing only parquet columnar formats.To be able to start using Hudi for your existing dataset, you will need to migrat [...]
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
@@ -383,7 +385,7 @@ For huge datasets, this could be as simple as :</p>
 
 <p><strong>Option 3</strong>
 Write your own custom logic of how to load an existing dataset into a Hudi managed one. Please read about the RDD API
- <a href="/cn/docs/quick-start-guide.html">here</a>. Using the HDFSParquetImporter Tool. Once hudi has been built via <code class="highlighter-rouge">mvn clean install -DskipTests</code>, the shell can be
+ <a href="/cn/docs/0.5.0-quick-start-guide.html">here</a>. Using the HDFSParquetImporter Tool. Once hudi has been built via <code class="highlighter-rouge">mvn clean install -DskipTests</code>, the shell can be
 fired by via <code class="highlighter-rouge">cd hudi-cli &amp;&amp; ./hudi-cli.sh</code>.</p>
 
 <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">hudi</span><span class="o">-&gt;</span><span class="n">hdfsparquetimport</span>
diff --git a/content/cn/docs/performance.html b/content/cn/docs/0.5.0-performance.html
similarity index 89%
copy from content/cn/docs/performance.html
copy to content/cn/docs/0.5.0-performance.html
index 8812ddb..e736bf1 100644
--- a/content/cn/docs/performance.html
+++ b/content/cn/docs/0.5.0-performance.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="性能">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/performance.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-performance.html">
 
 
   <meta property="og:description" content="在本节中,我们将介绍一些有关Hudi插入更新、增量提取的实际性能数据,并将其与实现这些任务的其它传统工具进行比较。">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="active">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
diff --git a/content/cn/docs/powered_by.html b/content/cn/docs/0.5.0-powered_by.html
similarity index 89%
copy from content/cn/docs/powered_by.html
copy to content/cn/docs/0.5.0-powered_by.html
index 23a3807..f892692 100644
--- a/content/cn/docs/powered_by.html
+++ b/content/cn/docs/0.5.0-powered_by.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="演讲 &amp; Hudi 用户">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/powered_by.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-powered_by.html">
 
 
   <meta property="og:description" content="已使用">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="active">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
diff --git a/content/cn/docs/privacy.html b/content/cn/docs/0.5.0-privacy.html
similarity index 87%
copy from content/cn/docs/privacy.html
copy to content/cn/docs/0.5.0-privacy.html
index b7465ff..65c6f5b 100644
--- a/content/cn/docs/privacy.html
+++ b/content/cn/docs/0.5.0-privacy.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Privacy Policy">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/privacy.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-privacy.html">
 
 
   <meta property="og:description" content="Information about your use of this website is collected using server access logs and a tracking cookie.The collected information consists of the following:">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="active">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
diff --git a/content/cn/docs/querying_data.html b/content/cn/docs/0.5.0-querying_data.html
similarity index 93%
copy from content/cn/docs/querying_data.html
copy to content/cn/docs/0.5.0-querying_data.html
index 41e7c18..db82242 100644
--- a/content/cn/docs/querying_data.html
+++ b/content/cn/docs/0.5.0-querying_data.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="查询 Hudi 数据集">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/querying_data.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-querying_data.html">
 
 
   <meta property="og:description" content="从概念上讲,Hudi物理存储一次数据到DFS上,同时在其上提供三个逻辑视图,如之前所述。数据集同步到Hive Metastore后,它将提供由Hudi的自定义输入格式支持的Hive外部表。一旦提供了适当的Hudi捆绑包,就可以通过Hive、Spark和Presto之类的常用查询引擎来查询数据集。">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="active">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
@@ -359,11 +361,11 @@
           </nav>
         </aside>
         
-        <p>从概念上讲,Hudi物理存储一次数据到DFS上,同时在其上提供三个逻辑视图,如<a href="/cn/docs/concepts.html#views">之前</a>所述。
+        <p>从概念上讲,Hudi物理存储一次数据到DFS上,同时在其上提供三个逻辑视图,如<a href="/cn/docs/0.5.0-concepts.html#views">之前</a>所述。
 数据集同步到Hive Metastore后,它将提供由Hudi的自定义输入格式支持的Hive外部表。一旦提供了适当的Hudi捆绑包,
 就可以通过Hive、Spark和Presto之类的常用查询引擎来查询数据集。</p>
 
-<p>具体来说,在写入过程中传递了两个由<a href="/cn/docs/configurations.html#TABLE_NAME_OPT_KEY">table name</a>命名的Hive表。
+<p>具体来说,在写入过程中传递了两个由<a href="/cn/docs/0.5.0-configurations.html#TABLE_NAME_OPT_KEY">table name</a>命名的Hive表。
 例如,如果<code class="highlighter-rouge">table name = hudi_tbl</code>,我们得到</p>
 
 <ul>
@@ -374,7 +376,7 @@
 <p>如概念部分所述,<a href="https://www.oreilly.com/ideas/ubers-case-for-incremental-processing-on-hadoop">增量处理</a>所需要的
 一个关键原语是<code class="highlighter-rouge">增量拉取</code>(以从数据集中获取更改流/日志)。您可以增量提取Hudi数据集,这意味着自指定的即时时间起,
 您可以只获得全部更新和新行。 这与插入更新一起使用,对于构建某些数据管道尤其有用,包括将1个或多个源Hudi表(数据流/事实)以增量方式拉出(流/事实)
-并与其他表(数据集/维度)结合以<a href="/cn/docs/writing_data.html">写出增量</a>到目标Hudi数据集。增量视图是通过查询上表之一实现的,并具有特殊配置,
+并与其他表(数据集/维度)结合以<a href="/cn/docs/0.5.0-writing_data.html">写出增量</a>到目标Hudi数据集。增量视图是通过查询上表之一实现的,并具有特殊配置,
 该特殊配置指示查询计划仅需要从数据集中获取增量数据。</p>
 
 <p>接下来,我们将详细讨论在每个查询引擎上如何访问所有三个视图。</p>
@@ -545,7 +547,7 @@ Upsert实用程序(<code class="highlighter-rouge">HoodieDeltaStreamer</code>
      <span class="o">.</span><span class="na">load</span><span class="o">(</span><span class="n">tablePath</span><span class="o">);</span> <span class="c1">// For incremental view, pass in the root/base path of dataset</span>
 </code></pre></div></div>
 
-<p>请参阅<a href="/cn/docs/configurations.html#spark-datasource">设置</a>部分,以查看所有数据源选项。</p>
+<p>请参阅<a href="/cn/docs/0.5.0-configurations.html#spark-datasource">设置</a>部分,以查看所有数据源选项。</p>
 
 <p>另外,<code class="highlighter-rouge">HoodieReadClient</code>通过Hudi的隐式索引提供了以下功能。</p>
 
diff --git a/content/cn/docs/quick-start-guide.html b/content/cn/docs/0.5.0-quick-start-guide.html
similarity index 93%
copy from content/cn/docs/quick-start-guide.html
copy to content/cn/docs/0.5.0-quick-start-guide.html
index f8579b7..8331c6d 100644
--- a/content/cn/docs/quick-start-guide.html
+++ b/content/cn/docs/0.5.0-quick-start-guide.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Quick-Start Guide">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/quick-start-guide.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-quick-start-guide.html">
 
 
   <meta property="og:description" content="本指南通过使用spark-shell简要介绍了Hudi功能。使用Spark数据源,我们将通过代码段展示如何插入和更新的Hudi默认存储类型数据集:写时复制。每次写操作之后,我们还将展示如何读取快照和增量读取数据。">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="active">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
@@ -352,7 +354,7 @@
         </aside>
         
         <p>本指南通过使用spark-shell简要介绍了Hudi功能。使用Spark数据源,我们将通过代码段展示如何插入和更新的Hudi默认存储类型数据集:
-<a href="/cn/docs/concepts.html#copy-on-write-storage">写时复制</a>。每次写操作之后,我们还将展示如何读取快照和增量读取数据。</p>
+<a href="/cn/docs/0.5.0-concepts.html#copy-on-write-storage">写时复制</a>。每次写操作之后,我们还将展示如何读取快照和增量读取数据。</p>
 
 <h2 id="设置spark-shell">设置spark-shell</h2>
 <p>Hudi适用于Spark-2.x版本。您可以按照<a href="https://spark.apache.org/downloads.html">此处</a>的说明设置spark。
@@ -399,9 +401,9 @@
 (<a href="#sample-schema">schema</a>中的<code class="highlighter-rouge">uuid</code>),分区字段(<code class="highlighter-rouge">region/county/city</code>)和组合逻辑(<a href="#sample-schema">schema</a>中的<code class="highlighter-rouge">ts</code>)
 以确保行程记录在每个分区中都是唯一的。更多信息请参阅
 <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=113709185#FAQ-HowdoImodelthedatastoredinHudi">对Hudi中的数据进行建模</a>,
-有关将数据提取到Hudi中的方法的信息,请参阅<a href="/cn/docs/writing_data.html">写入Hudi数据集</a>。
+有关将数据提取到Hudi中的方法的信息,请参阅<a href="/cn/docs/0.5.0-writing_data.html">写入Hudi数据集</a>。
 这里我们使用默认的写操作:<code class="highlighter-rouge">插入更新</code>。 如果您的工作负载没有<code class="highlighter-rouge">更新</code>,也可以使用更快的<code class="highlighter-rouge">插入</code>或<code class="highlighter-rouge">批量插入</code>操作。
-想了解更多信息,请参阅<a href="/cn/docs/writing_data.html#write-operations">写操作</a></p>
+想了解更多信息,请参阅<a href="/cn/docs/0.5.0-writing_data.html#write-operations">写操作</a></p>
 
 <h2 id="query">查询数据</h2>
 
@@ -418,7 +420,7 @@
 
 <p>该查询提供已提取数据的读取优化视图。由于我们的分区路径(<code class="highlighter-rouge">region/country/city</code>)是嵌套的3个级别
 从基本路径开始,我们使用了<code class="highlighter-rouge">load(basePath + "/*/*/*/*")</code>。
-有关支持的所有存储类型和视图的更多信息,请参考<a href="/cn/docs/concepts.html#storage-types--views">存储类型和视图</a>。</p>
+有关支持的所有存储类型和视图的更多信息,请参考<a href="/cn/docs/0.5.0-concepts.html#storage-types--views">存储类型和视图</a>。</p>
 
 <h2 id="updates">更新数据</h2>
 
@@ -437,7 +439,7 @@
 </code></pre></div></div>
 
 <p>注意,保存模式现在为<code class="highlighter-rouge">追加</code>。通常,除非您是第一次尝试创建数据集,否则请始终使用追加模式。
-<a href="#query">查询</a>现在再次查询数据将显示更新的行程。每个写操作都会生成一个新的由时间戳表示的<a href="/cn/docs/concepts.html">commit</a>
+<a href="#query">查询</a>现在再次查询数据将显示更新的行程。每个写操作都会生成一个新的由时间戳表示的<a href="/cn/docs/0.5.0-concepts.html">commit</a>
 。在之前提交的相同的<code class="highlighter-rouge">_hoodie_record_key</code>中寻找<code class="highlighter-rouge">_hoodie_commit_time</code>, <code class="highlighter-rouge">rider</code>, <code class="highlighter-rouge">driver</code>字段变更。</p>
 
 <h2 id="增量查询">增量查询</h2>
@@ -494,8 +496,8 @@
 
 <p>这里我们使用Spark演示了Hudi的功能。但是,Hudi可以支持多种存储类型/视图,并且可以从Hive,Spark,Presto等查询引擎中查询Hudi数据集。
 我们制作了一个基于Docker设置、所有依赖系统都在本地运行的<a href="https://www.youtube.com/watch?v=VhNgUsxdrD0">演示视频</a>,
-我们建议您复制相同的设置然后按照<a href="/cn/docs/docker_demo.html">这里</a>的步骤自己运行这个演示。
-另外,如果您正在寻找将现有数据迁移到Hudi的方法,请参考<a href="/cn/docs/migration_guide.html">迁移指南</a>。</p>
+我们建议您复制相同的设置然后按照<a href="/cn/docs/0.5.0-docker_demo.html">这里</a>的步骤自己运行这个演示。
+另外,如果您正在寻找将现有数据迁移到Hudi的方法,请参考<a href="/cn/docs/0.5.0-migration_guide.html">迁移指南</a>。</p>
 
       </section>
 
diff --git a/content/cn/docs/s3_hoodie.html b/content/cn/docs/0.5.0-s3_hoodie.html
similarity index 90%
copy from content/cn/docs/s3_hoodie.html
copy to content/cn/docs/0.5.0-s3_hoodie.html
index 85de09e..265ff56 100644
--- a/content/cn/docs/s3_hoodie.html
+++ b/content/cn/docs/0.5.0-s3_hoodie.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="S3 Filesystem">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/s3_hoodie.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-s3_hoodie.html">
 
 
   <meta property="og:description" content="In this page, we explain how to get your Hudi spark job to store into AWS S3.">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
diff --git a/content/cn/docs/use_cases.html b/content/cn/docs/0.5.0-use_cases.html
similarity index 91%
copy from content/cn/docs/use_cases.html
copy to content/cn/docs/0.5.0-use_cases.html
index 65adfa4..05718bb 100644
--- a/content/cn/docs/use_cases.html
+++ b/content/cn/docs/0.5.0-use_cases.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="使用案例">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/use_cases.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-use_cases.html">
 
 
   <meta property="og:description" content="以下是一些使用Hudi的示例,说明了加快处理速度和提高效率的好处">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="active">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
diff --git a/content/cn/docs/writing_data.html b/content/cn/docs/0.5.0-writing_data.html
similarity index 94%
copy from content/cn/docs/writing_data.html
copy to content/cn/docs/0.5.0-writing_data.html
index 7a41ba0..040e8fe 100644
--- a/content/cn/docs/writing_data.html
+++ b/content/cn/docs/0.5.0-writing_data.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="写入 Hudi 数据集">
-<meta property="og:url" content="https://hudi.apache.org/cn/docs/writing_data.html">
+<meta property="og:url" content="https://hudi.apache.org/cn/docs/0.5.0-writing_data.html">
 
 
   <meta property="og:description" content="这一节我们将介绍使用DeltaStreamer工具从外部源甚至其他Hudi数据集摄取新更改的方法,以及通过使用Hudi数据源的upserts加快大型Spark作业的方法。对于此类数据集,我们可以使用各种查询引擎查询它们。">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -139,7 +141,7 @@
     
       <li>
         
-          <span class="nav__sub-title">入门指南</span>
+          <span class="nav__sub-title">Getting Started</span>
         
 
         
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/cn/docs/quick-start-guide.html" class="">快速开始</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/cn/docs/use_cases.html" class="">使用案例</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/cn/docs/powered_by.html" class="">演讲 & hudi 用户</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/cn/docs/comparison.html" class="">对比</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/cn/docs/docker_demo.html" class="">Docker 示例</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -206,7 +208,7 @@
     
       <li>
         
-          <span class="nav__sub-title">帮助文档</span>
+          <span class="nav__sub-title">Documentation</span>
         
 
         
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/cn/docs/concepts.html" class="">概念</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/cn/docs/writing_data.html" class="active">写入数据</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/cn/docs/querying_data.html" class="">查询数据</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/cn/docs/configurations.html" class="">配置</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/cn/docs/performance.html" class="">性能</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/cn/docs/admin_guide.html" class="">管理</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -284,7 +286,7 @@
     
       <li>
         
-          <span class="nav__sub-title">其他信息</span>
+          <span class="nav__sub-title">INFO</span>
         
 
         
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/cn/docs/docs-versions.html" class="">文档版本</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/cn/docs/privacy.html" class="">版权信息</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
@@ -352,7 +354,7 @@
         
         <p>这一节我们将介绍使用<a href="#deltastreamer">DeltaStreamer</a>工具从外部源甚至其他Hudi数据集摄取新更改的方法,
 以及通过使用<a href="#datasource-writer">Hudi数据源</a>的upserts加快大型Spark作业的方法。
-对于此类数据集,我们可以使用各种查询引擎<a href="/cn/docs/querying_data.html">查询</a>它们。</p>
+对于此类数据集,我们可以使用各种查询引擎<a href="/cn/docs/0.5.0-querying_data.html">查询</a>它们。</p>
 
 <h2 id="写操作">写操作</h2>
 
@@ -478,7 +480,7 @@
   <span class="o">--</span><span class="n">op</span> <span class="no">BULK_INSERT</span>
 </code></pre></div></div>
 
-<p>在某些情况下,您可能需要预先将现有数据集迁移到Hudi。 请参考<a href="/cn/docs/migration_guide.html">迁移指南</a>。</p>
+<p>在某些情况下,您可能需要预先将现有数据集迁移到Hudi。 请参考<a href="/cn/docs/0.5.0-migration_guide.html">迁移指南</a>。</p>
 
 <h2 id="datasource-writer">Datasource Writer</h2>
 
@@ -554,15 +556,15 @@
 <p>以下是一些有效管理Hudi数据集存储的方法。</p>
 
 <ul>
-  <li>Hudi中的<a href="/cn/docs/configurations.html#compactionSmallFileSize">小文件处理功能</a>,可以分析传入的工作负载并将插入内容分配到现有文件组中,
+  <li>Hudi中的<a href="/cn/docs/0.5.0-configurations.html#compactionSmallFileSize">小文件处理功能</a>,可以分析传入的工作负载并将插入内容分配到现有文件组中,
  而不是创建新文件组。新文件组会生成小文件。</li>
-  <li>可以<a href="/cn/docs/configurations.html#retainCommits">配置</a>Cleaner来清理较旧的文件片,清理的程度可以调整,
+  <li>可以<a href="/cn/docs/0.5.0-configurations.html#retainCommits">配置</a>Cleaner来清理较旧的文件片,清理的程度可以调整,
  具体取决于查询所需的最长时间和增量拉取所需的回溯。</li>
-  <li>用户还可以调整<a href="/cn/docs/configurations.html#limitFileSize">基础/parquet文件</a>、<a href="/cn/docs/configurations.html#logFileMaxSize">日志文件</a>的大小
- 和预期的<a href="/cn/docs/configurations.html#parquetCompressionRatio">压缩率</a>,使足够数量的插入被分到同一个文件组中,最终产生大小合适的基础文件。</li>
-  <li>智能调整<a href="/cn/docs/configurations.html#withBulkInsertParallelism">批插入并行度</a>,可以产生大小合适的初始文件组。
+  <li>用户还可以调整<a href="/cn/docs/0.5.0-configurations.html#limitFileSize">基础/parquet文件</a>、<a href="/cn/docs/0.5.0-configurations.html#logFileMaxSize">日志文件</a>的大小
+ 和预期的<a href="/cn/docs/0.5.0-configurations.html#parquetCompressionRatio">压缩率</a>,使足够数量的插入被分到同一个文件组中,最终产生大小合适的基础文件。</li>
+  <li>智能调整<a href="/cn/docs/0.5.0-configurations.html#withBulkInsertParallelism">批插入并行度</a>,可以产生大小合适的初始文件组。
  实际上,正确执行此操作非常关键,因为文件组一旦创建后就不能删除,只能如前所述对其进行扩展。</li>
-  <li>对于具有大量更新的工作负载,<a href="/cn/docs/concepts.html#merge-on-read-storage">读取时合并存储</a>提供了一种很好的机制,
+  <li>对于具有大量更新的工作负载,<a href="/cn/docs/0.5.0-concepts.html#merge-on-read-storage">读取时合并存储</a>提供了一种很好的机制,
  可以快速将其摄取到较小的文件中,之后通过压缩将它们合并为较大的基础文件。</li>
 </ul>
 
diff --git a/content/cn/docs/admin_guide.html b/content/cn/docs/admin_guide.html
index a3a1e19..1d58aee 100644
--- a/content/cn/docs/admin_guide.html
+++ b/content/cn/docs/admin_guide.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/comparison.html b/content/cn/docs/comparison.html
index e31422a..cfa449c 100644
--- a/content/cn/docs/comparison.html
+++ b/content/cn/docs/comparison.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/concepts.html b/content/cn/docs/concepts.html
index ad98033..451e41c 100644
--- a/content/cn/docs/concepts.html
+++ b/content/cn/docs/concepts.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/configurations.html b/content/cn/docs/configurations.html
index 5294812..23b81e1 100644
--- a/content/cn/docs/configurations.html
+++ b/content/cn/docs/configurations.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/docker_demo.html b/content/cn/docs/docker_demo.html
index bbe50b1..b02f237 100644
--- a/content/cn/docs/docker_demo.html
+++ b/content/cn/docs/docker_demo.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/docs-versions.html b/content/cn/docs/docs-versions.html
index 579def3..3b71a95 100644
--- a/content/cn/docs/docs-versions.html
+++ b/content/cn/docs/docs-versions.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/gcs_hoodie.html b/content/cn/docs/gcs_hoodie.html
index 8179ab5..79252c5 100644
--- a/content/cn/docs/gcs_hoodie.html
+++ b/content/cn/docs/gcs_hoodie.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/migration_guide.html b/content/cn/docs/migration_guide.html
index 2c28b03..06d155e 100644
--- a/content/cn/docs/migration_guide.html
+++ b/content/cn/docs/migration_guide.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/performance.html b/content/cn/docs/performance.html
index 8812ddb..d8e2cb9 100644
--- a/content/cn/docs/performance.html
+++ b/content/cn/docs/performance.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/powered_by.html b/content/cn/docs/powered_by.html
index 23a3807..ae6a262 100644
--- a/content/cn/docs/powered_by.html
+++ b/content/cn/docs/powered_by.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/privacy.html b/content/cn/docs/privacy.html
index b7465ff..a372146 100644
--- a/content/cn/docs/privacy.html
+++ b/content/cn/docs/privacy.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/querying_data.html b/content/cn/docs/querying_data.html
index 41e7c18..b51974e 100644
--- a/content/cn/docs/querying_data.html
+++ b/content/cn/docs/querying_data.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/quick-start-guide.html b/content/cn/docs/quick-start-guide.html
index f8579b7..bb1e61c 100644
--- a/content/cn/docs/quick-start-guide.html
+++ b/content/cn/docs/quick-start-guide.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/s3_hoodie.html b/content/cn/docs/s3_hoodie.html
index 85de09e..c0c322a 100644
--- a/content/cn/docs/s3_hoodie.html
+++ b/content/cn/docs/s3_hoodie.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/use_cases.html b/content/cn/docs/use_cases.html
index 65adfa4..1c7d3c7 100644
--- a/content/cn/docs/use_cases.html
+++ b/content/cn/docs/use_cases.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/docs/writing_data.html b/content/cn/docs/writing_data.html
index 7a41ba0..2fb6f32 100644
--- a/content/cn/docs/writing_data.html
+++ b/content/cn/docs/writing_data.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/cn/releases.html b/content/cn/releases.html
index 4bf2b8f..f82557a 100644
--- a/content/cn/releases.html
+++ b/content/cn/releases.html
@@ -137,7 +137,7 @@
     <ul class="author__urls social-icons">
       
         
-          <li><a href="/cn/docs/quick-start-guide" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-book" aria-hidden="true"></i> Documentation</a></li>
+          <li><a href="/docs/quick-start-guide" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-book" aria-hidden="true"></i> Documentation</a></li>
 
           
         
@@ -145,7 +145,7 @@
 
           
         
-          <li><a href="/cn/contributing" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> Contribution Guide</a></li>
+          <li><a href="/contributing" target="_self" rel="nofollow noopener noreferrer"><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> Contribution Guide</a></li>
 
           
         
diff --git a/content/docs/admin_guide.html b/content/docs/0.5.0-admin_guide.html
similarity index 98%
copy from content/docs/admin_guide.html
copy to content/docs/0.5.0-admin_guide.html
index d5eda83..0f9631f 100644
--- a/content/docs/admin_guide.html
+++ b/content/docs/0.5.0-admin_guide.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Administering Hudi Pipelines">
-<meta property="og:url" content="https://hudi.apache.org/docs/admin_guide.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-admin_guide.html">
 
 
   <meta property="og:description" content="Admins/ops can gain visibility into Hudi datasets/pipelines in the following ways">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="active">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="active">Administering</a></li>
             
 
           
@@ -738,7 +740,7 @@ If you do find errors, then the record was not actually written by Hudi, but han
 
 <h3 id="duplicates">Duplicates</h3>
 
-<p>First of all, please confirm if you do indeed have duplicates <strong>AFTER</strong> ensuring the query is accessing the Hudi datasets <a href="sql_queries.html">properly</a> .</p>
+<p>First of all, please confirm if you do indeed have duplicates <strong>AFTER</strong> ensuring the query is accessing the Hudi datasets <a href="/docs/0.5.0-querying_data.html">properly</a> .</p>
 
 <ul>
   <li>If confirmed, please use the metadata fields above, to identify the physical files &amp; partition files containing the records .</li>
diff --git a/content/docs/comparison.html b/content/docs/0.5.0-comparison.html
similarity index 92%
copy from content/docs/comparison.html
copy to content/docs/0.5.0-comparison.html
index 167f5c0..de3003c 100644
--- a/content/docs/comparison.html
+++ b/content/docs/0.5.0-comparison.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Comparison">
-<meta property="og:url" content="https://hudi.apache.org/docs/comparison.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-comparison.html">
 
 
   <meta property="og:description" content="Apache Hudi fills a big void for processing data on top of DFS, and thus mostly co-exists nicely with these technologies. However,it would be useful to understand how Hudi fits into the current big data ecosystem, contrasting it with a few related systemsand bring out the different tradeoffs these systems have accepted in their design.">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="active">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="active">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
diff --git a/content/docs/concepts.html b/content/docs/0.5.0-concepts.html
similarity index 95%
copy from content/docs/concepts.html
copy to content/docs/0.5.0-concepts.html
index 75859df..8cb03b6 100644
--- a/content/docs/concepts.html
+++ b/content/docs/0.5.0-concepts.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Concepts">
-<meta property="og:url" content="https://hudi.apache.org/docs/concepts.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-concepts.html">
 
 
   <meta property="og:description" content="Apache Hudi (pronounced “Hudi”) provides the following streaming primitives over datasets on DFS">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="active">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="active">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
diff --git a/content/docs/configurations.html b/content/docs/0.5.0-configurations.html
similarity index 97%
copy from content/docs/configurations.html
copy to content/docs/0.5.0-configurations.html
index 9da8e26..67ade55 100644
--- a/content/docs/configurations.html
+++ b/content/docs/0.5.0-configurations.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Configurations">
-<meta property="og:url" content="https://hudi.apache.org/docs/configurations.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-configurations.html">
 
 
   <meta property="og:description" content="This page covers the different ways of configuring your job to write/read Hudi datasets. At a high level, you can control behaviour at few levels.">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="active">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="active">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -378,9 +380,9 @@ At a high level, you can control behaviour at few levels.</p>
 to cloud stores.</p>
 
 <ul>
-  <li><a href="/docs/s3_hoodie">AWS S3</a> <br />
+  <li><a href="/docs/0.5.0-s3_hoodie">AWS S3</a> <br />
 Configurations required for S3 and Hudi co-operability.</li>
-  <li><a href="/docs/gcs_hoodie">Google Cloud Storage</a> <br />
+  <li><a href="/docs/0.5.0-gcs_hoodie">Google Cloud Storage</a> <br />
 Configurations required for GCS and Hudi co-operability.</li>
 </ul>
 
diff --git a/content/docs/docker_demo.html b/content/docs/0.5.0-docker_demo.html
similarity index 99%
copy from content/docs/docker_demo.html
copy to content/docs/0.5.0-docker_demo.html
index 7f0dd82..9683832 100644
--- a/content/docs/docker_demo.html
+++ b/content/docs/0.5.0-docker_demo.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Docker Demo">
-<meta property="og:url" content="https://hudi.apache.org/docs/docker_demo.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-docker_demo.html">
 
 
   <meta property="og:description" content="A Demo using docker containers">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="active">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="active">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
diff --git a/content/docs/docs-versions.html b/content/docs/0.5.0-docs-versions.html
similarity index 87%
copy from content/docs/docs-versions.html
copy to content/docs/0.5.0-docs-versions.html
index e3d7778..914cfb6 100644
--- a/content/docs/docs-versions.html
+++ b/content/docs/0.5.0-docs-versions.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Docs Versions">
-<meta property="og:url" content="https://hudi.apache.org/docs/docs-versions.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-docs-versions.html">
 
 
   <meta property="og:description" content="                              latest            English Version            Chinese Version                  ">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -297,7 +299,7 @@
             
 
             
-              <li><a href="/docs/docs-versions.html" class="active">Docs Versions</a></li>
+              <li><a href="/docs/docs-versions.html" class="">Docs Versions</a></li>
             
 
           
diff --git a/content/docs/gcs_hoodie.html b/content/docs/0.5.0-gcs_hoodie.html
similarity index 91%
copy from content/docs/gcs_hoodie.html
copy to content/docs/0.5.0-gcs_hoodie.html
index 39c9b1a..04fa1c2 100644
--- a/content/docs/gcs_hoodie.html
+++ b/content/docs/0.5.0-gcs_hoodie.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="GCS Filesystem">
-<meta property="og:url" content="https://hudi.apache.org/docs/gcs_hoodie.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-gcs_hoodie.html">
 
 
   <meta property="og:description" content="For Hudi storage on GCS, regional buckets provide an DFS API with strong consistency.">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
diff --git a/content/docs/migration_guide.html b/content/docs/0.5.0-migration_guide.html
similarity index 92%
copy from content/docs/migration_guide.html
copy to content/docs/0.5.0-migration_guide.html
index 966dd79..11c12d9 100644
--- a/content/docs/migration_guide.html
+++ b/content/docs/0.5.0-migration_guide.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Migration Guide">
-<meta property="og:url" content="https://hudi.apache.org/docs/migration_guide.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-migration_guide.html">
 
 
   <meta property="og:description" content="Hudi maintains metadata such as commit timeline and indexes to manage a dataset. The commit timelines helps to understand the actions happening on a dataset as well as the current state of a dataset. Indexes are used by Hudi to maintain a record key to file id mapping to efficiently locate a record. At the moment, Hudi supports writing only parquet columnar formats.To be able to start using Hudi for your existing dataset, you will need to migrat [...]
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -383,7 +385,7 @@ For huge datasets, this could be as simple as :</p>
 
 <p><strong>Option 3</strong>
 Write your own custom logic of how to load an existing dataset into a Hudi managed one. Please read about the RDD API
- <a href="/docs/quick-start-guide.html">here</a>. Using the HDFSParquetImporter Tool. Once hudi has been built via <code class="highlighter-rouge">mvn clean install -DskipTests</code>, the shell can be
+ <a href="/docs/0.5.0-quick-start-guide.html">here</a>. Using the HDFSParquetImporter Tool. Once hudi has been built via <code class="highlighter-rouge">mvn clean install -DskipTests</code>, the shell can be
 fired by via <code class="highlighter-rouge">cd hudi-cli &amp;&amp; ./hudi-cli.sh</code>.</p>
 
 <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">hudi</span><span class="o">-&gt;</span><span class="n">hdfsparquetimport</span>
diff --git a/content/docs/performance.html b/content/docs/0.5.0-performance.html
similarity index 91%
copy from content/docs/performance.html
copy to content/docs/0.5.0-performance.html
index 3a79f4d..6783a6d 100644
--- a/content/docs/performance.html
+++ b/content/docs/0.5.0-performance.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Performance">
-<meta property="og:url" content="https://hudi.apache.org/docs/performance.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-performance.html">
 
 
   <meta property="og:description" content="In this section, we go over some real world performance numbers for Hudi upserts, incremental pull and compare them againstthe conventional alternatives for achieving these tasks.">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="active">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="active">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
diff --git a/content/docs/powered_by.html b/content/docs/0.5.0-powered_by.html
similarity index 92%
copy from content/docs/powered_by.html
copy to content/docs/0.5.0-powered_by.html
index 12df991..8cfbc99 100644
--- a/content/docs/powered_by.html
+++ b/content/docs/0.5.0-powered_by.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Talks &amp; Powered By">
-<meta property="og:url" content="https://hudi.apache.org/docs/powered_by.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-powered_by.html">
 
 
   <meta property="og:description" content="Adoption">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="active">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="active">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
diff --git a/content/docs/privacy.html b/content/docs/0.5.0-privacy.html
similarity index 89%
copy from content/docs/privacy.html
copy to content/docs/0.5.0-privacy.html
index 6dff4fe..bd04ff7 100644
--- a/content/docs/privacy.html
+++ b/content/docs/0.5.0-privacy.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Privacy Policy">
-<meta property="og:url" content="https://hudi.apache.org/docs/privacy.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-privacy.html">
 
 
   <meta property="og:description" content="Information about your use of this website is collected using server access logs and a tracking cookie.The collected information consists of the following:">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -308,7 +310,7 @@
             
 
             
-              <li><a href="/docs/privacy.html" class="active">Privacy Policy</a></li>
+              <li><a href="/docs/privacy.html" class="">Privacy Policy</a></li>
             
 
           
diff --git a/content/docs/querying_data.html b/content/docs/0.5.0-querying_data.html
similarity index 94%
copy from content/docs/querying_data.html
copy to content/docs/0.5.0-querying_data.html
index 629e6e6..53cf26e 100644
--- a/content/docs/querying_data.html
+++ b/content/docs/0.5.0-querying_data.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Querying Hudi Datasets">
-<meta property="og:url" content="https://hudi.apache.org/docs/querying_data.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-querying_data.html">
 
 
   <meta property="og:description" content="Conceptually, Hudi stores data physically once on DFS, while providing 3 logical views on top, as explained before. Once the dataset is synced to the Hive metastore, it provides external Hive tables backed by Hudi’s custom inputformats. Once the proper hudibundle has been provided, the dataset can be queried by popular query engines like Hive, Spark and Presto.">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="active">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="active">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -359,11 +361,11 @@
           </nav>
         </aside>
         
-        <p>Conceptually, Hudi stores data physically once on DFS, while providing 3 logical views on top, as explained <a href="/docs/concepts.html#views">before</a>. 
+        <p>Conceptually, Hudi stores data physically once on DFS, while providing 3 logical views on top, as explained <a href="/docs/0.5.0-concepts.html#views">before</a>. 
 Once the dataset is synced to the Hive metastore, it provides external Hive tables backed by Hudi’s custom inputformats. Once the proper hudi
 bundle has been provided, the dataset can be queried by popular query engines like Hive, Spark and Presto.</p>
 
-<p>Specifically, there are two Hive tables named off <a href="/docs/configurations.html#TABLE_NAME_OPT_KEY">table name</a> passed during write. 
+<p>Specifically, there are two Hive tables named off <a href="/docs/0.5.0-configurations.html#TABLE_NAME_OPT_KEY">table name</a> passed during write. 
 For e.g, if <code class="highlighter-rouge">table name = hudi_tbl</code>, then we get</p>
 
 <ul>
@@ -374,7 +376,7 @@ For e.g, if <code class="highlighter-rouge">table name = hudi_tbl</code>, then w
 <p>As discussed in the concepts section, the one key primitive needed for <a href="https://www.oreilly.com/ideas/ubers-case-for-incremental-processing-on-hadoop">incrementally processing</a>,
 is <code class="highlighter-rouge">incremental pulls</code> (to obtain a change stream/log from a dataset). Hudi datasets can be pulled incrementally, which means you can get ALL and ONLY the updated &amp; new rows 
 since a specified instant time. This, together with upserts, are particularly useful for building data pipelines where 1 or more source Hudi tables are incrementally pulled (streams/facts),
-joined with other tables (datasets/dimensions), to <a href="/docs/writing_data.html">write out deltas</a> to a target Hudi dataset. Incremental view is realized by querying one of the tables above, 
+joined with other tables (datasets/dimensions), to <a href="/docs/0.5.0-writing_data.html">write out deltas</a> to a target Hudi dataset. Incremental view is realized by querying one of the tables above, 
 with special configurations that indicates to query planning that only incremental data needs to be fetched out of the dataset.</p>
 
 <p>In sections, below we will discuss in detail how to access all the 3 views on each query engine.</p>
@@ -545,7 +547,7 @@ A sample incremental pull, that will obtain all records written since <code clas
      <span class="o">.</span><span class="na">load</span><span class="o">(</span><span class="n">tablePath</span><span class="o">);</span> <span class="c1">// For incremental view, pass in the root/base path of dataset</span>
 </code></pre></div></div>
 
-<p>Please refer to <a href="/docs/configurations.html#spark-datasource">configurations</a> section, to view all datasource options.</p>
+<p>Please refer to <a href="/docs/0.5.0-configurations.html#spark-datasource">configurations</a> section, to view all datasource options.</p>
 
 <p>Additionally, <code class="highlighter-rouge">HoodieReadClient</code> offers the following functionality using Hudi’s implicit indexing.</p>
 
diff --git a/content/docs/quick-start-guide.html b/content/docs/0.5.0-quick-start-guide.html
similarity index 94%
copy from content/docs/quick-start-guide.html
copy to content/docs/0.5.0-quick-start-guide.html
index 3e26e52..9809de6 100644
--- a/content/docs/quick-start-guide.html
+++ b/content/docs/0.5.0-quick-start-guide.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Quick-Start Guide">
-<meta property="og:url" content="https://hudi.apache.org/docs/quick-start-guide.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-quick-start-guide.html">
 
 
   <meta property="og:description" content="This guide provides a quick peek at Hudi’s capabilities using spark-shell. Using Spark datasources, we will walk through code snippets that allows you to insert and update a Hudi dataset of default storage type: Copy on Write. After each write operation we will also show how to read the data both snapshot and incrementally.">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="active">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="active">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -353,7 +355,7 @@
         
         <p>This guide provides a quick peek at Hudi’s capabilities using spark-shell. Using Spark datasources, we will walk through 
 code snippets that allows you to insert and update a Hudi dataset of default storage type: 
-<a href="/docs/concepts.html#copy-on-write-storage">Copy on Write</a>. 
+<a href="/docs/0.5.0-concepts.html#copy-on-write-storage">Copy on Write</a>. 
 After each write operation we will also show how to read the data both snapshot and incrementally.</p>
 
 <h2 id="setup-spark-shell">Setup spark-shell</h2>
@@ -403,9 +405,9 @@ You can check the data generated under <code class="highlighter-rouge">/tmp/hudi
 (<code class="highlighter-rouge">uuid</code> in <a href="#sample-schema">schema</a>), partition field (<code class="highlighter-rouge">region/county/city</code>) and combine logic (<code class="highlighter-rouge">ts</code> in 
 <a href="#sample-schema">schema</a>) to ensure trip records are unique within each partition. For more info, refer to 
 <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=113709185#FAQ-HowdoImodelthedatastoredinHudi">Modeling data stored in Hudi</a>
-and for info on ways to ingest data into Hudi, refer to <a href="/docs/writing_data.html">Writing Hudi Datasets</a>.
+and for info on ways to ingest data into Hudi, refer to <a href="/docs/0.5.0-writing_data.html">Writing Hudi Datasets</a>.
 Here we are using the default write operation : <code class="highlighter-rouge">upsert</code>. If you have a workload without updates, you can also issue 
-<code class="highlighter-rouge">insert</code> or <code class="highlighter-rouge">bulk_insert</code> operations which could be faster. To know more, refer to <a href="/docs/writing_data#write-operations">Write operations</a></p>
+<code class="highlighter-rouge">insert</code> or <code class="highlighter-rouge">bulk_insert</code> operations which could be faster. To know more, refer to <a href="/docs/0.5.0-writing_data#write-operations">Write operations</a></p>
 
 <h2 id="query-data">Query data</h2>
 
@@ -422,7 +424,7 @@ Here we are using the default write operation : <code class="highlighter-rouge">
 
 <p class="notice--info">This query provides a read optimized view of the ingested data. Since our partition path (<code class="highlighter-rouge">region/country/city</code>) is 3 levels nested 
 from base path we ve used <code class="highlighter-rouge">load(basePath + "/*/*/*/*")</code>. 
-Refer to <a href="/docs/concepts#storage-types--views">Storage Types and Views</a> for more info on all storage types and views supported.</p>
+Refer to <a href="/docs/0.5.0-concepts#storage-types--views">Storage Types and Views</a> for more info on all storage types and views supported.</p>
 
 <h2 id="update-data">Update data</h2>
 
@@ -503,8 +505,8 @@ instead of <code class="highlighter-rouge">--packages org.apache.hudi:hudi-spark
 Hudi datasets can be queried from query engines like Hive, Spark, Presto and much more. We have put together a 
 <a href="https://www.youtube.com/watch?v=VhNgUsxdrD0">demo video</a> that show cases all of this on a docker based setup with all 
 dependent systems running locally. We recommend you replicate the same setup and run the demo yourself, by following 
-steps <a href="/docs/docker_demo.html">here</a> to get a taste for it. Also, if you are looking for ways to migrate your existing data 
-to Hudi, refer to <a href="/docs/migration_guide.html">migration guide</a>.</p>
+steps <a href="/docs/0.5.0-docker_demo.html">here</a> to get a taste for it. Also, if you are looking for ways to migrate your existing data 
+to Hudi, refer to <a href="/docs/0.5.0-migration_guide.html">migration guide</a>.</p>
 
       </section>
 
diff --git a/content/docs/s3_hoodie.html b/content/docs/0.5.0-s3_hoodie.html
similarity index 92%
copy from content/docs/s3_hoodie.html
copy to content/docs/0.5.0-s3_hoodie.html
index ffa2195..c3d492e 100644
--- a/content/docs/s3_hoodie.html
+++ b/content/docs/0.5.0-s3_hoodie.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="S3 Filesystem">
-<meta property="og:url" content="https://hudi.apache.org/docs/s3_hoodie.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-s3_hoodie.html">
 
 
   <meta property="og:description" content="In this page, we explain how to get your Hudi spark job to store into AWS S3.">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
diff --git a/content/docs/structure.html b/content/docs/0.5.0-structure.html
similarity index 89%
copy from content/docs/structure.html
copy to content/docs/0.5.0-structure.html
index 3c26b2b..5e78737 100644
--- a/content/docs/structure.html
+++ b/content/docs/0.5.0-structure.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Structure">
-<meta property="og:url" content="https://hudi.apache.org/docs/structure.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-structure.html">
 
 
   <meta property="og:description" content="Hudi (pronounced “Hoodie”) ingests &amp; manages storage of large analytical datasets over DFS (HDFS or cloud stores) and provides three logical views for query access.">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -356,7 +358,7 @@
 
 <p>By carefully managing how data is laid out in storage &amp; how it’s exposed to queries, Hudi is able to power a rich data ecosystem where external sources can be ingested in near real-time and made available for interactive SQL Engines like <a href="https://prestodb.io">Presto</a> &amp; <a href="https://spark.apache.org/sql/">Spark</a>, while at the same time capable of being consumed incrementally from processing/ETL frameworks like <a href="https://hive.apache.org/">Hive</a> &amp;  [...]
 
-<p>Hudi broadly consists of a self contained Spark library to build datasets and integrations with existing query engines for data access. See <a href="/docs/quick-start-guide">quickstart</a> for a demo.</p>
+<p>Hudi broadly consists of a self contained Spark library to build datasets and integrations with existing query engines for data access. See <a href="/docs/0.5.0-quick-start-guide">quickstart</a> for a demo.</p>
 
       </section>
 
diff --git a/content/docs/use_cases.html b/content/docs/0.5.0-use_cases.html
similarity index 93%
copy from content/docs/use_cases.html
copy to content/docs/0.5.0-use_cases.html
index 90fb54b..4a2133a 100644
--- a/content/docs/use_cases.html
+++ b/content/docs/0.5.0-use_cases.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Use Cases">
-<meta property="og:url" content="https://hudi.apache.org/docs/use_cases.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-use_cases.html">
 
 
   <meta property="og:description" content="Near Real-Time Ingestion">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="active">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="active">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
diff --git a/content/docs/writing_data.html b/content/docs/0.5.0-writing_data.html
similarity index 94%
copy from content/docs/writing_data.html
copy to content/docs/0.5.0-writing_data.html
index e166364..84f7b37 100644
--- a/content/docs/writing_data.html
+++ b/content/docs/0.5.0-writing_data.html
@@ -10,7 +10,7 @@
 <meta property="og:locale" content="en_US">
 <meta property="og:site_name" content="">
 <meta property="og:title" content="Writing Hudi Datasets">
-<meta property="og:url" content="https://hudi.apache.org/docs/writing_data.html">
+<meta property="og:url" content="https://hudi.apache.org/docs/0.5.0-writing_data.html">
 
 
   <meta property="og:description" content="In this section, we will cover ways to ingest new changes from external sources or even other Hudi datasets using the DeltaStreamer tool, as well as speeding up large Spark jobs via upserts using the Hudi datasource. Such datasets can then be queried using various query engines.">
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
@@ -152,7 +154,7 @@
             
 
             
-              <li><a href="/docs/quick-start-guide.html" class="">Quick Start</a></li>
+              <li><a href="/docs/0.5.0-quick-start-guide.html" class="">Quick Start</a></li>
             
 
           
@@ -163,7 +165,7 @@
             
 
             
-              <li><a href="/docs/use_cases.html" class="">Use Cases</a></li>
+              <li><a href="/docs/0.5.0-use_cases.html" class="">Use Cases</a></li>
             
 
           
@@ -174,7 +176,7 @@
             
 
             
-              <li><a href="/docs/powered_by.html" class="">Talks & Powered By</a></li>
+              <li><a href="/docs/0.5.0-powered_by.html" class="">Talks & Powered By</a></li>
             
 
           
@@ -185,7 +187,7 @@
             
 
             
-              <li><a href="/docs/comparison.html" class="">Comparison</a></li>
+              <li><a href="/docs/0.5.0-comparison.html" class="">Comparison</a></li>
             
 
           
@@ -196,7 +198,7 @@
             
 
             
-              <li><a href="/docs/docker_demo.html" class="">Docker Demo</a></li>
+              <li><a href="/docs/0.5.0-docker_demo.html" class="">Docker Demo</a></li>
             
 
           
@@ -219,7 +221,7 @@
             
 
             
-              <li><a href="/docs/concepts.html" class="">Concepts</a></li>
+              <li><a href="/docs/0.5.0-concepts.html" class="">Concepts</a></li>
             
 
           
@@ -230,7 +232,7 @@
             
 
             
-              <li><a href="/docs/writing_data.html" class="active">Writing Data</a></li>
+              <li><a href="/docs/0.5.0-writing_data.html" class="active">Writing Data</a></li>
             
 
           
@@ -241,7 +243,7 @@
             
 
             
-              <li><a href="/docs/querying_data.html" class="">Querying Data</a></li>
+              <li><a href="/docs/0.5.0-querying_data.html" class="">Querying Data</a></li>
             
 
           
@@ -252,7 +254,7 @@
             
 
             
-              <li><a href="/docs/configurations.html" class="">Configuration</a></li>
+              <li><a href="/docs/0.5.0-configurations.html" class="">Configuration</a></li>
             
 
           
@@ -263,7 +265,7 @@
             
 
             
-              <li><a href="/docs/performance.html" class="">Performance</a></li>
+              <li><a href="/docs/0.5.0-performance.html" class="">Performance</a></li>
             
 
           
@@ -274,7 +276,7 @@
             
 
             
-              <li><a href="/docs/admin_guide.html" class="">Administering</a></li>
+              <li><a href="/docs/0.5.0-admin_guide.html" class="">Administering</a></li>
             
 
           
@@ -351,7 +353,7 @@
         </aside>
         
         <p>In this section, we will cover ways to ingest new changes from external sources or even other Hudi datasets using the <a href="#deltastreamer">DeltaStreamer</a> tool, as well as 
-speeding up large Spark jobs via upserts using the <a href="#datasource-writer">Hudi datasource</a>. Such datasets can then be <a href="querying_data.html">queried</a> using various query engines.</p>
+speeding up large Spark jobs via upserts using the <a href="#datasource-writer">Hudi datasource</a>. Such datasets can then be <a href="/docs/0.5.0-querying_data.html">queried</a> using various query engines.</p>
 
 <h2 id="write-operations">Write Operations</h2>
 
@@ -474,7 +476,7 @@ provided under <code class="highlighter-rouge">hudi-utilities/src/test/resources
   <span class="o">--</span><span class="n">op</span> <span class="no">BULK_INSERT</span>
 </code></pre></div></div>
 
-<p>In some cases, you may want to migrate your existing dataset into Hudi beforehand. Please refer to <a href="/docs/migration_guide.html">migration guide</a>.</p>
+<p>In some cases, you may want to migrate your existing dataset into Hudi beforehand. Please refer to <a href="/docs/0.5.0-migration_guide.html">migration guide</a>.</p>
 
 <h2 id="datasource-writer">Datasource Writer</h2>
 
@@ -551,14 +553,14 @@ column statistics etc. Even on some cloud data stores, there is often cost to li
 <p>Here are some ways to efficiently manage the storage of your Hudi datasets.</p>
 
 <ul>
-  <li>The <a href="/docs/configurations.html#compactionSmallFileSize">small file handling feature</a> in Hudi, profiles incoming workload 
+  <li>The <a href="/docs/0.5.0-configurations.html#compactionSmallFileSize">small file handling feature</a> in Hudi, profiles incoming workload 
 and distributes inserts to existing file groups instead of creating new file groups, which can lead to small files.</li>
-  <li>Cleaner can be <a href="/docs/configurations.html#retainCommits">configured</a> to clean up older file slices, more or less aggressively depending on maximum time for queries to run &amp; lookback needed for incremental pull</li>
-  <li>User can also tune the size of the <a href="/docs/configurations.html#limitFileSize">base/parquet file</a>, <a href="/docs/configurations.html#logFileMaxSize">log files</a> &amp; expected <a href="/docs/configurations.html#parquetCompressionRatio">compression ratio</a>, 
+  <li>Cleaner can be <a href="/docs/0.5.0-configurations.html#retainCommits">configured</a> to clean up older file slices, more or less aggressively depending on maximum time for queries to run &amp; lookback needed for incremental pull</li>
+  <li>User can also tune the size of the <a href="/docs/0.5.0-configurations.html#limitFileSize">base/parquet file</a>, <a href="/docs/0.5.0-configurations.html#logFileMaxSize">log files</a> &amp; expected <a href="/docs/0.5.0-configurations.html#parquetCompressionRatio">compression ratio</a>, 
 such that sufficient number of inserts are grouped into the same file group, resulting in well sized base files ultimately.</li>
-  <li>Intelligently tuning the <a href="/docs/configurations.html#withBulkInsertParallelism">bulk insert parallelism</a>, can again in nicely sized initial file groups. It is in fact critical to get this right, since the file groups
+  <li>Intelligently tuning the <a href="/docs/0.5.0-configurations.html#withBulkInsertParallelism">bulk insert parallelism</a>, can again in nicely sized initial file groups. It is in fact critical to get this right, since the file groups
 once created cannot be deleted, but simply expanded as explained before.</li>
-  <li>For workloads with heavy updates, the <a href="/docs/concepts.html#merge-on-read-storage">merge-on-read storage</a> provides a nice mechanism for ingesting quickly into smaller files and then later merging them into larger base files via compaction.</li>
+  <li>For workloads with heavy updates, the <a href="/docs/0.5.0-concepts.html#merge-on-read-storage">merge-on-read storage</a> provides a nice mechanism for ingesting quickly into smaller files and then later merging them into larger base files via compaction.</li>
 </ul>
 
       </section>
diff --git a/content/docs/admin_guide.html b/content/docs/admin_guide.html
index d5eda83..a6d2afb 100644
--- a/content/docs/admin_guide.html
+++ b/content/docs/admin_guide.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/comparison.html b/content/docs/comparison.html
index 167f5c0..7824112 100644
--- a/content/docs/comparison.html
+++ b/content/docs/comparison.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/concepts.html b/content/docs/concepts.html
index 75859df..c4f9fe0 100644
--- a/content/docs/concepts.html
+++ b/content/docs/concepts.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/configurations.html b/content/docs/configurations.html
index 9da8e26..d6c4909 100644
--- a/content/docs/configurations.html
+++ b/content/docs/configurations.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/docker_demo.html b/content/docs/docker_demo.html
index 7f0dd82..6fa4b87 100644
--- a/content/docs/docker_demo.html
+++ b/content/docs/docker_demo.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/docs-versions.html b/content/docs/docs-versions.html
index e3d7778..dc68d75 100644
--- a/content/docs/docs-versions.html
+++ b/content/docs/docs-versions.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/gcs_hoodie.html b/content/docs/gcs_hoodie.html
index 39c9b1a..ca06a0c 100644
--- a/content/docs/gcs_hoodie.html
+++ b/content/docs/gcs_hoodie.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/migration_guide.html b/content/docs/migration_guide.html
index 966dd79..c0771db 100644
--- a/content/docs/migration_guide.html
+++ b/content/docs/migration_guide.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/performance.html b/content/docs/performance.html
index 3a79f4d..cf6467d 100644
--- a/content/docs/performance.html
+++ b/content/docs/performance.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/powered_by.html b/content/docs/powered_by.html
index 12df991..b98ef2e 100644
--- a/content/docs/powered_by.html
+++ b/content/docs/powered_by.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/privacy.html b/content/docs/privacy.html
index 6dff4fe..f6bdd04 100644
--- a/content/docs/privacy.html
+++ b/content/docs/privacy.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/querying_data.html b/content/docs/querying_data.html
index 629e6e6..b193a34 100644
--- a/content/docs/querying_data.html
+++ b/content/docs/querying_data.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/quick-start-guide.html b/content/docs/quick-start-guide.html
index 3e26e52..2910740 100644
--- a/content/docs/quick-start-guide.html
+++ b/content/docs/quick-start-guide.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/s3_hoodie.html b/content/docs/s3_hoodie.html
index ffa2195..f82dc29 100644
--- a/content/docs/s3_hoodie.html
+++ b/content/docs/s3_hoodie.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/structure.html b/content/docs/structure.html
index 3c26b2b..286b381 100644
--- a/content/docs/structure.html
+++ b/content/docs/structure.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/use_cases.html b/content/docs/use_cases.html
index 90fb54b..cddc041 100644
--- a/content/docs/use_cases.html
+++ b/content/docs/use_cases.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/docs/writing_data.html b/content/docs/writing_data.html
index e166364..a681565 100644
--- a/content/docs/writing_data.html
+++ b/content/docs/writing_data.html
@@ -131,6 +131,8 @@
 
 
 
+
+
 <nav class="nav__list">
   
   <input id="ac-toc" name="accordion-toc" type="checkbox" />
diff --git a/content/releases.html b/content/releases.html
index 75c21dd..90622cc 100644
--- a/content/releases.html
+++ b/content/releases.html
@@ -188,7 +188,7 @@
           <nav class="toc">
             <header><h4 class="nav__title"><i class="fas fa-file-alt"></i> In this page</h4></header>
             <ul class="toc__menu">
-  <li><a href="#release-050-incubating">Release 0.5.0-incubating</a>
+  <li><a href="#release-050-incubating-docs">Release 0.5.0-incubating (docs)</a>
     <ul>
       <li><a href="#download-information">Download Information</a></li>
       <li><a href="#release-highlights">Release Highlights</a></li>
@@ -206,7 +206,7 @@
           </nav>
         </aside>
         
-        <h2 id="release-050-incubating"><a href="https://github.com/apache/incubator-hudi/releases/tag/release-0.5.0-incubating">Release 0.5.0-incubating</a></h2>
+        <h2 id="release-050-incubating-docs"><a href="https://github.com/apache/incubator-hudi/releases/tag/release-0.5.0-incubating">Release 0.5.0-incubating</a> (<a href="/docs/0.5.0-quick-start-guide.html">docs</a>)</h2>
 
 <h3 id="download-information">Download Information</h3>
 <ul>
diff --git a/content/sitemap.xml b/content/sitemap.xml
index 98a0ac0..a2252e9 100644
--- a/content/sitemap.xml
+++ b/content/sitemap.xml
@@ -1,6 +1,138 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-s3_hoodie.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-s3_hoodie.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-gcs_hoodie.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-gcs_hoodie.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-migration_guide.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-migration_guide.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-docker_demo.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-docker_demo.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-quick-start-guide.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-quick-start-guide.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-structure.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-use_cases.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-use_cases.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-powered_by.html</loc>
+<lastmod>2019-12-31T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-powered_by.html</loc>
+<lastmod>2019-12-31T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-comparison.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-comparison.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-concepts.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-concepts.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-writing_data.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-writing_data.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-querying_data.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-querying_data.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-configurations.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-configurations.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-performance.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-performance.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-admin_guide.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-admin_guide.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-privacy.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-privacy.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/cn/docs/0.5.0-docs-versions.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
+<loc>http://0.0.0.0:4000/docs/0.5.0-docs-versions.html</loc>
+<lastmod>2019-12-30T14:59:57-05:00</lastmod>
+</url>
+<url>
 <loc>http://0.0.0.0:4000/cn/docs/s3_hoodie.html</loc>
 <lastmod>2019-12-30T14:59:57-05:00</lastmod>
 </url>
diff --git a/docs/README.md b/docs/README.md
deleted file mode 100644
index 3c7f8b8..0000000
--- a/docs/README.md
+++ /dev/null
@@ -1,46 +0,0 @@
-## Site Documentation
-
-This folder contains resources that build the [Apache Hudi website](https://hudi.apache.org)
-
-
-### Building docs
-
-The site is based on a [Jekyll](https://jekyllrb.com/) theme hosted [here](https://github.com/mmistakes/minimal-mistakes/) with detailed instructions.
-
-#### Docker
-
-Simply run `docker-compose build --no-cache && docker-compose up` from the `docs` folder and the site should be up & running at `http://localhost:4000`
-
-To see edits reflect on the site, you may have to bounce the container
-
- - Stop existing container by `ctrl+c` the docker-compose program
- - (or) alternatively via `docker stop docs_server_1`
- - Bring up container again using `docker-compose up`
-
-#### Host OS
-
-To build directly on host OS (\*nix), first you need to install
-
-- gem, ruby (using apt-get/brew)
-- bundler (`gem install bundler`)
-- jekyll (`gem install jekyll`)
-- Update bundler `bundle update --bundler`
-
-and then run the following commands from `docs` folder to install dependencies
-
-`bundle install`
-
-and serve a local site
-
-`bundle exec jekyll serve`
-
-### Submitting changes
-
-To submit changes to the docs, please make the changes on the `asf-site` branch, build the site locally, test it out and submit a pull request with the changes to .md and theme files under `docs`
-
-### Updating site
-
-At a regular cadence, one of the Hudi committers will regenerate the site. In order to do this, first build it locally, test and then move the generated site from `_site` locally to `docs/../content`. Submit changes as a PR.
-
-### Automation
-Coming soon.
diff --git a/docs/_config.yml b/docs/_config.yml
index 4c92a6f..064fba4 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -80,6 +80,30 @@ cn_author:
       url: "https://issues.apache.org/jira/projects/HUDI/summary"
 
 
+0.5.0_author:
+  name             : "Quick Links"
+  bio              : "Hudi *ingests* & *manages* storage of large analytical datasets over DFS."
+  links:
+    - label: "Documentation"
+      icon: "fa fa-book"
+      url: "/docs/0.5.0-quick-start-guide"
+    - label: "Technical Wiki"
+      icon: "fa fa-wikipedia-w"
+      url: "https://cwiki.apache.org/confluence/display/HUDI"
+    - label: "Contribution Guide"
+      icon: "fa fa-thumbs-o-up"
+      url: "/contributing"
+    - label: "Join on Slack"
+      icon: "fa fa-slack"
+      url: "https://join.slack.com/t/apache-hudi/shared_invite/enQtODYyNDAxNzc5MTg2LTE5OTBlYmVhYjM0N2ZhOTJjOWM4YzBmMWU2MjZjMGE4NDc5ZDFiOGQ2N2VkYTVkNzU3ZDQ4OTI1NmFmYWQ0NzE"
+    - label: "Fork on GitHub"
+      icon: "fa fa-github"
+      url: "https://github.com/apache/incubator-hudi"
+    - label: "Report Issues"
+      icon: "fa fa-navicon"
+      url: "https://issues.apache.org/jira/projects/HUDI/summary"
+
+
 # Layout Defaults
 defaults:
   # _posts
diff --git a/docs/_data/navigation.yml b/docs/_data/navigation.yml
index 3efd93c..b356861 100644
--- a/docs/_data/navigation.yml
+++ b/docs/_data/navigation.yml
@@ -95,6 +95,38 @@ cn_docs:
         url: /cn/docs/privacy.html
 
 
-
+0.5.0_docs:
+  - title: Getting Started
+    children:
+      - title: "Quick Start"
+        url: /docs/0.5.0-quick-start-guide.html
+      - title: "Use Cases"
+        url: /docs/0.5.0-use_cases.html
+      - title: "Talks & Powered By"
+        url: /docs/0.5.0-powered_by.html
+      - title: "Comparison"
+        url: /docs/0.5.0-comparison.html
+      - title: "Docker Demo"
+        url: /docs/0.5.0-docker_demo.html
+  - title: Documentation
+    children:
+      - title: "Concepts"
+        url: /docs/0.5.0-concepts.html
+      - title: "Writing Data"
+        url: /docs/0.5.0-writing_data.html
+      - title: "Querying Data"
+        url: /docs/0.5.0-querying_data.html
+      - title: "Configuration"
+        url: /docs/0.5.0-configurations.html
+      - title: "Performance"
+        url: /docs/0.5.0-performance.html
+      - title: "Administering"
+        url: /docs/0.5.0-admin_guide.html
+  - title: INFO
+    children:
+      - title: "Docs Versions"
+        url: /docs/docs-versions.html
+      - title: "Privacy Policy"
+        url: /docs/privacy.html
 
 
diff --git a/docs/_docs/0.5.0/0_1_s3_filesystem.cn.md b/docs/_docs/0.5.0/0_1_s3_filesystem.cn.md
new file mode 100644
index 0000000..04c42da
--- /dev/null
+++ b/docs/_docs/0.5.0/0_1_s3_filesystem.cn.md
@@ -0,0 +1,83 @@
+---
+version: 0.5.0
+title: S3 Filesystem
+keywords: hudi, hive, aws, s3, spark, presto
+permalink: /cn/docs/0.5.0-s3_hoodie.html
+summary: In this page, we go over how to configure Hudi with S3 filesystem.
+last_modified_at: 2019-12-30T15:59:57-04:00
+language: cn
+---
+In this page, we explain how to get your Hudi spark job to store into AWS S3.
+
+## AWS configs
+
+There are two configurations required for Hudi-S3 compatibility:
+
+- Adding AWS Credentials for Hudi
+- Adding required Jars to classpath
+
+### AWS Credentials
+
+Simplest way to use Hudi with S3, is to configure your `SparkSession` or `SparkContext` with S3 credentials. Hudi will automatically pick this up and talk to S3.
+
+Alternatively, add the required configs in your core-site.xml from where Hudi can fetch them. Replace the `fs.defaultFS` with your S3 bucket name and Hudi should be able to read/write from the bucket.
+
+```xml
+  <property>
+      <name>fs.defaultFS</name>
+      <value>s3://ysharma</value>
+  </property>
+
+  <property>
+      <name>fs.s3.impl</name>
+      <value>org.apache.hadoop.fs.s3native.NativeS3FileSystem</value>
+  </property>
+
+  <property>
+      <name>fs.s3.awsAccessKeyId</name>
+      <value>AWS_KEY</value>
+  </property>
+
+  <property>
+       <name>fs.s3.awsSecretAccessKey</name>
+       <value>AWS_SECRET</value>
+  </property>
+
+  <property>
+       <name>fs.s3n.awsAccessKeyId</name>
+       <value>AWS_KEY</value>
+  </property>
+
+  <property>
+       <name>fs.s3n.awsSecretAccessKey</name>
+       <value>AWS_SECRET</value>
+  </property>
+```
+
+
+Utilities such as hudi-cli or deltastreamer tool, can pick up s3 creds via environmental variable prefixed with `HOODIE_ENV_`. For e.g below is a bash snippet to setup
+such variables and then have cli be able to work on datasets stored in s3
+
+```java
+export HOODIE_ENV_fs_DOT_s3a_DOT_access_DOT_key=$accessKey
+export HOODIE_ENV_fs_DOT_s3a_DOT_secret_DOT_key=$secretKey
+export HOODIE_ENV_fs_DOT_s3_DOT_awsAccessKeyId=$accessKey
+export HOODIE_ENV_fs_DOT_s3_DOT_awsSecretAccessKey=$secretKey
+export HOODIE_ENV_fs_DOT_s3n_DOT_awsAccessKeyId=$accessKey
+export HOODIE_ENV_fs_DOT_s3n_DOT_awsSecretAccessKey=$secretKey
+export HOODIE_ENV_fs_DOT_s3n_DOT_impl=org.apache.hadoop.fs.s3a.S3AFileSystem
+```
+
+
+
+### AWS Libs
+
+AWS hadoop libraries to add to our classpath
+
+ - com.amazonaws:aws-java-sdk:1.10.34
+ - org.apache.hadoop:hadoop-aws:2.7.3
+
+AWS glue data libraries are needed if AWS glue data is used
+
+ - com.amazonaws.glue:aws-glue-datacatalog-hive2-client:1.11.0
+ - com.amazonaws:aws-java-sdk-glue:1.11.475
\ No newline at end of file
diff --git a/docs/_docs/0.5.0/0_1_s3_filesystem.md b/docs/_docs/0.5.0/0_1_s3_filesystem.md
new file mode 100644
index 0000000..27cff58
--- /dev/null
+++ b/docs/_docs/0.5.0/0_1_s3_filesystem.md
@@ -0,0 +1,82 @@
+---
+version: 0.5.0
+title: S3 Filesystem
+keywords: hudi, hive, aws, s3, spark, presto
+permalink: /docs/0.5.0-s3_hoodie.html
+summary: In this page, we go over how to configure Hudi with S3 filesystem.
+last_modified_at: 2019-12-30T15:59:57-04:00
+---
+In this page, we explain how to get your Hudi spark job to store into AWS S3.
+
+## AWS configs
+
+There are two configurations required for Hudi-S3 compatibility:
+
+- Adding AWS Credentials for Hudi
+- Adding required Jars to classpath
+
+### AWS Credentials
+
+Simplest way to use Hudi with S3, is to configure your `SparkSession` or `SparkContext` with S3 credentials. Hudi will automatically pick this up and talk to S3.
+
+Alternatively, add the required configs in your core-site.xml from where Hudi can fetch them. Replace the `fs.defaultFS` with your S3 bucket name and Hudi should be able to read/write from the bucket.
+
+```xml
+  <property>
+      <name>fs.defaultFS</name>
+      <value>s3://ysharma</value>
+  </property>
+
+  <property>
+      <name>fs.s3.impl</name>
+      <value>org.apache.hadoop.fs.s3native.NativeS3FileSystem</value>
+  </property>
+
+  <property>
+      <name>fs.s3.awsAccessKeyId</name>
+      <value>AWS_KEY</value>
+  </property>
+
+  <property>
+       <name>fs.s3.awsSecretAccessKey</name>
+       <value>AWS_SECRET</value>
+  </property>
+
+  <property>
+       <name>fs.s3n.awsAccessKeyId</name>
+       <value>AWS_KEY</value>
+  </property>
+
+  <property>
+       <name>fs.s3n.awsSecretAccessKey</name>
+       <value>AWS_SECRET</value>
+  </property>
+```
+
+
+Utilities such as hudi-cli or deltastreamer tool, can pick up s3 creds via environmental variable prefixed with `HOODIE_ENV_`. For e.g below is a bash snippet to setup
+such variables and then have cli be able to work on datasets stored in s3
+
+```java
+export HOODIE_ENV_fs_DOT_s3a_DOT_access_DOT_key=$accessKey
+export HOODIE_ENV_fs_DOT_s3a_DOT_secret_DOT_key=$secretKey
+export HOODIE_ENV_fs_DOT_s3_DOT_awsAccessKeyId=$accessKey
+export HOODIE_ENV_fs_DOT_s3_DOT_awsSecretAccessKey=$secretKey
+export HOODIE_ENV_fs_DOT_s3n_DOT_awsAccessKeyId=$accessKey
+export HOODIE_ENV_fs_DOT_s3n_DOT_awsSecretAccessKey=$secretKey
+export HOODIE_ENV_fs_DOT_s3n_DOT_impl=org.apache.hadoop.fs.s3a.S3AFileSystem
+```
+
+
+
+### AWS Libs
+
+AWS hadoop libraries to add to our classpath
+
+ - com.amazonaws:aws-java-sdk:1.10.34
+ - org.apache.hadoop:hadoop-aws:2.7.3
+
+AWS glue data libraries are needed if AWS glue data is used
+
+ - com.amazonaws.glue:aws-glue-datacatalog-hive2-client:1.11.0
+ - com.amazonaws:aws-java-sdk-glue:1.11.475
\ No newline at end of file
diff --git a/docs/_docs/0.5.0/0_2_gcs_filesystem.cn.md b/docs/_docs/0.5.0/0_2_gcs_filesystem.cn.md
new file mode 100644
index 0000000..788384d
--- /dev/null
+++ b/docs/_docs/0.5.0/0_2_gcs_filesystem.cn.md
@@ -0,0 +1,63 @@
+---
+version: 0.5.0
+title: GCS Filesystem
+keywords: hudi, hive, google cloud, storage, spark, presto
+permalink: /cn/docs/0.5.0-gcs_hoodie.html
+summary: In this page, we go over how to configure hudi with Google Cloud Storage.
+last_modified_at: 2019-12-30T15:59:57-04:00
+language: cn
+---
+For Hudi storage on GCS, **regional** buckets provide an DFS API with strong consistency.
+
+## GCS Configs
+
+There are two configurations required for Hudi GCS compatibility:
+
+- Adding GCS Credentials for Hudi
+- Adding required jars to classpath
+
+### GCS Credentials
+
+Add the required configs in your core-site.xml from where Hudi can fetch them. Replace the `fs.defaultFS` with your GCS bucket name and Hudi should be able to read/write from the bucket.
+
+```xml
+  <property>
+    <name>fs.defaultFS</name>
+    <value>gs://hudi-bucket</value>
+  </property>
+
+  <property>
+    <name>fs.gs.impl</name>
+    <value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem</value>
+    <description>The FileSystem for gs: (GCS) uris.</description>
+  </property>
+
+  <property>
+    <name>fs.AbstractFileSystem.gs.impl</name>
+    <value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS</value>
+    <description>The AbstractFileSystem for gs: (GCS) uris.</description>
+  </property>
+
+  <property>
+    <name>fs.gs.project.id</name>
+    <value>GCS_PROJECT_ID</value>
+  </property>
+  <property>
+    <name>google.cloud.auth.service.account.enable</name>
+    <value>true</value>
+  </property>
+  <property>
+    <name>google.cloud.auth.service.account.email</name>
+    <value>GCS_SERVICE_ACCOUNT_EMAIL</value>
+  </property>
+  <property>
+    <name>google.cloud.auth.service.account.keyfile</name>
+    <value>GCS_SERVICE_ACCOUNT_KEYFILE</value>
+  </property>
+```
+
+### GCS Libs
+
+GCS hadoop libraries to add to our classpath
+
+- com.google.cloud.bigdataoss:gcs-connector:1.6.0-hadoop2
diff --git a/docs/_docs/0.5.0/0_2_gcs_filesystem.md b/docs/_docs/0.5.0/0_2_gcs_filesystem.md
new file mode 100644
index 0000000..ec370ba
--- /dev/null
+++ b/docs/_docs/0.5.0/0_2_gcs_filesystem.md
@@ -0,0 +1,62 @@
+---
+version: 0.5.0
+title: GCS Filesystem
+keywords: hudi, hive, google cloud, storage, spark, presto
+permalink: /docs/0.5.0-gcs_hoodie.html
+summary: In this page, we go over how to configure hudi with Google Cloud Storage.
+last_modified_at: 2019-12-30T15:59:57-04:00
+---
+For Hudi storage on GCS, **regional** buckets provide an DFS API with strong consistency.
+
+## GCS Configs
+
+There are two configurations required for Hudi GCS compatibility:
+
+- Adding GCS Credentials for Hudi
+- Adding required jars to classpath
+
+### GCS Credentials
+
+Add the required configs in your core-site.xml from where Hudi can fetch them. Replace the `fs.defaultFS` with your GCS bucket name and Hudi should be able to read/write from the bucket.
+
+```xml
+  <property>
+    <name>fs.defaultFS</name>
+    <value>gs://hudi-bucket</value>
+  </property>
+
+  <property>
+    <name>fs.gs.impl</name>
+    <value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem</value>
+    <description>The FileSystem for gs: (GCS) uris.</description>
+  </property>
+
+  <property>
+    <name>fs.AbstractFileSystem.gs.impl</name>
+    <value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS</value>
+    <description>The AbstractFileSystem for gs: (GCS) uris.</description>
+  </property>
+
+  <property>
+    <name>fs.gs.project.id</name>
+    <value>GCS_PROJECT_ID</value>
+  </property>
+  <property>
+    <name>google.cloud.auth.service.account.enable</name>
+    <value>true</value>
+  </property>
+  <property>
+    <name>google.cloud.auth.service.account.email</name>
+    <value>GCS_SERVICE_ACCOUNT_EMAIL</value>
+  </property>
+  <property>
+    <name>google.cloud.auth.service.account.keyfile</name>
+    <value>GCS_SERVICE_ACCOUNT_KEYFILE</value>
+  </property>
+```
+
+### GCS Libs
+
+GCS hadoop libraries to add to our classpath
+
+- com.google.cloud.bigdataoss:gcs-connector:1.6.0-hadoop2
diff --git a/docs/_docs/0.5.0/0_3_migration_guide.cn.md b/docs/_docs/0.5.0/0_3_migration_guide.cn.md
new file mode 100644
index 0000000..8003e99
--- /dev/null
+++ b/docs/_docs/0.5.0/0_3_migration_guide.cn.md
@@ -0,0 +1,74 @@
+---
+version: 0.5.0
+title: Migration Guide
+keywords: hudi, migration, use case
+permalink: /cn/docs/0.5.0-migration_guide.html
+summary: In this page, we will discuss some available tools for migrating your existing dataset into a Hudi dataset
+last_modified_at: 2019-12-30T15:59:57-04:00
+language: cn
+---
+
+Hudi maintains metadata such as commit timeline and indexes to manage a dataset. The commit timelines helps to understand the actions happening on a dataset as well as the current state of a dataset. Indexes are used by Hudi to maintain a record key to file id mapping to efficiently locate a record. At the moment, Hudi supports writing only parquet columnar formats.
+To be able to start using Hudi for your existing dataset, you will need to migrate your existing dataset into a Hudi managed dataset. There are a couple of ways to achieve this.
+
+
+## Approaches
+
+
+### Use Hudi for new partitions alone
+
+Hudi can be used to manage an existing dataset without affecting/altering the historical data already present in the
+dataset. Hudi has been implemented to be compatible with such a mixed dataset with a caveat that either the complete
+Hive partition is Hudi managed or not. Thus the lowest granularity at which Hudi manages a dataset is a Hive
+partition. Start using the datasource API or the WriteClient to write to the dataset and make sure you start writing
+to a new partition or convert your last N partitions into Hudi instead of the entire table. Note, since the historical
+ partitions are not managed by HUDI, none of the primitives provided by HUDI work on the data in those partitions. More concretely, one cannot perform upserts or incremental pull on such older partitions not managed by the HUDI dataset.
+Take this approach if your dataset is an append only type of dataset and you do not expect to perform any updates to existing (or non Hudi managed) partitions.
+
+
+### Convert existing dataset to Hudi
+
+Import your existing dataset into a Hudi managed dataset. Since all the data is Hudi managed, none of the limitations
+ of Approach 1 apply here. Updates spanning any partitions can be applied to this dataset and Hudi will efficiently
+ make the update available to queries. Note that not only do you get to use all Hudi primitives on this dataset,
+ there are other additional advantages of doing this. Hudi automatically manages file sizes of a Hudi managed dataset
+ . You can define the desired file size when converting this dataset and Hudi will ensure it writes out files
+ adhering to the config. It will also ensure that smaller files later get corrected by routing some new inserts into
+ small files rather than writing new small ones thus maintaining the health of your cluster.
+
+There are a few options when choosing this approach.
+
+**Option 1**
+Use the HDFSParquetImporter tool. As the name suggests, this only works if your existing dataset is in parquet file format.
+This tool essentially starts a Spark Job to read the existing parquet dataset and converts it into a HUDI managed dataset by re-writing all the data.
+
+**Option 2**
+For huge datasets, this could be as simple as : 
+```java
+for partition in [list of partitions in source dataset] {
+        val inputDF = spark.read.format("any_input_format").load("partition_path")
+        inputDF.write.format("org.apache.hudi").option()....save("basePath")
+}
+```  
+
+**Option 3**
+Write your own custom logic of how to load an existing dataset into a Hudi managed one. Please read about the RDD API
+ [here](/cn/docs/0.5.0-quick-start-guide.html). Using the HDFSParquetImporter Tool. Once hudi has been built via `mvn clean install -DskipTests`, the shell can be
+fired by via `cd hudi-cli && ./hudi-cli.sh`.
+
+```java
+hudi->hdfsparquetimport
+        --upsert false
+        --srcPath /user/parquet/dataset/basepath
+        --targetPath
+        /user/hoodie/dataset/basepath
+        --tableName hoodie_table
+        --tableType COPY_ON_WRITE
+        --rowKeyField _row_key
+        --partitionPathField partitionStr
+        --parallelism 1500
+        --schemaFilePath /user/table/schema
+        --format parquet
+        --sparkMemory 6g
+        --retry 2
+```
diff --git a/docs/_docs/0.5.0/0_3_migration_guide.md b/docs/_docs/0.5.0/0_3_migration_guide.md
new file mode 100644
index 0000000..8e8daca
--- /dev/null
+++ b/docs/_docs/0.5.0/0_3_migration_guide.md
@@ -0,0 +1,73 @@
+---
+version: 0.5.0
+title: Migration Guide
+keywords: hudi, migration, use case
+permalink: /docs/0.5.0-migration_guide.html
+summary: In this page, we will discuss some available tools for migrating your existing dataset into a Hudi dataset
+last_modified_at: 2019-12-30T15:59:57-04:00
+---
+
+Hudi maintains metadata such as commit timeline and indexes to manage a dataset. The commit timelines helps to understand the actions happening on a dataset as well as the current state of a dataset. Indexes are used by Hudi to maintain a record key to file id mapping to efficiently locate a record. At the moment, Hudi supports writing only parquet columnar formats.
+To be able to start using Hudi for your existing dataset, you will need to migrate your existing dataset into a Hudi managed dataset. There are a couple of ways to achieve this.
+
+
+## Approaches
+
+
+### Use Hudi for new partitions alone
+
+Hudi can be used to manage an existing dataset without affecting/altering the historical data already present in the
+dataset. Hudi has been implemented to be compatible with such a mixed dataset with a caveat that either the complete
+Hive partition is Hudi managed or not. Thus the lowest granularity at which Hudi manages a dataset is a Hive
+partition. Start using the datasource API or the WriteClient to write to the dataset and make sure you start writing
+to a new partition or convert your last N partitions into Hudi instead of the entire table. Note, since the historical
+ partitions are not managed by HUDI, none of the primitives provided by HUDI work on the data in those partitions. More concretely, one cannot perform upserts or incremental pull on such older partitions not managed by the HUDI dataset.
+Take this approach if your dataset is an append only type of dataset and you do not expect to perform any updates to existing (or non Hudi managed) partitions.
+
+
+### Convert existing dataset to Hudi
+
+Import your existing dataset into a Hudi managed dataset. Since all the data is Hudi managed, none of the limitations
+ of Approach 1 apply here. Updates spanning any partitions can be applied to this dataset and Hudi will efficiently
+ make the update available to queries. Note that not only do you get to use all Hudi primitives on this dataset,
+ there are other additional advantages of doing this. Hudi automatically manages file sizes of a Hudi managed dataset
+ . You can define the desired file size when converting this dataset and Hudi will ensure it writes out files
+ adhering to the config. It will also ensure that smaller files later get corrected by routing some new inserts into
+ small files rather than writing new small ones thus maintaining the health of your cluster.
+
+There are a few options when choosing this approach.
+
+**Option 1**
+Use the HDFSParquetImporter tool. As the name suggests, this only works if your existing dataset is in parquet file format.
+This tool essentially starts a Spark Job to read the existing parquet dataset and converts it into a HUDI managed dataset by re-writing all the data.
+
+**Option 2**
+For huge datasets, this could be as simple as : 
+```java
+for partition in [list of partitions in source dataset] {
+        val inputDF = spark.read.format("any_input_format").load("partition_path")
+        inputDF.write.format("org.apache.hudi").option()....save("basePath")
+}
+```  
+
+**Option 3**
+Write your own custom logic of how to load an existing dataset into a Hudi managed one. Please read about the RDD API
+ [here](/docs/0.5.0-quick-start-guide.html). Using the HDFSParquetImporter Tool. Once hudi has been built via `mvn clean install -DskipTests`, the shell can be
+fired by via `cd hudi-cli && ./hudi-cli.sh`.
+
+```java
+hudi->hdfsparquetimport
+        --upsert false
+        --srcPath /user/parquet/dataset/basepath
+        --targetPath
+        /user/hoodie/dataset/basepath
+        --tableName hoodie_table
+        --tableType COPY_ON_WRITE
+        --rowKeyField _row_key
+        --partitionPathField partitionStr
+        --parallelism 1500
+        --schemaFilePath /user/table/schema
+        --format parquet
+        --sparkMemory 6g
+        --retry 2
+```
diff --git a/docs/_docs/0.5.0/0_4_docker_demo.cn.md b/docs/_docs/0.5.0/0_4_docker_demo.cn.md
new file mode 100644
index 0000000..7a84bc2
--- /dev/null
+++ b/docs/_docs/0.5.0/0_4_docker_demo.cn.md
@@ -0,0 +1,1154 @@
+---
+version: 0.5.0
+title: Docker Demo
+keywords: hudi, docker, demo
+permalink: /cn/docs/0.5.0-docker_demo.html
+toc: true
+last_modified_at: 2019-12-30T15:59:57-04:00
+language: cn
+---
+
+## A Demo using docker containers
+
+Lets use a real world example to see how hudi works end to end. For this purpose, a self contained
+data infrastructure is brought up in a local docker cluster within your computer.
+
+The steps have been tested on a Mac laptop
+
+### Prerequisites
+
+  * Docker Setup :  For Mac, Please follow the steps as defined in [https://docs.docker.com/v17.12/docker-for-mac/install/]. For running Spark-SQL queries, please ensure atleast 6 GB and 4 CPUs are allocated to Docker (See Docker -> Preferences -> Advanced). Otherwise, spark-SQL queries could be killed because of memory issues.
+  * kafkacat : A command-line utility to publish/consume from kafka topics. Use `brew install kafkacat` to install kafkacat
+  * /etc/hosts : The demo references many services running in container by the hostname. Add the following settings to /etc/hosts
+
+
+```java
+   127.0.0.1 adhoc-1
+   127.0.0.1 adhoc-2
+   127.0.0.1 namenode
+   127.0.0.1 datanode1
+   127.0.0.1 hiveserver
+   127.0.0.1 hivemetastore
+   127.0.0.1 kafkabroker
+   127.0.0.1 sparkmaster
+   127.0.0.1 zookeeper
+```
+
+Also, this has not been tested on some environments like Docker on Windows.
+
+
+## Setting up Docker Cluster
+
+
+### Build Hudi
+
+The first step is to build hudi
+```java
+cd <HUDI_WORKSPACE>
+mvn package -DskipTests
+```
+
+### Bringing up Demo Cluster
+
+The next step is to run the docker compose script and setup configs for bringing up the cluster.
+This should pull the docker images from docker hub and setup docker cluster.
+
+```java
+cd docker
+./setup_demo.sh
+....
+....
+....
+Stopping spark-worker-1            ... done
+Stopping hiveserver                ... done
+Stopping hivemetastore             ... done
+Stopping historyserver             ... done
+.......
+......
+Creating network "hudi_demo" with the default driver
+Creating hive-metastore-postgresql ... done
+Creating namenode                  ... done
+Creating zookeeper                 ... done
+Creating kafkabroker               ... done
+Creating hivemetastore             ... done
+Creating historyserver             ... done
+Creating hiveserver                ... done
+Creating datanode1                 ... done
+Creating presto-coordinator-1      ... done
+Creating sparkmaster               ... done
+Creating presto-worker-1           ... done
+Creating adhoc-1                   ... done
+Creating adhoc-2                   ... done
+Creating spark-worker-1            ... done
+Copying spark default config and setting up configs
+Copying spark default config and setting up configs
+Copying spark default config and setting up configs
+$ docker ps
+```
+
+At this point, the docker cluster will be up and running. The demo cluster brings up the following services
+
+   * HDFS Services (NameNode, DataNode)
+   * Spark Master and Worker
+   * Hive Services (Metastore, HiveServer2 along with PostgresDB)
+   * Kafka Broker and a Zookeeper Node (Kakfa will be used as upstream source for the demo)
+   * Adhoc containers to run Hudi/Hive CLI commands
+
+## Demo
+
+Stock Tracker data will be used to showcase both different Hudi Views and the effects of Compaction.
+
+Take a look at the directory `docker/demo/data`. There are 2 batches of stock data - each at 1 minute granularity.
+The first batch contains stocker tracker data for some stock symbols during the first hour of trading window
+(9:30 a.m to 10:30 a.m). The second batch contains tracker data for next 30 mins (10:30 - 11 a.m). Hudi will
+be used to ingest these batches to a dataset which will contain the latest stock tracker data at hour level granularity.
+The batches are windowed intentionally so that the second batch contains updates to some of the rows in the first batch.
+
+### Step 1 : Publish the first batch to Kafka
+
+Upload the first batch to Kafka topic 'stock ticks' `cat docker/demo/data/batch_1.json | kafkacat -b kafkabroker -t stock_ticks -P`
+
+To check if the new topic shows up, use
+```java
+kafkacat -b kafkabroker -L -J | jq .
+{
+  "originating_broker": {
+    "id": 1001,
+    "name": "kafkabroker:9092/1001"
+  },
+  "query": {
+    "topic": "*"
+  },
+  "brokers": [
+    {
+      "id": 1001,
+      "name": "kafkabroker:9092"
+    }
+  ],
+  "topics": [
+    {
+      "topic": "stock_ticks",
+      "partitions": [
+        {
+          "partition": 0,
+          "leader": 1001,
+          "replicas": [
+            {
+              "id": 1001
+            }
+          ],
+          "isrs": [
+            {
+              "id": 1001
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
+
+```
+
+### Step 2: Incrementally ingest data from Kafka topic
+
+Hudi comes with a tool named DeltaStreamer. This tool can connect to variety of data sources (including Kafka) to
+pull changes and apply to Hudi dataset using upsert/insert primitives. Here, we will use the tool to download
+json data from kafka topic and ingest to both COW and MOR tables we initialized in the previous step. This tool
+automatically initializes the datasets in the file-system if they do not exist yet.
+
+```java
+docker exec -it adhoc-2 /bin/bash
+
+# Run the following spark-submit command to execute the delta-streamer and ingest to stock_ticks_cow dataset in HDFS
+spark-submit --class org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer $HUDI_UTILITIES_BUNDLE --storage-type COPY_ON_WRITE --source-class org.apache.hudi.utilities.sources.JsonKafkaSource --source-ordering-field ts  --target-base-path /user/hive/warehouse/stock_ticks_cow --target-table stock_ticks_cow --props /var/demo/config/kafka-source.properties --schemaprovider-class org.apache.hudi.utilities.schema.FilebasedSchemaProvider
+
+
+# Run the following spark-submit command to execute the delta-streamer and ingest to stock_ticks_mor dataset in HDFS
+spark-submit --class org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer $HUDI_UTILITIES_BUNDLE --storage-type MERGE_ON_READ --source-class org.apache.hudi.utilities.sources.JsonKafkaSource --source-ordering-field ts  --target-base-path /user/hive/warehouse/stock_ticks_mor --target-table stock_ticks_mor --props /var/demo/config/kafka-source.properties --schemaprovider-class org.apache.hudi.utilities.schema.FilebasedSchemaProvider --disable-compaction
+
+
+# As part of the setup (Look at setup_demo.sh), the configs needed for DeltaStreamer is uploaded to HDFS. The configs
+# contain mostly Kafa connectivity settings, the avro-schema to be used for ingesting along with key and partitioning fields.
+
+exit
+```
+
+You can use HDFS web-browser to look at the datasets
+`http://namenode:50070/explorer.html#/user/hive/warehouse/stock_ticks_cow`.
+
+You can explore the new partition folder created in the dataset along with a "deltacommit"
+file under .hoodie which signals a successful commit.
+
+There will be a similar setup when you browse the MOR dataset
+`http://namenode:50070/explorer.html#/user/hive/warehouse/stock_ticks_mor`
+
+
+### Step 3: Sync with Hive
+
+At this step, the datasets are available in HDFS. We need to sync with Hive to create new Hive tables and add partitions
+inorder to run Hive queries against those datasets.
+
+```java
+docker exec -it adhoc-2 /bin/bash
+
+# THis command takes in HIveServer URL and COW Hudi Dataset location in HDFS and sync the HDFS state to Hive
+/var/hoodie/ws/hudi-hive/run_sync_tool.sh  --jdbc-url jdbc:hive2://hiveserver:10000 --user hive --pass hive --partitioned-by dt --base-path /user/hive/warehouse/stock_ticks_cow --database default --table stock_ticks_cow
+.....
+2018-09-24 22:22:45,568 INFO  [main] hive.HiveSyncTool (HiveSyncTool.java:syncHoodieTable(112)) - Sync complete for stock_ticks_cow
+.....
+
+# Now run hive-sync for the second data-set in HDFS using Merge-On-Read (MOR storage)
+/var/hoodie/ws/hudi-hive/run_sync_tool.sh  --jdbc-url jdbc:hive2://hiveserver:10000 --user hive --pass hive --partitioned-by dt --base-path /user/hive/warehouse/stock_ticks_mor --database default --table stock_ticks_mor
+...
+2018-09-24 22:23:09,171 INFO  [main] hive.HiveSyncTool (HiveSyncTool.java:syncHoodieTable(112)) - Sync complete for stock_ticks_mor
+...
+2018-09-24 22:23:09,559 INFO  [main] hive.HiveSyncTool (HiveSyncTool.java:syncHoodieTable(112)) - Sync complete for stock_ticks_mor_rt
+....
+exit
+```
+After executing the above command, you will notice
+
+1. A hive table named `stock_ticks_cow` created which provides Read-Optimized view for the Copy On Write dataset.
+2. Two new tables `stock_ticks_mor` and `stock_ticks_mor_rt` created for the Merge On Read dataset. The former
+provides the ReadOptimized view for the Hudi dataset and the later provides the realtime-view for the dataset.
+
+
+### Step 4 (a): Run Hive Queries
+
+Run a hive query to find the latest timestamp ingested for stock symbol 'GOOG'. You will notice that both read-optimized
+(for both COW and MOR dataset)and realtime views (for MOR dataset)give the same value "10:29 a.m" as Hudi create a
+parquet file for the first batch of data.
+
+```java
+docker exec -it adhoc-2 /bin/bash
+beeline -u jdbc:hive2://hiveserver:10000 --hiveconf hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat --hiveconf hive.stats.autogather=false
+# List Tables
+0: jdbc:hive2://hiveserver:10000> show tables;
++---------------------+--+
+|      tab_name       |
++---------------------+--+
+| stock_ticks_cow     |
+| stock_ticks_mor     |
+| stock_ticks_mor_rt  |
++---------------------+--+
+2 rows selected (0.801 seconds)
+0: jdbc:hive2://hiveserver:10000>
+
+
+# Look at partitions that were added
+0: jdbc:hive2://hiveserver:10000> show partitions stock_ticks_mor_rt;
++----------------+--+
+|   partition    |
++----------------+--+
+| dt=2018-08-31  |
++----------------+--+
+1 row selected (0.24 seconds)
+
+
+# COPY-ON-WRITE Queries:
+=========================
+
+
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG';
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:29:00  |
++---------+----------------------+--+
+
+Now, run a projection query:
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924221953       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924221953       | GOOG    | 2018-08-31 10:29:00  | 3391    | 1230.1899  | 1230.085  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+
+# Merge-On-Read Queries:
+==========================
+
+Lets run similar queries against M-O-R dataset. Lets look at both
+ReadOptimized and Realtime views supported by M-O-R dataset
+
+# Run against ReadOptimized View. Notice that the latest timestamp is 10:29
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:29:00  |
++---------+----------------------+--+
+1 row selected (6.326 seconds)
+
+
+# Run against Realtime View. Notice that the latest timestamp is again 10:29
+
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_mor_rt group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:29:00  |
++---------+----------------------+--+
+1 row selected (1.606 seconds)
+
+
+# Run projection query against Read Optimized and Realtime tables
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924222155       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924222155       | GOOG    | 2018-08-31 10:29:00  | 3391    | 1230.1899  | 1230.085  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor_rt where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924222155       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924222155       | GOOG    | 2018-08-31 10:29:00  | 3391    | 1230.1899  | 1230.085  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+exit
+exit
+```
+
+### Step 4 (b): Run Spark-SQL Queries
+Hudi support Spark as query processor just like Hive. Here are the same hive queries
+running in spark-sql
+
+```java
+docker exec -it adhoc-1 /bin/bash
+$SPARK_INSTALL/bin/spark-shell --jars $HUDI_SPARK_BUNDLE --master local[2] --driver-class-path $HADOOP_CONF_DIR --conf spark.sql.hive.convertMetastoreParquet=false --deploy-mode client  --driver-memory 1G --executor-memory 3G --num-executors 1  --packages com.databricks:spark-avro_2.11:4.0.0
+...
+
+Welcome to
+      ____              __
+     / __/__  ___ _____/ /__
+    _\ \/ _ \/ _ `/ __/  '_/
+   /___/ .__/\_,_/_/ /_/\_\   version 2.3.1
+      /_/
+
+Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181)
+Type in expressions to have them evaluated.
+Type :help for more information.
+
+scala>
+scala> spark.sql("show tables").show(100, false)
++--------+------------------+-----------+
+|database|tableName         |isTemporary|
++--------+------------------+-----------+
+|default |stock_ticks_cow   |false      |
+|default |stock_ticks_mor   |false      |
+|default |stock_ticks_mor_rt|false      |
++--------+------------------+-----------+
+
+# Copy-On-Write Table
+
+## Run max timestamp query against COW table
+
+scala> spark.sql("select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG'").show(100, false)
+[Stage 0:>                                                          (0 + 1) / 1]SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
+SLF4J: Defaulting to no-operation (NOP) logger implementation
+SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
++------+-------------------+
+|symbol|max(ts)            |
++------+-------------------+
+|GOOG  |2018-08-31 10:29:00|
++------+-------------------+
+
+## Projection Query
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG'").show(100, false)
++-------------------+------+-------------------+------+---------+--------+
+|_hoodie_commit_time|symbol|ts                 |volume|open     |close   |
++-------------------+------+-------------------+------+---------+--------+
+|20180924221953     |GOOG  |2018-08-31 09:59:00|6330  |1230.5   |1230.02 |
+|20180924221953     |GOOG  |2018-08-31 10:29:00|3391  |1230.1899|1230.085|
++-------------------+------+-------------------+------+---------+--------+
+
+# Merge-On-Read Queries:
+==========================
+
+Lets run similar queries against M-O-R dataset. Lets look at both
+ReadOptimized and Realtime views supported by M-O-R dataset
+
+# Run against ReadOptimized View. Notice that the latest timestamp is 10:29
+scala> spark.sql("select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG'").show(100, false)
++------+-------------------+
+|symbol|max(ts)            |
++------+-------------------+
+|GOOG  |2018-08-31 10:29:00|
++------+-------------------+
+
+
+# Run against Realtime View. Notice that the latest timestamp is again 10:29
+
+scala> spark.sql("select symbol, max(ts) from stock_ticks_mor_rt group by symbol HAVING symbol = 'GOOG'").show(100, false)
++------+-------------------+
+|symbol|max(ts)            |
++------+-------------------+
+|GOOG  |2018-08-31 10:29:00|
++------+-------------------+
+
+# Run projection query against Read Optimized and Realtime tables
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG'").show(100, false)
++-------------------+------+-------------------+------+---------+--------+
+|_hoodie_commit_time|symbol|ts                 |volume|open     |close   |
++-------------------+------+-------------------+------+---------+--------+
+|20180924222155     |GOOG  |2018-08-31 09:59:00|6330  |1230.5   |1230.02 |
+|20180924222155     |GOOG  |2018-08-31 10:29:00|3391  |1230.1899|1230.085|
++-------------------+------+-------------------+------+---------+--------+
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor_rt where  symbol = 'GOOG'").show(100, false)
++-------------------+------+-------------------+------+---------+--------+
+|_hoodie_commit_time|symbol|ts                 |volume|open     |close   |
++-------------------+------+-------------------+------+---------+--------+
+|20180924222155     |GOOG  |2018-08-31 09:59:00|6330  |1230.5   |1230.02 |
+|20180924222155     |GOOG  |2018-08-31 10:29:00|3391  |1230.1899|1230.085|
++-------------------+------+-------------------+------+---------+--------+
+
+```
+
+### Step 4 (c): Run Presto Queries
+
+Here are the Presto queries for similar Hive and Spark queries. Currently, Hudi does not support Presto queries on realtime views.
+
+```java
+docker exec -it presto-worker-1 presto --server presto-coordinator-1:8090
+presto> show catalogs;
+  Catalog
+-----------
+ hive
+ jmx
+ localfile
+ system
+(4 rows)
+
+Query 20190817_134851_00000_j8rcz, FINISHED, 1 node
+Splits: 19 total, 19 done (100.00%)
+0:04 [0 rows, 0B] [0 rows/s, 0B/s]
+
+presto> use hive.default;
+USE
+presto:default> show tables;
+       Table
+--------------------
+ stock_ticks_cow
+ stock_ticks_mor
+ stock_ticks_mor_rt
+(3 rows)
+
+Query 20190822_181000_00001_segyw, FINISHED, 2 nodes
+Splits: 19 total, 19 done (100.00%)
+0:05 [3 rows, 99B] [0 rows/s, 18B/s]
+
+
+# COPY-ON-WRITE Queries:
+=========================
+
+
+presto:default> select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG';
+ symbol |        _col1
+--------+---------------------
+ GOOG   | 2018-08-31 10:29:00
+(1 row)
+
+Query 20190822_181011_00002_segyw, FINISHED, 1 node
+Splits: 49 total, 49 done (100.00%)
+0:12 [197 rows, 613B] [16 rows/s, 50B/s]
+
+presto:default> select "_hoodie_commit_time", symbol, ts, volume, open, close from stock_ticks_cow where symbol = 'GOOG';
+ _hoodie_commit_time | symbol |         ts          | volume |   open    |  close
+---------------------+--------+---------------------+--------+-----------+----------
+ 20190822180221      | GOOG   | 2018-08-31 09:59:00 |   6330 |    1230.5 |  1230.02
+ 20190822180221      | GOOG   | 2018-08-31 10:29:00 |   3391 | 1230.1899 | 1230.085
+(2 rows)
+
+Query 20190822_181141_00003_segyw, FINISHED, 1 node
+Splits: 17 total, 17 done (100.00%)
+0:02 [197 rows, 613B] [109 rows/s, 341B/s]
+
+
+# Merge-On-Read Queries:
+==========================
+
+Lets run similar queries against M-O-R dataset. 
+
+# Run against ReadOptimized View. Notice that the latest timestamp is 10:29
+presto:default> select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG';
+ symbol |        _col1
+--------+---------------------
+ GOOG   | 2018-08-31 10:29:00
+(1 row)
+
+Query 20190822_181158_00004_segyw, FINISHED, 1 node
+Splits: 49 total, 49 done (100.00%)
+0:02 [197 rows, 613B] [110 rows/s, 343B/s]
+
+
+presto:default>  select "_hoodie_commit_time", symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG';
+ _hoodie_commit_time | symbol |         ts          | volume |   open    |  close
+---------------------+--------+---------------------+--------+-----------+----------
+ 20190822180250      | GOOG   | 2018-08-31 09:59:00 |   6330 |    1230.5 |  1230.02
+ 20190822180250      | GOOG   | 2018-08-31 10:29:00 |   3391 | 1230.1899 | 1230.085
+(2 rows)
+
+Query 20190822_181256_00006_segyw, FINISHED, 1 node
+Splits: 17 total, 17 done (100.00%)
+0:02 [197 rows, 613B] [92 rows/s, 286B/s]
+
+presto:default> exit
+```
+
+### Step 5: Upload second batch to Kafka and run DeltaStreamer to ingest
+
+Upload the second batch of data and ingest this batch using delta-streamer. As this batch does not bring in any new
+partitions, there is no need to run hive-sync
+
+```java
+cat docker/demo/data/batch_2.json | kafkacat -b kafkabroker -t stock_ticks -P
+
+# Within Docker container, run the ingestion command
+docker exec -it adhoc-2 /bin/bash
+
+# Run the following spark-submit command to execute the delta-streamer and ingest to stock_ticks_cow dataset in HDFS
+spark-submit --class org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer $HUDI_UTILITIES_BUNDLE --storage-type COPY_ON_WRITE --source-class org.apache.hudi.utilities.sources.JsonKafkaSource --source-ordering-field ts  --target-base-path /user/hive/warehouse/stock_ticks_cow --target-table stock_ticks_cow --props /var/demo/config/kafka-source.properties --schemaprovider-class org.apache.hudi.utilities.schema.FilebasedSchemaProvider
+
+
+# Run the following spark-submit command to execute the delta-streamer and ingest to stock_ticks_mor dataset in HDFS
+spark-submit --class org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer $HUDI_UTILITIES_BUNDLE --storage-type MERGE_ON_READ --source-class org.apache.hudi.utilities.sources.JsonKafkaSource --source-ordering-field ts  --target-base-path /user/hive/warehouse/stock_ticks_mor --target-table stock_ticks_mor --props /var/demo/config/kafka-source.properties --schemaprovider-class org.apache.hudi.utilities.schema.FilebasedSchemaProvider --disable-compaction
+
+exit
+```
+
+With Copy-On-Write table, the second ingestion by DeltaStreamer resulted in a new version of Parquet file getting created.
+See `http://namenode:50070/explorer.html#/user/hive/warehouse/stock_ticks_cow/2018/08/31`
+
+With Merge-On-Read table, the second ingestion merely appended the batch to an unmerged delta (log) file.
+Take a look at the HDFS filesystem to get an idea: `http://namenode:50070/explorer.html#/user/hive/warehouse/stock_ticks_mor/2018/08/31`
+
+### Step 6(a): Run Hive Queries
+
+With Copy-On-Write table, the read-optimized view immediately sees the changes as part of second batch once the batch
+got committed as each ingestion creates newer versions of parquet files.
+
+With Merge-On-Read table, the second ingestion merely appended the batch to an unmerged delta (log) file.
+This is the time, when ReadOptimized and Realtime views will provide different results. ReadOptimized view will still
+return "10:29 am" as it will only read from the Parquet file. Realtime View will do on-the-fly merge and return
+latest committed data which is "10:59 a.m".
+
+```java
+docker exec -it adhoc-2 /bin/bash
+beeline -u jdbc:hive2://hiveserver:10000 --hiveconf hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat --hiveconf hive.stats.autogather=false
+
+# Copy On Write Table:
+
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+1 row selected (1.932 seconds)
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924221953       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924224524       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+As you can notice, the above queries now reflect the changes that came as part of ingesting second batch.
+
+
+# Merge On Read Table:
+
+# Read Optimized View
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:29:00  |
++---------+----------------------+--+
+1 row selected (1.6 seconds)
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924222155       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924222155       | GOOG    | 2018-08-31 10:29:00  | 3391    | 1230.1899  | 1230.085  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+# Realtime View
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_mor_rt group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor_rt where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924222155       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924224537       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+exit
+exit
+```
+
+### Step 6(b): Run Spark SQL Queries
+
+Running the same queries in Spark-SQL:
+
+```java
+docker exec -it adhoc-1 /bin/bash
+bash-4.4# $SPARK_INSTALL/bin/spark-shell --jars $HUDI_SPARK_BUNDLE --driver-class-path $HADOOP_CONF_DIR --conf spark.sql.hive.convertMetastoreParquet=false --deploy-mode client  --driver-memory 1G --master local[2] --executor-memory 3G --num-executors 1  --packages com.databricks:spark-avro_2.11:4.0.0
+
+# Copy On Write Table:
+
+scala> spark.sql("select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG'").show(100, false)
++------+-------------------+
+|symbol|max(ts)            |
++------+-------------------+
+|GOOG  |2018-08-31 10:59:00|
++------+-------------------+
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG'").show(100, false)
+
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924221953       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924224524       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+As you can notice, the above queries now reflect the changes that came as part of ingesting second batch.
+
+
+# Merge On Read Table:
+
+# Read Optimized View
+scala> spark.sql("select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG'").show(100, false)
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:29:00  |
++---------+----------------------+--+
+1 row selected (1.6 seconds)
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG'").show(100, false)
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924222155       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924222155       | GOOG    | 2018-08-31 10:29:00  | 3391    | 1230.1899  | 1230.085  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+# Realtime View
+scala> spark.sql("select symbol, max(ts) from stock_ticks_mor_rt group by symbol HAVING symbol = 'GOOG'").show(100, false)
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor_rt where  symbol = 'GOOG'").show(100, false)
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924222155       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924224537       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+exit
+exit
+```
+
+### Step 6(c): Run Presto Queries
+
+Running the same queries on Presto for ReadOptimized views. 
+
+
+```java
+docker exec -it presto-worker-1 presto --server presto-coordinator-1:8090
+presto> use hive.default;
+USE
+
+# Copy On Write Table:
+
+presto:default>select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG';
+ symbol |        _col1
+--------+---------------------
+ GOOG   | 2018-08-31 10:59:00
+(1 row)
+
+Query 20190822_181530_00007_segyw, FINISHED, 1 node
+Splits: 49 total, 49 done (100.00%)
+0:02 [197 rows, 613B] [125 rows/s, 389B/s]
+
+presto:default>select "_hoodie_commit_time", symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG';
+ _hoodie_commit_time | symbol |         ts          | volume |   open    |  close
+---------------------+--------+---------------------+--------+-----------+----------
+ 20190822180221      | GOOG   | 2018-08-31 09:59:00 |   6330 |    1230.5 |  1230.02
+ 20190822181433      | GOOG   | 2018-08-31 10:59:00 |   9021 | 1227.1993 | 1227.215
+(2 rows)
+
+Query 20190822_181545_00008_segyw, FINISHED, 1 node
+Splits: 17 total, 17 done (100.00%)
+0:02 [197 rows, 613B] [106 rows/s, 332B/s]
+
+As you can notice, the above queries now reflect the changes that came as part of ingesting second batch.
+
+
+# Merge On Read Table:
+
+# Read Optimized View
+presto:default> select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG';
+ symbol |        _col1
+--------+---------------------
+ GOOG   | 2018-08-31 10:29:00
+(1 row)
+
+Query 20190822_181602_00009_segyw, FINISHED, 1 node
+Splits: 49 total, 49 done (100.00%)
+0:01 [197 rows, 613B] [139 rows/s, 435B/s]
+
+presto:default>select "_hoodie_commit_time", symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG';
+ _hoodie_commit_time | symbol |         ts          | volume |   open    |  close
+---------------------+--------+---------------------+--------+-----------+----------
+ 20190822180250      | GOOG   | 2018-08-31 09:59:00 |   6330 |    1230.5 |  1230.02
+ 20190822180250      | GOOG   | 2018-08-31 10:29:00 |   3391 | 1230.1899 | 1230.085
+(2 rows)
+
+Query 20190822_181615_00010_segyw, FINISHED, 1 node
+Splits: 17 total, 17 done (100.00%)
+0:01 [197 rows, 613B] [154 rows/s, 480B/s]
+
+presto:default> exit
+```
+
+
+### Step 7 : Incremental Query for COPY-ON-WRITE Table
+
+With 2 batches of data ingested, lets showcase the support for incremental queries in Hudi Copy-On-Write datasets
+
+Lets take the same projection query example
+
+```java
+docker exec -it adhoc-2 /bin/bash
+beeline -u jdbc:hive2://hiveserver:10000 --hiveconf hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat --hiveconf hive.stats.autogather=false
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924064621       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924065039       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+```
+
+As you notice from the above queries, there are 2 commits - 20180924064621 and 20180924065039 in timeline order.
+When you follow the steps, you will be getting different timestamps for commits. Substitute them
+in place of the above timestamps.
+
+To show the effects of incremental-query, let us assume that a reader has already seen the changes as part of
+ingesting first batch. Now, for the reader to see effect of the second batch, he/she has to keep the start timestamp to
+the commit time of the first batch (20180924064621) and run incremental query
+
+Hudi incremental mode provides efficient scanning for incremental queries by filtering out files that do not have any
+candidate rows using hudi-managed metadata.
+
+```java
+docker exec -it adhoc-2 /bin/bash
+beeline -u jdbc:hive2://hiveserver:10000 --hiveconf hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat --hiveconf hive.stats.autogather=false
+0: jdbc:hive2://hiveserver:10000> set hoodie.stock_ticks_cow.consume.mode=INCREMENTAL;
+No rows affected (0.009 seconds)
+0: jdbc:hive2://hiveserver:10000>  set hoodie.stock_ticks_cow.consume.max.commits=3;
+No rows affected (0.009 seconds)
+0: jdbc:hive2://hiveserver:10000> set hoodie.stock_ticks_cow.consume.start.timestamp=20180924064621;
+```
+
+With the above setting, file-ids that do not have any updates from the commit 20180924065039 is filtered out without scanning.
+Here is the incremental query :
+
+```java
+0: jdbc:hive2://hiveserver:10000>
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG' and `_hoodie_commit_time` > '20180924064621';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924065039       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+1 row selected (0.83 seconds)
+0: jdbc:hive2://hiveserver:10000>
+```
+
+### Incremental Query with Spark SQL:
+```java
+docker exec -it adhoc-1 /bin/bash
+bash-4.4# $SPARK_INSTALL/bin/spark-shell --jars $HUDI_SPARK_BUNDLE --driver-class-path $HADOOP_CONF_DIR --conf spark.sql.hive.convertMetastoreParquet=false --deploy-mode client  --driver-memory 1G --master local[2] --executor-memory 3G --num-executors 1  --packages com.databricks:spark-avro_2.11:4.0.0
+Welcome to
+      ____              __
+     / __/__  ___ _____/ /__
+    _\ \/ _ \/ _ `/ __/  '_/
+   /___/ .__/\_,_/_/ /_/\_\   version 2.3.1
+      /_/
+
+Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181)
+Type in expressions to have them evaluated.
+Type :help for more information.
+
+scala> import org.apache.hudi.DataSourceReadOptions
+import org.apache.hudi.DataSourceReadOptions
+
+# In the below query, 20180925045257 is the first commit's timestamp
+scala> val hoodieIncViewDF =  spark.read.format("org.apache.hudi").option(DataSourceReadOptions.VIEW_TYPE_OPT_KEY, DataSourceReadOptions.VIEW_TYPE_INCREMENTAL_OPT_VAL).option(DataSourceReadOptions.BEGIN_INSTANTTIME_OPT_KEY, "20180924064621").load("/user/hive/warehouse/stock_ticks_cow")
+SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
+SLF4J: Defaulting to no-operation (NOP) logger implementation
+SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
+hoodieIncViewDF: org.apache.spark.sql.DataFrame = [_hoodie_commit_time: string, _hoodie_commit_seqno: string ... 15 more fields]
+
+scala> hoodieIncViewDF.registerTempTable("stock_ticks_cow_incr_tmp1")
+warning: there was one deprecation warning; re-run with -deprecation for details
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow_incr_tmp1 where  symbol = 'GOOG'").show(100, false);
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924065039       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+```
+
+
+### Step 8: Schedule and Run Compaction for Merge-On-Read dataset
+
+Lets schedule and run a compaction to create a new version of columnar  file so that read-optimized readers will see fresher data.
+Again, You can use Hudi CLI to manually schedule and run compaction
+
+```java
+docker exec -it adhoc-1 /bin/bash
+root@adhoc-1:/opt#   /var/hoodie/ws/hudi-cli/hudi-cli.sh
+============================================
+*                                          *
+*     _    _           _   _               *
+*    | |  | |         | | (_)              *
+*    | |__| |       __| |  -               *
+*    |  __  ||   | / _` | ||               *
+*    | |  | ||   || (_| | ||               *
+*    |_|  |_|\___/ \____/ ||               *
+*                                          *
+============================================
+
+Welcome to Hoodie CLI. Please type help if you are looking for help.
+hudi->connect --path /user/hive/warehouse/stock_ticks_mor
+18/09/24 06:59:34 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
+18/09/24 06:59:35 INFO table.HoodieTableMetaClient: Loading HoodieTableMetaClient from /user/hive/warehouse/stock_ticks_mor
+18/09/24 06:59:35 INFO util.FSUtils: Hadoop Configuration: fs.defaultFS: [hdfs://namenode:8020], Config:[Configuration: core-default.xml, core-site.xml, mapred-default.xml, mapred-site.xml, yarn-default.xml, yarn-site.xml, hdfs-default.xml, hdfs-site.xml], FileSystem: [DFS[DFSClient[clientName=DFSClient_NONMAPREDUCE_-1261652683_11, ugi=root (auth:SIMPLE)]]]
+18/09/24 06:59:35 INFO table.HoodieTableConfig: Loading dataset properties from /user/hive/warehouse/stock_ticks_mor/.hoodie/hoodie.properties
+18/09/24 06:59:36 INFO table.HoodieTableMetaClient: Finished Loading Table of type MERGE_ON_READ from /user/hive/warehouse/stock_ticks_mor
+Metadata for table stock_ticks_mor loaded
+
+# Ensure no compactions are present
+
+hoodie:stock_ticks_mor->compactions show all
+18/09/24 06:59:54 INFO timeline.HoodieActiveTimeline: Loaded instants [[20180924064636__clean__COMPLETED], [20180924064636__deltacommit__COMPLETED], [20180924065057__clean__COMPLETED], [20180924065057__deltacommit__COMPLETED]]
+    ___________________________________________________________________
+    | Compaction Instant Time| State    | Total FileIds to be Compacted|
+    |==================================================================|
+
+
+
+
+# Schedule a compaction. This will use Spark Launcher to schedule compaction
+hoodie:stock_ticks_mor->compaction schedule
+....
+Compaction successfully completed for 20180924070031
+
+# Now refresh and check again. You will see that there is a new compaction requested
+
+hoodie:stock_ticks->connect --path /user/hive/warehouse/stock_ticks_mor
+18/09/24 07:01:16 INFO table.HoodieTableMetaClient: Loading HoodieTableMetaClient from /user/hive/warehouse/stock_ticks_mor
+18/09/24 07:01:16 INFO util.FSUtils: Hadoop Configuration: fs.defaultFS: [hdfs://namenode:8020], Config:[Configuration: core-default.xml, core-site.xml, mapred-default.xml, mapred-site.xml, yarn-default.xml, yarn-site.xml, hdfs-default.xml, hdfs-site.xml], FileSystem: [DFS[DFSClient[clientName=DFSClient_NONMAPREDUCE_-1261652683_11, ugi=root (auth:SIMPLE)]]]
+18/09/24 07:01:16 INFO table.HoodieTableConfig: Loading dataset properties from /user/hive/warehouse/stock_ticks_mor/.hoodie/hoodie.properties
+18/09/24 07:01:16 INFO table.HoodieTableMetaClient: Finished Loading Table of type MERGE_ON_READ from /user/hive/warehouse/stock_ticks_mor
+Metadata for table stock_ticks_mor loaded
+
+
+
+hoodie:stock_ticks_mor->compactions show all
+18/09/24 06:34:12 INFO timeline.HoodieActiveTimeline: Loaded instants [[20180924041125__clean__COMPLETED], [20180924041125__deltacommit__COMPLETED], [20180924042735__clean__COMPLETED], [20180924042735__deltacommit__COMPLETED], [==>20180924063245__compaction__REQUESTED]]
+    ___________________________________________________________________
+    | Compaction Instant Time| State    | Total FileIds to be Compacted|
+    |==================================================================|
+    | 20180924070031         | REQUESTED| 1                            |
+
+
+
+
+# Execute the compaction. The compaction instant value passed below must be the one displayed in the above "compactions show all" query
+hoodie:stock_ticks_mor->compaction run --compactionInstant  20180924070031 --parallelism 2 --sparkMemory 1G  --schemaFilePath /var/demo/config/schema.avsc --retry 1  
+....
+Compaction successfully completed for 20180924070031
+
+
+## Now check if compaction is completed
+
+hoodie:stock_ticks_mor->connect --path /user/hive/warehouse/stock_ticks_mor
+18/09/24 07:03:00 INFO table.HoodieTableMetaClient: Loading HoodieTableMetaClient from /user/hive/warehouse/stock_ticks_mor
+18/09/24 07:03:00 INFO util.FSUtils: Hadoop Configuration: fs.defaultFS: [hdfs://namenode:8020], Config:[Configuration: core-default.xml, core-site.xml, mapred-default.xml, mapred-site.xml, yarn-default.xml, yarn-site.xml, hdfs-default.xml, hdfs-site.xml], FileSystem: [DFS[DFSClient[clientName=DFSClient_NONMAPREDUCE_-1261652683_11, ugi=root (auth:SIMPLE)]]]
+18/09/24 07:03:00 INFO table.HoodieTableConfig: Loading dataset properties from /user/hive/warehouse/stock_ticks_mor/.hoodie/hoodie.properties
+18/09/24 07:03:00 INFO table.HoodieTableMetaClient: Finished Loading Table of type MERGE_ON_READ from /user/hive/warehouse/stock_ticks_mor
+Metadata for table stock_ticks_mor loaded
+
+
+
+hoodie:stock_ticks->compactions show all
+18/09/24 07:03:15 INFO timeline.HoodieActiveTimeline: Loaded instants [[20180924064636__clean__COMPLETED], [20180924064636__deltacommit__COMPLETED], [20180924065057__clean__COMPLETED], [20180924065057__deltacommit__COMPLETED], [20180924070031__commit__COMPLETED]]
+    ___________________________________________________________________
+    | Compaction Instant Time| State    | Total FileIds to be Compacted|
+    |==================================================================|
+    | 20180924070031         | COMPLETED| 1                            |
+
+```
+
+### Step 9: Run Hive Queries including incremental queries
+
+You will see that both ReadOptimized and Realtime Views will show the latest committed data.
+Lets also run the incremental query for MOR table.
+From looking at the below query output, it will be clear that the fist commit time for the MOR table is 20180924064636
+and the second commit time is 20180924070031
+
+```java
+docker exec -it adhoc-2 /bin/bash
+beeline -u jdbc:hive2://hiveserver:10000 --hiveconf hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat --hiveconf hive.stats.autogather=false
+
+# Read Optimized View
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+1 row selected (1.6 seconds)
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924064636       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924070031       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+# Realtime View
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_mor_rt group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor_rt where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924064636       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924070031       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+# Incremental View:
+
+0: jdbc:hive2://hiveserver:10000> set hoodie.stock_ticks_mor.consume.mode=INCREMENTAL;
+No rows affected (0.008 seconds)
+# Max-Commits covers both second batch and compaction commit
+0: jdbc:hive2://hiveserver:10000> set hoodie.stock_ticks_mor.consume.max.commits=3;
+No rows affected (0.007 seconds)
+0: jdbc:hive2://hiveserver:10000> set hoodie.stock_ticks_mor.consume.start.timestamp=20180924064636;
+No rows affected (0.013 seconds)
+# Query:
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG' and `_hoodie_commit_time` > '20180924064636';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924070031       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+exit
+exit
+```
+
+### Step 10: Read Optimized and Realtime Views for MOR with Spark-SQL after compaction
+
+```java
+docker exec -it adhoc-1 /bin/bash
+bash-4.4# $SPARK_INSTALL/bin/spark-shell --jars $HUDI_SPARK_BUNDLE --driver-class-path $HADOOP_CONF_DIR --conf spark.sql.hive.convertMetastoreParquet=false --deploy-mode client  --driver-memory 1G --master local[2] --executor-memory 3G --num-executors 1  --packages com.databricks:spark-avro_2.11:4.0.0
+
+# Read Optimized View
+scala> spark.sql("select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG'").show(100, false)
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+1 row selected (1.6 seconds)
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG'").show(100, false)
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924064636       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924070031       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+# Realtime View
+scala> spark.sql("select symbol, max(ts) from stock_ticks_mor_rt group by symbol HAVING symbol = 'GOOG'").show(100, false)
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor_rt where  symbol = 'GOOG'").show(100, false)
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924064636       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924070031       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+```
+
+### Step 11:  Presto queries over Read Optimized View on MOR dataset after compaction
+
+```java
+docker exec -it presto-worker-1 presto --server presto-coordinator-1:8090
+presto> use hive.default;
+USE
+
+# Read Optimized View
+resto:default> select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG';
+  symbol |        _col1
+--------+---------------------
+ GOOG   | 2018-08-31 10:59:00
+(1 row)
+
+Query 20190822_182319_00011_segyw, FINISHED, 1 node
+Splits: 49 total, 49 done (100.00%)
+0:01 [197 rows, 613B] [133 rows/s, 414B/s]
+
+presto:default> select "_hoodie_commit_time", symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG';
+ _hoodie_commit_time | symbol |         ts          | volume |   open    |  close
+---------------------+--------+---------------------+--------+-----------+----------
+ 20190822180250      | GOOG   | 2018-08-31 09:59:00 |   6330 |    1230.5 |  1230.02
+ 20190822181944      | GOOG   | 2018-08-31 10:59:00 |   9021 | 1227.1993 | 1227.215
+(2 rows)
+
+Query 20190822_182333_00012_segyw, FINISHED, 1 node
+Splits: 17 total, 17 done (100.00%)
+0:02 [197 rows, 613B] [98 rows/s, 307B/s]
+
+presto:default>
+
+```
+
+
+This brings the demo to an end.
+
+## Testing Hudi in Local Docker environment
+
+You can bring up a hadoop docker environment containing Hadoop, Hive and Spark services with support for hudi.
+```java
+$ mvn pre-integration-test -DskipTests
+```
+The above command builds docker images for all the services with
+current Hudi source installed at /var/hoodie/ws and also brings up the services using a compose file. We
+currently use Hadoop (v2.8.4), Hive (v2.3.3) and Spark (v2.3.1) in docker images.
+
+To bring down the containers
+```java
+$ cd hudi-integ-test
+$ mvn docker-compose:down
+```
+
+If you want to bring up the docker containers, use
+```java
+$ cd hudi-integ-test
+$  mvn docker-compose:up -DdetachedMode=true
+```
+
+Hudi is a library that is operated in a broader data analytics/ingestion environment
+involving Hadoop, Hive and Spark. Interoperability with all these systems is a key objective for us. We are
+actively adding integration-tests under __hudi-integ-test/src/test/java__ that makes use of this
+docker environment (See __hudi-integ-test/src/test/java/org/apache/hudi/integ/ITTestHoodieSanity.java__ )
+
+
+### Building Local Docker Containers:
+
+The docker images required for demo and running integration test are already in docker-hub. The docker images
+and compose scripts are carefully implemented so that they serve dual-purpose
+
+1. The docker images have inbuilt hudi jar files with environment variable pointing to those jars (HUDI_HADOOP_BUNDLE, ...)
+2. For running integration-tests, we need the jars generated locally to be used for running services within docker. The
+   docker-compose scripts (see `docker/compose/docker-compose_hadoop284_hive233_spark231.yml`) ensures local jars override
+   inbuilt jars by mounting local HUDI workspace over the docker location
+
+This helps avoid maintaining separate docker images and avoids the costly step of building HUDI docker images locally.
+But if users want to test hudi from locations with lower network bandwidth, they can still build local images
+run the script
+`docker/build_local_docker_images.sh` to build local docker images before running `docker/setup_demo.sh`
+
+Here are the commands:
+
+```java
+cd docker
+./build_local_docker_images.sh
+.....
+
+[INFO] Reactor Summary:
+[INFO]
+[INFO] hoodie ............................................. SUCCESS [  1.709 s]
+[INFO] hudi-common ...................................... SUCCESS [  9.015 s]
+[INFO] hudi-hadoop-mr ................................... SUCCESS [  1.108 s]
+[INFO] hudi-client ...................................... SUCCESS [  4.409 s]
+[INFO] hudi-hive ........................................ SUCCESS [  0.976 s]
+[INFO] hudi-spark ....................................... SUCCESS [ 26.522 s]
+[INFO] hudi-utilities ................................... SUCCESS [ 16.256 s]
+[INFO] hudi-cli ......................................... SUCCESS [ 11.341 s]
+[INFO] hudi-hadoop-mr-bundle ............................ SUCCESS [  1.893 s]
+[INFO] hudi-hive-bundle ................................. SUCCESS [ 14.099 s]
+[INFO] hudi-spark-bundle ................................ SUCCESS [ 58.252 s]
+[INFO] hudi-hadoop-docker ............................... SUCCESS [  0.612 s]
+[INFO] hudi-hadoop-base-docker .......................... SUCCESS [04:04 min]
+[INFO] hudi-hadoop-namenode-docker ...................... SUCCESS [  6.142 s]
+[INFO] hudi-hadoop-datanode-docker ...................... SUCCESS [  7.763 s]
+[INFO] hudi-hadoop-history-docker ....................... SUCCESS [  5.922 s]
+[INFO] hudi-hadoop-hive-docker .......................... SUCCESS [ 56.152 s]
+[INFO] hudi-hadoop-sparkbase-docker ..................... SUCCESS [01:18 min]
+[INFO] hudi-hadoop-sparkmaster-docker ................... SUCCESS [  2.964 s]
+[INFO] hudi-hadoop-sparkworker-docker ................... SUCCESS [  3.032 s]
+[INFO] hudi-hadoop-sparkadhoc-docker .................... SUCCESS [  2.764 s]
+[INFO] hudi-integ-test .................................. SUCCESS [  1.785 s]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 09:15 min
+[INFO] Finished at: 2018-09-10T17:47:37-07:00
+[INFO] Final Memory: 236M/1848M
+[INFO] ------------------------------------------------------------------------
+```
diff --git a/docs/_docs/0.5.0/0_4_docker_demo.md b/docs/_docs/0.5.0/0_4_docker_demo.md
new file mode 100644
index 0000000..0479a11
--- /dev/null
+++ b/docs/_docs/0.5.0/0_4_docker_demo.md
@@ -0,0 +1,1153 @@
+---
+version: 0.5.0
+title: Docker Demo
+keywords: hudi, docker, demo
+permalink: /docs/0.5.0-docker_demo.html
+toc: true
+last_modified_at: 2019-12-30T15:59:57-04:00
+---
+
+## A Demo using docker containers
+
+Lets use a real world example to see how hudi works end to end. For this purpose, a self contained
+data infrastructure is brought up in a local docker cluster within your computer.
+
+The steps have been tested on a Mac laptop
+
+### Prerequisites
+
+  * Docker Setup :  For Mac, Please follow the steps as defined in [https://docs.docker.com/v17.12/docker-for-mac/install/]. For running Spark-SQL queries, please ensure atleast 6 GB and 4 CPUs are allocated to Docker (See Docker -> Preferences -> Advanced). Otherwise, spark-SQL queries could be killed because of memory issues.
+  * kafkacat : A command-line utility to publish/consume from kafka topics. Use `brew install kafkacat` to install kafkacat
+  * /etc/hosts : The demo references many services running in container by the hostname. Add the following settings to /etc/hosts
+
+
+```java
+   127.0.0.1 adhoc-1
+   127.0.0.1 adhoc-2
+   127.0.0.1 namenode
+   127.0.0.1 datanode1
+   127.0.0.1 hiveserver
+   127.0.0.1 hivemetastore
+   127.0.0.1 kafkabroker
+   127.0.0.1 sparkmaster
+   127.0.0.1 zookeeper
+```
+
+Also, this has not been tested on some environments like Docker on Windows.
+
+
+## Setting up Docker Cluster
+
+
+### Build Hudi
+
+The first step is to build hudi
+```java
+cd <HUDI_WORKSPACE>
+mvn package -DskipTests
+```
+
+### Bringing up Demo Cluster
+
+The next step is to run the docker compose script and setup configs for bringing up the cluster.
+This should pull the docker images from docker hub and setup docker cluster.
+
+```java
+cd docker
+./setup_demo.sh
+....
+....
+....
+Stopping spark-worker-1            ... done
+Stopping hiveserver                ... done
+Stopping hivemetastore             ... done
+Stopping historyserver             ... done
+.......
+......
+Creating network "hudi_demo" with the default driver
+Creating hive-metastore-postgresql ... done
+Creating namenode                  ... done
+Creating zookeeper                 ... done
+Creating kafkabroker               ... done
+Creating hivemetastore             ... done
+Creating historyserver             ... done
+Creating hiveserver                ... done
+Creating datanode1                 ... done
+Creating presto-coordinator-1      ... done
+Creating sparkmaster               ... done
+Creating presto-worker-1           ... done
+Creating adhoc-1                   ... done
+Creating adhoc-2                   ... done
+Creating spark-worker-1            ... done
+Copying spark default config and setting up configs
+Copying spark default config and setting up configs
+Copying spark default config and setting up configs
+$ docker ps
+```
+
+At this point, the docker cluster will be up and running. The demo cluster brings up the following services
+
+   * HDFS Services (NameNode, DataNode)
+   * Spark Master and Worker
+   * Hive Services (Metastore, HiveServer2 along with PostgresDB)
+   * Kafka Broker and a Zookeeper Node (Kakfa will be used as upstream source for the demo)
+   * Adhoc containers to run Hudi/Hive CLI commands
+
+## Demo
+
+Stock Tracker data will be used to showcase both different Hudi Views and the effects of Compaction.
+
+Take a look at the directory `docker/demo/data`. There are 2 batches of stock data - each at 1 minute granularity.
+The first batch contains stocker tracker data for some stock symbols during the first hour of trading window
+(9:30 a.m to 10:30 a.m). The second batch contains tracker data for next 30 mins (10:30 - 11 a.m). Hudi will
+be used to ingest these batches to a dataset which will contain the latest stock tracker data at hour level granularity.
+The batches are windowed intentionally so that the second batch contains updates to some of the rows in the first batch.
+
+### Step 1 : Publish the first batch to Kafka
+
+Upload the first batch to Kafka topic 'stock ticks' `cat docker/demo/data/batch_1.json | kafkacat -b kafkabroker -t stock_ticks -P`
+
+To check if the new topic shows up, use
+```java
+kafkacat -b kafkabroker -L -J | jq .
+{
+  "originating_broker": {
+    "id": 1001,
+    "name": "kafkabroker:9092/1001"
+  },
+  "query": {
+    "topic": "*"
+  },
+  "brokers": [
+    {
+      "id": 1001,
+      "name": "kafkabroker:9092"
+    }
+  ],
+  "topics": [
+    {
+      "topic": "stock_ticks",
+      "partitions": [
+        {
+          "partition": 0,
+          "leader": 1001,
+          "replicas": [
+            {
+              "id": 1001
+            }
+          ],
+          "isrs": [
+            {
+              "id": 1001
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
+
+```
+
+### Step 2: Incrementally ingest data from Kafka topic
+
+Hudi comes with a tool named DeltaStreamer. This tool can connect to variety of data sources (including Kafka) to
+pull changes and apply to Hudi dataset using upsert/insert primitives. Here, we will use the tool to download
+json data from kafka topic and ingest to both COW and MOR tables we initialized in the previous step. This tool
+automatically initializes the datasets in the file-system if they do not exist yet.
+
+```java
+docker exec -it adhoc-2 /bin/bash
+
+# Run the following spark-submit command to execute the delta-streamer and ingest to stock_ticks_cow dataset in HDFS
+spark-submit --class org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer $HUDI_UTILITIES_BUNDLE --storage-type COPY_ON_WRITE --source-class org.apache.hudi.utilities.sources.JsonKafkaSource --source-ordering-field ts  --target-base-path /user/hive/warehouse/stock_ticks_cow --target-table stock_ticks_cow --props /var/demo/config/kafka-source.properties --schemaprovider-class org.apache.hudi.utilities.schema.FilebasedSchemaProvider
+
+
+# Run the following spark-submit command to execute the delta-streamer and ingest to stock_ticks_mor dataset in HDFS
+spark-submit --class org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer $HUDI_UTILITIES_BUNDLE --storage-type MERGE_ON_READ --source-class org.apache.hudi.utilities.sources.JsonKafkaSource --source-ordering-field ts  --target-base-path /user/hive/warehouse/stock_ticks_mor --target-table stock_ticks_mor --props /var/demo/config/kafka-source.properties --schemaprovider-class org.apache.hudi.utilities.schema.FilebasedSchemaProvider --disable-compaction
+
+
+# As part of the setup (Look at setup_demo.sh), the configs needed for DeltaStreamer is uploaded to HDFS. The configs
+# contain mostly Kafa connectivity settings, the avro-schema to be used for ingesting along with key and partitioning fields.
+
+exit
+```
+
+You can use HDFS web-browser to look at the datasets
+`http://namenode:50070/explorer.html#/user/hive/warehouse/stock_ticks_cow`.
+
+You can explore the new partition folder created in the dataset along with a "deltacommit"
+file under .hoodie which signals a successful commit.
+
+There will be a similar setup when you browse the MOR dataset
+`http://namenode:50070/explorer.html#/user/hive/warehouse/stock_ticks_mor`
+
+
+### Step 3: Sync with Hive
+
+At this step, the datasets are available in HDFS. We need to sync with Hive to create new Hive tables and add partitions
+inorder to run Hive queries against those datasets.
+
+```java
+docker exec -it adhoc-2 /bin/bash
+
+# THis command takes in HIveServer URL and COW Hudi Dataset location in HDFS and sync the HDFS state to Hive
+/var/hoodie/ws/hudi-hive/run_sync_tool.sh  --jdbc-url jdbc:hive2://hiveserver:10000 --user hive --pass hive --partitioned-by dt --base-path /user/hive/warehouse/stock_ticks_cow --database default --table stock_ticks_cow
+.....
+2018-09-24 22:22:45,568 INFO  [main] hive.HiveSyncTool (HiveSyncTool.java:syncHoodieTable(112)) - Sync complete for stock_ticks_cow
+.....
+
+# Now run hive-sync for the second data-set in HDFS using Merge-On-Read (MOR storage)
+/var/hoodie/ws/hudi-hive/run_sync_tool.sh  --jdbc-url jdbc:hive2://hiveserver:10000 --user hive --pass hive --partitioned-by dt --base-path /user/hive/warehouse/stock_ticks_mor --database default --table stock_ticks_mor
+...
+2018-09-24 22:23:09,171 INFO  [main] hive.HiveSyncTool (HiveSyncTool.java:syncHoodieTable(112)) - Sync complete for stock_ticks_mor
+...
+2018-09-24 22:23:09,559 INFO  [main] hive.HiveSyncTool (HiveSyncTool.java:syncHoodieTable(112)) - Sync complete for stock_ticks_mor_rt
+....
+exit
+```
+After executing the above command, you will notice
+
+1. A hive table named `stock_ticks_cow` created which provides Read-Optimized view for the Copy On Write dataset.
+2. Two new tables `stock_ticks_mor` and `stock_ticks_mor_rt` created for the Merge On Read dataset. The former
+provides the ReadOptimized view for the Hudi dataset and the later provides the realtime-view for the dataset.
+
+
+### Step 4 (a): Run Hive Queries
+
+Run a hive query to find the latest timestamp ingested for stock symbol 'GOOG'. You will notice that both read-optimized
+(for both COW and MOR dataset)and realtime views (for MOR dataset)give the same value "10:29 a.m" as Hudi create a
+parquet file for the first batch of data.
+
+```java
+docker exec -it adhoc-2 /bin/bash
+beeline -u jdbc:hive2://hiveserver:10000 --hiveconf hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat --hiveconf hive.stats.autogather=false
+# List Tables
+0: jdbc:hive2://hiveserver:10000> show tables;
++---------------------+--+
+|      tab_name       |
++---------------------+--+
+| stock_ticks_cow     |
+| stock_ticks_mor     |
+| stock_ticks_mor_rt  |
++---------------------+--+
+2 rows selected (0.801 seconds)
+0: jdbc:hive2://hiveserver:10000>
+
+
+# Look at partitions that were added
+0: jdbc:hive2://hiveserver:10000> show partitions stock_ticks_mor_rt;
++----------------+--+
+|   partition    |
++----------------+--+
+| dt=2018-08-31  |
++----------------+--+
+1 row selected (0.24 seconds)
+
+
+# COPY-ON-WRITE Queries:
+=========================
+
+
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG';
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:29:00  |
++---------+----------------------+--+
+
+Now, run a projection query:
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924221953       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924221953       | GOOG    | 2018-08-31 10:29:00  | 3391    | 1230.1899  | 1230.085  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+
+# Merge-On-Read Queries:
+==========================
+
+Lets run similar queries against M-O-R dataset. Lets look at both
+ReadOptimized and Realtime views supported by M-O-R dataset
+
+# Run against ReadOptimized View. Notice that the latest timestamp is 10:29
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:29:00  |
++---------+----------------------+--+
+1 row selected (6.326 seconds)
+
+
+# Run against Realtime View. Notice that the latest timestamp is again 10:29
+
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_mor_rt group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:29:00  |
++---------+----------------------+--+
+1 row selected (1.606 seconds)
+
+
+# Run projection query against Read Optimized and Realtime tables
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924222155       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924222155       | GOOG    | 2018-08-31 10:29:00  | 3391    | 1230.1899  | 1230.085  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor_rt where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924222155       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924222155       | GOOG    | 2018-08-31 10:29:00  | 3391    | 1230.1899  | 1230.085  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+exit
+exit
+```
+
+### Step 4 (b): Run Spark-SQL Queries
+Hudi support Spark as query processor just like Hive. Here are the same hive queries
+running in spark-sql
+
+```java
+docker exec -it adhoc-1 /bin/bash
+$SPARK_INSTALL/bin/spark-shell --jars $HUDI_SPARK_BUNDLE --master local[2] --driver-class-path $HADOOP_CONF_DIR --conf spark.sql.hive.convertMetastoreParquet=false --deploy-mode client  --driver-memory 1G --executor-memory 3G --num-executors 1  --packages com.databricks:spark-avro_2.11:4.0.0
+...
+
+Welcome to
+      ____              __
+     / __/__  ___ _____/ /__
+    _\ \/ _ \/ _ `/ __/  '_/
+   /___/ .__/\_,_/_/ /_/\_\   version 2.3.1
+      /_/
+
+Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181)
+Type in expressions to have them evaluated.
+Type :help for more information.
+
+scala>
+scala> spark.sql("show tables").show(100, false)
++--------+------------------+-----------+
+|database|tableName         |isTemporary|
++--------+------------------+-----------+
+|default |stock_ticks_cow   |false      |
+|default |stock_ticks_mor   |false      |
+|default |stock_ticks_mor_rt|false      |
++--------+------------------+-----------+
+
+# Copy-On-Write Table
+
+## Run max timestamp query against COW table
+
+scala> spark.sql("select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG'").show(100, false)
+[Stage 0:>                                                          (0 + 1) / 1]SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
+SLF4J: Defaulting to no-operation (NOP) logger implementation
+SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
++------+-------------------+
+|symbol|max(ts)            |
++------+-------------------+
+|GOOG  |2018-08-31 10:29:00|
++------+-------------------+
+
+## Projection Query
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG'").show(100, false)
++-------------------+------+-------------------+------+---------+--------+
+|_hoodie_commit_time|symbol|ts                 |volume|open     |close   |
++-------------------+------+-------------------+------+---------+--------+
+|20180924221953     |GOOG  |2018-08-31 09:59:00|6330  |1230.5   |1230.02 |
+|20180924221953     |GOOG  |2018-08-31 10:29:00|3391  |1230.1899|1230.085|
++-------------------+------+-------------------+------+---------+--------+
+
+# Merge-On-Read Queries:
+==========================
+
+Lets run similar queries against M-O-R dataset. Lets look at both
+ReadOptimized and Realtime views supported by M-O-R dataset
+
+# Run against ReadOptimized View. Notice that the latest timestamp is 10:29
+scala> spark.sql("select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG'").show(100, false)
++------+-------------------+
+|symbol|max(ts)            |
++------+-------------------+
+|GOOG  |2018-08-31 10:29:00|
++------+-------------------+
+
+
+# Run against Realtime View. Notice that the latest timestamp is again 10:29
+
+scala> spark.sql("select symbol, max(ts) from stock_ticks_mor_rt group by symbol HAVING symbol = 'GOOG'").show(100, false)
++------+-------------------+
+|symbol|max(ts)            |
++------+-------------------+
+|GOOG  |2018-08-31 10:29:00|
++------+-------------------+
+
+# Run projection query against Read Optimized and Realtime tables
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG'").show(100, false)
++-------------------+------+-------------------+------+---------+--------+
+|_hoodie_commit_time|symbol|ts                 |volume|open     |close   |
++-------------------+------+-------------------+------+---------+--------+
+|20180924222155     |GOOG  |2018-08-31 09:59:00|6330  |1230.5   |1230.02 |
+|20180924222155     |GOOG  |2018-08-31 10:29:00|3391  |1230.1899|1230.085|
++-------------------+------+-------------------+------+---------+--------+
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor_rt where  symbol = 'GOOG'").show(100, false)
++-------------------+------+-------------------+------+---------+--------+
+|_hoodie_commit_time|symbol|ts                 |volume|open     |close   |
++-------------------+------+-------------------+------+---------+--------+
+|20180924222155     |GOOG  |2018-08-31 09:59:00|6330  |1230.5   |1230.02 |
+|20180924222155     |GOOG  |2018-08-31 10:29:00|3391  |1230.1899|1230.085|
++-------------------+------+-------------------+------+---------+--------+
+
+```
+
+### Step 4 (c): Run Presto Queries
+
+Here are the Presto queries for similar Hive and Spark queries. Currently, Hudi does not support Presto queries on realtime views.
+
+```java
+docker exec -it presto-worker-1 presto --server presto-coordinator-1:8090
+presto> show catalogs;
+  Catalog
+-----------
+ hive
+ jmx
+ localfile
+ system
+(4 rows)
+
+Query 20190817_134851_00000_j8rcz, FINISHED, 1 node
+Splits: 19 total, 19 done (100.00%)
+0:04 [0 rows, 0B] [0 rows/s, 0B/s]
+
+presto> use hive.default;
+USE
+presto:default> show tables;
+       Table
+--------------------
+ stock_ticks_cow
+ stock_ticks_mor
+ stock_ticks_mor_rt
+(3 rows)
+
+Query 20190822_181000_00001_segyw, FINISHED, 2 nodes
+Splits: 19 total, 19 done (100.00%)
+0:05 [3 rows, 99B] [0 rows/s, 18B/s]
+
+
+# COPY-ON-WRITE Queries:
+=========================
+
+
+presto:default> select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG';
+ symbol |        _col1
+--------+---------------------
+ GOOG   | 2018-08-31 10:29:00
+(1 row)
+
+Query 20190822_181011_00002_segyw, FINISHED, 1 node
+Splits: 49 total, 49 done (100.00%)
+0:12 [197 rows, 613B] [16 rows/s, 50B/s]
+
+presto:default> select "_hoodie_commit_time", symbol, ts, volume, open, close from stock_ticks_cow where symbol = 'GOOG';
+ _hoodie_commit_time | symbol |         ts          | volume |   open    |  close
+---------------------+--------+---------------------+--------+-----------+----------
+ 20190822180221      | GOOG   | 2018-08-31 09:59:00 |   6330 |    1230.5 |  1230.02
+ 20190822180221      | GOOG   | 2018-08-31 10:29:00 |   3391 | 1230.1899 | 1230.085
+(2 rows)
+
+Query 20190822_181141_00003_segyw, FINISHED, 1 node
+Splits: 17 total, 17 done (100.00%)
+0:02 [197 rows, 613B] [109 rows/s, 341B/s]
+
+
+# Merge-On-Read Queries:
+==========================
+
+Lets run similar queries against M-O-R dataset. 
+
+# Run against ReadOptimized View. Notice that the latest timestamp is 10:29
+presto:default> select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG';
+ symbol |        _col1
+--------+---------------------
+ GOOG   | 2018-08-31 10:29:00
+(1 row)
+
+Query 20190822_181158_00004_segyw, FINISHED, 1 node
+Splits: 49 total, 49 done (100.00%)
+0:02 [197 rows, 613B] [110 rows/s, 343B/s]
+
+
+presto:default>  select "_hoodie_commit_time", symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG';
+ _hoodie_commit_time | symbol |         ts          | volume |   open    |  close
+---------------------+--------+---------------------+--------+-----------+----------
+ 20190822180250      | GOOG   | 2018-08-31 09:59:00 |   6330 |    1230.5 |  1230.02
+ 20190822180250      | GOOG   | 2018-08-31 10:29:00 |   3391 | 1230.1899 | 1230.085
+(2 rows)
+
+Query 20190822_181256_00006_segyw, FINISHED, 1 node
+Splits: 17 total, 17 done (100.00%)
+0:02 [197 rows, 613B] [92 rows/s, 286B/s]
+
+presto:default> exit
+```
+
+### Step 5: Upload second batch to Kafka and run DeltaStreamer to ingest
+
+Upload the second batch of data and ingest this batch using delta-streamer. As this batch does not bring in any new
+partitions, there is no need to run hive-sync
+
+```java
+cat docker/demo/data/batch_2.json | kafkacat -b kafkabroker -t stock_ticks -P
+
+# Within Docker container, run the ingestion command
+docker exec -it adhoc-2 /bin/bash
+
+# Run the following spark-submit command to execute the delta-streamer and ingest to stock_ticks_cow dataset in HDFS
+spark-submit --class org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer $HUDI_UTILITIES_BUNDLE --storage-type COPY_ON_WRITE --source-class org.apache.hudi.utilities.sources.JsonKafkaSource --source-ordering-field ts  --target-base-path /user/hive/warehouse/stock_ticks_cow --target-table stock_ticks_cow --props /var/demo/config/kafka-source.properties --schemaprovider-class org.apache.hudi.utilities.schema.FilebasedSchemaProvider
+
+
+# Run the following spark-submit command to execute the delta-streamer and ingest to stock_ticks_mor dataset in HDFS
+spark-submit --class org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer $HUDI_UTILITIES_BUNDLE --storage-type MERGE_ON_READ --source-class org.apache.hudi.utilities.sources.JsonKafkaSource --source-ordering-field ts  --target-base-path /user/hive/warehouse/stock_ticks_mor --target-table stock_ticks_mor --props /var/demo/config/kafka-source.properties --schemaprovider-class org.apache.hudi.utilities.schema.FilebasedSchemaProvider --disable-compaction
+
+exit
+```
+
+With Copy-On-Write table, the second ingestion by DeltaStreamer resulted in a new version of Parquet file getting created.
+See `http://namenode:50070/explorer.html#/user/hive/warehouse/stock_ticks_cow/2018/08/31`
+
+With Merge-On-Read table, the second ingestion merely appended the batch to an unmerged delta (log) file.
+Take a look at the HDFS filesystem to get an idea: `http://namenode:50070/explorer.html#/user/hive/warehouse/stock_ticks_mor/2018/08/31`
+
+### Step 6(a): Run Hive Queries
+
+With Copy-On-Write table, the read-optimized view immediately sees the changes as part of second batch once the batch
+got committed as each ingestion creates newer versions of parquet files.
+
+With Merge-On-Read table, the second ingestion merely appended the batch to an unmerged delta (log) file.
+This is the time, when ReadOptimized and Realtime views will provide different results. ReadOptimized view will still
+return "10:29 am" as it will only read from the Parquet file. Realtime View will do on-the-fly merge and return
+latest committed data which is "10:59 a.m".
+
+```java
+docker exec -it adhoc-2 /bin/bash
+beeline -u jdbc:hive2://hiveserver:10000 --hiveconf hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat --hiveconf hive.stats.autogather=false
+
+# Copy On Write Table:
+
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+1 row selected (1.932 seconds)
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924221953       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924224524       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+As you can notice, the above queries now reflect the changes that came as part of ingesting second batch.
+
+
+# Merge On Read Table:
+
+# Read Optimized View
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:29:00  |
++---------+----------------------+--+
+1 row selected (1.6 seconds)
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924222155       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924222155       | GOOG    | 2018-08-31 10:29:00  | 3391    | 1230.1899  | 1230.085  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+# Realtime View
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_mor_rt group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor_rt where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924222155       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924224537       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+exit
+exit
+```
+
+### Step 6(b): Run Spark SQL Queries
+
+Running the same queries in Spark-SQL:
+
+```java
+docker exec -it adhoc-1 /bin/bash
+bash-4.4# $SPARK_INSTALL/bin/spark-shell --jars $HUDI_SPARK_BUNDLE --driver-class-path $HADOOP_CONF_DIR --conf spark.sql.hive.convertMetastoreParquet=false --deploy-mode client  --driver-memory 1G --master local[2] --executor-memory 3G --num-executors 1  --packages com.databricks:spark-avro_2.11:4.0.0
+
+# Copy On Write Table:
+
+scala> spark.sql("select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG'").show(100, false)
++------+-------------------+
+|symbol|max(ts)            |
++------+-------------------+
+|GOOG  |2018-08-31 10:59:00|
++------+-------------------+
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG'").show(100, false)
+
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924221953       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924224524       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+As you can notice, the above queries now reflect the changes that came as part of ingesting second batch.
+
+
+# Merge On Read Table:
+
+# Read Optimized View
+scala> spark.sql("select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG'").show(100, false)
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:29:00  |
++---------+----------------------+--+
+1 row selected (1.6 seconds)
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG'").show(100, false)
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924222155       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924222155       | GOOG    | 2018-08-31 10:29:00  | 3391    | 1230.1899  | 1230.085  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+# Realtime View
+scala> spark.sql("select symbol, max(ts) from stock_ticks_mor_rt group by symbol HAVING symbol = 'GOOG'").show(100, false)
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor_rt where  symbol = 'GOOG'").show(100, false)
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924222155       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924224537       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+exit
+exit
+```
+
+### Step 6(c): Run Presto Queries
+
+Running the same queries on Presto for ReadOptimized views. 
+
+
+```java
+docker exec -it presto-worker-1 presto --server presto-coordinator-1:8090
+presto> use hive.default;
+USE
+
+# Copy On Write Table:
+
+presto:default>select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG';
+ symbol |        _col1
+--------+---------------------
+ GOOG   | 2018-08-31 10:59:00
+(1 row)
+
+Query 20190822_181530_00007_segyw, FINISHED, 1 node
+Splits: 49 total, 49 done (100.00%)
+0:02 [197 rows, 613B] [125 rows/s, 389B/s]
+
+presto:default>select "_hoodie_commit_time", symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG';
+ _hoodie_commit_time | symbol |         ts          | volume |   open    |  close
+---------------------+--------+---------------------+--------+-----------+----------
+ 20190822180221      | GOOG   | 2018-08-31 09:59:00 |   6330 |    1230.5 |  1230.02
+ 20190822181433      | GOOG   | 2018-08-31 10:59:00 |   9021 | 1227.1993 | 1227.215
+(2 rows)
+
+Query 20190822_181545_00008_segyw, FINISHED, 1 node
+Splits: 17 total, 17 done (100.00%)
+0:02 [197 rows, 613B] [106 rows/s, 332B/s]
+
+As you can notice, the above queries now reflect the changes that came as part of ingesting second batch.
+
+
+# Merge On Read Table:
+
+# Read Optimized View
+presto:default> select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG';
+ symbol |        _col1
+--------+---------------------
+ GOOG   | 2018-08-31 10:29:00
+(1 row)
+
+Query 20190822_181602_00009_segyw, FINISHED, 1 node
+Splits: 49 total, 49 done (100.00%)
+0:01 [197 rows, 613B] [139 rows/s, 435B/s]
+
+presto:default>select "_hoodie_commit_time", symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG';
+ _hoodie_commit_time | symbol |         ts          | volume |   open    |  close
+---------------------+--------+---------------------+--------+-----------+----------
+ 20190822180250      | GOOG   | 2018-08-31 09:59:00 |   6330 |    1230.5 |  1230.02
+ 20190822180250      | GOOG   | 2018-08-31 10:29:00 |   3391 | 1230.1899 | 1230.085
+(2 rows)
+
+Query 20190822_181615_00010_segyw, FINISHED, 1 node
+Splits: 17 total, 17 done (100.00%)
+0:01 [197 rows, 613B] [154 rows/s, 480B/s]
+
+presto:default> exit
+```
+
+
+### Step 7 : Incremental Query for COPY-ON-WRITE Table
+
+With 2 batches of data ingested, lets showcase the support for incremental queries in Hudi Copy-On-Write datasets
+
+Lets take the same projection query example
+
+```java
+docker exec -it adhoc-2 /bin/bash
+beeline -u jdbc:hive2://hiveserver:10000 --hiveconf hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat --hiveconf hive.stats.autogather=false
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924064621       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924065039       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+```
+
+As you notice from the above queries, there are 2 commits - 20180924064621 and 20180924065039 in timeline order.
+When you follow the steps, you will be getting different timestamps for commits. Substitute them
+in place of the above timestamps.
+
+To show the effects of incremental-query, let us assume that a reader has already seen the changes as part of
+ingesting first batch. Now, for the reader to see effect of the second batch, he/she has to keep the start timestamp to
+the commit time of the first batch (20180924064621) and run incremental query
+
+Hudi incremental mode provides efficient scanning for incremental queries by filtering out files that do not have any
+candidate rows using hudi-managed metadata.
+
+```java
+docker exec -it adhoc-2 /bin/bash
+beeline -u jdbc:hive2://hiveserver:10000 --hiveconf hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat --hiveconf hive.stats.autogather=false
+0: jdbc:hive2://hiveserver:10000> set hoodie.stock_ticks_cow.consume.mode=INCREMENTAL;
+No rows affected (0.009 seconds)
+0: jdbc:hive2://hiveserver:10000>  set hoodie.stock_ticks_cow.consume.max.commits=3;
+No rows affected (0.009 seconds)
+0: jdbc:hive2://hiveserver:10000> set hoodie.stock_ticks_cow.consume.start.timestamp=20180924064621;
+```
+
+With the above setting, file-ids that do not have any updates from the commit 20180924065039 is filtered out without scanning.
+Here is the incremental query :
+
+```java
+0: jdbc:hive2://hiveserver:10000>
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow where  symbol = 'GOOG' and `_hoodie_commit_time` > '20180924064621';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924065039       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+1 row selected (0.83 seconds)
+0: jdbc:hive2://hiveserver:10000>
+```
+
+### Incremental Query with Spark SQL:
+```java
+docker exec -it adhoc-1 /bin/bash
+bash-4.4# $SPARK_INSTALL/bin/spark-shell --jars $HUDI_SPARK_BUNDLE --driver-class-path $HADOOP_CONF_DIR --conf spark.sql.hive.convertMetastoreParquet=false --deploy-mode client  --driver-memory 1G --master local[2] --executor-memory 3G --num-executors 1  --packages com.databricks:spark-avro_2.11:4.0.0
+Welcome to
+      ____              __
+     / __/__  ___ _____/ /__
+    _\ \/ _ \/ _ `/ __/  '_/
+   /___/ .__/\_,_/_/ /_/\_\   version 2.3.1
+      /_/
+
+Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181)
+Type in expressions to have them evaluated.
+Type :help for more information.
+
+scala> import org.apache.hudi.DataSourceReadOptions
+import org.apache.hudi.DataSourceReadOptions
+
+# In the below query, 20180925045257 is the first commit's timestamp
+scala> val hoodieIncViewDF =  spark.read.format("org.apache.hudi").option(DataSourceReadOptions.VIEW_TYPE_OPT_KEY, DataSourceReadOptions.VIEW_TYPE_INCREMENTAL_OPT_VAL).option(DataSourceReadOptions.BEGIN_INSTANTTIME_OPT_KEY, "20180924064621").load("/user/hive/warehouse/stock_ticks_cow")
+SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
+SLF4J: Defaulting to no-operation (NOP) logger implementation
+SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
+hoodieIncViewDF: org.apache.spark.sql.DataFrame = [_hoodie_commit_time: string, _hoodie_commit_seqno: string ... 15 more fields]
+
+scala> hoodieIncViewDF.registerTempTable("stock_ticks_cow_incr_tmp1")
+warning: there was one deprecation warning; re-run with -deprecation for details
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_cow_incr_tmp1 where  symbol = 'GOOG'").show(100, false);
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924065039       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+```
+
+
+### Step 8: Schedule and Run Compaction for Merge-On-Read dataset
+
+Lets schedule and run a compaction to create a new version of columnar  file so that read-optimized readers will see fresher data.
+Again, You can use Hudi CLI to manually schedule and run compaction
+
+```java
+docker exec -it adhoc-1 /bin/bash
+root@adhoc-1:/opt#   /var/hoodie/ws/hudi-cli/hudi-cli.sh
+============================================
+*                                          *
+*     _    _           _   _               *
+*    | |  | |         | | (_)              *
+*    | |__| |       __| |  -               *
+*    |  __  ||   | / _` | ||               *
+*    | |  | ||   || (_| | ||               *
+*    |_|  |_|\___/ \____/ ||               *
+*                                          *
+============================================
+
+Welcome to Hoodie CLI. Please type help if you are looking for help.
+hudi->connect --path /user/hive/warehouse/stock_ticks_mor
+18/09/24 06:59:34 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
+18/09/24 06:59:35 INFO table.HoodieTableMetaClient: Loading HoodieTableMetaClient from /user/hive/warehouse/stock_ticks_mor
+18/09/24 06:59:35 INFO util.FSUtils: Hadoop Configuration: fs.defaultFS: [hdfs://namenode:8020], Config:[Configuration: core-default.xml, core-site.xml, mapred-default.xml, mapred-site.xml, yarn-default.xml, yarn-site.xml, hdfs-default.xml, hdfs-site.xml], FileSystem: [DFS[DFSClient[clientName=DFSClient_NONMAPREDUCE_-1261652683_11, ugi=root (auth:SIMPLE)]]]
+18/09/24 06:59:35 INFO table.HoodieTableConfig: Loading dataset properties from /user/hive/warehouse/stock_ticks_mor/.hoodie/hoodie.properties
+18/09/24 06:59:36 INFO table.HoodieTableMetaClient: Finished Loading Table of type MERGE_ON_READ from /user/hive/warehouse/stock_ticks_mor
+Metadata for table stock_ticks_mor loaded
+
+# Ensure no compactions are present
+
+hoodie:stock_ticks_mor->compactions show all
+18/09/24 06:59:54 INFO timeline.HoodieActiveTimeline: Loaded instants [[20180924064636__clean__COMPLETED], [20180924064636__deltacommit__COMPLETED], [20180924065057__clean__COMPLETED], [20180924065057__deltacommit__COMPLETED]]
+    ___________________________________________________________________
+    | Compaction Instant Time| State    | Total FileIds to be Compacted|
+    |==================================================================|
+
+
+
+
+# Schedule a compaction. This will use Spark Launcher to schedule compaction
+hoodie:stock_ticks_mor->compaction schedule
+....
+Compaction successfully completed for 20180924070031
+
+# Now refresh and check again. You will see that there is a new compaction requested
+
+hoodie:stock_ticks->connect --path /user/hive/warehouse/stock_ticks_mor
+18/09/24 07:01:16 INFO table.HoodieTableMetaClient: Loading HoodieTableMetaClient from /user/hive/warehouse/stock_ticks_mor
+18/09/24 07:01:16 INFO util.FSUtils: Hadoop Configuration: fs.defaultFS: [hdfs://namenode:8020], Config:[Configuration: core-default.xml, core-site.xml, mapred-default.xml, mapred-site.xml, yarn-default.xml, yarn-site.xml, hdfs-default.xml, hdfs-site.xml], FileSystem: [DFS[DFSClient[clientName=DFSClient_NONMAPREDUCE_-1261652683_11, ugi=root (auth:SIMPLE)]]]
+18/09/24 07:01:16 INFO table.HoodieTableConfig: Loading dataset properties from /user/hive/warehouse/stock_ticks_mor/.hoodie/hoodie.properties
+18/09/24 07:01:16 INFO table.HoodieTableMetaClient: Finished Loading Table of type MERGE_ON_READ from /user/hive/warehouse/stock_ticks_mor
+Metadata for table stock_ticks_mor loaded
+
+
+
+hoodie:stock_ticks_mor->compactions show all
+18/09/24 06:34:12 INFO timeline.HoodieActiveTimeline: Loaded instants [[20180924041125__clean__COMPLETED], [20180924041125__deltacommit__COMPLETED], [20180924042735__clean__COMPLETED], [20180924042735__deltacommit__COMPLETED], [==>20180924063245__compaction__REQUESTED]]
+    ___________________________________________________________________
+    | Compaction Instant Time| State    | Total FileIds to be Compacted|
+    |==================================================================|
+    | 20180924070031         | REQUESTED| 1                            |
+
+
+
+
+# Execute the compaction. The compaction instant value passed below must be the one displayed in the above "compactions show all" query
+hoodie:stock_ticks_mor->compaction run --compactionInstant  20180924070031 --parallelism 2 --sparkMemory 1G  --schemaFilePath /var/demo/config/schema.avsc --retry 1  
+....
+Compaction successfully completed for 20180924070031
+
+
+## Now check if compaction is completed
+
+hoodie:stock_ticks_mor->connect --path /user/hive/warehouse/stock_ticks_mor
+18/09/24 07:03:00 INFO table.HoodieTableMetaClient: Loading HoodieTableMetaClient from /user/hive/warehouse/stock_ticks_mor
+18/09/24 07:03:00 INFO util.FSUtils: Hadoop Configuration: fs.defaultFS: [hdfs://namenode:8020], Config:[Configuration: core-default.xml, core-site.xml, mapred-default.xml, mapred-site.xml, yarn-default.xml, yarn-site.xml, hdfs-default.xml, hdfs-site.xml], FileSystem: [DFS[DFSClient[clientName=DFSClient_NONMAPREDUCE_-1261652683_11, ugi=root (auth:SIMPLE)]]]
+18/09/24 07:03:00 INFO table.HoodieTableConfig: Loading dataset properties from /user/hive/warehouse/stock_ticks_mor/.hoodie/hoodie.properties
+18/09/24 07:03:00 INFO table.HoodieTableMetaClient: Finished Loading Table of type MERGE_ON_READ from /user/hive/warehouse/stock_ticks_mor
+Metadata for table stock_ticks_mor loaded
+
+
+
+hoodie:stock_ticks->compactions show all
+18/09/24 07:03:15 INFO timeline.HoodieActiveTimeline: Loaded instants [[20180924064636__clean__COMPLETED], [20180924064636__deltacommit__COMPLETED], [20180924065057__clean__COMPLETED], [20180924065057__deltacommit__COMPLETED], [20180924070031__commit__COMPLETED]]
+    ___________________________________________________________________
+    | Compaction Instant Time| State    | Total FileIds to be Compacted|
+    |==================================================================|
+    | 20180924070031         | COMPLETED| 1                            |
+
+```
+
+### Step 9: Run Hive Queries including incremental queries
+
+You will see that both ReadOptimized and Realtime Views will show the latest committed data.
+Lets also run the incremental query for MOR table.
+From looking at the below query output, it will be clear that the fist commit time for the MOR table is 20180924064636
+and the second commit time is 20180924070031
+
+```java
+docker exec -it adhoc-2 /bin/bash
+beeline -u jdbc:hive2://hiveserver:10000 --hiveconf hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat --hiveconf hive.stats.autogather=false
+
+# Read Optimized View
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+1 row selected (1.6 seconds)
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924064636       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924070031       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+# Realtime View
+0: jdbc:hive2://hiveserver:10000> select symbol, max(ts) from stock_ticks_mor_rt group by symbol HAVING symbol = 'GOOG';
+WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor_rt where  symbol = 'GOOG';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924064636       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924070031       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+# Incremental View:
+
+0: jdbc:hive2://hiveserver:10000> set hoodie.stock_ticks_mor.consume.mode=INCREMENTAL;
+No rows affected (0.008 seconds)
+# Max-Commits covers both second batch and compaction commit
+0: jdbc:hive2://hiveserver:10000> set hoodie.stock_ticks_mor.consume.max.commits=3;
+No rows affected (0.007 seconds)
+0: jdbc:hive2://hiveserver:10000> set hoodie.stock_ticks_mor.consume.start.timestamp=20180924064636;
+No rows affected (0.013 seconds)
+# Query:
+0: jdbc:hive2://hiveserver:10000> select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG' and `_hoodie_commit_time` > '20180924064636';
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924070031       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+exit
+exit
+```
+
+### Step 10: Read Optimized and Realtime Views for MOR with Spark-SQL after compaction
+
+```java
+docker exec -it adhoc-1 /bin/bash
+bash-4.4# $SPARK_INSTALL/bin/spark-shell --jars $HUDI_SPARK_BUNDLE --driver-class-path $HADOOP_CONF_DIR --conf spark.sql.hive.convertMetastoreParquet=false --deploy-mode client  --driver-memory 1G --master local[2] --executor-memory 3G --num-executors 1  --packages com.databricks:spark-avro_2.11:4.0.0
+
+# Read Optimized View
+scala> spark.sql("select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG'").show(100, false)
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+1 row selected (1.6 seconds)
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG'").show(100, false)
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924064636       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924070031       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+
+# Realtime View
+scala> spark.sql("select symbol, max(ts) from stock_ticks_mor_rt group by symbol HAVING symbol = 'GOOG'").show(100, false)
++---------+----------------------+--+
+| symbol  |         _c1          |
++---------+----------------------+--+
+| GOOG    | 2018-08-31 10:59:00  |
++---------+----------------------+--+
+
+scala> spark.sql("select `_hoodie_commit_time`, symbol, ts, volume, open, close  from stock_ticks_mor_rt where  symbol = 'GOOG'").show(100, false)
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| _hoodie_commit_time  | symbol  |          ts          | volume  |    open    |   close   |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+| 20180924064636       | GOOG    | 2018-08-31 09:59:00  | 6330    | 1230.5     | 1230.02   |
+| 20180924070031       | GOOG    | 2018-08-31 10:59:00  | 9021    | 1227.1993  | 1227.215  |
++----------------------+---------+----------------------+---------+------------+-----------+--+
+```
+
+### Step 11:  Presto queries over Read Optimized View on MOR dataset after compaction
+
+```java
+docker exec -it presto-worker-1 presto --server presto-coordinator-1:8090
+presto> use hive.default;
+USE
+
+# Read Optimized View
+resto:default> select symbol, max(ts) from stock_ticks_mor group by symbol HAVING symbol = 'GOOG';
+  symbol |        _col1
+--------+---------------------
+ GOOG   | 2018-08-31 10:59:00
+(1 row)
+
+Query 20190822_182319_00011_segyw, FINISHED, 1 node
+Splits: 49 total, 49 done (100.00%)
+0:01 [197 rows, 613B] [133 rows/s, 414B/s]
+
+presto:default> select "_hoodie_commit_time", symbol, ts, volume, open, close  from stock_ticks_mor where  symbol = 'GOOG';
+ _hoodie_commit_time | symbol |         ts          | volume |   open    |  close
+---------------------+--------+---------------------+--------+-----------+----------
+ 20190822180250      | GOOG   | 2018-08-31 09:59:00 |   6330 |    1230.5 |  1230.02
+ 20190822181944      | GOOG   | 2018-08-31 10:59:00 |   9021 | 1227.1993 | 1227.215
+(2 rows)
+
+Query 20190822_182333_00012_segyw, FINISHED, 1 node
+Splits: 17 total, 17 done (100.00%)
+0:02 [197 rows, 613B] [98 rows/s, 307B/s]
+
+presto:default>
+
+```
+
+
+This brings the demo to an end.
+
+## Testing Hudi in Local Docker environment
+
+You can bring up a hadoop docker environment containing Hadoop, Hive and Spark services with support for hudi.
+```java
+$ mvn pre-integration-test -DskipTests
+```
+The above command builds docker images for all the services with
+current Hudi source installed at /var/hoodie/ws and also brings up the services using a compose file. We
+currently use Hadoop (v2.8.4), Hive (v2.3.3) and Spark (v2.3.1) in docker images.
+
+To bring down the containers
+```java
+$ cd hudi-integ-test
+$ mvn docker-compose:down
+```
+
+If you want to bring up the docker containers, use
+```java
+$ cd hudi-integ-test
+$  mvn docker-compose:up -DdetachedMode=true
+```
+
+Hudi is a library that is operated in a broader data analytics/ingestion environment
+involving Hadoop, Hive and Spark. Interoperability with all these systems is a key objective for us. We are
+actively adding integration-tests under __hudi-integ-test/src/test/java__ that makes use of this
+docker environment (See __hudi-integ-test/src/test/java/org/apache/hudi/integ/ITTestHoodieSanity.java__ )
+
+
+### Building Local Docker Containers:
+
+The docker images required for demo and running integration test are already in docker-hub. The docker images
+and compose scripts are carefully implemented so that they serve dual-purpose
+
+1. The docker images have inbuilt hudi jar files with environment variable pointing to those jars (HUDI_HADOOP_BUNDLE, ...)
+2. For running integration-tests, we need the jars generated locally to be used for running services within docker. The
+   docker-compose scripts (see `docker/compose/docker-compose_hadoop284_hive233_spark231.yml`) ensures local jars override
+   inbuilt jars by mounting local HUDI workspace over the docker location
+
+This helps avoid maintaining separate docker images and avoids the costly step of building HUDI docker images locally.
+But if users want to test hudi from locations with lower network bandwidth, they can still build local images
+run the script
+`docker/build_local_docker_images.sh` to build local docker images before running `docker/setup_demo.sh`
+
+Here are the commands:
+
+```java
+cd docker
+./build_local_docker_images.sh
+.....
+
+[INFO] Reactor Summary:
+[INFO]
+[INFO] hoodie ............................................. SUCCESS [  1.709 s]
+[INFO] hudi-common ...................................... SUCCESS [  9.015 s]
+[INFO] hudi-hadoop-mr ................................... SUCCESS [  1.108 s]
+[INFO] hudi-client ...................................... SUCCESS [  4.409 s]
+[INFO] hudi-hive ........................................ SUCCESS [  0.976 s]
+[INFO] hudi-spark ....................................... SUCCESS [ 26.522 s]
+[INFO] hudi-utilities ................................... SUCCESS [ 16.256 s]
+[INFO] hudi-cli ......................................... SUCCESS [ 11.341 s]
+[INFO] hudi-hadoop-mr-bundle ............................ SUCCESS [  1.893 s]
+[INFO] hudi-hive-bundle ................................. SUCCESS [ 14.099 s]
+[INFO] hudi-spark-bundle ................................ SUCCESS [ 58.252 s]
+[INFO] hudi-hadoop-docker ............................... SUCCESS [  0.612 s]
+[INFO] hudi-hadoop-base-docker .......................... SUCCESS [04:04 min]
+[INFO] hudi-hadoop-namenode-docker ...................... SUCCESS [  6.142 s]
+[INFO] hudi-hadoop-datanode-docker ...................... SUCCESS [  7.763 s]
+[INFO] hudi-hadoop-history-docker ....................... SUCCESS [  5.922 s]
+[INFO] hudi-hadoop-hive-docker .......................... SUCCESS [ 56.152 s]
+[INFO] hudi-hadoop-sparkbase-docker ..................... SUCCESS [01:18 min]
+[INFO] hudi-hadoop-sparkmaster-docker ................... SUCCESS [  2.964 s]
+[INFO] hudi-hadoop-sparkworker-docker ................... SUCCESS [  3.032 s]
+[INFO] hudi-hadoop-sparkadhoc-docker .................... SUCCESS [  2.764 s]
+[INFO] hudi-integ-test .................................. SUCCESS [  1.785 s]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 09:15 min
+[INFO] Finished at: 2018-09-10T17:47:37-07:00
+[INFO] Final Memory: 236M/1848M
+[INFO] ------------------------------------------------------------------------
+```
diff --git a/docs/_docs/0.5.0/1_1_quick_start_guide.cn.md b/docs/_docs/0.5.0/1_1_quick_start_guide.cn.md
new file mode 100644
index 0000000..fba3032
--- /dev/null
+++ b/docs/_docs/0.5.0/1_1_quick_start_guide.cn.md
@@ -0,0 +1,162 @@
+---
+version: 0.5.0
+title: "Quick-Start Guide"
+permalink: /cn/docs/0.5.0-quick-start-guide.html
+toc: true
+last_modified_at: 2019-12-30T15:59:57-04:00
+language: cn
+---
+
+本指南通过使用spark-shell简要介绍了Hudi功能。使用Spark数据源,我们将通过代码段展示如何插入和更新的Hudi默认存储类型数据集:
+[写时复制](/cn/docs/0.5.0-concepts.html#copy-on-write-storage)。每次写操作之后,我们还将展示如何读取快照和增量读取数据。 
+
+## 设置spark-shell
+Hudi适用于Spark-2.x版本。您可以按照[此处](https://spark.apache.org/downloads.html)的说明设置spark。
+在提取的目录中,使用spark-shell运行Hudi:
+
+```scala
+bin/spark-shell --packages org.apache.hudi:hudi-spark-bundle:0.5.0-incubating --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer'
+```
+
+设置表名、基本路径和数据生成器来为本指南生成记录。
+
+```scala
+import org.apache.hudi.QuickstartUtils._
+import scala.collection.JavaConversions._
+import org.apache.spark.sql.SaveMode._
+import org.apache.hudi.DataSourceReadOptions._
+import org.apache.hudi.DataSourceWriteOptions._
+import org.apache.hudi.config.HoodieWriteConfig._
+
+val tableName = "hudi_cow_table"
+val basePath = "file:///tmp/hudi_cow_table"
+val dataGen = new DataGenerator
+```
+
+[数据生成器](https://github.com/apache/incubator-hudi/blob/master/hudi-spark/src/main/java/org/apache/hudi/QuickstartUtils.java#L50)
+可以基于[行程样本模式](https://github.com/apache/incubator-hudi/blob/master/hudi-spark/src/main/java/org/apache/hudi/QuickstartUtils.java#L57)
+生成插入和更新的样本。
+
+## 插入数据 {#inserts}
+生成一些新的行程样本,将其加载到DataFrame中,然后将DataFrame写入Hudi数据集中,如下所示。
+
+```scala
+val inserts = convertToStringList(dataGen.generateInserts(10))
+val df = spark.read.json(spark.sparkContext.parallelize(inserts, 2))
+df.write.format("org.apache.hudi").
+    options(getQuickstartWriteConfigs).
+    option(PRECOMBINE_FIELD_OPT_KEY, "ts").
+    option(RECORDKEY_FIELD_OPT_KEY, "uuid").
+    option(PARTITIONPATH_FIELD_OPT_KEY, "partitionpath").
+    option(TABLE_NAME, tableName).
+    mode(Overwrite).
+    save(basePath);
+```
+
+`mode(Overwrite)`覆盖并重新创建数据集(如果已经存在)。
+您可以检查在`/tmp/hudi_cow_table/<region>/<country>/<city>/`下生成的数据。我们提供了一个记录键
+([schema](#sample-schema)中的`uuid`),分区字段(`region/county/city`)和组合逻辑([schema](#sample-schema)中的`ts`)
+以确保行程记录在每个分区中都是唯一的。更多信息请参阅
+[对Hudi中的数据进行建模](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=113709185#FAQ-HowdoImodelthedatastoredinHudi),
+有关将数据提取到Hudi中的方法的信息,请参阅[写入Hudi数据集](/cn/docs/0.5.0-writing_data.html)。
+这里我们使用默认的写操作:`插入更新`。 如果您的工作负载没有`更新`,也可以使用更快的`插入`或`批量插入`操作。
+想了解更多信息,请参阅[写操作](/cn/docs/0.5.0-writing_data.html#write-operations)
+
+## 查询数据 {#query}
+
+将数据文件加载到DataFrame中。
+
+```scala
+val roViewDF = spark.
+    read.
+    format("org.apache.hudi").
+    load(basePath + "/*/*/*/*")
+roViewDF.registerTempTable("hudi_ro_table")
+spark.sql("select fare, begin_lon, begin_lat, ts from  hudi_ro_table where fare > 20.0").show()
+spark.sql("select _hoodie_commit_time, _hoodie_record_key, _hoodie_partition_path, rider, driver, fare from  hudi_ro_table").show()
+```
+
+该查询提供已提取数据的读取优化视图。由于我们的分区路径(`region/country/city`)是嵌套的3个级别
+从基本路径开始,我们使用了`load(basePath + "/*/*/*/*")`。
+有关支持的所有存储类型和视图的更多信息,请参考[存储类型和视图](/cn/docs/0.5.0-concepts.html#storage-types--views)。
+
+## 更新数据 {#updates}
+
+这类似于插入新数据。使用数据生成器生成对现有行程的更新,加载到DataFrame中并将DataFrame写入hudi数据集。
+
+```scala
+val updates = convertToStringList(dataGen.generateUpdates(10))
+val df = spark.read.json(spark.sparkContext.parallelize(updates, 2));
+df.write.format("org.apache.hudi").
+    options(getQuickstartWriteConfigs).
+    option(PRECOMBINE_FIELD_OPT_KEY, "ts").
+    option(RECORDKEY_FIELD_OPT_KEY, "uuid").
+    option(PARTITIONPATH_FIELD_OPT_KEY, "partitionpath").
+    option(TABLE_NAME, tableName).
+    mode(Append).
+    save(basePath);
+```
+
+注意,保存模式现在为`追加`。通常,除非您是第一次尝试创建数据集,否则请始终使用追加模式。
+[查询](#query)现在再次查询数据将显示更新的行程。每个写操作都会生成一个新的由时间戳表示的[commit](/cn/docs/0.5.0-concepts.html)
+。在之前提交的相同的`_hoodie_record_key`中寻找`_hoodie_commit_time`, `rider`, `driver`字段变更。
+
+## 增量查询
+
+Hudi还提供了获取给定提交时间戳以来已更改的记录流的功能。
+这可以通过使用Hudi的增量视图并提供所需更改的开始时间来实现。
+如果我们需要给定提交之后的所有更改(这是常见的情况),则无需指定结束时间。
+
+```scala
+// reload data
+spark.
+    read.
+    format("org.apache.hudi").
+    load(basePath + "/*/*/*/*").
+    createOrReplaceTempView("hudi_ro_table")
+
+val commits = spark.sql("select distinct(_hoodie_commit_time) as commitTime from  hudi_ro_table order by commitTime").map(k => k.getString(0)).take(50)
+val beginTime = commits(commits.length - 2) // commit time we are interested in
+
+// 增量查询数据
+val incViewDF = spark.
+    read.
+    format("org.apache.hudi").
+    option(VIEW_TYPE_OPT_KEY, VIEW_TYPE_INCREMENTAL_OPT_VAL).
+    option(BEGIN_INSTANTTIME_OPT_KEY, beginTime).
+    load(basePath);
+incViewDF.registerTempTable("hudi_incr_table")
+spark.sql("select `_hoodie_commit_time`, fare, begin_lon, begin_lat, ts from  hudi_incr_table where fare > 20.0").show()
+```
+
+这将提供在开始时间提交之后发生的所有更改,其中包含票价大于20.0的过滤器。关于此功能的独特之处在于,它现在使您可以在批量数据上创作流式管道。
+
+## 特定时间点查询
+
+让我们看一下如何查询特定时间的数据。可以通过将结束时间指向特定的提交时间,将开始时间指向"000"(表示最早的提交时间)来表示特定时间。
+
+```scala
+val beginTime = "000" // Represents all commits > this time.
+val endTime = commits(commits.length - 2) // commit time we are interested in
+
+// 增量查询数据
+val incViewDF = spark.read.format("org.apache.hudi").
+    option(VIEW_TYPE_OPT_KEY, VIEW_TYPE_INCREMENTAL_OPT_VAL).
+    option(BEGIN_INSTANTTIME_OPT_KEY, beginTime).
+    option(END_INSTANTTIME_OPT_KEY, endTime).
+    load(basePath);
+incViewDF.registerTempTable("hudi_incr_table")
+spark.sql("select `_hoodie_commit_time`, fare, begin_lon, begin_lat, ts from  hudi_incr_table where fare > 20.0").show()
+```
+
+## 从这开始下一步?
+
+您也可以通过[自己构建hudi](https://github.com/apache/incubator-hudi#building-apache-hudi-from-source)来快速开始,
+并在spark-shell命令中使用`--jars <path to hudi_code>/packaging/hudi-spark-bundle/target/hudi-spark-bundle-*.*.*-SNAPSHOT.jar`,
+而不是`--packages org.apache.hudi:hudi-spark-bundle:0.5.0-incubating`
+
+
+这里我们使用Spark演示了Hudi的功能。但是,Hudi可以支持多种存储类型/视图,并且可以从Hive,Spark,Presto等查询引擎中查询Hudi数据集。
+我们制作了一个基于Docker设置、所有依赖系统都在本地运行的[演示视频](https://www.youtube.com/watch?v=VhNgUsxdrD0),
+我们建议您复制相同的设置然后按照[这里](/cn/docs/0.5.0-docker_demo.html)的步骤自己运行这个演示。
+另外,如果您正在寻找将现有数据迁移到Hudi的方法,请参考[迁移指南](/cn/docs/0.5.0-migration_guide.html)。
\ No newline at end of file
diff --git a/docs/_docs/0.5.0/1_1_quick_start_guide.md b/docs/_docs/0.5.0/1_1_quick_start_guide.md
new file mode 100644
index 0000000..5358aa0
--- /dev/null
+++ b/docs/_docs/0.5.0/1_1_quick_start_guide.md
@@ -0,0 +1,175 @@
+---
+version: 0.5.0
+title: "Quick-Start Guide"
+permalink: /docs/0.5.0-quick-start-guide.html
+toc: true
+last_modified_at: 2019-12-30T15:59:57-04:00
+---
+
+This guide provides a quick peek at Hudi's capabilities using spark-shell. Using Spark datasources, we will walk through 
+code snippets that allows you to insert and update a Hudi dataset of default storage type: 
+[Copy on Write](/docs/0.5.0-concepts.html#copy-on-write-storage). 
+After each write operation we will also show how to read the data both snapshot and incrementally.
+
+## Setup spark-shell
+
+Hudi works with Spark-2.x versions. You can follow instructions [here](https://spark.apache.org/downloads.html) for setting up spark. 
+From the extracted directory run spark-shell with Hudi as:
+
+```scala
+bin/spark-shell --packages org.apache.hudi:hudi-spark-bundle:0.5.0-incubating \
+    --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer'
+```
+
+Setup table name, base path and a data generator to generate records for this guide.
+
+```scala
+import org.apache.hudi.QuickstartUtils._
+import scala.collection.JavaConversions._
+import org.apache.spark.sql.SaveMode._
+import org.apache.hudi.DataSourceReadOptions._
+import org.apache.hudi.DataSourceWriteOptions._
+import org.apache.hudi.config.HoodieWriteConfig._
+
+val tableName = "hudi_cow_table"
+val basePath = "file:///tmp/hudi_cow_table"
+val dataGen = new DataGenerator
+```
+
+The [DataGenerator](https://github.com/apache/incubator-hudi/blob/master/hudi-spark/src/main/java/org/apache/hudi/QuickstartUtils.java#L50) 
+can generate sample inserts and updates based on the the sample trip schema [here](https://github.com/apache/incubator-hudi/blob/master/hudi-spark/src/main/java/org/apache/hudi/QuickstartUtils.java#L57)
+{: .notice--info}
+
+
+## Insert data
+
+Generate some new trips, load them into a DataFrame and write the DataFrame into the Hudi dataset as below.
+
+```scala
+val inserts = convertToStringList(dataGen.generateInserts(10))
+val df = spark.read.json(spark.sparkContext.parallelize(inserts, 2))
+df.write.format("org.apache.hudi").
+    options(getQuickstartWriteConfigs).
+    option(PRECOMBINE_FIELD_OPT_KEY, "ts").
+    option(RECORDKEY_FIELD_OPT_KEY, "uuid").
+    option(PARTITIONPATH_FIELD_OPT_KEY, "partitionpath").
+    option(TABLE_NAME, tableName).
+    mode(Overwrite).
+    save(basePath);
+``` 
+
+`mode(Overwrite)` overwrites and recreates the dataset if it already exists.
+You can check the data generated under `/tmp/hudi_cow_table/<region>/<country>/<city>/`. We provided a record key 
+(`uuid` in [schema](#sample-schema)), partition field (`region/county/city`) and combine logic (`ts` in 
+[schema](#sample-schema)) to ensure trip records are unique within each partition. For more info, refer to 
+[Modeling data stored in Hudi](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=113709185#FAQ-HowdoImodelthedatastoredinHudi)
+and for info on ways to ingest data into Hudi, refer to [Writing Hudi Datasets](/docs/0.5.0-writing_data.html).
+Here we are using the default write operation : `upsert`. If you have a workload without updates, you can also issue 
+`insert` or `bulk_insert` operations which could be faster. To know more, refer to [Write operations](/docs/0.5.0-writing_data#write-operations)
+{: .notice--info}
+ 
+## Query data 
+
+Load the data files into a DataFrame.
+
+```scala
+val roViewDF = spark.
+    read.
+    format("org.apache.hudi").
+    load(basePath + "/*/*/*/*")
+roViewDF.createOrReplaceTempView("hudi_ro_table")
+spark.sql("select fare, begin_lon, begin_lat, ts from  hudi_ro_table where fare > 20.0").show()
+spark.sql("select _hoodie_commit_time, _hoodie_record_key, _hoodie_partition_path, rider, driver, fare from  hudi_ro_table").show()
+```
+
+This query provides a read optimized view of the ingested data. Since our partition path (`region/country/city`) is 3 levels nested 
+from base path we ve used `load(basePath + "/*/*/*/*")`. 
+Refer to [Storage Types and Views](/docs/0.5.0-concepts#storage-types--views) for more info on all storage types and views supported.
+{: .notice--info}
+
+## Update data
+
+This is similar to inserting new data. Generate updates to existing trips using the data generator, load into a DataFrame 
+and write DataFrame into the hudi dataset.
+
+```scala
+val updates = convertToStringList(dataGen.generateUpdates(10))
+val df = spark.read.json(spark.sparkContext.parallelize(updates, 2));
+df.write.format("org.apache.hudi").
+    options(getQuickstartWriteConfigs).
+    option(PRECOMBINE_FIELD_OPT_KEY, "ts").
+    option(RECORDKEY_FIELD_OPT_KEY, "uuid").
+    option(PARTITIONPATH_FIELD_OPT_KEY, "partitionpath").
+    option(TABLE_NAME, tableName).
+    mode(Append).
+    save(basePath);
+```
+
+Notice that the save mode is now `Append`. In general, always use append mode unless you are trying to create the dataset for the first time.
+[Querying](#query-data) the data again will now show updated trips. Each write operation generates a new [commit](http://hudi.incubator.apache.org/concepts.html) 
+denoted by the timestamp. Look for changes in `_hoodie_commit_time`, `rider`, `driver` fields for the same `_hoodie_record_key`s in previous commit. 
+{: .notice--info}
+
+## Incremental query
+
+Hudi also provides capability to obtain a stream of records that changed since given commit timestamp. 
+This can be achieved using Hudi's incremental view and providing a begin time from which changes need to be streamed. 
+We do not need to specify endTime, if we want all changes after the given commit (as is the common case). 
+
+```scala
+// reload data
+spark.
+    read.
+    format("org.apache.hudi").
+    load(basePath + "/*/*/*/*").
+    createOrReplaceTempView("hudi_ro_table")
+
+val commits = spark.sql("select distinct(_hoodie_commit_time) as commitTime from  hudi_ro_table order by commitTime").map(k => k.getString(0)).take(50)
+val beginTime = commits(commits.length - 2) // commit time we are interested in
+
+// incrementally query data
+val incViewDF = spark.
+    read.
+    format("org.apache.hudi").
+    option(VIEW_TYPE_OPT_KEY, VIEW_TYPE_INCREMENTAL_OPT_VAL).
+    option(BEGIN_INSTANTTIME_OPT_KEY, beginTime).
+    load(basePath);
+incViewDF.registerTempTable("hudi_incr_table")
+spark.sql("select `_hoodie_commit_time`, fare, begin_lon, begin_lat, ts from  hudi_incr_table where fare > 20.0").show()
+``` 
+
+This will give all changes that happened after the beginTime commit with the filter of fare > 20.0. The unique thing about this
+feature is that it now lets you author streaming pipelines on batch data.
+{: .notice--info}
+
+## Point in time query
+
+Lets look at how to query data as of a specific time. The specific time can be represented by pointing endTime to a 
+specific commit time and beginTime to "000" (denoting earliest possible commit time). 
+
+```scala
+val beginTime = "000" // Represents all commits > this time.
+val endTime = commits(commits.length - 2) // commit time we are interested in
+
+//incrementally query data
+val incViewDF = spark.read.format("org.apache.hudi").
+    option(VIEW_TYPE_OPT_KEY, VIEW_TYPE_INCREMENTAL_OPT_VAL).
+    option(BEGIN_INSTANTTIME_OPT_KEY, beginTime).
+    option(END_INSTANTTIME_OPT_KEY, endTime).
+    load(basePath);
+incViewDF.registerTempTable("hudi_incr_table")
+spark.sql("select `_hoodie_commit_time`, fare, begin_lon, begin_lat, ts from  hudi_incr_table where fare > 20.0").show()
+``` 
+
+## Where to go from here?
+
+You can also do the quickstart by [building hudi yourself](https://github.com/apache/incubator-hudi#building-apache-hudi-from-source), 
+and using `--jars <path to hudi_code>/packaging/hudi-spark-bundle/target/hudi-spark-bundle-*.*.*-SNAPSHOT.jar` in the spark-shell command above
+instead of `--packages org.apache.hudi:hudi-spark-bundle:0.5.0-incubating`
+
+Also, we used Spark here to show case the capabilities of Hudi. However, Hudi can support multiple storage types/views and 
+Hudi datasets can be queried from query engines like Hive, Spark, Presto and much more. We have put together a 
+[demo video](https://www.youtube.com/watch?v=VhNgUsxdrD0) that show cases all of this on a docker based setup with all 
+dependent systems running locally. We recommend you replicate the same setup and run the demo yourself, by following 
+steps [here](/docs/0.5.0-docker_demo.html) to get a taste for it. Also, if you are looking for ways to migrate your existing data 
+to Hudi, refer to [migration guide](/docs/0.5.0-migration_guide.html). 
diff --git a/docs/_docs/0.5.0/1_2_structure.md b/docs/_docs/0.5.0/1_2_structure.md
new file mode 100644
index 0000000..cb3a74d
--- /dev/null
+++ b/docs/_docs/0.5.0/1_2_structure.md
@@ -0,0 +1,22 @@
+---
+version: 0.5.0
+title: Structure
+keywords: big data, stream processing, cloud, hdfs, storage, upserts, change capture
+permalink: /docs/0.5.0-structure.html
+summary: "Hudi brings stream processing to big data, providing fresh data while being an order of magnitude efficient over traditional batch processing."
+last_modified_at: 2019-12-30T15:59:57-04:00
+---
+
+Hudi (pronounced “Hoodie”) ingests & manages storage of large analytical datasets over DFS ([HDFS](http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html) or cloud stores) and provides three logical views for query access.
+
+ * **Read Optimized View** - Provides excellent query performance on pure columnar storage, much like plain [Parquet](https://parquet.apache.org/) tables.
+ * **Incremental View** - Provides a change stream out of the dataset to feed downstream jobs/ETLs.
+ * **Near-Real time Table** - Provides queries on real-time data, using a combination of columnar & row based storage (e.g Parquet + [Avro](http://avro.apache.org/docs/current/mr.html))
+
+<figure>
+    <img class="docimage" src="/assets/images/hudi_intro_1.png" alt="hudi_intro_1.png" />
+</figure>
+
+By carefully managing how data is laid out in storage & how it’s exposed to queries, Hudi is able to power a rich data ecosystem where external sources can be ingested in near real-time and made available for interactive SQL Engines like [Presto](https://prestodb.io) & [Spark](https://spark.apache.org/sql/), while at the same time capable of being consumed incrementally from processing/ETL frameworks like [Hive](https://hive.apache.org/) & [Spark](https://spark.apache.org/docs/latest/) t [...]
+
+Hudi broadly consists of a self contained Spark library to build datasets and integrations with existing query engines for data access. See [quickstart](/docs/0.5.0-quick-start-guide) for a demo.
diff --git a/docs/_docs/0.5.0/1_3_use_cases.cn.md b/docs/_docs/0.5.0/1_3_use_cases.cn.md
new file mode 100644
index 0000000..422091e
--- /dev/null
+++ b/docs/_docs/0.5.0/1_3_use_cases.cn.md
@@ -0,0 +1,69 @@
+---
+version: 0.5.0
+title: 使用案例
+keywords: hudi, data ingestion, etl, real time, use cases
+permalink: /cn/docs/0.5.0-use_cases.html
+summary: "Following are some sample use-cases for Hudi, which illustrate the benefits in terms of faster processing & increased efficiency"
+toc: true
+last_modified_at: 2019-12-30T15:59:57-04:00
+language: cn
+---
+
+以下是一些使用Hudi的示例,说明了加快处理速度和提高效率的好处
+
+## 近实时摄取
+
+将外部源(如事件日志、数据库、外部源)的数据摄取到[Hadoop数据湖](http://martinfowler.com/bliki/DataLake.html)是一个众所周知的问题。
+尽管这些数据对整个组织来说是最有价值的,但不幸的是,在大多数(如果不是全部)Hadoop部署中都使用零散的方式解决,即使用多个不同的摄取工具。
+
+
+对于RDBMS摄取,Hudi提供 __通过更新插入达到更快加载__,而不是昂贵且低效的批量加载。例如,您可以读取MySQL BIN日志或[Sqoop增量导入](https://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_incremental_imports)并将其应用于
+DFS上的等效Hudi表。这比[批量合并任务](https://sqoop.apache.org/docs/1.4.0-incubating/SqoopUserGuide.html#id1770457)及[复杂的手工合并工作流](http://hortonworks.com/blog/four-step-strategy-incremental-updates-hive/)更快/更有效率。
+
+
+对于NoSQL数据存储,如[Cassandra](http://cassandra.apache.org/) / [Voldemort](http://www.project-voldemort.com/voldemort/) / [HBase](https://hbase.apache.org/),即使是中等规模大小也会存储数十亿行。
+毫无疑问, __全量加载不可行__,如果摄取需要跟上较高的更新量,那么则需要更有效的方法。
+
+
+即使对于像[Kafka](kafka.apache.org)这样的不可变数据源,Hudi也可以 __强制在HDFS上使用最小文件大小__, 这采取了综合方式解决[HDFS小文件问题](https://blog.cloudera.com/blog/2009/02/the-small-files-problem/)来改善NameNode的健康状况。这对事件流来说更为重要,因为它通常具有较高容量(例如:点击流),如果管理不当,可能会对Hadoop集群造成严重损害。
+
+在所有源中,通过`commits`这一概念,Hudi增加了以原子方式向消费者发布新数据的功能,这种功能十分必要。
+
+## 近实时分析
+
+通常,实时[数据集市](https://en.wikipedia.org/wiki/Data_mart)由专业(实时)数据分析存储提供支持,例如[Druid](http://druid.io/)或[Memsql](http://www.memsql.com/)或[OpenTSDB](http://opentsdb.net/)。
+这对于较小规模的数据量来说绝对是完美的([相比于这样安装Hadoop](https://blog.twitter.com/2015/hadoop-filesystem-at-twitter)),这种情况需要在亚秒级响应查询,例如系统监控或交互式实时分析。
+但是,由于Hadoop上的数据太陈旧了,通常这些系统会被滥用于非交互式查询,这导致利用率不足和硬件/许可证成本的浪费。
+
+另一方面,Hadoop上的交互式SQL解决方案(如Presto和SparkSQL)表现出色,在 __几秒钟内完成查询__。
+通过将 __数据新鲜度提高到几分钟__,Hudi可以提供一个更有效的替代方案,并支持存储在DFS中的 __数量级更大的数据集__ 的实时分析。
+此外,Hudi没有外部依赖(如专用于实时分析的HBase集群),因此可以在更新的分析上实现更快的分析,而不会增加操作开销。
+
+
+## 增量处理管道
+
+Hadoop提供的一个基本能力是构建一系列数据集,这些数据集通过表示为工作流的DAG相互派生。
+工作流通常取决于多个上游工作流输出的新数据,新数据的可用性传统上由新的DFS文件夹/Hive分区指示。
+让我们举一个具体的例子来说明这点。上游工作流`U`可以每小时创建一个Hive分区,在每小时结束时(processing_time)使用该小时的数据(event_time),提供1小时的有效新鲜度。
+然后,下游工作流`D`在`U`结束后立即启动,并在下一个小时内自行处理,将有效延迟时间增加到2小时。
+
+上面的示例忽略了迟到的数据,即`processing_time`和`event_time`分开时。
+不幸的是,在今天的后移动和前物联网世界中,__来自间歇性连接的移动设备和传感器的延迟数据是常态,而不是异常__。
+在这种情况下,保证正确性的唯一补救措施是[重新处理最后几个小时](https://falcon.apache.org/FalconDocumentation.html#Handling_late_input_data)的数据,
+每小时一遍又一遍,这可能会严重影响整个生态系统的效率。例如; 试想一下,在数百个工作流中每小时重新处理TB数据。
+
+Hudi通过以单个记录为粒度的方式(而不是文件夹/分区)从上游 Hudi数据集`HU`消费新数据(包括迟到数据),来解决上面的问题。
+应用处理逻辑,并使用下游Hudi数据集`HD`高效更新/协调迟到数据。在这里,`HU`和`HD`可以以更频繁的时间被连续调度
+比如15分钟,并且`HD`提供端到端30分钟的延迟。
+
+为实现这一目标,Hudi采用了类似于[Spark Streaming](https://spark.apache.org/docs/latest/streaming-programming-guide.html#join-operations)、发布/订阅系统等流处理框架,以及像[Kafka](http://kafka.apache.org/documentation/#theconsumer)
+或[Oracle XStream](https://docs.oracle.com/cd/E11882_01/server.112/e16545/xstrm_cncpt.htm#XSTRM187)等数据库复制技术的类似概念。
+如果感兴趣,可以在[这里](https://www.oreilly.com/ideas/ubers-case-for-incremental-processing-on-hadoop)找到有关增量处理(相比于流处理和批处理)好处的更详细解释。
+
+## DFS的数据分发
+
+一个常用场景是先在Hadoop上处理数据,然后将其分发回在线服务存储层,以供应用程序使用。
+例如,一个Spark管道可以[确定Hadoop上的紧急制动事件](https://eng.uber.com/telematics/)并将它们加载到服务存储层(如ElasticSearch)中,供Uber应用程序使用以增加安全驾驶。这种用例中,通常架构会在Hadoop和服务存储之间引入`队列`,以防止目标服务存储被压垮。
+对于队列的选择,一种流行的选择是Kafka,这个模型经常导致 __在DFS上存储相同数据的冗余(用于计算结果的离线分析)和Kafka(用于分发)__
+
+通过将每次运行的Spark管道更新插入的输出转换为Hudi数据集,Hudi可以再次有效地解决这个问题,然后可以以增量方式获取尾部数据(就像Kafka topic一样)然后写入服务存储层。
diff --git a/docs/_docs/0.5.0/1_3_use_cases.md b/docs/_docs/0.5.0/1_3_use_cases.md
new file mode 100644
index 0000000..0be9d90
--- /dev/null
+++ b/docs/_docs/0.5.0/1_3_use_cases.md
@@ -0,0 +1,68 @@
+---
+version: 0.5.0
+title: "Use Cases"
+keywords: hudi, data ingestion, etl, real time, use cases
+permalink: /docs/0.5.0-use_cases.html
+summary: "Following are some sample use-cases for Hudi, which illustrate the benefits in terms of faster processing & increased efficiency"
+toc: true
+last_modified_at: 2019-12-30T15:59:57-04:00
+---
+
+## Near Real-Time Ingestion
+
+Ingesting data from external sources like (event logs, databases, external sources) into a [Hadoop Data Lake](http://martinfowler.com/bliki/DataLake.html) is a well known problem.
+In most (if not all) Hadoop deployments, it is unfortunately solved in a piecemeal fashion, using a medley of ingestion tools,
+even though this data is arguably the most valuable for the entire organization.
+
+For RDBMS ingestion, Hudi provides __faster loads via Upserts__, as opposed costly & inefficient bulk loads. For e.g, you can read the MySQL BIN log or [Sqoop Incremental Import](https://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_incremental_imports) and apply them to an
+equivalent Hudi table on DFS. This would be much faster/efficient than a [bulk merge job](https://sqoop.apache.org/docs/1.4.0-incubating/SqoopUserGuide.html#id1770457)
+or [complicated handcrafted merge workflows](http://hortonworks.com/blog/four-step-strategy-incremental-updates-hive/)
+
+For NoSQL datastores like [Cassandra](http://cassandra.apache.org/) / [Voldemort](http://www.project-voldemort.com/voldemort/) / [HBase](https://hbase.apache.org/), even moderately big installations store billions of rows.
+It goes without saying that __full bulk loads are simply infeasible__ and more efficient approaches are needed if ingestion is to keep up with the typically high update volumes.
+
+Even for immutable data sources like [Kafka](kafka.apache.org) , Hudi helps __enforces a minimum file size on HDFS__, which improves NameNode health by solving one of the [age old problems in Hadoop land](https://blog.cloudera.com/blog/2009/02/the-small-files-problem/) in a holistic way. This is all the more important for event streams, since typically its higher volume (eg: click streams) and if not managed well, can cause serious damage to your Hadoop cluster.
+
+Across all sources, Hudi adds the much needed ability to atomically publish new data to consumers via notion of commits, shielding them from partial ingestion failures
+
+
+## Near Real-time Analytics
+
+Typically, real-time [datamarts](https://en.wikipedia.org/wiki/Data_mart) are powered by specialized analytical stores such as [Druid](http://druid.io/) or [Memsql](http://www.memsql.com/) or [even OpenTSDB](http://opentsdb.net/) .
+This is absolutely perfect for lower scale ([relative to Hadoop installations like this](https://blog.twitter.com/2015/hadoop-filesystem-at-twitter)) data, that needs sub-second query responses such as system monitoring or interactive real-time analysis.
+But, typically these systems end up getting abused for less interactive queries also since data on Hadoop is intolerably stale. This leads to under utilization & wasteful hardware/license costs.
+
+On the other hand, interactive SQL solutions on Hadoop such as Presto & SparkSQL excel in __queries that finish within few seconds__.
+By bringing __data freshness to a few minutes__, Hudi can provide a much efficient alternative, as well unlock real-time analytics on __several magnitudes larger datasets__ stored in DFS.
+Also, Hudi has no external dependencies (like a dedicated HBase cluster, purely used for real-time analytics) and thus enables faster analytics on much fresher analytics, without increasing the operational overhead.
+
+
+## Incremental Processing Pipelines
+
+One fundamental ability Hadoop provides is to build a chain of datasets derived from each other via DAGs expressed as workflows.
+Workflows often depend on new data being output by multiple upstream workflows and traditionally, availability of new data is indicated by a new DFS Folder/Hive Partition.
+Let's take a concrete example to illustrate this. An upstream workflow `U` can create a Hive partition for every hour, with data for that hour (event_time) at the end of each hour (processing_time), providing effective freshness of 1 hour.
+Then, a downstream workflow `D`, kicks off immediately after `U` finishes, and does its own processing for the next hour, increasing the effective latency to 2 hours.
+
+The above paradigm simply ignores late arriving data i.e when `processing_time` and `event_time` drift apart.
+Unfortunately, in today's post-mobile & pre-IoT world, __late data from intermittently connected mobile devices & sensors are the norm, not an anomaly__.
+In such cases, the only remedy to guarantee correctness is to [reprocess the last few hours](https://falcon.apache.org/FalconDocumentation.html#Handling_late_input_data) worth of data,
+over and over again each hour, which can significantly hurt the efficiency across the entire ecosystem. For e.g; imagine reprocessing TBs worth of data every hour across hundreds of workflows.
+
+Hudi comes to the rescue again, by providing a way to consume new data (including late data) from an upsteam Hudi dataset `HU` at a record granularity (not folders/partitions),
+apply the processing logic, and efficiently update/reconcile late data with a downstream Hudi dataset `HD`. Here, `HU` and `HD` can be continuously scheduled at a much more frequent schedule
+like 15 mins, and providing an end-end latency of 30 mins at `HD`.
+
+To achieve this, Hudi has embraced similar concepts from stream processing frameworks like [Spark Streaming](https://spark.apache.org/docs/latest/streaming-programming-guide.html#join-operations) , Pub/Sub systems like [Kafka](http://kafka.apache.org/documentation/#theconsumer)
+or database replication technologies like [Oracle XStream](https://docs.oracle.com/cd/E11882_01/server.112/e16545/xstrm_cncpt.htm#XSTRM187).
+For the more curious, a more detailed explanation of the benefits of Incremental Processing (compared to Stream Processing & Batch Processing) can be found [here](https://www.oreilly.com/ideas/ubers-case-for-incremental-processing-on-hadoop)
+
+
+## Data Dispersal From DFS
+
+A popular use-case for Hadoop, is to crunch data and then disperse it back to an online serving store, to be used by an application.
+For e.g, a Spark Pipeline can [determine hard braking events on Hadoop](https://eng.uber.com/telematics/) and load them into a serving store like ElasticSearch, to be used by the Uber application to increase safe driving. Typical architectures for this employ a `queue` between Hadoop and serving store, to prevent overwhelming the target serving store.
+A popular choice for this queue is Kafka and this model often results in __redundant storage of same data on DFS (for offline analysis on computed results) and Kafka (for dispersal)__
+
+Once again Hudi can efficiently solve this problem, by having the Spark Pipeline upsert output from
+each run into a Hudi dataset, which can then be incrementally tailed (just like a Kafka topic) for new data & written into the serving store.
diff --git a/docs/_docs/0.5.0/1_4_powered_by.cn.md b/docs/_docs/0.5.0/1_4_powered_by.cn.md
new file mode 100644
index 0000000..715a949
--- /dev/null
+++ b/docs/_docs/0.5.0/1_4_powered_by.cn.md
@@ -0,0 +1,59 @@
+---
+version: 0.5.0
+title: 演讲 & Hudi 用户
+keywords: hudi, talks, presentation
+permalink: /cn/docs/0.5.0-powered_by.html
+last_modified_at: 2019-12-31T15:59:57-04:00
+language: cn
+---
+
+## 已使用
+
+### Uber
+
+Hudi最初由[Uber](https://uber.com)开发,用于实现[低延迟、高效率的数据库摄取](http://www.slideshare.net/vinothchandar/hadoop-strata-talk-uber-your-hadoop-has-arrived/32)。
+Hudi自2016年8月开始在生产环境上线,在Hadoop上驱动约100个非常关键的业务表,支撑约几百TB的数据规模(前10名包括行程、乘客、司机)。
+Hudi还支持几个增量的Hive ETL管道,并且目前已集成到Uber的数据分发系统中。
+
+### EMIS Health
+
+[EMIS Health](https://www.emishealth.com/)是英国最大的初级保健IT软件提供商,其数据集包括超过5000亿的医疗保健记录。HUDI用于管理生产中的分析数据集,并使其与上游源保持同步。Presto用于查询以HUDI格式写入的数据。
+
+### Yields.io
+
+Yields.io是第一个使用AI在企业范围内进行自动模型验证和实时监控的金融科技平台。他们的数据湖由Hudi管理,他们还积极使用Hudi为增量式、跨语言/平台机器学习构建基础架构。
+
+### Yotpo
+
+Hudi在Yotpo有不少用途。首先,在他们的[开源ETL框架](https://github.com/YotpoLtd/metorikku)中集成了Hudi作为CDC管道的输出写入程序,即从数据库binlog生成的事件流到Kafka然后再写入S3。
+
+## 演讲 & 报告
+
+1. ["Hoodie: Incremental processing on Hadoop at Uber"](https://conferences.oreilly.com/strata/strata-ca/public/schedule/detail/56511) -  By Vinoth Chandar & Prasanna Rajaperumal
+   Mar 2017, Strata + Hadoop World, San Jose, CA
+
+2. ["Hoodie: An Open Source Incremental Processing Framework From Uber"](http://www.dataengconf.com/hoodie-an-open-source-incremental-processing-framework-from-uber) - By Vinoth Chandar.
+   Apr 2017, DataEngConf, San Francisco, CA [Slides](https://www.slideshare.net/vinothchandar/hoodie-dataengconf-2017) [Video](https://www.youtube.com/watch?v=7Wudjc-v7CA)
+
+
+3. ["Incremental Processing on Large Analytical Datasets"](https://spark-summit.org/2017/events/incremental-processing-on-large-analytical-datasets/) - By Prasanna Rajaperumal
+   June 2017, Spark Summit 2017, San Francisco, CA. [Slides](https://www.slideshare.net/databricks/incremental-processing-on-large-analytical-datasets-with-prasanna-rajaperumal-and-vinoth-chandar) [Video](https://www.youtube.com/watch?v=3HS0lQX-cgo&feature=youtu.be)
+
+4. ["Hudi: Unifying storage and serving for batch and near-real-time analytics"](https://conferences.oreilly.com/strata/strata-ny/public/schedule/detail/70937) - By Nishith Agarwal & Balaji Vardarajan
+   September 2018, Strata Data Conference, New York, NY
+
+5. ["Hudi: Large-Scale, Near Real-Time Pipelines at Uber"](https://databricks.com/session/hudi-near-real-time-spark-pipelines-at-petabyte-scale) - By Vinoth Chandar & Nishith Agarwal
+   October 2018, Spark+AI Summit Europe, London, UK
+
+6. ["Powering Uber's global network analytics pipelines in real-time with Apache Hudi"](https://www.youtube.com/watch?v=1w3IpavhSWA) - By Ethan Guo & Nishith Agarwal, April 2019, Data Council SF19, San Francisco, CA.
+
+7. ["Building highly efficient data lakes using Apache Hudi (Incubating)"](https://www.slideshare.net/ChesterChen/sf-big-analytics-20190612-building-highly-efficient-data-lakes-using-apache-hudi) - By Vinoth Chandar 
+   June 2019, SF Big Analytics Meetup, San Mateo, CA
+   
+8. ["Apache Hudi (Incubating) - The Past, Present and Future Of Efficient Data Lake Architectures"](https://docs.google.com/presentation/d/1FHhsvh70ZP6xXlHdVsAI0g__B_6Mpto5KQFlZ0b8-mM) - By Vinoth Chandar & Balaji Varadarajan
+   September 2019, ApacheCon NA 19, Las Vegas, NV, USA
+
+## 文章
+
+1. ["The Case for incremental processing on Hadoop"](https://www.oreilly.com/ideas/ubers-case-for-incremental-processing-on-hadoop) - O'reilly Ideas article by Vinoth Chandar
+2. ["Hoodie: Uber Engineering's Incremental Processing Framework on Hadoop"](https://eng.uber.com/hoodie/) - Engineering Blog By Prasanna Rajaperumal
diff --git a/docs/_docs/0.5.0/1_4_powered_by.md b/docs/_docs/0.5.0/1_4_powered_by.md
new file mode 100644
index 0000000..1da848a
--- /dev/null
+++ b/docs/_docs/0.5.0/1_4_powered_by.md
@@ -0,0 +1,70 @@
+---
+version: 0.5.0
+title: "Talks & Powered By"
+keywords: hudi, talks, presentation
+permalink: /docs/0.5.0-powered_by.html
+last_modified_at: 2019-12-31T15:59:57-04:00
+---
+
+## Adoption
+
+### Uber
+
+Apache Hudi was originally developed at [Uber](https://uber.com), to achieve [low latency database ingestion, with high efficiency](http://www.slideshare.net/vinothchandar/hadoop-strata-talk-uber-your-hadoop-has-arrived/32).
+It has been in production since Aug 2016, powering the massive [100PB data lake](https://eng.uber.com/uber-big-data-platform/), including highly business critical tables like core trips,riders,partners. It also 
+powers several incremental Hive ETL pipelines and being currently integrated into Uber's data dispersal system.
+
+### Amazon Web Services
+Amazon Web Services is the World's leading cloud services provider. Apache Hudi is [pre-installed](https://aws.amazon.com/emr/features/hudi/) with the AWS Elastic Map Reduce 
+offering, providing means for AWS users to perform record-level updates/deletes and manage storage efficiently.
+
+### EMIS Health
+
+[EMIS Health](https://www.emishealth.com/) is the largest provider of Primary Care IT software in the UK with datasets including more than 500Bn healthcare records. HUDI is used to manage their analytics dataset in production and keeping them up-to-date with their upstream source. Presto is being used to query the data written in HUDI format.
+
+### Yields.io
+
+Yields.io is the first FinTech platform that uses AI for automated model validation and real-time monitoring on an enterprise-wide scale. Their data lake is managed by Hudi. They are also actively building their infrastructure for incremental, cross language/platform machine learning using Hudi.
+
+### Yotpo
+
+Using Hudi at Yotpo for several usages. Firstly, integrated Hudi as a writer in their open source ETL framework https://github.com/YotpoLtd/metorikku and using as an output writer for a CDC pipeline, with events that are being generated from a database binlog streams to Kafka and then are written to S3. 
+ 
+### Tathastu.ai
+
+[Tathastu.ai](https://www.tathastu.ai) offers the largest AI/ML playground of consumer data for data scientists, AI experts and technologists to build upon. They have built a CDC pipeline using Apache Hudi and Debezium. Data from Hudi datasets is being queried using Hive, Presto and Spark.
+
+## Talks & Presentations
+
+1. ["Hoodie: Incremental processing on Hadoop at Uber"](https://conferences.oreilly.com/strata/strata-ca/public/schedule/detail/56511) -  By Vinoth Chandar & Prasanna Rajaperumal
+   Mar 2017, Strata + Hadoop World, San Jose, CA
+
+2. ["Hoodie: An Open Source Incremental Processing Framework From Uber"](http://www.dataengconf.com/hoodie-an-open-source-incremental-processing-framework-from-uber) - By Vinoth Chandar.
+   Apr 2017, DataEngConf, San Francisco, CA [Slides](https://www.slideshare.net/vinothchandar/hoodie-dataengconf-2017) [Video](https://www.youtube.com/watch?v=7Wudjc-v7CA)
+
+3. ["Incremental Processing on Large Analytical Datasets"](https://spark-summit.org/2017/events/incremental-processing-on-large-analytical-datasets/) - By Prasanna Rajaperumal
+   June 2017, Spark Summit 2017, San Francisco, CA. [Slides](https://www.slideshare.net/databricks/incremental-processing-on-large-analytical-datasets-with-prasanna-rajaperumal-and-vinoth-chandar) [Video](https://www.youtube.com/watch?v=3HS0lQX-cgo&feature=youtu.be)
+
+4. ["Hudi: Unifying storage and serving for batch and near-real-time analytics"](https://conferences.oreilly.com/strata/strata-ny/public/schedule/detail/70937) - By Nishith Agarwal & Balaji Vardarajan
+   September 2018, Strata Data Conference, New York, NY
+
+5. ["Hudi: Large-Scale, Near Real-Time Pipelines at Uber"](https://databricks.com/session/hudi-near-real-time-spark-pipelines-at-petabyte-scale) - By Vinoth Chandar & Nishith Agarwal
+   October 2018, Spark+AI Summit Europe, London, UK
+
+6. ["Powering Uber's global network analytics pipelines in real-time with Apache Hudi"](https://www.youtube.com/watch?v=1w3IpavhSWA) - By Ethan Guo & Nishith Agarwal, April 2019, Data Council SF19, San Francisco, CA.
+
+7. ["Building highly efficient data lakes using Apache Hudi (Incubating)"](https://www.slideshare.net/ChesterChen/sf-big-analytics-20190612-building-highly-efficient-data-lakes-using-apache-hudi) - By Vinoth Chandar 
+   June 2019, SF Big Analytics Meetup, San Mateo, CA
+
+8. ["Apache Hudi (Incubating) - The Past, Present and Future Of Efficient Data Lake Architectures"](https://docs.google.com/presentation/d/1FHhsvh70ZP6xXlHdVsAI0g__B_6Mpto5KQFlZ0b8-mM) - By Vinoth Chandar & Balaji Varadarajan
+   September 2019, ApacheCon NA 19, Las Vegas, NV, USA
+  
+9. ["Insert, upsert, and delete data in Amazon S3 using Amazon EMR"](https://www.portal.reinvent.awsevents.com/connect/sessionDetail.ww?SESSION_ID=98662&csrftkn=YS67-AG7B-QIAV-ZZBK-E6TT-MD4Q-1HEP-747P) - By Paul Codding & Vinoth Chandar
+   December 2019, AWS re:Invent 2019, Las Vegas, NV, USA  
+       
+10. ["Building Robust CDC Pipeline With Apache Hudi And Debezium"](https://www.slideshare.net/SyedKather/building-robust-cdc-pipeline-with-apache-hudi-and-debezium) - By Pratyaksh, Purushotham, Syed and Shaik December 2019, Hadoop Summit Bangalore, India
+
+## Articles
+
+1. ["The Case for incremental processing on Hadoop"](https://www.oreilly.com/ideas/ubers-case-for-incremental-processing-on-hadoop) - O'reilly Ideas article by Vinoth Chandar
+2. ["Hoodie: Uber Engineering's Incremental Processing Framework on Hadoop"](https://eng.uber.com/hoodie/) - Engineering Blog By Prasanna Rajaperumal
diff --git a/docs/_docs/0.5.0/1_5_comparison.cn.md b/docs/_docs/0.5.0/1_5_comparison.cn.md
new file mode 100644
index 0000000..49e9cb0
--- /dev/null
+++ b/docs/_docs/0.5.0/1_5_comparison.cn.md
@@ -0,0 +1,50 @@
+---
+version: 0.5.0
+title: 对比
+keywords: apache, hudi, kafka, kudu, hive, hbase, stream processing
+permalink: /cn/docs/0.5.0-comparison.html
+last_modified_at: 2019-12-30T15:59:57-04:00
+language: cn
+---
+
+Apache Hudi填补了在DFS上处理数据的巨大空白,并可以和这些技术很好地共存。然而,
+通过将Hudi与一些相关系统进行对比,来了解Hudi如何适应当前的大数据生态系统,并知晓这些系统在设计中做的不同权衡仍将非常有用。
+
+## Kudu
+
+[Apache Kudu](https://kudu.apache.org)是一个与Hudi具有相似目标的存储系统,该系统通过对`upserts`支持来对PB级数据进行实时分析。
+一个关键的区别是Kudu还试图充当OLTP工作负载的数据存储,而Hudi并不希望这样做。
+因此,Kudu不支持增量拉取(截至2017年初),而Hudi支持以便进行增量处理。
+
+Kudu与分布式文件系统抽象和HDFS完全不同,它自己的一组存储服务器通过RAFT相互通信。
+与之不同的是,Hudi旨在与底层Hadoop兼容的文件系统(HDFS,S3或Ceph)一起使用,并且没有自己的存储服务器群,而是依靠Apache Spark来完成繁重的工作。
+因此,Hudi可以像其他Spark作业一样轻松扩展,而Kudu则需要硬件和运营支持,特别是HBase或Vertica等数据存储系统。
+到目前为止,我们还没有做任何直接的基准测试来比较Kudu和Hudi(鉴于RTTable正在进行中)。
+但是,如果我们要使用[CERN](https://db-blog.web.cern.ch/blog/zbigniew-baranowski/2017-01-performance-comparison-different-file-formats-and-storage-engines),
+我们预期Hudi在摄取parquet上有更卓越的性能。
+
+## Hive事务
+
+[Hive事务/ACID](https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions)是另一项类似的工作,它试图实现在ORC文件格式之上的存储`读取时合并`。
+可以理解,此功能与Hive以及[LLAP](https://cwiki.apache.org/confluence/display/Hive/LLAP)之类的其他工作紧密相关。
+Hive事务不提供Hudi提供的读取优化存储选项或增量拉取。
+在实现选择方面,Hudi充分利用了类似Spark的处理框架的功能,而Hive事务特性则在用户或Hive Metastore启动的Hive任务/查询的下实现。
+根据我们的生产经验,与其他方法相比,将Hudi作为库嵌入到现有的Spark管道中要容易得多,并且操作不会太繁琐。
+Hudi还设计用于与Presto/Spark等非Hive引擎合作,并计划引入除parquet以外的文件格式。
+
+## HBase
+
+尽管[HBase](https://hbase.apache.org)最终是OLTP工作负载的键值存储层,但由于与Hadoop的相似性,用户通常倾向于将HBase与分析相关联。
+鉴于HBase经过严格的写优化,它支持开箱即用的亚秒级更新,Hive-on-HBase允许用户查询该数据。 但是,就分析工作负载的实际性能而言,Parquet/ORC之类的混合列式存储格式可以轻松击败HBase,因为这些工作负载主要是读取繁重的工作。
+Hudi弥补了更快的数据与分析存储格式之间的差距。从运营的角度来看,与管理分析使用的HBase region服务器集群相比,为用户提供可更快给出数据的库更具可扩展性。
+最终,HBase不像Hudi这样重点支持`提交时间`、`增量拉取`之类的增量处理原语。
+
+## 流式处理
+
+一个普遍的问题:"Hudi与流处理系统有何关系?",我们将在这里尝试回答。简而言之,Hudi可以与当今的批处理(`写时复制存储`)和流处理(`读时合并存储`)作业集成,以将计算结果存储在Hadoop中。
+对于Spark应用程序,这可以通过将Hudi库与Spark/Spark流式DAG直接集成来实现。在非Spark处理系统(例如Flink、Hive)情况下,可以在相应的系统中进行处理,然后通过Kafka主题/DFS中间文件将其发送到Hudi表中。从概念上讲,数据处理
+管道仅由三个部分组成:`输入`,`处理`,`输出`,用户最终针对输出运行查询以便使用管道的结果。Hudi可以充当将数据存储在DFS上的输入或输出。Hudi在给定流处理管道上的适用性最终归结为你的查询在Presto/SparkSQL/Hive的适用性。
+
+更高级的用例围绕[增量处理](https://www.oreilly.com/ideas/ubers-case-for-incremental-processing-on-hadoop)的概念展开,
+甚至在`处理`引擎内部也使用Hudi来加速典型的批处理管道。例如:Hudi可用作DAG内的状态存储(类似Flink使用的[rocksDB(https://ci.apache.org/projects/flink/flink-docs-release-1.2/ops/state_backends.html#the-rocksdbstatebackend))。
+这是路线图上的一个项目并将最终以[Beam Runner](https://issues.apache.org/jira/browse/HUDI-60)的形式呈现。
\ No newline at end of file
diff --git a/docs/_docs/0.5.0/1_5_comparison.md b/docs/_docs/0.5.0/1_5_comparison.md
new file mode 100644
index 0000000..4cf40f0
--- /dev/null
+++ b/docs/_docs/0.5.0/1_5_comparison.md
@@ -0,0 +1,58 @@
+---
+version: 0.5.0
+title: "Comparison"
+keywords: apache, hudi, kafka, kudu, hive, hbase, stream processing
+permalink: /docs/0.5.0-comparison.html
+last_modified_at: 2019-12-30T15:59:57-04:00
+---
+
+Apache Hudi fills a big void for processing data on top of DFS, and thus mostly co-exists nicely with these technologies. However,
+it would be useful to understand how Hudi fits into the current big data ecosystem, contrasting it with a few related systems
+and bring out the different tradeoffs these systems have accepted in their design.
+
+## Kudu
+
+[Apache Kudu](https://kudu.apache.org) is a storage system that has similar goals as Hudi, which is to bring real-time analytics on petabytes of data via first
+class support for `upserts`. A key differentiator is that Kudu also attempts to serve as a datastore for OLTP workloads, something that Hudi does not aspire to be.
+Consequently, Kudu does not support incremental pulling (as of early 2017), something Hudi does to enable incremental processing use cases.
+
+
+Kudu diverges from a distributed file system abstraction and HDFS altogether, with its own set of storage servers talking to each  other via RAFT.
+Hudi, on the other hand, is designed to work with an underlying Hadoop compatible filesystem (HDFS,S3 or Ceph) and does not have its own fleet of storage servers,
+instead relying on Apache Spark to do the heavy-lifting. Thu, Hudi can be scaled easily, just like other Spark jobs, while Kudu would require hardware
+& operational support, typical to datastores like HBase or Vertica. We have not at this point, done any head to head benchmarks against Kudu (given RTTable is WIP).
+But, if we were to go with results shared by [CERN](https://db-blog.web.cern.ch/blog/zbigniew-baranowski/2017-01-performance-comparison-different-file-formats-and-storage-engines) ,
+we expect Hudi to positioned at something that ingests parquet with superior performance.
+
+
+## Hive Transactions
+
+[Hive Transactions/ACID](https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions) is another similar effort, which tries to implement storage like
+`merge-on-read`, on top of ORC file format. Understandably, this feature is heavily tied to Hive and other efforts like [LLAP](https://cwiki.apache.org/confluence/display/Hive/LLAP).
+Hive transactions does not offer the read-optimized storage option or the incremental pulling, that Hudi does. In terms of implementation choices, Hudi leverages
+the full power of a processing framework like Spark, while Hive transactions feature is implemented underneath by Hive tasks/queries kicked off by user or the Hive metastore.
+Based on our production experience, embedding Hudi as a library into existing Spark pipelines was much easier and less operationally heavy, compared with the other approach.
+Hudi is also designed to work with non-hive enginers like Presto/Spark and will incorporate file formats other than parquet over time.
+
+## HBase
+
+Even though [HBase](https://hbase.apache.org) is ultimately a key-value store for OLTP workloads, users often tend to associate HBase with analytics given the proximity to Hadoop.
+Given HBase is heavily write-optimized, it supports sub-second upserts out-of-box and Hive-on-HBase lets users query that data. However, in terms of actual performance for analytical workloads,
+hybrid columnar storage formats like Parquet/ORC handily beat HBase, since these workloads are predominantly read-heavy. Hudi bridges this gap between faster data and having
+analytical storage formats. From an operational perspective, arming users with a library that provides faster data, is more scalable, than managing a big farm of HBase region servers,
+just for analytics. Finally, HBase does not support incremental processing primitives like `commit times`, `incremental pull` as first class citizens like Hudi.
+
+## Stream Processing
+
+A popular question, we get is : "How does Hudi relate to stream processing systems?", which we will try to answer here. Simply put, Hudi can integrate with
+batch (`copy-on-write storage`) and streaming (`merge-on-read storage`) jobs of today, to store the computed results in Hadoop. For Spark apps, this can happen via direct
+integration of Hudi library with Spark/Spark streaming DAGs. In case of Non-Spark processing systems (eg: Flink, Hive), the processing can be done in the respective systems
+and later sent into a Hudi table via a Kafka topic/DFS intermediate file. In more conceptual level, data processing
+pipelines just consist of three components : `source`, `processing`, `sink`, with users ultimately running queries against the sink to use the results of the pipeline.
+Hudi can act as either a source or sink, that stores data on DFS. Applicability of Hudi to a given stream processing pipeline ultimately boils down to suitability
+of Presto/SparkSQL/Hive for your queries.
+
+More advanced use cases revolve around the concepts of [incremental processing](https://www.oreilly.com/ideas/ubers-case-for-incremental-processing-on-hadoop), which effectively
+uses Hudi even inside the `processing` engine to speed up typical batch pipelines. For e.g: Hudi can be used as a state store inside a processing DAG (similar
+to how [rocksDB](https://ci.apache.org/projects/flink/flink-docs-release-1.2/ops/state_backends.html#the-rocksdbstatebackend) is used by Flink). This is an item on the roadmap
+and will eventually happen as a [Beam Runner](https://issues.apache.org/jira/browse/HUDI-60)
diff --git a/docs/_docs/0.5.0/2_1_concepts.cn.md b/docs/_docs/0.5.0/2_1_concepts.cn.md
new file mode 100644
index 0000000..a77d856
--- /dev/null
+++ b/docs/_docs/0.5.0/2_1_concepts.cn.md
@@ -0,0 +1,156 @@
+---
+version: 0.5.0
+title: 概念
+keywords: hudi, design, storage, views, timeline
+permalink: /cn/docs/0.5.0-concepts.html
+summary: "Here we introduce some basic concepts & give a broad technical overview of Hudi"
+toc: true
+last_modified_at: 2019-12-30T15:59:57-04:00
+language: cn
+---
+
+Apache Hudi(发音为“Hudi”)在DFS的数据集上提供以下流原语
+
+ * 插入更新           (如何改变数据集?)
+ * 增量拉取           (如何获取变更的数据?)
+
+在本节中,我们将讨论重要的概念和术语,这些概念和术语有助于理解并有效使用这些原语。
+
+## 时间轴
+在它的核心,Hudi维护一条包含在不同的`即时`时间所有对数据集操作的`时间轴`,从而提供,从不同时间点出发得到不同的视图下的数据集。Hudi即时包含以下组件
+
+ * `操作类型` : 对数据集执行的操作类型
+ * `即时时间` : 即时时间通常是一个时间戳(例如:20190117010349),该时间戳按操作开始时间的顺序单调增加。
+ * `状态` : 即时的状态
+
+Hudi保证在时间轴上执行的操作的原子性和基于即时时间的时间轴一致性。
+
+执行的关键操作包括
+
+ * `COMMITS` - 一次提交表示将一组记录**原子写入**到数据集中。
+ * `CLEANS` - 删除数据集中不再需要的旧文件版本的后台活动。
+ * `DELTA_COMMIT` - 增量提交是指将一批记录**原子写入**到MergeOnRead存储类型的数据集中,其中一些/所有数据都可以只写到增量日志中。
+ * `COMPACTION` - 协调Hudi中差异数据结构的后台活动,例如:将更新从基于行的日志文件变成列格式。在内部,压缩表现为时间轴上的特殊提交。
+ * `ROLLBACK` - 表示提交/增量提交不成功且已回滚,删除在写入过程中产生的所有部分文件。
+ * `SAVEPOINT` - 将某些文件组标记为"已保存",以便清理程序不会将其删除。在发生灾难/数据恢复的情况下,它有助于将数据集还原到时间轴上的某个点。
+
+任何给定的即时都可以处于以下状态之一
+
+ * `REQUESTED` - 表示已调度但尚未启动的操作。
+ * `INFLIGHT` - 表示当前正在执行该操作。
+ * `COMPLETED` - 表示在时间轴上完成了该操作。
+
+<figure>
+    <img class="docimage" src="/assets/images/hudi_timeline.png" alt="hudi_timeline.png" />
+</figure>
+
+上面的示例显示了在Hudi数据集上大约10:00到10:20之间发生的更新事件,大约每5分钟一次,将提交元数据以及其他后台清理/压缩保留在Hudi时间轴上。
+观察的关键点是:提交时间指示数据的`到达时间`(上午10:20),而实际数据组织则反映了实际时间或`事件时间`,即数据所反映的(从07:00开始的每小时时段)。在权衡数据延迟和完整性时,这是两个关键概念。
+
+如果有延迟到达的数据(事件时间为9:00的数据在10:20达到,延迟 >1 小时),我们可以看到upsert将新数据生成到更旧的时间段/文件夹中。
+在时间轴的帮助下,增量查询可以只提取10:00以后成功提交的新数据,并非常高效地只消费更改过的文件,且无需扫描更大的文件范围,例如07:00后的所有时间段。
+
+## 文件组织
... 3157 lines suppressed ...


Mime
View raw message