全部產品
Search
文件中心

Realtime Compute for Apache Flink:Datagen

更新時間:Jul 13, 2024

本文為您介紹如何使用Datagen連接器。

背景資訊

Datagen是主要用於調試的連接器,可以周期性地產生Datagen源表對應類型的隨機資料。如果您在開發或測試時,需要使用一些測試資料來快速驗證商務邏輯,您可以使用Datagen連接器來產生隨機資料。

Datagen支援計算資料行文法Computed Column syntax,使它可以靈活地產生資料。

Datagen連接器支援的資訊如下。

類別

詳情

支援類型

源表

運行模式

批模式和流模式

資料格式

暫不適用

特有監控指標

暫無

API種類

SQL

是否支援更新或刪除結果表資料

不涉及

使用限制

僅Flink計算引擎VVR 2.0.0及以上版本支援Datagen連接器。

文法結構

CREATE TABLE datagen_source (
  name VARCHAR,
  score BIGINT
) WITH (
  'connector' = 'datagen'
);

WITH參數

參數

說明

資料類型

是否必填

預設值

備忘

connector

源表類型。

String

固定值為datagen

rows-per-second

產生隨機資料的速率。

Long

10000(條/秒)

無。

number-of-rows

產生資料的總條數。

Long

預設產生的是無界資料來源表。如果任意欄位產生器類型為序列產生器,則當某一欄位的序列全部產生後,Source結束,產生有界表。

fields.<field>.kind

為<field>產生資料的產生器類型。

String

random

參數可選值:

  • random:隨機產生器。

  • sequence:序列產生器。

關於產生器詳情請參見產生器

fields.<field>.min

產生隨機數的最小值。

與<field>類型相同

<field>類型的最小值

fields.<field>.kind參數設定為random時,該參數配置有效。只支援數字類型。

fields.<field>.max

產生隨機數的最大值。

與<field>類型相同

<field>類型的最大值

fields.<field>.min

fields.<field>.max-past

產生隨機時間戳記時,相對於本地機器目前時間戳的最大過去時間。

Duration

0

只支援時間戳記類型。

fields.<field>.length

產生隨機字串的長度或者產生集合的容量。

Integer

100

支援以下任意一種類型:

  • char

  • varchar

  • binary

  • varbinary

  • string

  • array

  • map

  • multiset

fields.<field>.start

序列產生器的起始值。

與<field>類型相同

fields.<field>.kind參數設定為sequence時,該參數配置有效。

fields.<field>.end

序列產生器的結束值。

與<field>類型相同

fields.<field>.kind參數設定為sequence時,該參數配置有效。

說明

參數中的<field>需要替換為您在DDL中定義的目標欄位名。

產生器

當前Datagen可以使用兩種產生器產生隨機資料:

  • 隨機產生器(random):產生隨機值。您可以指定隨機產生資料的最大值和最小值。

  • 序列產生器(sequence):在一定範圍內產生有序值,當產生序列達到結束值時結束,因此使用序列產生器將產生有界表。您可以指定序列的起始值和結束值。

各種資料類型支援的產生器如下所示。

類型

支援的產生器

備忘

BOOLEAN

random

無。

CHAR

random/sequence

無。

VARCHAR

random/sequence

無。

BINARY

random/sequence

無。

VARBINARY

random/sequence

無。

STRING

random/sequence

無。

DECIMAL

random/sequence

無。

TINYINT

random/sequence

無。

SMALLINT

random/sequence

無。

INT

random/sequence

無。

BIGINT

random/sequence

無。

FLOAT

random/sequence

無。

DOUBLE

random/sequence

無。

DATE

random

始終使用本地機器的當前日期。

TIME

random

始終使用本地機器的目前時間。

TIMESTAMP

random

在相對於本地機器目前時間戳的最大過去時間範圍內產生。

TIMESTAMP_LTZ

random

同TIMESTAMP。

ROW

random

產生隨機子欄位。

ARRAY

random

產生隨機元素。

MAP

random

產生隨機(key,value)。

MULTISET

random

產生隨機元素。

使用樣本

Datagen通常與LIKE子句一起使用來類比一個表,如下所示。

CREATE TABLE datagen_source (
 id INT,
 score INT
) WITH (
 'connector' = 'datagen',
 'fields.id.kind'='sequence',
 'fields.id.start'='1',
 'fields.id.end'='50',
 'fields.score.kind'='random',
 'fields.score.min'='70',
 'fields.score.max'='100'
);