Konektor Print menulis setiap baris ke aliran standard output atau standard error TaskManager. Gunakan konektor ini selama pengembangan untuk memeriksa hasil antara atau memverifikasi output akhir tanpa perlu mengonfigurasi sink produksi.
Output konektor Print muncul di log TaskManager, bukan di konsol Flink Web UI. Atur tingkat log TaskManager ke INFO untuk melihat output tersebut.
Kemampuan yang didukung
| Item | Deskripsi |
|---|---|
| Jenis tabel | Tabel hasil dan sink data ingestion |
| Mode eksekusi | Mode batch dan mode streaming |
| Format data | N/A |
| Metrik | N/A |
| Jenis API | SQL API dan data ingestion YAML API |
| Pembaruan atau penghapusan data di tabel sink | Didukung |
Kasus penggunaan
-
Pengujian pengembangan: Tambahkan tabel hasil Print bersama sink yang sudah ada untuk memverifikasi bahwa baris yang benar mengalir sebelum ditulis ke Sistem produksi.
SQL
Sintaksis
CREATE TABLE print_table (
a INT,
b VARCHAR
) WITH (
'connector' = 'print',
'logger' = 'true'
);
Untuk mencerminkan skema tabel yang sudah ada tanpa mendefinisikan ulang kolom, gunakan klausa LIKE:
CREATE TABLE print_table WITH ('connector' = 'print')
LIKE table_source (EXCLUDING ALL)
Parameter
| Parameter | Deskripsi | Jenis data | Wajib | Nilai default |
|---|---|---|---|---|
connector |
Jenis konektor. Atur ke print. |
String | Ya | — |
logger |
Apakah output akan ditampilkan di konsol. | Boolean | Tidak | false |
print-identifier |
Label yang ditambahkan di awal setiap baris output. Gunakan ini untuk membedakan hasil ketika beberapa sink Print aktif secara bersamaan. | String | Tidak | — |
sink.parallelism |
Paralelisme sink Print. | Int | Tidak | Sama dengan upstream |
Data ingestion
Untuk pekerjaan data ingestion berbasis YAML, gunakan konektor values dengan print.enabled: true untuk mengarahkan output ke log atau file out.
Sintaksis
source:
type: xxx
sink:
type: values
name: Values Sink
print.enabled: true
Parameter
| Parameter | Deskripsi | Jenis data | Wajib | Nilai default |
|---|---|---|---|---|
type |
Jenis konektor sink. Atur ke values. |
STRING | Ya | — |
name |
Nama tampilan untuk sink. | STRING | Tidak | — |
print.enabled |
Mengaktifkan perilaku print. Atur ke true. |
BOOLEAN | Ya | — |
sink.print.standard-error |
Apakah output akan ditulis ke stderr alih-alih stdout. | BOOLEAN | Tidak | false |
sink.print.logger |
Apakah output akan ditampilkan di konsol. | BOOLEAN | Tidak | false |
sink.print.limit |
Jumlah maksimum catatan yang akan dicetak. | LONG | Tidak | 2000 |
materialized.in.memory |
Apakah event log biner akan dipertahankan di memori. | BOOLEAN | Tidak | false |
error.on.schema.change |
Apakah akan memicu error saat terjadi perubahan skema. | BOOLEAN | Tidak | false |
Contoh
Tabel hasil SQL
Contoh berikut membaca dari tabel sumber dan menulis semua baris ke sink Print. Periksa log TaskManager untuk melihat outputnya.
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 pengambilan data
Contoh berikut melakukan ingesti data dari MySQL dan mencetak semua baris ke file 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
Batasan
-
Tingkat log: Atur tingkat log TaskManager ke INFO untuk melihat output konektor Print. Output ditulis ke log TaskManager, bukan ke konsol Flink Web UI.
-
Batas catatan: File TaskManager.out hanya menampilkan maksimal 2.000 entri log. Untuk memeriksa baris tertentu saat volume data besar, tambahkan klausa
WHEREguna memfilter baris sebelum mencapai sink Print.