DataGen
This documentation is for an unreleased version of Apache Flink. We recommend you use the latest stable version.

DataGen SQLコネクタ #

Scan Source: Bounded Scan Source: UnBounded

The DataGenコネクタはインメモリのデータ生成に基づいてテーブルを作成できます。 Kafkaのような外部システムにアクセスせずにローカルでクエリを開発する場合に便利です。 テーブルには柔軟なレコード生成を可能にするComputed Column syntaxを含めることができます。

DataGen コネクタは組み込まれているため、追加の依存関係はありません。

使い方 #

デフォルトでは、DataGenテーブルは各カラムにランダムな値を含む無限個の行を生成します。 可変サイズの場合、char/varchar/binary/varbinary/string/array/map/multiset、長さを指定できます。 さらに、合計行数を指定して、制限付きテーブルを生成することもできます。

ユーザが開始値と終了値のシーケンスを指定するシーケンスジェネレータも存在します。 テーブル内のいずれかカラムがシーケンス型の場合、テーブルは制限付きになり、最初のシーケンスが完了すると終了します。

Time型は常にローカルマシンの現在のシステム時間になります。

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'
)

多くの場合、データジェネレータコネクタは、物理テーブルを模倣するためにLIKE句を組み合わせて使われます。

CREATE TABLE Orders (
    order_number BIGINT,
    price        DECIMAL(32,2),
    buyer        ROW<first_name STRING, last_name STRING>,
    order_time   TIMESTAMP(3)
) WITH (...)

-- create a bounded mock table
CREATE TEMPORARY TABLE GenOrders
WITH (
    'connector' = 'datagen',
    'number-of-rows' = '10'
)
LIKE Orders (EXCLUDING ALL)

タイプ #

種類 サポートされるジェネレータ 備考
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 ローカルマシンの現在のタイムスタンプを基準にして過去のタイムスタンプになります。 最も過去のものは'max-past'オプションで指定できます。
TIMESTAMP_LTZ random ローカルマシンの現在のタイムスタンプを基準にして過去のタイムスタンプになります。 最も過去のものは'max-past'オプションで指定できます。
INTERVAL YEAR TO MONTH random
INTERVAL DAY TO MONTH random
ROW random ランダムなサブフィールドを持つ行を生成します。
ARRAY random ランダムなエントリを持つ配列を生成します。
MAP random ランダムなエントリを持つマップを生成します。
MULTISET random ランダムなエントリを持つマルチセットを生成します。

コネクションオプション #

オプション 必要条件 デフォルト 種類 説明
connector
必須 (none) 文字列 使うコネクタを指定します。ここでは'datagen'にする必要があります。
rows-per-second
オプション 10000 Long 発行レートを制御するための秒あたりの行数。
number-of-rows
オプション (none) Long 発行する総行数。デフォルトでは、テーブルは制限なしです。
fields.#.kind
オプション random 文字列 この'#'フィールドのジェネレータ。'sequence'または'random'のどちらかです。
fields.#.min
オプション (型の最小値) (フィールドの型) ランダムジェネレータの最小値。数値型で動作します。
fields.#.max
オプション (型の最大値) (フィールドの型) ランダムジェネレータの最大値。数値型で動作します。
fields.#.max-past
オプション 0 期間 タイムスタンプランダムジェネレータの過去の最大値。タイムスタンプ型でのみ動作します。
fields.#.length
オプション 100 数字 char/varchar/binary/varbinary/string/array/map/multiset型を生成するためのコレクションのサイズまたは長さ。
fields.#.start
オプション (none) (フィールドの型) シーケンスジェネレータの開始値。
fields.#.end
オプション (none) (フィールドの型) シーケンスジェネレータの終了値。
fields.#.null-rate
オプション (none) (フィールドの型) null値の割合。
inserted by FC2 system