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/hudi.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 53180b22cd7 [DOCS] Draft of Hudi 1.0 Announce blog (#12502)
53180b22cd7 is described below
commit 53180b22cd735b579985caa83149b5ee23b608fa
Author: vinoth chandar <[email protected]>
AuthorDate: Mon Dec 16 23:36:32 2024 -0800
[DOCS] Draft of Hudi 1.0 Announce blog (#12502)
---
.../backwards-compat-writing.excalidraw | 1120 +++++++++++
.../expression-index-date-partitioning.excalidraw | 1969 ++++++++++++++++++++
website/blog/2024-12-16-announcing-hudi-1-0-0.md | 195 ++
.../assets/images/backwards-compat-writing.png | Bin 0 -> 161889 bytes
.../images/expression-index-date-partitioning.png | Bin 0 -> 122845 bytes
.../static/assets/images/nbcc_partial_updates.gif | Bin 0 -> 804160 bytes
6 files changed, 3284 insertions(+)
diff --git a/site-image-source/backwards-compat-writing.excalidraw
b/site-image-source/backwards-compat-writing.excalidraw
new file mode 100644
index 00000000000..66ffe6ff9bd
--- /dev/null
+++ b/site-image-source/backwards-compat-writing.excalidraw
@@ -0,0 +1,1120 @@
+{
+ "type": "excalidraw",
+ "version": 2,
+ "source": "https://excalidraw.com",
+ "elements": [
+ {
+ "id": "oIBbOYblwcXRC0JHgj8wW",
+ "type": "rectangle",
+ "x": 1114.267578125,
+ "y": 346.232421875,
+ "width": 47.78124999999997,
+ "height": 279.80859375,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#228be6",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b3f",
+ "roundness": null,
+ "seed": 1130605477,
+ "version": 518,
+ "versionNonce": 1202167173,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734404056889,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "oGwO-P6uHR-1oqsFsqVuQ",
+ "type": "rectangle",
+ "x": 716.63671875,
+ "y": 346.328125,
+ "width": 242.71484375,
+ "height": 144.72265625,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#f3f0ff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6W",
+ "roundness": {
+ "type": 3
+ },
+ "seed": 1497530507,
+ "version": 32,
+ "versionNonce": 1513383493,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "id": "mvz6oExjGjlSrmxFQYL4f",
+ "type": "arrow"
+ },
+ {
+ "id": "TGyxThzFmglkFHHsPOiL-",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1734404415336,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "ZJ9RiYgEXHD93mv7y0Q-E",
+ "type": "rectangle",
+ "x": 1108.6171875,
+ "y": 344.59765625,
+ "width": 306.671875,
+ "height": 282.45703125,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6X",
+ "roundness": null,
+ "seed": 2020945579,
+ "version": 96,
+ "versionNonce": 702934661,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "id": "TIUXc_qZfyAKxLpwrFGLR",
+ "type": "arrow"
+ },
+ {
+ "id": "p_sGQTpaiawwcdUPi6PQH",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1734404143134,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "iGqg3Gnhwrjq4cxLNkW4d",
+ "type": "rectangle",
+ "x": 1111.87109375,
+ "y": 345.365234375,
+ "width": 303.25390624999994,
+ "height": 33.62109375,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#1971c2",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6Y",
+ "roundness": null,
+ "seed": 1470220869,
+ "version": 272,
+ "versionNonce": 1193643403,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734404034618,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "dT5Pdi4Q3Jek4vy4CM_1X",
+ "type": "text",
+ "x": 741.25,
+ "y": 374.640625,
+ "width": 190.4198455810547,
+ "height": 75,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6a",
+ "roundness": null,
+ "seed": 1611156811,
+ "version": 123,
+ "versionNonce": 1840289317,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734403915364,
+ "link": null,
+ "locked": false,
+ "text": "Writer\n(binaryVersion=1.0.0\ntableVersions=6,8)",
+ "fontSize": 20,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Writer\n(binaryVersion=1.0.0\ntableVersions=6,8)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "sswS0ySzPT4c6I4HOj2UV",
+ "type": "rectangle",
+ "x": 1269.482421875,
+ "y": 721.029296875,
+ "width": 242.71484375,
+ "height": 144.72265625,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#f3f0ff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6b",
+ "roundness": {
+ "type": 3
+ },
+ "seed": 146730059,
+ "version": 195,
+ "versionNonce": 1952587365,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "id": "Dw02Onhqlyx2JnJHsccR8",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1734404193867,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "o1G-s3gfMH7_ENKQ6yQFr",
+ "type": "text",
+ "x": 1287.7757110595703,
+ "y": 749.341796875,
+ "width": 203.05982971191406,
+ "height": 75,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6c",
+ "roundness": null,
+ "seed": 441527019,
+ "version": 320,
+ "versionNonce": 1797010469,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734403972463,
+ "link": null,
+ "locked": false,
+ "text": "Async Table Services\n(binaryVersion=1.0.0\ntableVersions=6,8)",
+ "fontSize": 20,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Async Table
Services\n(binaryVersion=1.0.0\ntableVersions=6,8)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "ymTQexeZXQ19X8vrvV0BH",
+ "type": "rectangle",
+ "x": 1555.962890625,
+ "y": 342.044921875,
+ "width": 242.71484375,
+ "height": 144.72265625,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#f3f0ff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6d",
+ "roundness": {
+ "type": 3
+ },
+ "seed": 1021024325,
+ "version": 75,
+ "versionNonce": 632992133,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "id": "4lLOUlVX6vMN-oz_h1jRw",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1734404180240,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "WEvrP-z1DeUFY0FG-hA8v",
+ "type": "text",
+ "x": 1580.576171875,
+ "y": 370.357421875,
+ "width": 190.4198455810547,
+ "height": 75,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6e",
+ "roundness": null,
+ "seed": 1017792421,
+ "version": 184,
+ "versionNonce": 956216197,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734403882822,
+ "link": null,
+ "locked": false,
+ "text": "queries\n(binaryVersion=1.0.0\ntableVersions=6,8)",
+ "fontSize": 20,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "queries\n(binaryVersion=1.0.0\ntableVersions=6,8)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "bbbjf9K4POPCfgN4Rkm3u",
+ "type": "rectangle",
+ "x": 1556.931640625,
+ "y": 500.001953125,
+ "width": 242.71484375,
+ "height": 144.72265625,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#fff9db",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6f",
+ "roundness": {
+ "type": 3
+ },
+ "seed": 1567711653,
+ "version": 81,
+ "versionNonce": 467881637,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "id": "4lLOUlVX6vMN-oz_h1jRw",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1734404210438,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "HjnyMAunp3fPGW_d1YnID",
+ "type": "text",
+ "x": 1579.4249215722084,
+ "y": 528.314453125,
+ "width": 194.65984618663788,
+ "height": 75,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6g",
+ "roundness": null,
+ "seed": 1317004549,
+ "version": 188,
+ "versionNonce": 90483205,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734403831672,
+ "link": null,
+ "locked": false,
+ "text": "queries\n(binaryVersion=0.14+\ntableVersion=6)",
+ "fontSize": 20,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "queries\n(binaryVersion=0.14+\ntableVersion=6)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "4lLOUlVX6vMN-oz_h1jRw",
+ "type": "arrow",
+ "x": 1802.22265625,
+ "y": 566.36328125,
+ "width": 87.12890625,
+ "height": 151.1484375,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6h",
+ "roundness": {
+ "type": 2
+ },
+ "seed": 1223404741,
+ "version": 252,
+ "versionNonce": 1577646757,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734403873942,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 85.3125,
+ -80.07421875
+ ],
+ [
+ -1.81640625,
+ -151.1484375
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "startBinding": {
+ "elementId": "bbbjf9K4POPCfgN4Rkm3u",
+ "focus": 0.5922883518289153,
+ "gap": 2.576171875,
+ "fixedPoint": null
+ },
+ "endBinding": {
+ "elementId": "ymTQexeZXQ19X8vrvV0BH",
+ "focus": -0.5812256751253844,
+ "gap": 1.728515625,
+ "fixedPoint": null
+ },
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "elbowed": false
+ },
+ {
+ "id": "kLma69JqsaBuZ8wBPX8bQ",
+ "type": "rectangle",
+ "x": 976.060546875,
+ "y": 721.013671875,
+ "width": 242.71484375,
+ "height": 144.72265625,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#fff9db",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6i",
+ "roundness": {
+ "type": 3
+ },
+ "seed": 1224028139,
+ "version": 267,
+ "versionNonce": 1869690053,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "id": "Dw02Onhqlyx2JnJHsccR8",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1734404217211,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "Hp00HDUCWa66unRvyFjIi",
+ "type": "text",
+ "x": 994.3538360595703,
+ "y": 749.326171875,
+ "width": 203.05982971191406,
+ "height": 75,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6j",
+ "roundness": null,
+ "seed": 1849555595,
+ "version": 404,
+ "versionNonce": 1500104581,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734404010458,
+ "link": null,
+ "locked": false,
+ "text": "Async Table Services\n(binaryVersion=0.14+\ntableVersions=6)",
+ "fontSize": 20,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Async Table
Services\n(binaryVersion=0.14+\ntableVersions=6)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "IVa5OJVcbHsZ5YQgqNMG6",
+ "type": "rectangle",
+ "x": 716.990234375,
+ "y": 509.677734375,
+ "width": 242.71484375,
+ "height": 144.72265625,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#fff9db",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6k",
+ "roundness": {
+ "type": 3
+ },
+ "seed": 1434293157,
+ "version": 91,
+ "versionNonce": 354593893,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "id": "mvz6oExjGjlSrmxFQYL4f",
+ "type": "arrow"
+ }
+ ],
+ "updated": 1734404346389,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "3BClmP91D90ri_J7VaSuy",
+ "type": "text",
+ "x": 739.4835153222084,
+ "y": 537.990234375,
+ "width": 194.65984618663788,
+ "height": 75,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6l",
+ "roundness": null,
+ "seed": 439736069,
+ "version": 190,
+ "versionNonce": 845853675,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734404000545,
+ "link": null,
+ "locked": false,
+ "text": "Writer\n(binaryVersion=0.14+\ntableVersions=6)",
+ "fontSize": 20,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Writer\n(binaryVersion=0.14+\ntableVersions=6)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "GQ2RnxSP-eJ4oo-8CQ04w",
+ "type": "text",
+ "x": 1206.3557331562042,
+ "y": 448.91796875,
+ "width": 141.14790868759155,
+ "height": 35,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#228be6",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6m",
+ "roundness": null,
+ "seed": 1088885387,
+ "version": 69,
+ "versionNonce": 2017179813,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734404161337,
+ "link": null,
+ "locked": false,
+ "text": "Hudi Table",
+ "fontSize": 28,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Hudi Table",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "Dw02Onhqlyx2JnJHsccR8",
+ "type": "arrow",
+ "x": 1089.625,
+ "y": 870.98828125,
+ "width": 302.5625,
+ "height": 55.90242973935242,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#228be6",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6n",
+ "roundness": {
+ "type": 2
+ },
+ "seed": 1501580581,
+ "version": 268,
+ "versionNonce": 1085791979,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734404440709,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ -2.5560149488148007
+ ],
+ [
+ 156.484375,
+ 50.29305473935242
+ ],
+ [
+ 302.5625,
+ -5.609375
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "startBinding": {
+ "elementId": "kLma69JqsaBuZ8wBPX8bQ",
+ "focus": 0.6854096161394536,
+ "gap": 2.695938176185223,
+ "fixedPoint": null
+ },
+ "endBinding": {
+ "elementId": "sswS0ySzPT4c6I4HOj2UV",
+ "focus": -0.6102855416599023,
+ "gap": 1,
+ "fixedPoint": null
+ },
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "elbowed": false
+ },
+ {
+ "id": "TIUXc_qZfyAKxLpwrFGLR",
+ "type": "arrow",
+ "x": 1004.50390625,
+ "y": 482.9609375,
+ "width": 88.03125,
+ "height": 2.609375,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#228be6",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6o",
+ "roundness": {
+ "type": 2
+ },
+ "seed": 1240256619,
+ "version": 41,
+ "versionNonce": 849660741,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734404128771,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 88.03125,
+ -2.609375
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "startBinding": null,
+ "endBinding": {
+ "elementId": "ZJ9RiYgEXHD93mv7y0Q-E",
+ "focus": 0.07200483847145855,
+ "gap": 16.08203125,
+ "fixedPoint": null
+ },
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "elbowed": false
+ },
+ {
+ "id": "jVaJUEudJm8WOA3bWCUTq",
+ "type": "arrow",
+ "x": 1446.6488008666784,
+ "y": 477.06663543097676,
+ "width": 88.03125,
+ "height": 2.609375,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#228be6",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6p",
+ "roundness": {
+ "type": 2
+ },
+ "seed": 463896773,
+ "version": 111,
+ "versionNonce": 991159435,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734404135512,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 88.03125,
+ -2.609375
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "startBinding": null,
+ "endBinding": null,
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "elbowed": false
+ },
+ {
+ "id": "p_sGQTpaiawwcdUPi6PQH",
+ "type": "arrow",
+ "x": 1255.8128633666784,
+ "y": 699.8947604309767,
+ "width": 2.757449133321643,
+ "height": 68.7265625,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#228be6",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 2,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6q",
+ "roundness": {
+ "type": 2
+ },
+ "seed": 260472267,
+ "version": 170,
+ "versionNonce": 1604142725,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734404148275,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 1.8199491333216429,
+ -8.117416680976703
+ ],
+ [
+ -0.9375,
+ -68.7265625
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "startBinding": null,
+ "endBinding": {
+ "elementId": "ZJ9RiYgEXHD93mv7y0Q-E",
+ "focus": 0.0856915349049134,
+ "gap": 4.113510430976703,
+ "fixedPoint": null
+ },
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "elbowed": false
+ },
+ {
+ "id": "mvz6oExjGjlSrmxFQYL4f",
+ "type": "arrow",
+ "x": 713.8515625,
+ "y": 584.5078125,
+ "width": 64.2421875,
+ "height": 163.234375,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#fff9db",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6s",
+ "roundness": {
+ "type": 2
+ },
+ "seed": 478214091,
+ "version": 442,
+ "versionNonce": 1784786405,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734404354565,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -64.2421875,
+ -85.22265625
+ ],
+ [
+ -3.078125,
+ -163.234375
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "startBinding": {
+ "elementId": "IVa5OJVcbHsZ5YQgqNMG6",
+ "focus": -0.718327560016425,
+ "gap": 3.138671875,
+ "fixedPoint": null
+ },
+ "endBinding": {
+ "elementId": "oGwO-P6uHR-1oqsFsqVuQ",
+ "focus": 0.7029805218778848,
+ "gap": 5.86328125,
+ "fixedPoint": null
+ },
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "elbowed": false
+ },
+ {
+ "id": "_yRCFZyQdaFhLHucPJJXZ",
+ "type": "text",
+ "x": 1080.9061126708984,
+ "y": 921.0234375,
+ "width": 321.3596496582031,
+ "height": 40,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#fff9db",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6t",
+ "roundness": null,
+ "seed": 323251653,
+ "version": 293,
+ "versionNonce": 37515979,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734404453495,
+ "link": null,
+ "locked": false,
+ "text": "1. stop table services; rollout new binary \nto async table
services; start",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "1. stop table services; rollout new binary \nto async
table services; start",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "ruSFnpZXG1ev2TEdoweJ_",
+ "type": "text",
+ "x": 541.4920959472656,
+ "y": 443.4453125,
+ "width": 100.38690185546875,
+ "height": 100,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#fff9db",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6u",
+ "roundness": null,
+ "seed": 1100739781,
+ "version": 561,
+ "versionNonce": 950163307,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734404384510,
+ "link": null,
+ "locked": false,
+ "text": "2. Rollout\nnew binary\nto writer\nwith same\ntable version",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "2. Rollout\nnew binary to writer with same table
version",
+ "autoResize": false,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "QGaqvKbjz7gZ2e-dk3rh0",
+ "type": "text",
+ "x": 1902.8338928222656,
+ "y": 430.6796875,
+ "width": 100.38690185546875,
+ "height": 140,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#fff9db",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6v",
+ "roundness": null,
+ "seed": 1316862123,
+ "version": 695,
+ "versionNonce": 830095717,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734404432048,
+ "link": null,
+ "locked": false,
+ "text": "3. Rollout\nnew binary\nto\nqueries/read\ners with\nsame
table\nversion",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "3. Rollout\nnew binary to queries/readers with same
table version",
+ "autoResize": false,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "TGyxThzFmglkFHHsPOiL-",
+ "type": "arrow",
+ "x": 790.6015625,
+ "y": 362.6969310948554,
+ "width": 108.34765625,
+ "height": 62.67416265514461,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#fff9db",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6w",
+ "roundness": {
+ "type": 2
+ },
+ "seed": 421741509,
+ "version": 264,
+ "versionNonce": 626383845,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734404427485,
+ "link": null,
+ "locked": false,
+ "points": [
+ [
+ 0,
+ -19.89230284684558
+ ],
+ [
+ 56.375,
+ -78.9375
+ ],
+ [
+ 108.34765625,
+ -16.26333734485539
+ ]
+ ],
+ "lastCommittedPoint": null,
+ "startBinding": {
+ "elementId": "oGwO-P6uHR-1oqsFsqVuQ",
+ "focus": -0.6292883177676948,
+ "gap": 3.5234967519901375,
+ "fixedPoint": null
+ },
+ "endBinding": {
+ "elementId": "oGwO-P6uHR-1oqsFsqVuQ",
+ "focus": 0.6664714137576235,
+ "gap": 1,
+ "fixedPoint": null
+ },
+ "startArrowhead": null,
+ "endArrowhead": "arrow",
+ "elbowed": false
+ },
+ {
+ "id": "ZBufFl_Wzuj1jK6biCeZJ",
+ "type": "text",
+ "x": 791.3768615722656,
+ "y": 155.53515625,
+ "width": 100.38690185546875,
+ "height": 120,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#fff9db",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6y",
+ "roundness": null,
+ "seed": 1954456485,
+ "version": 910,
+ "versionNonce": 23199435,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734404504794,
+ "link": null,
+ "locked": false,
+ "text": "4. Switch\ntable write\nversion to\nlatest,
force\nrolling\nupgrade",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "4. Switch table write version to latest, force rolling
upgrade",
+ "autoResize": false,
+ "lineHeight": 1.25
+ }
+ ],
+ "appState": {
+ "gridSize": 20,
+ "gridStep": 5,
+ "gridModeEnabled": false,
+ "viewBackgroundColor": "#ffffff"
+ },
+ "files": {}
+}
\ No newline at end of file
diff --git a/site-image-source/expression-index-date-partitioning.excalidraw
b/site-image-source/expression-index-date-partitioning.excalidraw
new file mode 100644
index 00000000000..5bbffc9292e
--- /dev/null
+++ b/site-image-source/expression-index-date-partitioning.excalidraw
@@ -0,0 +1,1969 @@
+{
+ "type": "excalidraw",
+ "version": 2,
+ "source": "https://excalidraw.com",
+ "elements": [
+ {
+ "id": "4Jn9_Og-TAlV_xJlxWk4W",
+ "type": "rectangle",
+ "x": 350.6015625,
+ "y": 174.34765625,
+ "width": 322.67578124999994,
+ "height": 148.3203125,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5Y",
+ "roundness": null,
+ "seed": 249691979,
+ "version": 132,
+ "versionNonce": 1540368107,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734394278102,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "zIFhRSgvMTgR8p47ri5AF",
+ "type": "rectangle",
+ "x": 355.41796875,
+ "y": 384.6796875,
+ "width": 318.12109375,
+ "height": 161.75390625,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5Z",
+ "roundness": null,
+ "seed": 1850963493,
+ "version": 123,
+ "versionNonce": 2026437477,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734394220485,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "DGQDJgUa4HhNygupeNx17",
+ "type": "rectangle",
+ "x": 353.4375,
+ "y": 636.90234375,
+ "width": 316.33203125,
+ "height": 165.2890625,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5a",
+ "roundness": null,
+ "seed": 1816012651,
+ "version": 179,
+ "versionNonce": 1819876389,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734394257655,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "ZKm5ILJ7Q2Gk0ernG9Uqm",
+ "type": "rectangle",
+ "x": 381.1953125,
+ "y": 199.59765625,
+ "width": 59.86328125,
+ "height": 110,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#a5d8ff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5b",
+ "roundness": null,
+ "seed": 381587525,
+ "version": 49,
+ "versionNonce": 1491708011,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "KyCjTIUyVygA8cPgmnn-F"
+ }
+ ],
+ "updated": 1734394905627,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "KyCjTIUyVygA8cPgmnn-F",
+ "type": "text",
+ "x": 388.8949635028839,
+ "y": 204.59765625,
+ "width": 44.46397924423218,
+ "height": 100,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5bV",
+ "roundness": null,
+ "seed": 619012293,
+ "version": 47,
+ "versionNonce": 66656715,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734394905626,
+ "link": null,
+ "locked": false,
+ "text": "file 1\n(trips\nfor \ndate\n1)",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "ZKm5ILJ7Q2Gk0ernG9Uqm",
+ "originalText": "file 1 (trips\nfor \ndate 1)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "R1HykPj80bdTAyalvrTLO",
+ "type": "text",
+ "x": 348.7421875,
+ "y": 131.91796875,
+ "width": 215.1398559808731,
+ "height": 25,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5k",
+ "roundness": null,
+ "seed": 1968395973,
+ "version": 25,
+ "versionNonce": 1370501899,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734393964199,
+ "link": null,
+ "locked": false,
+ "text": "partition_path=/cityA",
+ "fontSize": 20,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "partition_path=/cityA",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "iiMlGiNM3fWXGNJaYSMyN",
+ "type": "text",
+ "x": 352.01600950956345,
+ "y": 354.41015625,
+ "width": 217.07985842227936,
+ "height": 25,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5l",
+ "roundness": null,
+ "seed": 1753967339,
+ "version": 100,
+ "versionNonce": 1471132939,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734393991423,
+ "link": null,
+ "locked": false,
+ "text": "partition_path=/cityB",
+ "fontSize": 20,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "partition_path=/cityB",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "pP5NtlMNo1ct-TbfFFqm6",
+ "type": "text",
+ "x": 351.51600950956345,
+ "y": 602.8203125,
+ "width": 213.97984313964844,
+ "height": 25,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5m",
+ "roundness": null,
+ "seed": 1298202533,
+ "version": 127,
+ "versionNonce": 1470626469,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734393995884,
+ "link": null,
+ "locked": false,
+ "text": "partition_path=/cityC",
+ "fontSize": 20,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "partition_path=/cityC",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "GUll2jVmljzMqLkRwrRc0",
+ "type": "rectangle",
+ "x": 478.259765625,
+ "y": 199.400390625,
+ "width": 63.98046875,
+ "height": 110,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#d0bfff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5n",
+ "roundness": null,
+ "seed": 1094311941,
+ "version": 180,
+ "versionNonce": 903452171,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "F6zGKz0clPQk_6GjhwyKg"
+ }
+ ],
+ "updated": 1734394676797,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "F6zGKz0clPQk_6GjhwyKg",
+ "type": "text",
+ "x": 488.0180103778839,
+ "y": 204.400390625,
+ "width": 44.46397924423218,
+ "height": 100,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5o",
+ "roundness": null,
+ "seed": 1969854309,
+ "version": 189,
+ "versionNonce": 71694731,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734395123418,
+ "link": null,
+ "locked": false,
+ "text": "file 4\n(trips\nfor \ndate\n2)",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "GUll2jVmljzMqLkRwrRc0",
+ "originalText": "file 4 (trips\nfor \ndate 2)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "gQMoRJXWLBtrUOPrUti8K",
+ "type": "rectangle",
+ "x": 576.521484375,
+ "y": 199.740234375,
+ "width": 62.12890625000001,
+ "height": 110,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#ffc9c9",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5p",
+ "roundness": null,
+ "seed": 2146472267,
+ "version": 110,
+ "versionNonce": 336597029,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "kP4GcC8kesnwdJkW_p-n4"
+ }
+ ],
+ "updated": 1734394692445,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "kP4GcC8kesnwdJkW_p-n4",
+ "type": "text",
+ "x": 585.3539478778839,
+ "y": 204.740234375,
+ "width": 44.46397924423218,
+ "height": 100,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5q",
+ "roundness": null,
+ "seed": 1711681515,
+ "version": 115,
+ "versionNonce": 101318955,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734394918357,
+ "link": null,
+ "locked": false,
+ "text": "file 7\n(trips\nfor \ndate\n3)",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "gQMoRJXWLBtrUOPrUti8K",
+ "originalText": "file 7 (trips\nfor \ndate 3)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "vXVrw_itWnTlZRFNPkg8o",
+ "type": "rectangle",
+ "x": 379.5732421875,
+ "y": 414.9619140625,
+ "width": 59.86328125,
+ "height": 110,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#a5d8ff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5r",
+ "roundness": null,
+ "seed": 1640479563,
+ "version": 183,
+ "versionNonce": 446304139,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "ANR2kpPcEuE_0kxSfU6fn"
+ }
+ ],
+ "updated": 1734394924611,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "ANR2kpPcEuE_0kxSfU6fn",
+ "type": "text",
+ "x": 387.2728931903839,
+ "y": 419.9619140625,
+ "width": 44.46397924423218,
+ "height": 100,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5s",
+ "roundness": null,
+ "seed": 392698347,
+ "version": 182,
+ "versionNonce": 1667622443,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734394924611,
+ "link": null,
+ "locked": false,
+ "text": "file 2\n(trips\nfor \ndate\n1)",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "vXVrw_itWnTlZRFNPkg8o",
+ "originalText": "file 2 (trips\nfor \ndate 1)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "7NvgyThJcDxo02LKezVfe",
+ "type": "rectangle",
+ "x": 479.4970703125,
+ "y": 413.5458984375,
+ "width": 63.0390625,
+ "height": 110,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#d0bfff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5t",
+ "roundness": null,
+ "seed": 46376075,
+ "version": 282,
+ "versionNonce": 1597806443,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "iEyBL0cv07jOj3N1kFX1j"
+ }
+ ],
+ "updated": 1734394926444,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "iEyBL0cv07jOj3N1kFX1j",
+ "type": "text",
+ "x": 488.7846119403839,
+ "y": 418.5458984375,
+ "width": 44.46397924423218,
+ "height": 100,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5u",
+ "roundness": null,
+ "seed": 462740267,
+ "version": 286,
+ "versionNonce": 1584550853,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734394932022,
+ "link": null,
+ "locked": false,
+ "text": "file 5\n(trips\nfor \ndate\n2)",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "7NvgyThJcDxo02LKezVfe",
+ "originalText": "file 5 (trips\nfor \ndate 2)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "Ob9-2FNU3pViImqTVlISW",
+ "type": "rectangle",
+ "x": 577.6494140625,
+ "y": 414.5458984375,
+ "width": 69.21093750000004,
+ "height": 110,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#ffc9c9",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5v",
+ "roundness": null,
+ "seed": 2118532555,
+ "version": 247,
+ "versionNonce": 260105893,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "4X6CjgnEeVSgo0UU2cuBP"
+ }
+ ],
+ "updated": 1734394815158,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "4X6CjgnEeVSgo0UU2cuBP",
+ "type": "text",
+ "x": 590.0228931903839,
+ "y": 419.5458984375,
+ "width": 44.46397924423218,
+ "height": 100,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5w",
+ "roundness": null,
+ "seed": 1441942635,
+ "version": 253,
+ "versionNonce": 549355205,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734394938484,
+ "link": null,
+ "locked": false,
+ "text": "file 8\n(trips\nfor \ndate \n3)",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "Ob9-2FNU3pViImqTVlISW",
+ "originalText": "file 8 (trips\nfor \ndate \n3)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "WQzAGegXzNuylURw9SCbu",
+ "type": "rectangle",
+ "x": 373.8193359375,
+ "y": 669.6689453125,
+ "width": 59.86328125,
+ "height": 110,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#a5d8ff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5x",
+ "roundness": null,
+ "seed": 1632051877,
+ "version": 254,
+ "versionNonce": 1664255595,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "OFlBMjVe35isnQWw-IH6R"
+ }
+ ],
+ "updated": 1734394947616,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "OFlBMjVe35isnQWw-IH6R",
+ "type": "text",
+ "x": 381.5189869403839,
+ "y": 674.6689453125,
+ "width": 44.46397924423218,
+ "height": 100,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5y",
+ "roundness": null,
+ "seed": 871728645,
+ "version": 253,
+ "versionNonce": 864846091,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734394947616,
+ "link": null,
+ "locked": false,
+ "text": "file 3\n(trips\nfor \ndate\n1)",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "WQzAGegXzNuylURw9SCbu",
+ "originalText": "file 3 (trips\nfor \ndate 1)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "941s2J_qsq6JJl626LzRi",
+ "type": "rectangle",
+ "x": 471.4462890625,
+ "y": 670.3974609375,
+ "width": 66.23046875000001,
+ "height": 110,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#d0bfff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b5z",
+ "roundness": null,
+ "seed": 499154277,
+ "version": 363,
+ "versionNonce": 117370891,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "2ibPas-o5P5HO9EGZLRXJ"
+ }
+ ],
+ "updated": 1734394740360,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "2ibPas-o5P5HO9EGZLRXJ",
+ "type": "text",
+ "x": 482.3295338153839,
+ "y": 675.3974609375,
+ "width": 44.46397924423218,
+ "height": 100,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b60",
+ "roundness": null,
+ "seed": 905283781,
+ "version": 366,
+ "versionNonce": 319149253,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734394955665,
+ "link": null,
+ "locked": false,
+ "text": "file 6\n(trips\nfor \ndate\n2)",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "941s2J_qsq6JJl626LzRi",
+ "originalText": "file 6\n(trips\nfor \ndate 2)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "6DBKEab_xLtPtOvkL1dZ3",
+ "type": "rectangle",
+ "x": 574.8603515625,
+ "y": 670.1201171875,
+ "width": 64.18750000000001,
+ "height": 110,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#ffc9c9",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b61",
+ "roundness": null,
+ "seed": 1311909925,
+ "version": 312,
+ "versionNonce": 1590765445,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "ELiRUugpavcRzslNh2wPF"
+ }
+ ],
+ "updated": 1734394957643,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "ELiRUugpavcRzslNh2wPF",
+ "type": "text",
+ "x": 584.7221119403839,
+ "y": 675.1201171875,
+ "width": 44.46397924423218,
+ "height": 100,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b62",
+ "roundness": null,
+ "seed": 677632901,
+ "version": 317,
+ "versionNonce": 1073644619,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734394961008,
+ "link": null,
+ "locked": false,
+ "text": "file 9\n(trips\nfor \ndate\n3)",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "6DBKEab_xLtPtOvkL1dZ3",
+ "originalText": "file 9 (trips\nfor \ndate 3)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "Qp9h8bJzn3DOxS3Z8GYJF",
+ "type": "rectangle",
+ "x": 772.0703125,
+ "y": 279.34375,
+ "width": 104.31640625000003,
+ "height": 364.49609375,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b63",
+ "roundness": null,
+ "seed": 1393040267,
+ "version": 135,
+ "versionNonce": 983368005,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734394528737,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "RP0OXBOJMqFVNn_D6UFSE",
+ "type": "rectangle",
+ "x": 882.142578125,
+ "y": 279.728515625,
+ "width": 250.43359375000003,
+ "height": 364.49609375,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b64",
+ "roundness": null,
+ "seed": 47429317,
+ "version": 260,
+ "versionNonce": 415819717,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734394592103,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "3WTKiZCMYjn7DM8oPiegL",
+ "type": "text",
+ "x": 887.52734375,
+ "y": 242.98828125,
+ "width": 246.3037872314453,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b67",
+ "roundness": null,
+ "seed": 1745701893,
+ "version": 77,
+ "versionNonce": 1883031365,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734394883773,
+ "link": null,
+ "locked": false,
+ "text": "from_unixtime('yyyy-MM-dd', ts)",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "from_unixtime('yyyy-MM-dd', ts)",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "XjTFKRewr7dZZ3FmPK00s",
+ "type": "text",
+ "x": 844.8984375,
+ "y": 670.2120361328125,
+ "width": 217.5038269162178,
+ "height": 40,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b68",
+ "roundness": null,
+ "seed": 916204939,
+ "version": 108,
+ "versionNonce": 940341163,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734394999020,
+ "link": null,
+ "locked": false,
+ "text": "Expression index to achieve\nlogical date partitioning",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "Expression index to achieve\nlogical date partitioning",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "ZV38agEc3p8wduWJExTB4",
+ "type": "text",
+ "x": 783.1684188842773,
+ "y": 243.6807861328125,
+ "width": 32.7359619140625,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b69",
+ "roundness": null,
+ "seed": 1853518731,
+ "version": 94,
+ "versionNonce": 113039051,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734395011288,
+ "link": null,
+ "locked": false,
+ "text": "files",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "files",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "OTfdxZMCV0WjopudQBEm0",
+ "type": "text",
+ "x": 795.89453125,
+ "y": 305.4425048828125,
+ "width": 37.27995300292969,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6A",
+ "roundness": null,
+ "seed": 315088907,
+ "version": 47,
+ "versionNonce": 310901797,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734395024836,
+ "link": null,
+ "locked": false,
+ "text": "file 1",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "file 1",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "tQceVIzJvhJwlW9skLVM0",
+ "type": "text",
+ "x": 797.2350234985352,
+ "y": 339.3253173828125,
+ "width": 41.64796447753906,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6B",
+ "roundness": null,
+ "seed": 1923273285,
+ "version": 85,
+ "versionNonce": 780198123,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734395074358,
+ "link": null,
+ "locked": false,
+ "text": "file 2",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "file 2",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "aDOzznDRqeNGn1ZrANAG1",
+ "type": "text",
+ "x": 797.0162734985352,
+ "y": 373.8057861328125,
+ "width": 40.17596435546875,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6C",
+ "roundness": null,
+ "seed": 704171467,
+ "version": 77,
+ "versionNonce": 1122997099,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734395077684,
+ "link": null,
+ "locked": false,
+ "text": "file 3",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "file 3",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "pb58d7WotAye88hPNYnt6",
+ "type": "text",
+ "x": 797.4147109985352,
+ "y": 409.8878173828125,
+ "width": 39.807952880859375,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6D",
+ "roundness": null,
+ "seed": 1044205285,
+ "version": 96,
+ "versionNonce": 1127286251,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734395080591,
+ "link": null,
+ "locked": false,
+ "text": "file 4",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "file 4",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "CNLms2zDLj1TGJ5Dm09hx",
+ "type": "text",
+ "x": 797.1608047485352,
+ "y": 444.2276611328125,
+ "width": 40.33595275878906,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6E",
+ "roundness": null,
+ "seed": 573739237,
+ "version": 94,
+ "versionNonce": 1340422251,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734395083691,
+ "link": null,
+ "locked": false,
+ "text": "file 5",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "file 5",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "skILazAYDATPGp0FK5mrR",
+ "type": "text",
+ "x": 796.7740859985352,
+ "y": 482.4893798828125,
+ "width": 40.687957763671875,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6F",
+ "roundness": null,
+ "seed": 731210251,
+ "version": 103,
+ "versionNonce": 1485291525,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734395086636,
+ "link": null,
+ "locked": false,
+ "text": "file 6",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "file 6",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "FLm9g45kVxkbby-H558Q5",
+ "type": "text",
+ "x": 795.5670547485352,
+ "y": 519.5284423828125,
+ "width": 39.37596130371094,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6G",
+ "roundness": null,
+ "seed": 504029093,
+ "version": 101,
+ "versionNonce": 1560876421,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734395089595,
+ "link": null,
+ "locked": false,
+ "text": "file 7",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "file 7",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "fhfuuYPj43VNtR1grw3bp",
+ "type": "text",
+ "x": 796.1725234985352,
+ "y": 554.6339111328125,
+ "width": 40.62396240234375,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6H",
+ "roundness": null,
+ "seed": 22940075,
+ "version": 95,
+ "versionNonce": 427010821,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734395092548,
+ "link": null,
+ "locked": false,
+ "text": "file 8",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "file 8",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "vSF0npx7qYveJ-5Uu8-_a",
+ "type": "text",
+ "x": 794.7623672485352,
+ "y": 594.6143798828125,
+ "width": 40.511962890625,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6I",
+ "roundness": null,
+ "seed": 1423600069,
+ "version": 124,
+ "versionNonce": 1998569003,
+ "isDeleted": false,
+ "boundElements": [],
+ "updated": 1734395293478,
+ "link": null,
+ "locked": false,
+ "text": "file 9",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "left",
+ "verticalAlign": "top",
+ "containerId": null,
+ "originalText": "file 9",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "-aBjjbUzO74D_RIWq4yLI",
+ "type": "rectangle",
+ "x": 910.802734375,
+ "y": 296.0635986328125,
+ "width": 174.16796875000003,
+ "height": 30,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#a5d8ff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6J",
+ "roundness": null,
+ "seed": 324367915,
+ "version": 197,
+ "versionNonce": 1265509099,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "yUZZgIW0HPclcaPYUaXS6"
+ }
+ ],
+ "updated": 1734395253504,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "yUZZgIW0HPclcaPYUaXS6",
+ "type": "text",
+ "x": 969.9027481079102,
+ "y": 301.0635986328125,
+ "width": 55.96794128417969,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6JV",
+ "roundness": null,
+ "seed": 917281253,
+ "version": 13,
+ "versionNonce": 274462149,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734395258130,
+ "link": null,
+ "locked": false,
+ "text": "date 1 ",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "-aBjjbUzO74D_RIWq4yLI",
+ "originalText": "date 1 ",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "OPxbXGB5Ho9Ve6TXPFDR1",
+ "type": "rectangle",
+ "x": 910.5390625,
+ "y": 331.6300048828125,
+ "width": 174.03515625000006,
+ "height": 30,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#a5d8ff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6L",
+ "roundness": null,
+ "seed": 973870987,
+ "version": 280,
+ "versionNonce": 557083461,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "jKwc0LR7egG5ZD0Wd8fsM"
+ }
+ ],
+ "updated": 1734395259928,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "jKwc0LR7egG5ZD0Wd8fsM",
+ "type": "text",
+ "x": 972.7726669311523,
+ "y": 336.6300048828125,
+ "width": 49.56794738769531,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6LV",
+ "roundness": null,
+ "seed": 852847851,
+ "version": 8,
+ "versionNonce": 20550123,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734395262725,
+ "link": null,
+ "locked": false,
+ "text": "date 1",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "OPxbXGB5Ho9Ve6TXPFDR1",
+ "originalText": "date 1",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "lYoumg5CisRjCVfjbn7B0",
+ "type": "rectangle",
+ "x": 910.6015625,
+ "y": 368.8018798828125,
+ "width": 172.42187500000003,
+ "height": 30,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#a5d8ff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6M",
+ "roundness": null,
+ "seed": 173970789,
+ "version": 258,
+ "versionNonce": 446794533,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "xToZYcFj8yKYcqmuGIcJI"
+ }
+ ],
+ "updated": 1734395264609,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "xToZYcFj8yKYcqmuGIcJI",
+ "type": "text",
+ "x": 972.0285263061523,
+ "y": 373.8018798828125,
+ "width": 49.56794738769531,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6MV",
+ "roundness": null,
+ "seed": 1179254539,
+ "version": 8,
+ "versionNonce": 1734476811,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734395266121,
+ "link": null,
+ "locked": false,
+ "text": "date 1",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "lYoumg5CisRjCVfjbn7B0",
+ "originalText": "date 1",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "6VM9_8Zo1ldN3Wcbai4nJ",
+ "type": "rectangle",
+ "x": 911.775390625,
+ "y": 405.7042236328125,
+ "width": 169.59375,
+ "height": 30,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#d0bfff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6N",
+ "roundness": null,
+ "seed": 1507559083,
+ "version": 390,
+ "versionNonce": 1863722635,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "y9FpY5jcPXOFF6F_UUDZE"
+ }
+ ],
+ "updated": 1734395268012,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "y9FpY5jcPXOFF6F_UUDZE",
+ "type": "text",
+ "x": 969.5882845520973,
+ "y": 410.7042236328125,
+ "width": 53.96796214580536,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6NV",
+ "roundness": null,
+ "seed": 1689873477,
+ "version": 8,
+ "versionNonce": 335877957,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734395269441,
+ "link": null,
+ "locked": false,
+ "text": "date 2",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "6VM9_8Zo1ldN3Wcbai4nJ",
+ "originalText": "date 2",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "EKOnUZ7I97lJap5JcukvW",
+ "type": "rectangle",
+ "x": 912.080078125,
+ "y": 442.6514892578125,
+ "width": 168.54687499999991,
+ "height": 30,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#d0bfff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6P",
+ "roundness": null,
+ "seed": 310203915,
+ "version": 432,
+ "versionNonce": 343985349,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "56ODhyejLs8B7c1bqcLw_"
+ }
+ ],
+ "updated": 1734395271455,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "56ODhyejLs8B7c1bqcLw_",
+ "type": "text",
+ "x": 969.3695345520973,
+ "y": 447.6514892578125,
+ "width": 53.96796214580536,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6PV",
+ "roundness": null,
+ "seed": 184988523,
+ "version": 8,
+ "versionNonce": 920410219,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734395272908,
+ "link": null,
+ "locked": false,
+ "text": "date 2",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "EKOnUZ7I97lJap5JcukvW",
+ "originalText": "date 2",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "hhsRNiVDPdEO0fknWQ41M",
+ "type": "rectangle",
+ "x": 912.400390625,
+ "y": 478.7491455078125,
+ "width": 169.3515625,
+ "height": 30,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#d0bfff",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6Q",
+ "roundness": null,
+ "seed": 1241862469,
+ "version": 484,
+ "versionNonce": 1544768235,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "8iKeO5ReH8UZXpY2dva1O"
+ }
+ ],
+ "updated": 1734395274905,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "8iKeO5ReH8UZXpY2dva1O",
+ "type": "text",
+ "x": 970.0921908020973,
+ "y": 483.7491455078125,
+ "width": 53.96796214580536,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6QV",
+ "roundness": null,
+ "seed": 2073620965,
+ "version": 8,
+ "versionNonce": 1959591141,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734395276799,
+ "link": null,
+ "locked": false,
+ "text": "date 2",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "hhsRNiVDPdEO0fknWQ41M",
+ "originalText": "date 2",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "QGEzh7fQpXDQIbhtY_7ao",
+ "type": "rectangle",
+ "x": 911.537109375,
+ "y": 513.7471923828125,
+ "width": 171.15625000000006,
+ "height": 30,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#ffc9c9",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6R",
+ "roundness": null,
+ "seed": 700498917,
+ "version": 317,
+ "versionNonce": 265871973,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "2SgW-0Yu7Ao9zKC4p2EWd"
+ }
+ ],
+ "updated": 1734395278372,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "2SgW-0Yu7Ao9zKC4p2EWd",
+ "type": "text",
+ "x": 970.8832550048828,
+ "y": 518.7471923828125,
+ "width": 52.463958740234375,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6RV",
+ "roundness": null,
+ "seed": 1045386187,
+ "version": 8,
+ "versionNonce": 2033621195,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734395280274,
+ "link": null,
+ "locked": false,
+ "text": "date 3",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "QGEzh7fQpXDQIbhtY_7ao",
+ "originalText": "date 3",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "CNT8-0k9NsA0iXiJhyktH",
+ "type": "rectangle",
+ "x": 911.69140625,
+ "y": 550.7432861328125,
+ "width": 171.15625000000006,
+ "height": 30,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#ffc9c9",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6T",
+ "roundness": null,
+ "seed": 1145052261,
+ "version": 341,
+ "versionNonce": 1184521035,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "ETwGd1w4H3pMygz_bQn9J"
+ }
+ ],
+ "updated": 1734395282188,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "ETwGd1w4H3pMygz_bQn9J",
+ "type": "text",
+ "x": 971.0375518798828,
+ "y": 555.7432861328125,
+ "width": 52.463958740234375,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6TV",
+ "roundness": null,
+ "seed": 597543813,
+ "version": 8,
+ "versionNonce": 757479045,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734395284057,
+ "link": null,
+ "locked": false,
+ "text": "date 3",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "CNT8-0k9NsA0iXiJhyktH",
+ "originalText": "date 3",
+ "autoResize": true,
+ "lineHeight": 1.25
+ },
+ {
+ "id": "xXEEL6KrWrAkKQrEP8a45",
+ "type": "rectangle",
+ "x": 913.10546875,
+ "y": 592.3917236328125,
+ "width": 171.15625000000006,
+ "height": 30,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "#ffc9c9",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6U",
+ "roundness": null,
+ "seed": 803010411,
+ "version": 371,
+ "versionNonce": 445523307,
+ "isDeleted": false,
+ "boundElements": [
+ {
+ "type": "text",
+ "id": "a2146kpQ29geYG-WvhlL0"
+ }
+ ],
+ "updated": 1734395290779,
+ "link": null,
+ "locked": false
+ },
+ {
+ "id": "a2146kpQ29geYG-WvhlL0",
+ "type": "text",
+ "x": 972.4516143798828,
+ "y": 597.3917236328125,
+ "width": 52.463958740234375,
+ "height": 20,
+ "angle": 0,
+ "strokeColor": "#1e1e1e",
+ "backgroundColor": "transparent",
+ "fillStyle": "solid",
+ "strokeWidth": 2,
+ "strokeStyle": "solid",
+ "roughness": 1,
+ "opacity": 100,
+ "groupIds": [],
+ "frameId": null,
+ "index": "b6V",
+ "roundness": null,
+ "seed": 1861911397,
+ "version": 20,
+ "versionNonce": 1545355275,
+ "isDeleted": false,
+ "boundElements": null,
+ "updated": 1734395290779,
+ "link": null,
+ "locked": false,
+ "text": "date 3",
+ "fontSize": 16,
+ "fontFamily": 5,
+ "textAlign": "center",
+ "verticalAlign": "middle",
+ "containerId": "xXEEL6KrWrAkKQrEP8a45",
+ "originalText": "date 3",
+ "autoResize": true,
+ "lineHeight": 1.25
+ }
+ ],
+ "appState": {
+ "gridSize": 20,
+ "gridStep": 5,
+ "gridModeEnabled": false,
+ "viewBackgroundColor": "#ffffff"
+ },
+ "files": {}
+}
\ No newline at end of file
diff --git a/website/blog/2024-12-16-announcing-hudi-1-0-0.md
b/website/blog/2024-12-16-announcing-hudi-1-0-0.md
new file mode 100644
index 00000000000..8d46173bc55
--- /dev/null
+++ b/website/blog/2024-12-16-announcing-hudi-1-0-0.md
@@ -0,0 +1,195 @@
+---
+title: "Announcing Apache Hudi 1.0 and the Next Generation of Data Lakehouses"
+excerpt: "game-changing major release, that reimagines Hudi and Data
Lakehouses."
+author: Vinoth Chandar
+category: blog
+image:
/assets/images/blog/non-blocking-concurrency-control/lsm_archive_timeline.png
+tags:
+- timeline
+- design
+- release
+- streaming ingestion
+- multi-writer
+- concurrency-control
+- blog
+---
+
+## Overview
+
+We are thrilled to announce the release of Apache Hudi 1.0, a landmark
achievement for our vibrant community that defines what the next generation of
data lakehouses should achieve. Hudi pioneered ***transactional data lakes***
in 2017, and today, we live in a world where this technology category is
mainstream as the “***Data Lakehouse”***. The Hudi community has made several
key, original, and first-of-its-kind contributions to this category, as shown
below, compared to when other OSS a [...]
+
+![][image1]
+
+This release is more than just a version increment—it advances the breadth of
Hudi’s feature set and its architecture's robustness while bringing fresh
innovation to shape the future. This post reflects on how technology and the
surrounding ecosystem have evolved, making a case for a holistic “***Data
Lakehouse Management System***” (***DLMS***) as the new Northstar. For most of
this post, we will deep dive into the latest capabilities of Hudi 1.0 that make
this evolution possible.
+
+## Evolution of the Data Lakehouse
+
+Technologies must constantly evolve—[Web
3.0](https://en.wikipedia.org/wiki/Web3), [cellular
tech](https://en.wikipedia.org/wiki/List_of_wireless_network_technologies),
[programming language
generations](https://en.wikipedia.org/wiki/Programming_language_generations)—based
on emerging needs. Data lakehouses are no exception. This section explores the
hierarchy of such needs for data lakehouse users. The most basic need is the
“**table format**” functionality, the foundation for data lake [...]
+
+However, the benefits of a format end there, and now a table format is just
the tip of the iceberg. Users require an [end-to-end open data
lakehouse](https://www.onehouse.ai/blog/open-table-formats-and-the-open-data-lakehouse-in-perspective),
and modern data lakehouse features need a sophisticated layer of
***open-source software*** operating on data stored in open table formats. For
example, Optimized writers can balance cost and performance by carefully
managing file sizes using the st [...]
+
+![][image2]
+
+Moving forward with 1.0, the community has
[debated](https://github.com/apache/hudi/pull/8679) these key points and
concluded that we need more open-source “**software capabilities**” that are
directly comparable with DBMSes for two main reasons.
+
+**Significantly expand the technical capabilities of a data lakehouse**: Many
design decisions in Hudi have been inspired by databases (see
[here](https://github.com/apache/hudi/blob/master/rfc/rfc-69/rfc-69.md#hudi-1x)
for a layer-by-layer mapping) and have delivered significant benefits to the
community. For example, Hudi’s indexing mechanisms deliver the fast update
performance the project has come to be known for. We want to generalize such
features across writers and queries and in [...]
+
+**We also need a database-like experience**: We originally designed Hudi as a
software library that can be embedded into different query/processing engines
for reading/writing/managing tables. This model has been a great success within
the existing data ecosystem, which is familiar with scheduling jobs and
employing multiple engines for ETL and interactive queries. However, for a new
user wanting to explore data lakehouses, there is no piece of software to
easily install and explore all [...]
+
+If combined, we would gain a powerful database built on top of the data
lake(house) architecture—a ***data*** ***lakehouse*** ***management***
***system*** ***(DLMS)***—that we believe the industry needs.
+
+## Key Features in Hudi 1.0
+
+In Hudi 1.0, we’ve delivered a significant expansion of data lakehouse
technical capabilities discussed above inside Hudi’s [storage
engine](https://en.wikipedia.org/wiki/Database_engine) layer. Storage engines
(a.k.a database engines) are standard database components that sit on top of
the storage/file/table format and are wrapped by the DBMS layer above, handling
the core read/write/management functionality. In the figure below, we map the
Hudi components with the seminal [Architectur [...]
+
+
+<p align = "center">Figure: Apache Hudi Database Architecture</p>
+
+Regarding full-fledged DLMS functionality, the closest experience Hudi 1.0
offers is through Apache Spark. Users can deploy a Spark server (or Spark
Connect) with Hudi 1.0 installed, submit SQL/jobs, orchestrate table services
via SQL commands, and enjoy new secondary index functionality to speed up
queries like a DBMS. Subsequent releases in the 1.x release line and beyond
will continuously add new features and improve this experience.
+
+In the following sections, let’s dive into what makes Hudi 1.0 a standout
release.
+
+### New Time and Timeline
+
+For the familiar user, time is a key concept in Hudi. Hudi’s original notion
of time was instantaneous, i.e., actions that modify the table appear to take
effect at a given instant. This was limiting when designing features like
non-blocking concurrency control across writers, which needs to reason about
actions more as an “interval” to detect other conflicting actions. Every action
on the Hudi timeline now gets a *requested* and a *completion* time; Thus, the
timeline layout version has [...]
+
+
+<p align = "center">Figure: Showing actions in Hudi 1.0 modeled as an interval
of two instants: requested and completed</p>
+
+Hudi tables are frequently updated, and users also want to retain a more
extended action history associated with the table. Before Hudi 1.0, the older
action history in a table was archived for audit access. But, due to the lack
of support for cloud storage appends, access might become cumbersome due to
tons of small files. In Hudi 1.0, we have redesigned the timeline as an [LSM
tree](https://en.wikipedia.org/wiki/Log-structured_merge-tree), which is widely
adopted for cases where good w [...]
+
+
+In the Hudi 1.0 release, the LSM timeline is heavily used in the query
planning to map requested and completion times across Apache Spark, Apache
Flink and Apache Hive. Future releases plan to leverage this to unify the
timeline's active and history components, providing infinite retention of table
history. Microbenchmarks show that the LSM timeline can be pretty efficient,
even committing every ***30 seconds for 10 years with about 10M instants***,
further cementing Hudi’s table format [...]
+
+| Number of actions | Instant Batch Size | Read cost (just times) | Read cost
(along with action metadata) | Total file size |
+| :---- | :---- | :---- | :---- | :---- |
+| 10000 | 10 | 32ms | 150ms | 8.39MB |
+| 20000 | 10 | 51ms | 188ms | 16.8MB |
+| 10000000 | 1000 | 3400ms | 162s | 8.4GB |
+
+<p align = "center">Figure: Microbenchmark of LSM Timeline</p>
+
+### Secondary Indexing for Faster Lookups
+
+Indexes are core to Hudi’s design, so much so that even the first
pre-open-source version of Hudi shipped with
[indexes](https://hudi.apache.org/docs/indexes#additional-writer-side-indexes)
to speed up writes. However, these indexes were limited to the writer's side,
except for record indexes in 0.14+ above, which were also integrated with Spark
SQL queries. Hudi 1.0 generalizes indexes closer to the indexing functionality
found in relational databases, supporting indexes on any secondar [...]
+
+
+<p align = "center">Figure: the indexing subsystem in Hudi 1.0, showing
different types of indexes</p>
+
+With secondary indexes, queries and DMLs scan a much-reduced amount of files
from cloud storage, dramatically reducing costs (e.g., on engines like AWS
Athena, which price by data scanned) and improving query performance for
queries with low to even moderate amount of selectivity. On a benchmark of a
query on *web\_sales* table (from ***10 TB tpc-ds dataset***), with file groups
\- 286,603, total records \- 7,198,162,544 and cardinality of secondary index
column in the \~ 1:150 ranges, w [...]
+
+| Run 1 | Total Query Latency w/o indexing skipping (secs) | Total Query
Latency with secondary index skipping (secs) | % decrease |
+| :---- | :---- | :---- | :---- |
+| 1 | 252 | 31 | \~88% |
+| 2 | 214 | 10 | \~95% |
+| 3 | 204 | 9 | \~95% |
+
+In Hudi 1.0, secondary indexes are only supported for Apache Spark, with
planned support for other engines in Hudi 1.1, starting with Flink, Presto and
Trino.
+
+### Bloom Filter indexes
+
+Bloom filter indexes have existed on the Hudi writers for a long time. It is
one of the most performant and versatile indexes users prefer for
“needle-in-a-haystack” deletes/updates or de-duplication. The index works by
storing special footers in base files around min/max key ranges and a dynamic
bloom filter that adapts to the file size and can automatically handle
partitioning/skew on the writer's path. Hudi 1.0 introduces a newer kind of
bloom filter index for Spark SQL while retainin [...]
+
+```sql
+-- Create a bloom filter index on the driver column of the table `hudi_table`
+CREATE INDEX idx_bloom_driver ON hudi_indexed_table USING
bloom_filters(driver)
+-- Create a bloom filter index on the column derived from expression
`lower(rider)` of the table `hudi_table`
+CREATE INDEX idx_bloom_rider ON hudi_indexed_table USING bloom_filters(rider)
OPTIONS(expr='lower');
+```
+
+In future releases of Hudi, we aim to fully integrate the benefits of the
older writer-side index into the new bloom index. Nonetheless, this
demonstrates the adaptability of Hudi’s indexing system to handle different
types of indexes on the table.
+
+### Partitioning replaced by Expression Indexes
+
+An astute reader may have noticed above that the indexing is supported on a
function/expression on a column. Hudi 1.0 introduces expression indexes similar
to
[Postgres](https://www.postgresql.org/docs/current/indexes-expressional.html)
to generalize a two-decade-old relic in the data lake ecosystem \-
partitioning\! At a high level, partitioning on the data lake divides the table
into folders based on a column or a mapping function (partitioning function).
When queries or operations are [...]
+
+
+<p align = "center">Figure: Shows index on a date expression when a different
column physically partitions data</p>
+
+Hudi 1.0 treats partitions as a coarse-grained index on a column value or an
expression of a column, as they should have been. To support the efficiency of
skipping entire storage paths/folders, Hudi 1.0 introduces partition stats
indexes that aggregate these statistics on the storage partition path level, in
addition to doing so at the file level. Now, users can create different types
of indexes on columns to achieve the effects of partitioning in a streamlined
fashion using fewer conce [...]
+
+### Efficient Partial Updates
+
+Managing large-scale datasets often involves making fine-grained changes to
records. Hudi has long supported [partial
updates](https://hudi.apache.org/docs/0.15.0/record_payload#partialupdateavropayload)
to records via the record payload interface. However, this usually comes at
the cost of sacrificing engine-native performance by moving away from specific
objects used by engines to represent rows. As users have embraced Hudi for
incremental SQL pipelines on top of dbt/Spark or Flink Dyn [...]
+
+Partial updates improve query and write performance simultaneously by reducing
write amplification for writes and the amount of data read by Merge-on-Read
snapshot queries. It also achieves much better storage utilization due to fewer
bytes stored and improved compute efficiency over existing partial update
support by retaining vectorized engine-native processing. Using the 1TB
Brooklyn benchmark for write performance, we observe about **2.6x** improvement
in Merge-on-Read query performa [...]
+
+| | Full Record Update | Partial Update | Gains |
+| :---- | :---- | :---- | :---- |
+| **Update latency (s)** | 2072 | 1429 | 1.4x |
+| **Bytes written (GB)** | 891.7 | 12.7 | 70.2x |
+| **Query latency (s)** | 164 | 29 | 5.7x |
+
+<p align = "center">Figure: Second benchmark for partial updates, 1TB MOR
table, 1000 partitions, 80% random updates. 3/100 columns randomly updated</p>
+
+This also lays the foundation for managing unstructured and multimodal data
inside a Hudi table and supporting [wide
tables](https://github.com/apache/hudi/pull/11733) efficiently for machine
learning use cases.
+
+### Merge Modes and Custom Mergers
+
+One of the most unique capabilities Hudi provides is how it helps process
streaming data. Specifically, Hudi has, since the very beginning, supported
merging records pre-write (to reduce write amplification), during write
(against an existing record in storage with the same record key) and reads (for
MoR snapshot queries), using a *precombine* or *ordering* field. This helps
implement [event time
processing](https://www.oreilly.com/radar/the-world-beyond-batch-streaming-101/)
semantics, [...]
+
+
+<p align = "center">Figure: Shows EVENT\_TIME\_ORDERING where merging
reconciles state based on the highest event\_time</p>
+
+Prior Hudi versions supported this functionality through the record payload
interface with built-in support for a pre-combine field on the default
payloads. Hudi 1.0 makes these two styles of processing and merging changes
first class by introducing merge modes within Hudi.
+
+| Merge Mode | What does it do? |
+| :---- | :---- |
+| COMMIT\_TIME\_ORDERING | Picks record with highest completion time/instant
as final merge result i.e., standard relational semantics or arrival time
processing |
+| EVENT\_TIME\_ORDERING | Default (for now, to ease migration).Picks record
with the highest value for a user-specified ordering/precombine field as the
final merge result. |
+| CUSTOM | Uses a user-provided RecordMerger implementation to produce final
merge result (similar to stream processing processor APIs) |
+
+Like partial update support, the new *RecordMerger* API provides a more
efficient engine-native alternative to the older RecordPayload interface
through native objects and vectorized processing on EVENT\_TIME\_ORDERING merge
modes. In future versions, we intend to change the default to
COMMIT\_TIME\_ORDERING to provide simple, out-of-the-box relational table
semantics.
+
+### Non-Blocking Concurrency Control for Streaming Writes
+
+We have expressed dissatisfaction with the optimistic concurrency control
approaches employed on the data lakehouse since they appear to paint the
problem with a broad brush without paying attention to the nuances of the
lakehouse workloads. Specifically, contention is much more common in data
lakehouses, even for Hudi, the only data lakehouse storage project capable of
asynchronously compacting delta updates without failing or causing retries on
the writer. Ultimately, data lakehouses a [...]
+
+Hudi 1.0 introduces a new **non-blocking concurrency control (NBCC)** designed
explicitly for data lakehouse workloads, using years of experience gained
supporting some of the largest data lakes on the planet in the Hudi community.
NBCC enables simultaneous writing from multiple writers and compaction of the
same record without blocking any involved processes. This is achieved by simply
lightweight distributed locks and TrueTime semantics discussed above. (see
[RFC-66](https://github.com [...]
+
+
+<p align = "center">
+Figure: Two streaming jobs in action writing to the same records concurrently
on different columns.
+</p>
+
+NBCC operates with streaming semantics, tying together concepts from previous
sections. Data necessary to compute table updates are emitted from an upstream
source, and changes and partial updates can be merged in any of the merge modes
above. For example, in the figure above, two independent Flink jobs enrich
different table columns in parallel, a pervasive pattern seen in stream
processing use cases. Check out this
[blog](https://hudi.apache.org/blog/2024/12/06/non-blocking-concurrency [...]
+
+### Backwards Compatible Writing
+
+If you are wondering: “All of this sounds cool, but how do I upgrade?” we have
put a lot of thought into making that seamless. Hudi has always supported
backward-compatible reads to older table versions. Table versions are stored in
table properties unrelated to the software binary version. The supported way of
upgrading has been to first migrate readers/query engines to new software
binary versions and then upgrade the writers, which will auto-upgrade the table
if there is a table versi [...]
+
+
+<p align = "center">Figure: 4-step process for painless rolling upgrades to
Hudi 1.0</p>
+
+Hudi 1.0 introduces backward-compatible writing to achieve this in 4 steps, as
described above. Hudi 1.0 also automatically handles any checkpoint translation
necessary as we switch to completion time-based processing semantics for
incremental and CDC queries. The Hudi metadata table has to be temporarily
disabled during this upgrade process but can be turned on once the upgrade is
completed successfully. Please read the [release
notes](https://hudi.apache.org/releases/release-1.0.0) car [...]
+
+## What’s Next?
+
+Hudi 1.0 is a testament to the power of open-source collaboration. This
release embodies the contributions of 60+ developers, maintainers, and users
who have actively shaped its roadmap. We sincerely thank the Apache Hudi
community for their passion, feedback, and unwavering support.
+
+The release of Hudi 1.0 is just the beginning. Our current
[roadmap](https://hudi.apache.org/roadmap/) includes exciting developments
across the following planned releases:
+
+* **1.0.1**: First bug fix, patch release on top of 1.0, which hardens the
functionality above and makes it easier. We intend to publish additional patch
releases to aid migration to 1.0 as the bridge release for the community from
0.x.
+* **1.1**: Faster writer code path rewrite, new indexes like bitmap/vector
search, granular record-level change encoding, Hudi storage engine APIs,
abstractions for cross-format interop.
+* **1.2**: Multi-table transactions, platform services for reverse streaming
from Hudi etc., Multi-modal data \+ indexing, NBCC clustering
+* **2.0**: Server components for DLMS, caching and metaserver functionality.
+
+Hudi releases are drafted collaboratively by the community. If you don’t see
something you like here, please help shape the roadmap together.
+
+## Get Started with Apache Hudi 1.0
+
+Are you ready to experience the future of data lakehouses? Here’s how you can
dive into Hudi 1.0:
+
+* Documentation: Explore Hudi’s
[Documentation](https://hudi.apache.org/docs/overview) and learn the
[concepts](https://hudi.apache.org/docs/hudi_stack).
+* Quickstart Guide: Follow the [Quickstart
Guide](https://hudi.apache.org/docs/quick-start-guide) to set up your first
Hudi project.
+* Upgrading from a previous version? Follow the [migration
guide](https://hudi.apache.org/releases/release-1.0.0#migration-guide) and
contact the Hudi OSS community for help.
+* Join the Community: Participate in discussions on the [Hudi Mailing
List](https://hudi.apache.org/community/get-involved/),
[Slack](https://join.slack.com/t/apache-hudi/shared_invite/zt-2ggm1fub8-_yt4Reu9djwqqVRFC7X49g)
and [GitHub](https://github.com/apache/hudi/issues).
+* Follow us on social media:
[Linkedin](https://www.linkedin.com/company/apache-hudi/?viewAsMember=true),
[X/Twitter](https://twitter.com/ApacheHudi).
+
+We can’t wait to see what you build with Apache Hudi 1.0. Let’s work together
to shape the future of data lakehouses\!
+
+Crafted with passion for the Apache Hudi community.
+
+[image1]:
<data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACAAAAAHHCAYAAAAr0rjvAACAAElEQVR4XuydB7wkRbX/Zxd87/197+nGe++cvhtYVkBMIEhWVgkqmAEBMyqiYnoiGEABswiKqKgIohgAEREEROISJSkSDCACggGQIJLj/M+vq6r7zOmeuXN3b76/7+dzPjNdp6o6d6VTpxoNQgghhBBCCCGEEEIIIYQQMm6IyH4+jBBCCCGEEEIIIYQQQgghhBBCCCGTDBFpZVm2tw8nhBBCCCGEEEIIIYQQQgghhBBCyCQhy7LXwgBA5TavI4QQQgghhBBCCCGEEEIIIYQQQsgkQUQeP/CD82EAAC8Aa3g9IYQQQgghhBBCCCGEEEIIIYQQQiY4WZa9BQP/j/xqVuuwj+dGAL/2cQghhBBCCCGEEEIIIYQQQgghhBAywRGRv+/zjr7cAOD2M2bDAOCJRYsWPd3
[...]
+
+[image2]:
<data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA44AAAIFCAYAAACd96M7AACAAElEQVR4XuydCXhV1bn+Qe3tvb29vb39t1bP2efkDDmZk3PO3mQOJMzzFOZ5nlFAmWcQBBUEEZFAgKp1QkVqrbVKRa1V61TrUBGLY0EUCIPzgPmvb529DitfTkiAAEl4f8/zPtn7W2uvvfYQ2G/W1KgRAABcQFhbPk9P3FT+PzwOAAAAAAAAAAA0il9T/uOM0rLOZr9Z14ndxjwdAAAAAAAAAMAFTnDT4eZkHElNmjQp4ekAAAAAAAAAAC5gkksOXK5MY8ash0ZYec32hEKhn/N8AAAAAAAAAAAuUJRpDK7ZU2zmFb1D21Zm9kHLsn7J8wIAAAAAAAAAuMCwSvb9UhlHM7vg4+D8R4fJ/YVPDBbG8U88PwAAAAAAAACAC4kF5Rcp0xgeMGeZ2XHQ3dEuq2QkW3T
[...]
diff --git a/website/static/assets/images/backwards-compat-writing.png
b/website/static/assets/images/backwards-compat-writing.png
new file mode 100644
index 00000000000..76ecfaaf480
Binary files /dev/null and
b/website/static/assets/images/backwards-compat-writing.png differ
diff --git
a/website/static/assets/images/expression-index-date-partitioning.png
b/website/static/assets/images/expression-index-date-partitioning.png
new file mode 100644
index 00000000000..6dbc7db6d4f
Binary files /dev/null and
b/website/static/assets/images/expression-index-date-partitioning.png differ
diff --git a/website/static/assets/images/nbcc_partial_updates.gif
b/website/static/assets/images/nbcc_partial_updates.gif
new file mode 100644
index 00000000000..8bae5624100
Binary files /dev/null and
b/website/static/assets/images/nbcc_partial_updates.gif differ