Topik ini menjelaskan cara menggunakan Print Connector.
Informasi latar belakang
Print Connector digunakan untuk menulis setiap baris ke output sistem atau aliran error sistem. Dirancang untuk debugging. Untuk melihat hasil antara atau output dari penyebaran Flink, Anda dapat menambahkan tabel hasil cetak. Kemudian, Anda dapat melihat data hasil di log Pengelola Tugas sesuai pengaturan.
Print Connector dapat digunakan untuk memeriksa apakah pesan yang dikirim ke tabel hasil lainnya sesuai dengan harapan.
Tabel berikut menggambarkan kemampuan yang didukung oleh Print Connector.
Item | Deskripsi |
Jenis tabel | Tabel hasil dan sink pengambilan data |
Mode operasi | Mode batch dan mode streaming |
Format data | Tidak tersedia |
Metrik | Tidak tersedia |
Jenis API | SQL API dan YAML API pengambilan data |
Pembaruan atau penghapusan data dalam tabel sink | Didukung |
Prasyarat
Untuk melihat output dari tabel hasil Print, pastikan tingkat log disetel ke INFO.
Maksimum 2.000 entri log dapat ditampilkan di Taskmanager.out. Jika Anda ingin memeriksa data kotor atau data tertentu, kami sarankan Anda menentukan kondisi dalam klausa WHERE untuk melakukan operasi cetak. Operasi cetak memungkinkan Anda secara efektif memeriksa data yang diperlukan, meskipun jumlah catatan data yang ditampilkan terbatas.
SQL
Sintaks
CREATE TABLE print_table (
a INT,
b varchar
) WITH (
'connector'='print',
'logger'='true'
);Anda juga dapat membuat tabel Print dengan menggunakan LIKE klausa berdasarkan skema tabel yang ada. Contoh pernyataan:
CREATE TABLE print_table WITH ('connector' = 'print')
LIKE table_source (EXCLUDING ALL)Parameter dalam klausa WITH
Parameter | Deskripsi | Tipe data | Diperlukan | Nilai default | Catatan |
connector | Jenis tabel. | String | Ya | Tidak ada nilai default | Atur nilainya menjadi print. |
logger | Menentukan apakah akan menampilkan hasil data di konsol. | Boolean | Tidak | false | Nilai valid:
|
print-identifier | Pengenal hasil data. | String | Tidak | Tidak ada nilai default | Informasi log diambil dengan menggunakan pengenal hasil data. |
sink.parallelism | Paralelisme tabel hasil. | Int | Tidak | Nilai yang sama dengan paralelisme hulu | Tidak tersedia. |
Pengambilan data
Draf YAML untuk pengambilan data dapat menggunakan nilai konektor untuk mencetak data ke file out atau log.
Sintaks
source:
type: xxx
sink:
type: values
name: Values Sink
print.enabled: trueParameter dalam klausa WITH
Parameter | Deskripsi | Tipe data | Diperlukan | Nilai default | Catatan |
type | Jenis konektor sink | STRING | Ya | Tidak ada nilai default | Nilainya tetap menjadi values. |
name | Nama konektor sink | STRING | Tidak | Tidak ada nilai default | Tidak tersedia. |
print.enabled | Apakah konektor digunakan sebagai Print connector | BOOLEAN | Ya | Tidak ada nilai default | Nilainya tetap menjadi true. |
materialized.in.memory | Apakah akan menyimpan peristiwa log biner ke memori. | BOOLEAN | Tidak | false | Tidak tersedia. |
sink.print.standard-error | Apakah akan mencetak format ke kesalahan sistem daripada system out. | BOOLEAN | Tidak | false | Secara default, format dicetak ke system out. |
sink.print.logger | Apakah akan menampilkan data hasil di konsol. | BOOLEAN | Tidak | false | Tidak tersedia. |
sink.print.limit | Jumlah maksimum catatan data untuk dicetak. | LONG | Tidak | 2000 | Tidak tersedia. |
error.on.schema.change | Apakah sebuah kesalahan dilaporkan ketika terjadi perubahan skema. | BOOLEAN | Tidak | false | Tidak tersedia. |
Contoh kode
Contoh kode untuk tabel hasil
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
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