Todos los productos
Search
Centro de documentos

Realtime Compute for Apache Flink:Conector Faker

Última actualización: Sep 03, 2026

Este tema describe cómo utilizar el conector Faker para generar datos de prueba.

Información de contexto

El conector Faker es un conector integrado de Realtime Compute for Apache Flink. Genera datos de prueba basados en las expresiones Java Faker que proporcione para cada campo de una tabla. Utilice este conector para generar datos de prueba que permitan validar la lógica de negocio durante las fases de desarrollo o pruebas.

La siguiente tabla describe las capacidades del conector Faker.

Elemento

Detalles

Tipos de tabla compatibles

tabla de origen y tabla de dimensiones

Modo de ejecución

modo por lotes y modo streaming

Formato de datos

No aplica

Métricas específicas del conector

Ninguna

Tipo de API

SQL

Compatibilidad con actualización o eliminación de datos en una tabla sink

No aplica

Requisitos previos

Ninguna

Límites

  • El conector Faker solo es compatible con Realtime Compute for Apache Flink VVR 4.0.12 o versiones posteriores.

  • El conector únicamente admite los siguientes tipos de datos: CHAR(n), VARCHAR(n), STRING, TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL, BOOLEAN, TIMESTAMP, ARRAY, MAP, MULTISET y ROW.

  • Cuando se utiliza como tabla de dimensiones en una operación JOIN, el conector Faker no realiza una búsqueda real en la tabla de dimensiones; en su lugar, genera un resultado directamente a partir de la clave de búsqueda proporcionada por la tabla de origen.

Sintaxis

CREATE TABLE faker_source (
  `name` STRING,
  `age` INT
) WITH (
  'connector' = 'faker',
  'fields.name.expression' = '#{superhero.name}',
  'fields.age.expression' = '#{number.numberBetween ''0'',''1000''}'
);

Parámetros WITH

Tipo

Parámetro

Descripción

Tipo

Obligatorio

Predeterminado

Observaciones

General

connector

Especifica el tipo de conector.

String

Sí

Ninguna

El valor debe ser faker.

fields.<field>.expression

Especifica la expresión Java Faker para generar valores en este campo.

String

Sí

Ninguna

Para obtener más información, consulte Field expressions.

fields.<field>.null-rate

Especifica la probabilidad de que el valor del campo sea nulo.

Float

No

0.0

Ninguna

fields.<field>.length

Especifica el tamaño de la colección para los tipos de datos ARRAY, MAP o MULTISET.

Integer

No

1

Ninguna

Específicos de tabla de origen

number-of-rows

Especifica el número de filas que se generarán.

Integer

No

-1

Si se establece este parámetro, la tabla de origen es acotada; de lo contrario, es no acotada.

rows-per-second

Especifica la tasa de generación de datos.

Integer

No

10000

Ninguna

Ejemplos

Ejemplo de tabla de dimensiones

CREATE TEMPORARY TABLE datagen_source (
  `character_id` INT,
  `location` STRING,
  `datagen_name` STRING,
  `user_fullname` ROW<first_name STRING, last_name STRING>,
  `user_data` ARRAY<STRING>,
  `user_score` Map<STRING, INT>,
  `user_books` MULTISET<STRING>,
  `proctime` AS PROCTIME()
) WITH (
  'connector' = 'faker',
  'fields.character_id.expression' = '#{number.numberBetween ''0'',''10000''}',
  'fields.location.expression' = '#{harry_potter.location}',
  'fields.datagen_name.expression' = '#{superhero.name}',
  'fields.user_fullname.first_name.expression' = '#{superhero.prefix}',
  'fields.user_fullname.last_name.expression' = '#{superhero.suffix}',
  'fields.user_data.expression' = '#{harry_potter.character}',
  'fields.user_data.length' = '2',
  'fields.user_score.key.expression' = '#{harry_potter.character}',
  'fields.user_score.value.expression' = '#{number.numberBetween ''10'',''100''}',
  'fields.user_score.length' = '2',
  'fields.user_books.expression' = '#{book.title}',
  'fields.user_books.length' = '2',
  'number-of-rows' = '5'
);

CREATE TEMPORARY TABLE faker_dim (
  `character_id` INT,
  `faker_name` STRING
) WITH (
  'connector' = 'faker',
  'fields.character_id.expression' = '#{number.numberBetween ''0'',''100''}',
  'fields.faker_name.expression' = '#{harry_potter.characters}'
);
    
SELECT
  l.character_id,
  l.location,
  l.datagen_name,
  l.user_fullname,
  l.user_data,
  l.user_score,
  l.user_books,
  c.faker_name
FROM datagen_source AS l
JOIN faker_dim FOR SYSTEM_TIME AS OF proctime AS c
ON l.character_id = c.character_id;

Expresiones de campo

  • Formato

    Cada campo definido en la instrucción DDL requiere una expresión correspondiente en la cláusula WITH. La expresión debe seguir el formato 'fields.<field>.expression' = '#{className.methodName ''parameter'', ...}'. A continuación se describen los componentes de este formato.

    Parámetro

    Descripción

    field

    Nombre de un campo en la instrucción DDL.

    className

    Nombre de la clase Faker.

    Java Faker proporciona aproximadamente 80 clases Faker para generar expresiones de campo. Seleccione una clase según sus requisitos de negocio.

    Nota

    Los nombres de las clases Faker no distinguen entre mayúsculas y minúsculas.

    methodName

    Nombre del método.

    Nota

    Los nombres de los métodos no distinguen entre mayúsculas y minúsculas.

    parameter

    Parámetros de entrada del método.

    Nota
    • Encierre los parámetros de entrada del método entre dos comillas simples consecutivas ('') para escaparlas correctamente dentro de la cadena de la expresión.

    • Utilice una coma (,) para separar varios parámetros.

  • Ejemplo

    Los siguientes pasos muestran cómo construir una expresión de campo, tomando como ejemplo la expresión del campo age 'fields.age.expression' = '#{number.numberBetween ''0'',''1000''}' de la sección Syntax:

    1. En la documentación de la API de Java Faker, busque la clase Number.

    2. En la clase Number, localice el método numberBetween y revise su descripción.

      Este método devuelve un valor dentro de un rango numérico especificado.

    3. Con base en el nombre de la clase (Number), el nombre del método (numberBetween) y los parámetros de entrada (0 y 1000), construya la expresión SQL para el campo age: 'fields.age.expression' = '#{number.numberBetween ''0'',''1000''}'.

      Esta expresión genera un valor entre 0 y 1000 para el campo age.