This is an automated email from the ASF dual-hosted git repository.
martijnvisser pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 9964c47082e [hotfix][docs-zh] Improving Chinese translation for Table
concepts overview documentation.
9964c47082e is described below
commit 9964c47082e32693aecc7947978bf94849ada8c4
Author: snailHumming <[email protected]>
AuthorDate: Wed Apr 20 10:16:19 2022 +0800
[hotfix][docs-zh] Improving Chinese translation for Table concepts overview
documentation.
---
.../content.zh/docs/dev/table/concepts/overview.md | 27 +++++++++++++++-------
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/docs/content.zh/docs/dev/table/concepts/overview.md
b/docs/content.zh/docs/dev/table/concepts/overview.md
index b9bd3be36d4..ed6561c8638 100644
--- a/docs/content.zh/docs/dev/table/concepts/overview.md
+++ b/docs/content.zh/docs/dev/table/concepts/overview.md
@@ -34,29 +34,33 @@ Flink 的 [Table API]({{< ref "docs/dev/table/tableApi" >}})
和 [SQL]({{< ref "
下面这些页面包含了概念、实际的限制,以及流式数据处理中的一些特定的配置。
+<a name="state-management"></a>
+
状态管理
----------------
-流模式下运行的表程序利用了Flink作为有状态流处理器的所有能力。
+流模式下运行的表程序利用了 Flink 作为有状态流处理器的所有能力。
事实上,一个表程序(Table program)可以配置一个 [state backend]({{< ref
"docs/ops/state/state_backends" >}})
和多个不同的 [checkpoint 选项]({{< ref
"docs/dev/datastream/fault-tolerance/checkpointing" >}})
以处理对不同状态大小和容错需求。这可以对正在运行的 Table API & SQL 管道(pipeline)生成
savepoint,并在这之后用其恢复应用程序的状态。
+<a name="state-usage"></a>
+
### 状态使用
-由于 Table API & SQL 程序是声明式的,管道内的状态会在哪以及如何被使用并不显然。 Planner 会确认是否需要状态来得到正确的计算结果,
-管道会被现有优化规则集优化成尽可能少地索要状态。
+由于 Table API & SQL 程序是声明式的,管道内的状态会在哪以及如何被使用并不明确。 Planner 会确认是否需要状态来得到正确的计算结果,
+管道会被现有优化规则集优化成尽可能少地使用状态。
{{< hint info >}}
-从概念上讲, 源表从来不会在状态中被完全保存。 实现者在处理逻辑表(即[动态表]({{< ref
"docs/dev/table/concepts/dynamic_tables" >}}))时,
+从概念上讲, 源表从来不会在状态中被完全保存。 实现者处理的是逻辑表(即[动态表]({{< ref
"docs/dev/table/concepts/dynamic_tables" >}}))。
它们的状态取决于用到的操作。
{{< /hint >}}
-形如 `SELECT ... FROM ... WHERE` 这种只包含字段映射或过滤器的查询的查询语句通常是无状态的管道。 然而诸如 join 、
-聚合或去重操作需要在Flink抽象的容错存储内保持中间结果。
+形如 `SELECT ... FROM ... WHERE` 这种只包含字段映射或过滤器的查询的查询语句通常是无状态的管道。 然而诸如 join、
+聚合或去重操作需要在 Flink 抽象的容错存储内保存中间结果。
{{< hint info >}}
-请参考独立的算子文档来获取更多关于状态需求量和限制潜在状态大小增长的信息。
+请参考独立的算子文档来获取更多关于状态需求量和限制潜在增长状态大小的信息。
{{< /hint >}}
例如对两个表进行 join 操作的普通 SQL 需要算子保存两个表的全部输入。基于正确的 SQL 语义,运行时假设两表会在任意时间点进行匹配。
@@ -73,6 +77,8 @@ SELECT sessionId, COUNT(*) FROM clicks GROUP BY sessionId;
且 `sessionId` 的值只活跃到会话结束(即在有限的时间周期内)。然而连续查询无法得知sessionId的这个性质,
并且预期每个 `sessionId` 值会在任何时间点上出现。这维护了每个可见的 `sessionId` 值。因此总状态量会随着 `sessionId`
的发现不断地增长。
+<a name="idle-state-retention-time"></a>
+
#### 空闲状态维持时间
*空间状态位置时间*参数 [`table.exec.state.ttl`]({{< ref "docs/dev/table/config"
>}}#table-exec-state-ttl)
@@ -81,6 +87,8 @@ SELECT sessionId, COUNT(*) FROM clicks GROUP BY sessionId;
通过移除状态的键,连续查询会完全忘记它曾经见过这个键。如果一个状态带有曾被移除状态的键被处理了,这条记录将被认为是
对应键的第一条记录。上述例子中意味着 `sessionId` 会再次从 `0` 开始计数。
+<a name="stateful-upgrades-and-evolution"></a>
+
### 状态化更新与演化
表程序在流模式下执行将被视为*标准查询*,这意味着它们被定义一次后将被一直视为静态的端到端 (end-to-end) 管道
@@ -92,7 +100,7 @@ SELECT sessionId, COUNT(*) FROM clicks GROUP BY sessionId;
算子状态的列布局差异。
查询实现者需要确保改变在优化计划前后是兼容的,在 SQL 中使用 `EXPLAIN` 或在 Table API 中使用 `table.explain()`
-可[获取详情]({{< ref "docs/dev/table/common" >}}#explaining-a-table).
+可[获取详情]({{< ref "docs/dev/table/common" >}}#explaining-a-table)。
由于新的优化器规则正不断地被添加,算子变得更加高效和专用,升级到更新的Flink版本可能造成不兼容的计划。
@@ -108,6 +116,9 @@ SELECT sessionId, COUNT(*) FROM clicks GROUP BY sessionId;
由于这两个缺点(即修改查询语句和修改Flink版本),我们推荐实现调查升级后的表程序是否可以在切换到实时数据前,被历史数据"暖机"
(即被初始化)。Flink社区正致力于 [混合源]({{< ref "docs/connectors/datastream/hybridsource"
>}}) 来让切换变得尽可能方便。
+
+<a name="where-to-go-next"></a>
+
接下来?
-----------------