diff --git a/doc/_toc.yml b/doc/_toc.yml
index 05f62d7..c1472e2 100644
--- a/doc/_toc.yml
+++ b/doc/_toc.yml
@@ -10,11 +10,19 @@ subtrees:
- file: ch-system-design/exercise-wordcount
- file: ch-datastream-api/index
entries:
- - file: ch-datastream-api/data-types
- file: ch-datastream-api/skeleton
- file: ch-datastream-api/transformations
+ - file: ch-datastream-api/data-types
- file: ch-datastream-api/user-define-functions
- file: ch-datastream-api/exercise-stock-basic
+ - file: ch-time-window/index
+ entries:
+ - file: ch-time-window/time
+ - file: ch-time-window/process-function
+ - file: ch-time-window/window
+ - file: ch-time-window/join
+ - file: ch-time-window/late-elements
+ - file: ch-time-window/exercise-stock
- file: ch-state-checkpoint/index
entries:
- file: ch-state-checkpoint/checkpoint
@@ -24,18 +32,10 @@ subtrees:
- file: ch-table-sql/index
entries:
- file: ch-table-sql/table-overview
- - file: ch-table-sql/catalog-function
- file: ch-table-sql/dynamic-table
+ - file: ch-table-sql/sql-window
- file: ch-table-sql/sql-join
- file: ch-table-sql/sql-ddl
- file: ch-table-sql/system-function
- - file: ch-table-sql/sql-window
- - file: ch-table-sql/exercise-iot
- - file: ch-time-window/index
- entries:
- - file: ch-time-window/join
- - file: ch-time-window/late-elements
- - file: ch-time-window/process-function
- - file: ch-time-window/time
- - file: ch-time-window/window
- - file: ch-time-window/exercise-stock
\ No newline at end of file
+ - file: ch-table-sql/catalog-function
+ - file: ch-table-sql/exercise-iot
\ No newline at end of file
diff --git a/doc/ch-datastream-api/data-types.md b/doc/ch-datastream-api/data-types.md
index b693af3..b79a8a8 100644
--- a/doc/ch-datastream-api/data-types.md
+++ b/doc/ch-datastream-api/data-types.md
@@ -28,7 +28,7 @@ Flink支持上图所示的几种数据类型:基础类型、数组、复合类
基础类型或其他对象类型组成的数组,如`String[]`。
-### 复合类型 {#composite-types}
+### 复合类型
#### Scala case class
diff --git a/doc/ch-datastream-api/img/filter.drawio b/doc/ch-datastream-api/img/filter.drawio
new file mode 100644
index 0000000..afc7943
--- /dev/null
+++ b/doc/ch-datastream-api/img/filter.drawio
@@ -0,0 +1 @@
+5Vhbc6IwGP01PHYHiIA8qrV1H7bdHdvpcwoRMhsIDaFqf/0GE+5x6rZand0XJSchl3NOvnzBALNkc8tgFv+gISKGbYYbA1wbtu0DW/yWwFYCztiVQMRwKCGrAZb4DSnQVGiBQ5R3GnJKCcdZFwxomqKAdzDIGF13m60o6Y6awQgNgGUAyRB9wiGPJTq2vQZfIBzF1ciW68uaBFaN1UryGIZ03YLA3AAzRimXT8lmhkjJXcWLfO9mT209MYZSfsgLL/Hb4jpG7Glxv8ATv1hsV+Orah2vkBRqxWq2fFtRwGiRhqjsxTTAdB1jjpYZDMratdBcYDFPiChZ4jHnjP5GM0ooE0hKU9FsOpyqmv0rYhxtWpCa+i2iCeJsK5pURlIsKhv5jiyuG008cyyxuKVH7SOofBDVPTdUiQfF1l8wZ71PHErDSWlBUQoIzHMcdLnaSwsKO6YcktJatmMOV11hDBHI8WvXyjom1Ag/KRYzqTm37C7pttkjM6cFC5B6q229Xkdg9E5HHLII8UFHO2HqZX9cK/sAk8c0eS7y9w1+BC9boEuHVenVkhVoZAUn87KrIcglYtjpiu6EbJhyXwpaVVzlu3g9EQ0sN9s0leIp2v3PPWMyN3zPmDvG5Nood7HsV8xTdq0afiroHEET4PU08Yaa1PuhLYp7MlEOCc1f6No6lF6Ma8cXRpBzYQTZ/8EZ5fRd6fvfnI+dUp575lNKd0wdIwp/vzs06gqn8wPyuRUmpAdBgqO0NJHwCRL4tNw3WOTRE1WR4DAsh9FuxG60P0Y479mi3mQtV440rrRPthfBXnHzDKYfF/f+8aGlruzrX1fXMc+n7jIYB/wxgDG4Y4z8Wt7c8IeDLgOEiDvrPopamsA8kxfZFd6UpE33sKPhcH/G2c9uvvBo0hJ2/Iz8U/w4Z8zItfzoosUZ+XHPmPtp+RldGD9nTP20/OgudJcUkOoPOKcnTBSbj2wyV2u+VIL5Hw==
\ No newline at end of file
diff --git a/doc/ch-datastream-api/img/flatMap.drawio b/doc/ch-datastream-api/img/flatMap.drawio
new file mode 100644
index 0000000..a20b9c7
--- /dev/null
+++ b/doc/ch-datastream-api/img/flatMap.drawio
@@ -0,0 +1 @@
+5Zpbb5swGIZ/DZdUgGMIl0maNZvUdVI79XKywAnWHEyN0yT99TPBhJOjRW1SrO0q8Nr48HwHH1oLzNa7O46y5J7FmFqeE+8scGt5nhvAUP4Uyr5U4NgvhRUnsapUC4/kDSvRUeqGxDhvVRSMUUGythixNMWRaGmIc7ZtV1sy2u41QyvcEx4jRPvqM4lFUqpjL6j1BSarpOrZ9dWE16iqrGaSJyhm24YE5haYccZE+bTezTAt4FVcyu++nCg9DozjVJzzwUvytrhNMH9ePCzIJNws9suxXc3jFdGNmrEardhXCDjbpDEuWnEsMN0mRODHDEVF6VYaXWqJWFP55srHXHD2G88YZVwqKUtltWl/qGr0r5gLvGtIauh3mK2x4HtZRZXaY4VR+VH1um0YxVda0jDI0ZGQcoTVsemalXxQuPTonvyA5b9e7sG3xM+ndh7a4b0dXpjcCSIabicheZ5/A1uYXAB7nFxPw8m/FibXPEzjcDhG2ig8gxFO40mRzuRbRFGek0iHRRNiOG4luD6UxqyhZtKVxjFFgry206KOhOrhByNyJHX8Bu349RzYbiJnGx5h9VUzjXUaAv5fGhKIr7DoNXQwzHHa77fVdcL+Q7nRB52gh/3kCDSmBVfzZ8dASIFpkHwNJJ/KbqdLdvD4mpb/smFVgZ0fNkkTWcH1s11dKJ9Wh995YE3mVhhYc2hNbq3QqdqV4yybVhWHtgnoJAU36NvkczOxZ6DnBq5hnuv9B+sVdLvLzOjmnStWMPCKVVnn4onm6/dzE4v0dHHGOWFJKO1IiJJVWjiR9BMs9WkRN0SezyaqYE3iuOhGG4jtUL1Exuq6BejH4kh3DLlaLIKTxs0zlL7fuA8/nxrWLdv6160LneGsqz086SJ36DMm8AZbjbSMdAEwNKPAMEYj8xgB1zBGuu14d1NDKcnyU+mowQflWXkZuSS7guklgIUjs3idcXM4KC8XALOAjU0HFhgG7ErXCB+CZMP2FsGAC1YDb1jt0ah7ET24Mxm4l7LNo2TgbgpA4ygZuJ+CA94S6SFBAyFB0yCdsev8dEjhp0GSr/UfwMv7rvrfCMD8Dw==
\ No newline at end of file
diff --git a/doc/ch-datastream-api/img/type-inference-process.drawio b/doc/ch-datastream-api/img/type-inference-process.drawio
new file mode 100644
index 0000000..18a0bf1
--- /dev/null
+++ b/doc/ch-datastream-api/img/type-inference-process.drawio
@@ -0,0 +1 @@
+5VhNc5swEP01OiYDCDAcjU3SdNpMUmcmdS8ZamSsFiNXyLHdX98ViPAhkjqtk7jTi0da7S6rt6unlREeLbfnPFotPrKYpMgy4i3CY2RZPrbgVwp2pcDxlCDhNC5FZi2Y0J9ECQ0lXdOY5C1FwVgq6KotnLEsIzPRkkWcs01bbc7S9ldXUUI0wWQWpbr0lsZiUUo9a1DL3xGaLKovm65friyjSlntJF9EMds0RDhEeMQZE+VouR2RVGJX4VLanT2y+hAYJ5nYx8BIPoZfvoVTe3p3RZP7xfSa0RO1jfsoXasNq2DFrkKAs3UWE+nEQDjYLKggk1U0k6sbSDnIFmKZwsyEYS44+05GLGUcJBnLQC3QI1XB3xMuyLYhUpGfE7Ykgu9Apaoju7TYVdWhQN3UOXFtFfuikQ/bU4qRqoPkwXUNFQwUWs9AztSRCwcI4hx6KHSR56FggEIHDUPkD1Foo8BHnl/oDJFnSx3fQYFRKI+lGiwFJgoCaeWHyAPcIHg3ha0EXzmMEjkqXBWr0jnYyigmgtMseSJ15u9TN2eZUOfPdA+TNatCv0qbrafNGhh62tyXypqlZe1mtyIX2ZxxOLCUZftjLg3z08nNp4vL86NH3nLeGnnci/yEcBqlsHf+3GJvWh45+Nh9a/DtHrJykAeAOgWyY+R7Be3AYHD0eNqDV8Tzbuq9v8Q3xu1y/mE0x3dsc3LdR/5d0EgWD2X/AbNZGuU5nbVxIlsqPstL9dRRs2ljZbxV920x2VWTDIJvGMnptLlWmxWzyq4MjsRaq6MlJWdrPiO/v/ZExBMintCz+jPayJjTk7BKxkkKbHzfDrcvi+oLV4zCRh4KxjY6947VKYRym8qq2TN1HTltR4OOnxIGzU9RUw+7/vMy02+riiLlKWvVm/tjzaqFk7w4f0NQMN3Vtl6saRVOfqg6Fd+V51/5hTBL10qxW9VwYsUeHd+cpmlHBFydZPIwQMkBZ+NAnn8KjfZQLSxpHMvP9BJMuwl9hEB6KvpRTsG2PEOtK9LEGqvYPTXaraWDkYp+Qx41qeRQ/EKPphCf0bQK6YDcg/fkHvtNucfqltWfck/XUfc2e2Hy6ekZFEnkqyj7G/LRHkU1+ZSu/z/ywVhvaV6VfJx/i3wOyCrWnqyCj4lVbHwgVtH+IHlhVnFfkFWCIfLOioeNJ58xcjCS7U3Ps9KRmt74eVb/HU2ZnXcXdjSSMg3zICwF0/qv0LLY6v+TcfgL
\ No newline at end of file