O conector Print grava cada linha no fluxo de saída padrão ou de erro padrão do TaskManager. Use-o durante o desenvolvimento para inspecionar resultados intermediários ou verifique a saída final sem configurar um sink de produção.
A saída do conector Print aparece nos logs do TaskManager, não no console da Flink Web UI. Defina o nível de log do TaskManager como INFO para visualizar a saída.
Capacidades suportadas
|
Item |
Descrição |
|
Tipo de tabela |
Tabela de resultados e sink de ingestão de dados |
|
Modo de execução |
Modo em lote e modo streaming |
|
Formato de dados |
N/A |
|
Métrica |
N/A |
|
Tipo de API |
API SQL e API YAML de ingestão de dados |
|
Atualização ou exclusão de dados em uma tabela sink |
Suportado |
Casos de uso
Testes de desenvolvimento: adicione uma tabela de resultados Print ao lado do sink existente para confirmar se as linhas corretas estão fluindo antes de gravar em um sistema de produção.
SQL
Sintaxe
CREATE TABLE print_table (
a INT,
b VARCHAR
) WITH (
'connector' = 'print',
'logger' = 'true'
);
Para espelhar o schema de uma tabela existente sem redefinir colunas, use a cláusula LIKE:
CREATE TABLE print_table WITH ('connector' = 'print')
LIKE table_source (EXCLUDING ALL)
Parâmetros
|
Parâmetro |
Descrição |
Tipo de dado |
Obrigatório |
Valor padrão |
|
|
Tipo de conector. Defina como |
String |
Sim |
— |
|
|
Exibe a saída no console. |
Boolean |
Não |
|
|
|
Rótulo adicionado no início de cada linha de saída. Use este parâmetro para distinguir resultados quando houver múltiplos sinks Print ativos. |
String |
Não |
— |
|
|
Paralelismo do sink Print. |
Int |
Não |
Igual ao upstream |
Ingestão de dados
Em jobs YAML de ingestão de dados, use o conector values com print.enabled: true para direcionar a saída para logs ou arquivos out.
Sintaxe
source:
type: xxx
sink:
type: values
name: Values Sink
print.enabled: true
Parâmetros
|
Parâmetro |
Descrição |
Tipo de dado |
Obrigatório |
Valor padrão |
|
|
Tipo de conector do sink. Defina como |
STRING |
Sim |
— |
|
|
Nome de exibição do sink. |
STRING |
Não |
— |
|
|
Habilita o comportamento de impressão. Defina como |
BOOLEAN |
Sim |
— |
|
|
Grava a saída em stderr em vez de stdout. |
BOOLEAN |
Não |
|
|
|
Exibe a saída no console. |
BOOLEAN |
Não |
|
|
|
Número máximo de registros a imprimir. |
LONG |
Não |
|
|
|
Persiste eventos de log binário na memória. |
BOOLEAN |
Não |
|
|
|
Gera um erro quando ocorre uma alteração de schema. |
BOOLEAN |
Não |
|
Exemplos
Tabela de resultados SQL
O exemplo abaixo lê dados de uma tabela source e grava todas as linhas em um sink Print. Consulte os logs do TaskManager para visualizar a saída.
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 ingestão de dados
Este exemplo ingere dados do MySQL e imprime todas as linhas no arquivo 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
Limitações
Nível de log: defina o nível de log do TaskManager como INFO para visualizar a saída do conector Print. A saída é gravada nos logs do TaskManager, não no console da Flink Web UI.
Limite de registros: o arquivo TaskManager.out exibe no máximo 2.000 entradas de log. Para inspecionar linhas específicas em grandes volumes de dados, adicione uma cláusula
WHEREpara filtrar as linhas antes que cheguem ao sink Print.