El conector Datagen se usa para depuración. Genera datos de prueba aleatorios para tablas de origen, lo que permite validar la lógica de negocio durante el desarrollo y las pruebas sin conectarse a una fuente de datos externa. Este conector produce periódicamente valores aleatorios que coinciden con el esquema de su tabla.
Este conector también admite la sintaxis de columnas calculadas para generar datos de forma flexible.
Capacidades del conector
|
Elemento |
Descripción |
|
Tipo de tabla |
Tabla de origen |
|
Modo de ejecución |
Modo por lotes y modo streaming |
|
Formato de datos |
N/A |
|
Métrica |
N/A |
|
Tipo de API |
SQL API |
|
Actualización o eliminación de datos en una tabla sink |
N/A |
Límites
Solo Realtime Compute for Apache Flink con Ververica Runtime (VVR) 2.0.0 o posterior admite el conector Datagen.
Sintaxis
CREATE TABLE datagen_source (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'datagen'
);
Parámetros en la cláusula WITH
|
Parámetro |
Tipo de dato |
Obligatorio |
Valor predeterminado |
Descripción |
|
|
String |
Sí |
Ninguna |
Debe establecerse como |
|
|
Long |
No |
10000 |
Tasa de generación de filas, expresada en filas por segundo. |
|
|
Long |
No |
Ninguna |
Número total de filas por generar. De forma predeterminada, el origen es ilimitado. Si se usa un generador de secuencias, el origen se vuelve acotado automáticamente al finalizar la secuencia. |
|
|
String |
No |
|
Tipo de generador para el campo. Valores válidos: |
|
|
Igual que el tipo de dato de |
No |
Valor mínimo del tipo de dato del campo |
Valor mínimo para un generador aleatorio. Solo aplica a tipos numéricos. |
|
|
Igual que el tipo de dato de |
No |
Valor máximo del tipo de dato del campo |
Valor máximo para un generador aleatorio. Solo aplica a tipos numéricos. |
|
|
Duration |
No |
0 |
Desplazamiento máximo hacia el pasado respecto a la marca de tiempo local actual de la computadora al generar valores de marca de tiempo aleatorios. Solo aplica a los tipos TIMESTAMP y TIMESTAMP_LTZ. |
|
|
Integer |
No |
100 |
Longitud de la cadena aleatoria o tamaño de la colección generada. Tipos compatibles: CHAR, VARCHAR, BINARY, VARBINARY, STRING, ARRAY, MAP, MULTISET. |
|
|
Igual que el tipo de dato de |
No |
Ninguna |
Valor inicial para un generador de secuencias. |
|
|
Igual que el tipo de dato de |
No |
Ninguna |
Valor final para un generador de secuencias. |
Reemplace <field> por el nombre del campo definido en su instrucción DDL.
Generadores
El conector Datagen admite dos tipos de generadores:
Generador aleatorio: genera valores aleatorios dentro del rango configurado. Especifique
fields.<field>.minyfields.<field>.maxpara controlar el rango en tipos numéricos.Generador de secuencias: genera valores ordenados desde un valor inicial hasta un valor final. Cuando la secuencia se agota, la generación de datos se detiene y se produce una tabla acotada. Especifique
fields.<field>.startyfields.<field>.endpara definir el rango.
La siguiente tabla muestra el tipo de generador compatible con cada tipo de dato.
|
Tipo de dato |
Generador compatible |
Notas |
|
BOOLEAN |
Aleatorio |
|
|
CHAR |
Aleatorio y secuencia |
|
|
VARCHAR |
Aleatorio y secuencia |
|
|
BINARY |
Aleatorio y secuencia |
|
|
VARBINARY |
Aleatorio y secuencia |
|
|
STRING |
Aleatorio y secuencia |
|
|
DECIMAL |
Aleatorio y secuencia |
|
|
TINYINT |
Aleatorio y secuencia |
|
|
SMALLINT |
Aleatorio y secuencia |
|
|
INT |
Aleatorio y secuencia |
|
|
BIGINT |
Aleatorio y secuencia |
|
|
FLOAT |
Aleatorio y secuencia |
|
|
DOUBLE |
Aleatorio y secuencia |
|
|
DATE |
Aleatorio |
Siempre corresponde a la fecha actual de la computadora local. |
|
TIME |
Aleatorio |
Siempre corresponde a la hora actual de la computadora local. |
|
TIMESTAMP |
Aleatorio |
Genera valores dentro del rango de desplazamiento pasado respecto a la marca de tiempo local actual de la computadora. Configure el desplazamiento con |
|
TIMESTAMP_LTZ |
Aleatorio |
Genera valores dentro del rango de desplazamiento pasado respecto a la marca de tiempo local actual de la computadora. Configure el desplazamiento con |
|
ROW |
Aleatorio |
Genera subcampos aleatorios. |
|
ARRAY |
Aleatorio |
Genera elementos aleatorios. |
|
MAP |
Aleatorio |
Genera pares clave-valor aleatorios. |
|
MULTISET |
Aleatorio |
Genera elementos aleatorios. |
Ejemplos
Configuración mínima
Cree una tabla de origen con la configuración predeterminada:
CREATE TABLE datagen_source (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'datagen'
);
Combinar generadores de secuencia y aleatorios
En la mayoría de los casos, el conector Datagen se usa junto con la cláusula LIKE para simular una tabla existente. El siguiente ejemplo genera un conjunto de datos acotado mediante un generador de secuencias para id y un generador aleatorio para score:
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'
);
El generador de secuencias produce valores de id del 1 al 50 y luego se detiene. Dado que se emplea un generador de secuencias, el origen es acotado. Por su parte, el generador aleatorio produce valores de score entre 70 y 100.