El conector Print escribe cada fila en la salida estándar o en el flujo de error estándar del TaskManager. Utilícelo durante el desarrollo para inspeccionar resultados intermedios o comprobar la salida final sin necesidad de configurar un sink de producción.
La salida del conector Print aparece en los registros del TaskManager, no en la consola de Flink Web UI. Establezca el nivel de registro del TaskManager en INFO para consultar la salida.
Capacidades compatibles
|
Elemento |
Descripción |
|
Tipo de tabla |
Tabla de resultados y sink de ingesta de datos |
|
Modo de ejecución |
Modo por lotes y modo streaming |
|
Formato de datos |
N/A |
|
Métrica |
N/A |
|
Tipo de API |
API SQL y API YAML de ingesta de datos |
|
Actualización o eliminación de datos en una tabla sink |
Compatible |
Casos de uso
Pruebas de desarrollo: Agregue una tabla de resultados Print junto con su sink existente para comprobar que las filas correctas fluyen antes de escribir en un sistema de producción.
SQL
Sintaxis
CREATE TABLE print_table (
a INT,
b VARCHAR
) WITH (
'connector' = 'print',
'logger' = 'true'
);
Para replicar el esquema de una tabla existente sin redefinir columnas, utilice la cláusula LIKE:
CREATE TABLE print_table WITH ('connector' = 'print')
LIKE table_source (EXCLUDING ALL)
Parámetros
|
Parámetro |
Descripción |
Tipo de dato |
Obligatorio |
Valor predeterminado |
|
|
El tipo de conector. Establézcalo en |
String |
Sí |
— |
|
|
Indica si se muestra la salida en la consola. |
Boolean |
No |
|
|
|
Etiqueta que se antepone a cada línea de salida. Utilícela para distinguir resultados cuando hay varios sinks Print activos. |
String |
No |
— |
|
|
El paralelismo del sink Print. |
Int |
No |
Igual al anterior |
Ingesta de datos
Para trabajos YAML de ingesta de datos, utilice el conector values con print.enabled: true para dirigir la salida a registros o archivos out.
Sintaxis
source:
type: xxx
sink:
type: values
name: Values Sink
print.enabled: true
Parámetros
|
Parámetro |
Descripción |
Tipo de dato |
Obligatorio |
Valor predeterminado |
|
|
El tipo de conector del sink. Establézcalo en |
STRING |
Sí |
— |
|
|
Nombre para mostrar del sink. |
STRING |
No |
— |
|
|
Habilita el comportamiento de impresión. Establézcalo en |
BOOLEAN |
Sí |
— |
|
|
Indica si se escribe la salida en stderr en lugar de stdout. |
BOOLEAN |
No |
|
|
|
Indica si se muestra la salida en la consola. |
BOOLEAN |
No |
|
|
|
Número máximo de registros que se imprimen. |
LONG |
No |
|
|
|
Indica si se conservan los eventos de registro binario en memoria. |
BOOLEAN |
No |
|
|
|
Indica si se genera un error cuando ocurre un cambio de esquema. |
BOOLEAN |
No |
|
Ejemplos
Tabla de resultados SQL
A continuación se muestra un ejemplo que lee desde una tabla de origen y escribe todas las filas en un sink Print. Consulte los registros del TaskManager para consultar la salida.
CREATE TEMPORARY TABLE table_source (
name VARCHAR,
score BIGINT
) WITH (
...
);
CREATE TEMPORARY TABLE print_sink (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'print'
);
INSERT INTO print_sink SELECT * FROM table_source;
Sink de ingesta de datos
El siguiente ejemplo ingiere datos desde MySQL e imprime todas las filas en el archivo out.
source:
type: mysql
name: MySQL Source
hostname: ${mysql.hostname}
port: ${mysql.port}
username: ${mysql.username}
password: ${mysql.password}
tables: ${mysql.source.table}
server-id: 7601-7604
sink:
type: values
name: Values Sink
print.enabled: true
Limitaciones
Nivel de registro: Establezca el nivel de registro del TaskManager en INFO para consultar la salida del conector Print. La salida se escribe en los registros del TaskManager, no en la consola de Flink Web UI.
Límite de registros: TaskManager.out muestra un máximo de 2,000 entradas de registro. Para inspeccionar filas específicas cuando el volumen de datos es grande, agregue una cláusula
WHEREpara filtrar filas antes de que lleguen al sink Print.