This documentation is for an unreleased version of Apache Flink. We recommend you use the latest stable version.
DataGen
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値の割合。 |