Skip to content

Commit

Permalink
[FLINK-30700][docs-zh] Improve translate of the "Deduplication" page
Browse files Browse the repository at this point in the history
  • Loading branch information
wuchong committed Mar 19, 2023
1 parent f7ee479 commit a06aaa0
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions docs/content.zh/docs/dev/table/sql/queries/deduplication.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ under the License.
# 去重
{{< label Batch >}} {{< label Streaming >}}

去重是去掉重复的行,只保留第一或者最后一行。有时,上游的 ETL 生成的数据不是端到端精确一次的(end-to-end exactly-once); 在发生故障转移(failover)后,可能会导致 Sink 出现重复记录。这些重复记录会影响下游的分析工作,比如:`SUM``COUNT`,所以需要先去重再进行下一步的分析。
去重是去掉重复的行,只保留第一或者最后一行。有时,上游的 ETL 生成的数据不是端到端精确一次的。在发生故障恢复后,可能会导致结果下游中出现重复记录。这些重复记录会影响下游的分析工作,比如:`SUM``COUNT`的结果会偏大,所以需要先去重再进行下一步的分析。

Flink 使用 `ROW_NUMBER()` 移除重复数据,就像 Top-N 查询一样。理论上,去重是 Top-N 的特殊情况:N 是 1 ,并且是通过处理或者事件时间排序的
Flink 使用 `ROW_NUMBER()` 去除重复数据,就像 Top-N 查询一样。其实,去重就是 Top-N 在 N 为 1 时的特例,并且去重必须要求按照[处理或者事件时间]({{< ref "docs/dev/table/concepts/time_attributes" >}})排序

下面的例子展示了去重语句的语法:

Expand All @@ -44,8 +44,8 @@ WHERE rownum = 1
**参数说明:**

- `ROW_NUMBER()`:为每一行分配一个唯一且连续的数字,从 1 开始。
- `PARTITION BY col1[, col2...]`指定分区列,即需要去重的列
- `ORDER BY time_attr [asc|desc]`:指定排序列,必须是 [时间属性]({{< ref "docs/dev/table/concepts/time_attributes" >}})。目前 Flink 支持 [处理时间属性]({{< ref "docs/dev/table/concepts/time_attributes" >}}#processing-time) 和 [事件时间属性]({{< ref "docs/dev/table/concepts/time_attributes" >}}#event-time)。order by ASC 保留第一行,DESC 保留最后一行。
- `PARTITION BY col1[, col2...]`指定分区键,即需要去重的键
- `ORDER BY time_attr [asc|desc]`:指定排序列,必须是 [时间属性]({{< ref "docs/dev/table/concepts/time_attributes" >}})。目前 Flink 支持 [处理时间属性]({{< ref "docs/dev/table/concepts/time_attributes" >}}#processing-time) 和 [事件时间属性]({{< ref "docs/dev/table/concepts/time_attributes" >}}#event-time)。Order by ASC 保留第一行,DESC 保留最后一行。
- `WHERE rownum = 1`:Flink 需要这个条件来识别去重语句。

{{< hint info >}}
Expand Down

0 comments on commit a06aaa0

Please sign in to comment.