You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by li...@apache.org on 2023/12/02 00:40:12 UTC

(flink) 02/02: [FLINK-33638][docs-zh] Update the outdated Chinese datagen connector docs

This is an automated email from the ASF dual-hosted git repository.

lincoln pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git

commit 1403febd30e03cb38352695151d43e4ed3eb8ac1
Author: Yubin Li <li...@163.com>
AuthorDate: Fri Dec 1 11:23:19 2023 +0800

    [FLINK-33638][docs-zh] Update the outdated Chinese datagen connector docs
---
 docs/content.zh/docs/connectors/table/datagen.md | 220 +++++++++++++++++++----
 docs/content/docs/connectors/table/datagen.md    |  14 +-
 2 files changed, 196 insertions(+), 38 deletions(-)

diff --git a/docs/content.zh/docs/connectors/table/datagen.md b/docs/content.zh/docs/connectors/table/datagen.md
index 87dd494fa19..210ccc088d2 100644
--- a/docs/content.zh/docs/connectors/table/datagen.md
+++ b/docs/content.zh/docs/connectors/table/datagen.md
@@ -29,51 +29,202 @@ under the License.
 {{< label "Scan Source: 有界" >}}
 {{< label "Scan Source: 无界" >}}
 
-DataGen 连接器允许按数据生成规则进行读取。
+DataGen 连接器允许基于内存生成数据来创建表。
+在本地开发时,若不访问外部系统(如 Kafka),这会非常有用。
+可以使用[计算列语法]({{< ref "docs/dev/table/sql/create" >}}#create-table)灵活地生成记录。
 
-DataGen 连接器可以使用[计算列语法]({{< ref "docs/dev/table/sql/create" >}}#create-table)。
-这使您可以灵活地生成记录。
+DataGen 连接器是内置的,不需要额外的依赖项。
 
-DataGen 连接器是内置的。
+用法
+-----
 
-<span class="label label-danger">注意</span> 不支持复杂类型: Array,Map,Row。 请用计算列构造这些类型。
+默认情况下,DataGen 表将创建无限数量的行,每列都有一个随机值。
+对于 char、varchar、binary、varbinary、string、array、map 和 multiset 类型,可以指定长度。
+还可以指定总行数,从而生成有界表。
 
-怎么创建一个 DataGen 的表
-----------------
-
-表的有界性:当表中字段的数据全部生成完成后,source 就结束了。 因此,表的有界性取决于字段的有界性。
-
-每个列,都有两种生成数据的方法:
+还支持序列生成器,您可以指定序列的起始和结束值。
+如果表中有任一列是序列类型,则该表将是有界的,并在第一个序列完成时结束。
 
-- 随机生成器是默认的生成器,您可以指定随机生成的最大和最小值。char、varchar、binary、varbinary, string (类型)可以指定长度。它是无界的生成器。
-
-- 序列生成器,您可以指定序列的起始和结束值。它是有界的生成器,当序列数字达到结束值,读取结束。
+时间类型字段对应的值始终是本地机器当前系统时间。
 
 ```sql
-CREATE TABLE datagen (
- f_sequence INT,
- f_random INT,
- f_random_str STRING,
- ts AS localtimestamp,
- WATERMARK FOR ts AS ts
+CREATE TABLE Orders (
+    order_number BIGINT,
+    price        DECIMAL(32,2),
+    buyer        ROW<first_name STRING, last_name STRING>,
+    order_time   TIMESTAMP(3)
 ) WITH (
- 'connector' = 'datagen',
+  'connector' = 'datagen'
+)
+```
 
- -- optional options --
+DataGen 连接器通常与 ``LIKE`` 子句结合使用,以模拟物理表。
 
- 'rows-per-second'='5',
+```sql
+CREATE TABLE Orders (
+    order_number BIGINT,
+    price        DECIMAL(32,2),
+    buyer        ROW<first_name STRING, last_name STRING>,
+    order_time   TIMESTAMP(3)
+) WITH (...)
 
- 'fields.f_sequence.kind'='sequence',
- 'fields.f_sequence.start'='1',
- 'fields.f_sequence.end'='1000',
+-- create a bounded mock table
+CREATE TEMPORARY TABLE GenOrders
+WITH (
+    'connector' = 'datagen',
+    'number-of-rows' = '10'
+)
+LIKE Orders (EXCLUDING ALL)
+```
 
- 'fields.f_random.min'='1',
- 'fields.f_random.max'='1000',
+此外,对于可变长度类型(varchar、string、varbinary 和 bytes),您可以指定是否生成可变长度的数据。
 
- 'fields.f_random_str.length'='10'
+```sql
+CREATE TABLE Orders (
+    order_number BIGINT,
+    price        DECIMAL(32,2),
+    buyer        ROW<first_name STRING, last_name STRING>,
+    order_time   TIMESTAMP(3),
+    seller       VARCHAR(150)
+) WITH (
+  'connector' = 'datagen',
+  'fields.seller.var-len' = 'true'
 )
 ```
 
+字段类型
+-----
+
+<table class="table table-bordered">
+    <thead>
+        <tr>
+            <th class="text-left" style="width: 25%">Type</th>
+            <th class="text-center" style="width: 25%">Supported Generators</th>
+            <th class="text-center" style="width: 50%">Notes</th>
+        </tr>
+    </thead>
+    <tbody>
+        <tr>
+            <td>BOOLEAN</td>
+            <td>random</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>CHAR</td>
+            <td>random / sequence</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>VARCHAR</td>
+            <td>random / sequence</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>BINARY</td>
+            <td>random / sequence</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>VARBINARY</td>
+            <td>random / sequence</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>STRING</td>
+            <td>random / sequence</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>DECIMAL</td>
+            <td>random / sequence</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>TINYINT</td>
+            <td>random / sequence</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>SMALLINT</td>
+            <td>random / sequence</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>INT</td>
+            <td>random / sequence</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>BIGINT</td>
+            <td>random / sequence</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>FLOAT</td>
+            <td>random / sequence</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>DOUBLE</td>
+            <td>random / sequence</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>DATE</td>
+            <td>random</td>
+            <td>总是解析为本地机器的当前日期。</td>
+        </tr>
+        <tr>
+            <td>TIME</td>
+            <td>random</td>
+            <td>总是解析为本地机器的当前时间。</td>
+        </tr>
+        <tr>
+            <td>TIMESTAMP</td>
+            <td>random</td>
+            <td>
+                解析为相对于本地机器的当前时间戳向过去偏移的时间戳。偏移的最大值可以通过 'max-past' 选项指定。
+            </td>
+        </tr>
+        <tr>
+            <td>TIMESTAMP_LTZ</td>
+            <td>random</td>
+            <td>
+                解析为相对于本地机器的当前时间戳向过去偏移的时间戳。偏移的最大值可以通过 'max-past' 选项指定。
+            </td>
+        </tr>
+        <tr>
+            <td>INTERVAL YEAR TO MONTH</td>
+            <td>random</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>INTERVAL DAY TO MONTH</td>
+            <td>random</td>
+            <td></td>
+        </tr>
+        <tr>
+            <td>ROW</td>
+            <td>random</td>
+            <td>生成具有随机字段数据的行。</td>
+        </tr>
+        <tr>
+            <td>ARRAY</td>
+            <td>random</td>
+            <td>生成具有随机元素的数组。</td>
+        </tr>
+        <tr>
+            <td>MAP</td>
+            <td>random</td>
+            <td>生成具有随机元素的 Map。</td>
+        </tr>
+        <tr>
+            <td>MULTISET</td>
+            <td>random</td>
+            <td>生成具有随机元素的多重集。</td>
+        </tr>
+    </tbody>
+</table>
 
 连接器参数
 ----------------
@@ -103,6 +254,13 @@ CREATE TABLE datagen (
       <td>Long</td>
       <td>每秒生成的行数,用以控制数据发出速率。</td>
     </tr>
+    <tr>
+      <td><h5>number-of-rows</h5></td>
+      <td>可选</td>
+      <td style="word-wrap: break-word;">(none)</td>
+      <td>Long</td>
+      <td>生成数据的总行数。默认情况下,该表是无界的。</td>
+    </tr>
     <tr>
       <td><h5>fields.#.kind</h5></td>
       <td>可选</td>
@@ -136,7 +294,7 @@ CREATE TABLE datagen (
       <td>可选</td>
       <td style="word-wrap: break-word;">100</td>
       <td>Integer</td>
-      <td>随机生成器生成字符的长度,适用于 char、varchar、binary、varbinary、string。</td>
+      <td>随机生成器生成字符的长度,适用于 char、varchar、binary、varbinary、string、array、map、multiset。</td>
     </tr>
     <tr>
       <td><h5>fields.#.var-len</h5></td>
@@ -164,7 +322,7 @@ CREATE TABLE datagen (
       <td>optional</td>
       <td style="word-wrap: break-word;">(none)</td>
       <td>(Type of field)</td>
-      <td>The proportion of null values.</td>
+      <td>空值比例。</td>
     </tr>
     </tbody>
 </table>
diff --git a/docs/content/docs/connectors/table/datagen.md b/docs/content/docs/connectors/table/datagen.md
index 25d3b0efd81..b4fc81a4280 100644
--- a/docs/content/docs/connectors/table/datagen.md
+++ b/docs/content/docs/connectors/table/datagen.md
@@ -256,13 +256,13 @@ Connector Options
       <td>Long</td>
       <td>Rows per second to control the emit rate.</td>
     </tr>
-        <tr>
-          <td><h5>number-of-rows</h5></td>
-          <td>optional</td>
-          <td style="word-wrap: break-word;">(none)</td>
-          <td>Long</td>
-          <td>The total number of rows to emit. By default, the table is unbounded.</td>
-        </tr>
+    <tr>
+      <td><h5>number-of-rows</h5></td>
+      <td>optional</td>
+      <td style="word-wrap: break-word;">(none)</td>
+      <td>Long</td>
+      <td>The total number of rows to emit. By default, the table is unbounded.</td>
+    </tr>
     <tr>
       <td><h5>fields.#.kind</h5></td>
       <td>optional</td>