このトピックでは、Datagenコネクタの使用方法について説明します。
背景情報
Datagenコネクタはデバッグに使用されます。コネクタは、Datagenソーステーブルに対応するタイプのランダムデータを定期的に生成します。開発中またはテスト中にテストデータを使用してビジネスロジックを効率的にチェックする場合、Datagenコネクタを使用してランダムデータを生成できます。
Datagenコネクタは、計算列構文をサポートしており、柔軟な方法でデータを生成できます。
次の表に、Datagenコネクタでサポートされている機能を示します。
項目 | 説明 |
テーブルタイプ | ソーステーブル |
実行モード | バッチモードとストリーミングモード |
データ形式 | 該当なし |
メトリック | 該当なし |
APIタイプ | SQL API |
シンクテーブルでのデータの更新または削除 | 該当なし |
制限
Ververica Runtime(VVR)2.0.0以降を使用するApache Flink用Realtime Computeのみが、Datagenコネクタをサポートしています。
構文
CREATE TABLE datagen_source (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'datagen'
);WITH句のパラメータ
パラメータ | 説明 | データ型 | 必須 | デフォルト値 | 備考 |
connector | ソーステーブルのタイプ。 | STRING | はい | デフォルト値なし | 値を |
rows-per-second | ランダムデータが生成されるレート。 | LONG | いいえ | 10000(1秒あたりのデータ行数) | 該当なし。 |
number-of-rows | 生成できるデータの行の総数。 | LONG | いいえ | デフォルト値なし | デフォルトでは、無制限のデータソーステーブルが生成されます。フィールドジェネレータがシーケンスジェネレータの場合、フィールドのシーケンスが生成された後、ソースのデータ生成が完了し、制限付きテーブルが生成されます。 |
fields.<field>.kind | <field> のデータを生成するジェネレータのタイプ。 | STRING | いいえ | random | 有効な値:
ジェネレータの詳細については、ジェネレータ をご参照ください。 |
fields.<field>.min | 生成できる最小ランダム値。 | <field> のデータ型と同じ | いいえ | <field> のデータ型の最小値 | fields.<field>.kind パラメータが random に設定されている場合、このパラメータが有効になります。数値データ型のみがサポートされます。 |
fields.<field>.max | 生成できる最大ランダム値。 | <field> のデータ型と同じ | いいえ | <field> のデータ型の最大値 | fields.<field>.kind パラメータが random に設定されている場合、このパラメータが有効になります。数値データ型のみがサポートされます。 |
fields.<field>.max-past | ランダムなタイムスタンプが生成されるときの、オンプレミスマシンの現在のタイムスタンプを基準とした過去の最大時間。 | DURATION | いいえ | 0 | timestamp型のみがサポートされます。 |
fields.<field>.length | 生成されるランダム文字列の長さ、または生成されるデータセットの容量。 | INTEGER | いいえ | 100 | 次のデータ型がサポートされています。
|
fields.<field>.start | シーケンスジェネレータの開始値。 | <field> のデータ型と同じ | いいえ | デフォルト値なし | fields.<field>.kind パラメータが sequence に設定されている場合、このパラメータが有効になります。 |
fields.<field>.end | シーケンスジェネレータの終了値。 | <field> のデータ型と同じ | いいえ | デフォルト値なし | fields.<field>.kind パラメータが sequence に設定されている場合、このパラメータが有効になります。 |
パラメータの <field> は、DDL ステートメントで定義したフィールド名に置き換えます。
ジェネレータ
Datagenコネクタは、次のいずれかのタイプのジェネレータを使用してランダムデータを生成できます。
ランダムジェネレータ: ランダムな値を生成します。ランダムに生成されるデータの最大値と最小値を指定できます。
シーケンスジェネレータ: 特定の範囲内で順序付けられた値を生成します。生成されたシーケンスが終了値に達すると、データ生成プロセスは終了します。したがって、シーケンスジェネレータを使用すると、制限付きテーブルが生成されます。シーケンスの開始値と終了値を指定できます。
次の表に、各データ型でサポートされているジェネレータタイプを示します。
データ型 | サポートされているジェネレータ | 備考 |
BOOLEAN | ランダム | 該当なし。 |
CHAR | ランダムとシーケンス | 該当なし。 |
VARCHAR | ランダムとシーケンス | 該当なし。 |
BINARY | ランダムとシーケンス | 該当なし。 |
VARBINARY | ランダムとシーケンス | 該当なし。 |
STRING | ランダムとシーケンス | 該当なし。 |
DECIMAL | ランダムとシーケンス | 該当なし。 |
TINYINT | ランダムとシーケンス | 該当なし。 |
SMALLINT | ランダムとシーケンス | 該当なし。 |
INT | ランダムとシーケンス | 該当なし。 |
BIGINT | ランダムとシーケンス | 該当なし。 |
FLOAT | ランダムとシーケンス | 該当なし。 |
DOUBLE | ランダムとシーケンス | 該当なし。 |
DATE | ランダム | オンプレミスマシンの現在の日付を使用します。 |
TIME | ランダム | オンプレミスマシンの現在の時刻を使用します。 |
TIMESTAMP | ランダム | オンプレミスマシンの現在のタイムスタンプを基準とした過去の最大時間範囲内で値を生成します。 |
TIMESTAMP_LTZ | ランダム | オンプレミスマシンの現在のタイムスタンプを基準とした過去の最大時間範囲内で値を生成します。 |
ROW | ランダム | ランダムなサブフィールドを生成します。 |
ARRAY | ランダム | ランダムな要素を生成します。 |
MAP | ランダム | ランダムな (key,value) のペアを生成します。 |
MULTISET | ランダム | ランダムな要素を生成します。 |
例
ほとんどの場合、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'
);