Print konektörü, her satırı TaskManager'ın standart çıkışına veya standart hata akışına yazar. Geliştirme sırasında, üretim hedefi yapılandırmadan ara sonuçları incelemek veya nihai çıktıyı doğrulamak için bu konektörü kullanın.
Print konektörü çıktısı Flink Web UI konsolunda değil, TaskManager günlüklerinde görünür. Çıktıyı görmek için TaskManager günlük seviyesini INFO olarak ayarlayın.
Desteklenen yetenekler
| Öğe | Açıklama |
|---|---|
| Tablo türü | Sonuç tablosu ve veri alımı hedefi (sink) |
| Çalıştırma modu | Toplu iş modu ve akış modu |
| Veri biçimi | Yok |
| Ölçüm | Yok |
| API türü | SQL API ve veri alımı YAML API |
| Hedef tabloda veri güncelleme veya silme | Desteklenir |
Kullanım senaryoları
Geliştirme testi: Mevcut hedefinizle birlikte bir Print sonuç tablosu ekleyerek verileri üretim sistemine yazmadan önce doğru satırların aktığını doğrulayın.
SQL
Sözdizimi
CREATE TABLE print_table (
a INT,
b VARCHAR
) WITH (
'connector' = 'print',
'logger' = 'true'
);
Sütunları yeniden tanımlamadan mevcut bir tablo şemasını yansıtmak için LIKE yan tümcesini kullanın:
CREATE TABLE print_table WITH ('connector' = 'print')
LIKE table_source (EXCLUDING ALL)
Parametreler
| Parametre | Açıklama | Veri türü | Gerekli | Varsayılan değer |
|---|---|---|---|---|
connector |
Konektör türü. print olarak ayarlayın. |
String | Evet | — |
logger |
Çıktının konsolda görüntülenip görüntülenmeyeceği. | Boolean | Hayır | false |
print-identifier |
Her çıktı satırının başına eklenen etiket. Birden fazla Print hedefi etkin olduğunda sonuçları ayırt etmek için bunu kullanın. | String | Hayır | — |
sink.parallelism |
Print hedefinin paralellik değeri. | Int | Hayır | Yukarı akış ile aynı |
Veri alımı
Veri alımı YAML işleri için çıktıyı günlüklere veya out dosyalarına yönlendirmek amacıyla values konektörünü print.enabled: true seçeneğiyle kullanın.
Sözdizimi
source:
type: xxx
sink:
type: values
name: Values Sink
print.enabled: true
Parametreler
| Parametre | Açıklama | Veri türü | Gerekli | Varsayılan değer |
|---|---|---|---|---|
type |
Hedef konektör türü. values olarak ayarlayın. |
STRING | Evet | — |
name |
Hedef için görünen ad. | STRING | Hayır | — |
print.enabled |
Yazdırma davranışını etkinleştirir. true olarak ayarlayın. |
BOOLEAN | Evet | — |
sink.print.standard-error |
Çıktının stdout yerine stderr'e yazılıp yazılmayacağı. | BOOLEAN | Hayır | false |
sink.print.logger |
Çıktının konsolda görüntülenip görüntülenmeyeceği. | BOOLEAN | Hayır | false |
sink.print.limit |
Yazdırılacak maksimum kayıt sayısı. | LONG | Hayır | 2000 |
materialized.in.memory |
İkili günlük olaylarının bellekte kalıcı hale getirilip getirilmeyeceği. | BOOLEAN | Hayır | false |
error.on.schema.change |
Şema değişikliği olduğunda hata oluşturulup oluşturulmayacağı. | BOOLEAN | Hayır | false |
Örnekler
SQL sonuç tablosu
Aşağıdaki örnek bir kaynak tablodan veri okur ve tüm satırları bir Print hedefine yazar. Çıktıyı görmek için TaskManager günlüklerini kontrol edin.
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;
Veri alımı hedefi
Aşağıdaki örnek MySQL'den veri alır ve tüm satırları out dosyasına yazdırır.
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
Sınırlamalar
Günlük seviyesi: Print konektörü çıktısını görmek için TaskManager günlük seviyesini INFO olarak ayarlayın. Çıktı Flink Web UI konsolu yerine TaskManager günlüklerine yazılır.
Kayıt sınırı: TaskManager.out en fazla 2.000 günlük girişi görüntüler. Veri hacmi büyük olduğunda belirli satırları incelemek için satırlar Print hedefine ulaşmadan önce filtrelemek üzere bir
WHEREyan tümcesi ekleyin.