O conector Datagen é utilizado para depuração. Ele gera dados de teste aleatórios para tabelas de origem, permitindo validar a lógica de negócios durante o desenvolvimento e os testes sem conectar a uma fonte de dados externa. Ele produz periodicamente valores aleatórios que correspondem ao esquema da sua tabela.
O conector também suporta a sintaxe de coluna computada para geração flexível de dados.
Capacidades do conector
| Item | Descrição |
|---|---|
| Tipo de tabela | Tabela de origem |
| Modo de execução | Modo batch e modo de streaming |
| Formato de dados | N/A |
| Métrica | N/A |
| Tipo de API | API SQL |
| Atualização ou exclusão de dados em uma tabela de destino | N/A |
Limites
Somente o Realtime Compute for Apache Flink que usa o Ververica Runtime (VVR) 2.0.0 ou posterior oferece suporte ao conector Datagen.
Sintaxe
CREATE TABLE datagen_source (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'datagen'
);
Parâmetros na cláusula WITH
| Parâmetro | Tipo de dados | Obrigatório | Valor padrão | Descrição |
|---|---|---|---|---|
connector |
String | Sim | Nenhum | Deve ser definido como datagen. |
rows-per-second |
Long | Não | 10000 | Taxa na qual as linhas são geradas, em linhas por segundo. |
number-of-rows |
Long | Não | Nenhum | Número total de linhas a gerar. Por padrão, a origem é ilimitada. Se um gerador de sequência for usado, a origem se torna automaticamente limitada após o término da sequência. |
fields.<field>.kind |
String | Não | random |
Tipo de gerador para o campo. Valores válidos: random ou sequence. Para obter detalhes, consulte Geradores. |
fields.<field>.min |
Igual ao tipo de dados de <field> |
Não | Valor mínimo do tipo de dados do campo | Valor mínimo para um gerador aleatório. Aplica-se apenas a tipos numéricos. |
fields.<field>.max |
Igual ao tipo de dados de <field> |
Não | Valor máximo do tipo de dados do campo | Valor máximo para um gerador aleatório. Aplica-se apenas a tipos numéricos. |
fields.<field>.max-past |
Duration | Não | 0 | Deslocamento máximo no passado em relação ao timestamp atual do computador local ao gerar valores de timestamp aleatórios. Aplica-se apenas aos tipos TIMESTAMP e TIMESTAMP_LTZ. |
fields.<field>.length |
Integer | Não | 100 | Comprimento da string aleatória ou tamanho da coleção gerada. Tipos suportados: CHAR, VARCHAR, BINARY, VARBINARY, STRING, ARRAY, MAP, MULTISET. |
fields.<field>.start |
Igual ao tipo de dados de <field> |
Não | Nenhum | Valor inicial para um gerador de sequência. |
fields.<field>.end |
Igual ao tipo de dados de <field> |
Não | Nenhum | Valor final para um gerador de sequência. |
Substitua <field> pelo nome do campo definido no seu comando DDL.
Geradores
O conector Datagen oferece suporte a dois tipos de geradores:
-
Gerador aleatório: gera valores aleatórios dentro do intervalo configurado. Especifique
fields.<field>.minefields.<field>.maxpara controlar o intervalo de tipos numéricos. -
Gerador de sequência: gera valores ordenados de um valor inicial a um valor final. Quando a sequência se esgota, a geração de dados é interrompida e uma tabela limitada é produzida. Especifique
fields.<field>.startefields.<field>.endpara definir o intervalo.
A tabela a seguir lista o tipo de gerador suportado para cada tipo de dados.
| Tipo de dados | Gerador suportado | Observações |
|---|---|---|
| BOOLEAN | Aleatório | |
| CHAR | Aleatório e sequência | |
| VARCHAR | Aleatório e sequência | |
| BINARY | Aleatório e sequência | |
| VARBINARY | Aleatório e sequência | |
| STRING | Aleatório e sequência | |
| DECIMAL | Aleatório e sequência | |
| TINYINT | Aleatório e sequência | |
| SMALLINT | Aleatório e sequência | |
| INT | Aleatório e sequência | |
| BIGINT | Aleatório e sequência | |
| FLOAT | Aleatório e sequência | |
| DOUBLE | Aleatório e sequência | |
| DATE | Aleatório | Resolve sempre para a data atual do computador local. |
| TIME | Aleatório | Resolve sempre para o horário atual do computador local. |
| TIMESTAMP | Aleatório | Gera valores dentro do intervalo de deslocamento no passado em relação ao timestamp atual do computador local. Configure o deslocamento com fields.<field>.max-past. |
| TIMESTAMP_LTZ | Aleatório | Gera valores dentro do intervalo de deslocamento no passado em relação ao timestamp atual do computador local. Configure o deslocamento com fields.<field>.max-past. |
| ROW | Aleatório | Gera subcampos aleatórios. |
| ARRAY | Aleatório | Gera elementos aleatórios. |
| MAP | Aleatório | Gera pares de chave-valor aleatórios. |
| MULTISET | Aleatório | Gera elementos aleatórios. |
Exemplos
Configuração mínima
Crie uma tabela de origem com as configurações padrão:
CREATE TABLE datagen_source (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'datagen'
);
Combinar geradores de sequência e aleatórios
Na maioria dos casos, o conector Datagen é usado junto com a cláusula LIKE para simular uma tabela existente. O exemplo a seguir gera um conjunto de dados limitado usando um gerador de sequência para id e um gerador aleatório 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'
);
O gerador de sequência produz valores de id de 1 a 50 e depois para. Como um gerador de sequência é usado, a origem é limitada. O gerador aleatório produz valores de score entre 70 e 100.