Alibaba Cloud Realtime Compute for Apache Flink adalah platform enterprise-grade berkinerja tinggi untuk pemrosesan big data real time yang dibangun di atas Apache Flink. Hologres terintegrasi erat dengan Flink, memungkinkan Anda menulis dan mengkueri data streaming secara real time sehingga dapat membangun gudang data real time secara efisien.
Jenis layanan
Realtime Compute for Apache Flink tidak menyimpan data, melainkan memproses data dari sistem penyimpanan eksternal dan mendukung jenis penyimpanan data berikut:
-
Tabel Sumber
Tabel sumber menyediakan data masukan untuk pekerjaan Flink. Saat tabel Hologres digunakan sebagai tabel sumber, data diimpor dalam mode batch, bukan streaming. Hologres melakukan pemindaian tabel penuh, mengirimkan data ke tujuan downstream, lalu pekerjaan selesai.
-
Tabel Dimensi
Tabel dimensi biasanya digunakan untuk pencarian titik berdasarkan kunci. Oleh karena itu, saat menggunakan tabel Hologres sebagai tabel dimensi, kami merekomendasikan penggunaan penyimpanan berorientasi baris. Kondisi JOIN harus menggunakan kunci primer lengkap dari tabel tersebut.
-
Tabel Hasil
Tabel hasil menerima dan menyimpan data keluaran dari komputasi Flink serta menyediakan antarmuka baca-tulis untuk konsumsi downstream.
Realtime Compute for Apache Flink terintegrasi secara mendalam dengan Hologres untuk menyediakan fitur-fitur enterprise berikut:
-
Konsumsi Binlog Hologres
Fitur ini memungkinkan Anda mengonsumsi log perubahan dari tabel Hologres menggunakan pola antrian pesan.
-
Flink Catalog
Anda dapat mengimpor metadata Hologres sebagai katalog di Flink, sehingga dapat membaca metadata Hologres langsung dari Konsol Fully Managed Flink tanpa perlu mendaftarkan tabel secara manual. Kemampuan ini meningkatkan efisiensi pengembangan dan menjamin akurasi skema.
-
Evolusi Skema
Fully Managed Flink mendukung evolusi skema. Saat Flink membaca data JSON, layanan ini dapat secara otomatis mengurai tipe data dan membuat kolom tabel yang sesuai, memungkinkan evolusi model data secara dinamis.
Tabel berikut menjelaskan jenis layanan Flink yang didukung oleh Hologres beserta fitur-fiturnya.
|
Jenis layanan |
Jenis penyimpanan data |
Fitur lanjutan |
Deskripsi |
||||
|
Tabel sumber |
Tabel hasil |
Tabel dimensi |
Hologres Binlog |
Flink Catalog |
Evolusi Skema |
||
|
Semi-managed Flink |
Mendukung penyimpanan berorientasi baris dan berorientasi kolom. Untuk tabel sumber Binlog, kami merekomendasikan penggunaan penyimpanan berorientasi baris atau penyimpanan hibrida baris-kolom. |
Mendukung penyimpanan berorientasi baris dan berorientasi kolom. |
Kami merekomendasikan penggunaan penyimpanan berorientasi baris atau penyimpanan hibrida baris-kolom. |
Didukung |
Didukung |
Didukung |
Menggunakan platform pengembangan EMR Studio. |
|
Blink dalam mode eksklusif (tidak dilanjutkan) |
Mendukung penyimpanan berorientasi baris dan berorientasi kolom. Untuk tabel sumber Binlog, kami merekomendasikan penggunaan penyimpanan berorientasi baris atau penyimpanan hibrida baris-kolom. |
Mendukung penyimpanan berorientasi baris dan berorientasi kolom. |
Kami merekomendasikan penggunaan penyimpanan berorientasi baris atau penyimpanan hibrida baris-kolom. |
Hologres V0.8 hanya mendukung penyimpanan berorientasi baris. Hologres V0.9 dan versi setelahnya mendukung penyimpanan berorientasi baris dan berorientasi kolom. Kami merekomendasikan penggunaan penyimpanan berorientasi baris. |
Tidak didukung |
Tidak didukung |
Menggunakan platform pengembangan Bayes. Kami merekomendasikan penggunaan Fully Managed Flink. |
|
Apache Flink V1.10 |
Tidak didukung |
Mendukung penyimpanan berorientasi baris dan berorientasi kolom. |
Tidak didukung |
Tidak didukung |
Tidak didukung |
Tidak didukung |
- |
|
Apache Flink V1.11 dan versi setelahnya |
Tidak didukung |
Mendukung penyimpanan berorientasi baris dan berorientasi kolom. |
Kami merekomendasikan penggunaan penyimpanan berorientasi baris. |
Tidak didukung |
Tidak didukung |
Tidak didukung |
Kode konektor Hologres telah dibuka sumbernya sejak Apache Flink V1.11. Untuk detailnya, lihat alibabacloud-hologres-connectors. |
|
Apache Flink V1.13 dan versi setelahnya |
Hanya tabel sumber batch |
Mendukung penyimpanan berorientasi baris dan berorientasi kolom. |
Kami merekomendasikan penggunaan penyimpanan berorientasi baris. |
Tidak didukung |
Tidak didukung |
Tidak didukung |
Kode konektor Hologres telah dibuka sumbernya sejak Apache Flink V1.11. Untuk detailnya, lihat alibabacloud-hologres-connectors. |
Catatan rilis konektor Hologres
|
Versi Flink |
Versi VVR (Ververica Runtime) |
Versi Hologres |
Informasi pembaruan |
Referensi |
|
1.20 |
11.6 |
3.2.x 4.0.x 4.1.x |
Tabel sumber:
Catalog:
Umum:
|
|
|
1.20 |
11.5 |
3.2.x 4.0.x 4.1.x |
Tabel sumber:
Tabel dimensi:
Umum:
Perbaikan bug:
|
|
|
1.20 |
11.4 |
3.2.x 4.0.x 4.1.x |
Tabel sink:
Tabel dimensi:
Perbaikan bug:
|
|
|
1.20 |
11.3 |
3.1.x 3.2.x 4.0.x |
Tabel sumber:
Tabel sink:
Umum:
Perbaikan bug:
|
|
|
1.20 |
11.2 |
3.1.x 3.2.x 4.0.x |
Tabel sink:
Umum:
Perbaikan bug:
|
|
|
1.20 |
11.1 |
3.1.x 3.2.x |
Tabel sumber:
Tabel sink:
Tabel dimensi:
Umum:
|
|
|
1.20 |
11.0 |
3.1.x 3.2.x |
Umum:
Tabel sumber:
|
|
|
1.17 |
8.0.11 |
2.1.x 2.2.x 3.0.x |
Tabel sumber:
Tabel sink:
Umum:
Perbaikan bug:
|
|
|
1.17 |
8.0.9~8.0.10 |
2.1.x 2.2.x 3.0.x |
|
|
|
1.17 |
8.0.8 |
2.1.x 2.2.x |
Tabel sink:
|
|
|
1.17 |
8.0.7 |
2.1.x |
Tabel dimensi:
Umum:
|
|
|
1.17 |
8.0.6 |
2.1.x |
Tabel sumber:
Umum:
|
|
|
1.17 |
8.0.5 |
2.0.x 2.1.x |
Tabel sumber:
Tabel sink:
Umum:
|
|
|
1.17 |
8.0.4 |
2.0.x 2.1.x |
Tabel sumber:
Umum:
|
|
|
1.17 |
8.0.3 |
2.0.x 2.1.x |
Umum:
|
|
|
1.15 |
6.0.7 |
|
|
|
|
1.15 |
6.0.6 |
1.3.x |
Tabel sumber:
|
|
|
1.15 |
6.0.5 |
1.3.x |
|
|
|
1.15 |
6.0.3~6.0.4 |
1.3.x |
Tabel sumber:
Tabel sink: Menambahkan dukungan untuk menulis data dalam mode Fixed Copy. Fixed Copy adalah fitur baru di Hologres V1.3. Dibandingkan dengan mode JDBC, mode Fixed Copy memberikan throughput lebih tinggi dan latensi data lebih rendah melalui streaming, serta mengurangi konsumsi memori klien dengan menghilangkan batching. Hologres Catalog:
Parameter sdkMode: Mode berbeda tersedia untuk jenis tabel berbeda di Hologres. Parameter sdkMode kini digunakan untuk mengkonsolidasikan pemilihan mode. |
|
|
1.13 |
4.0.18 |
1.1 dan versi setelahnya |
Memperbaiki masalah di mana pelaporan metrik untuk tabel sink menurunkan kinerja penulisan. |
|
|
1.13 dan 1.15 |
4.0.15 dan 6.0.2 |
1.1 dan versi setelahnya |
Tabel sumber:
Tabel dimensi: Menambahkan dukungan untuk mengonfigurasi timeout permintaan asinkron ( Tabel sink:
|
|
|
1.13 |
4.0.13 |
1.1 dan versi setelahnya |
|
|
|
1.13 |
4.0.11 |
0.10 dan versi setelahnya |
Menambahkan dukungan untuk CTAS dan CDAS. |
|
|
1.13 |
4.0.8 |
0.10 dan versi setelahnya |
Menambahkan dukungan untuk Hologres Catalog untuk tabel sink, tabel sumber, dan tabel dimensi. |
|
|
1.13 |
3.0.0 |
0.9 dan versi setelahnya |
Menambahkan dukungan untuk konsumsi data real time dari Hologres. |
Masalah yang diketahui dan perbaikannya
-
Catatan tentang masalah dan perbaikan
-
Versi yang terpengaruh untuk setiap masalah telah ditentukan dengan jelas. Versi di luar rentang yang tercantum tidak terpengaruh.
-
Jika versi yang terpengaruh ditandai sebagai "N/A", masalah tersebut kemungkinan merupakan cacat pada mesin Hologres, bukan pada konektor.
-
-
Tingkat keparahan
-
P0 (Kritis): Peningkatan segera direkomendasikan. Masalah ini dapat memengaruhi operasi produksi, seperti kebenaran kueri atau tingkat keberhasilan penulisan.
-
P1 (Tinggi): Peningkatan direkomendasikan untuk mencegah potensi masalah.
-
P2 (Sedang): Peningkatan opsional. Masalah ini terjadi secara intermiten dan dapat diatasi dengan solusi sementara atau restart pekerjaan.
-
|
Tingkat keparahan |
Deskripsi |
Versi yang terpengaruh |
Versi perbaikan |
Solusi |
|
P0 |
Saat menulis ke subset kolom dalam tabel hasil, jika bidang yang tidak ditulis memiliki nilai default terkait waktu (seperti current_timestamp atau now()), nilai yang diisi mungkin salah. Hal ini terjadi karena mode FixedFE tidak menangani nilai default terkait waktu dengan benar. |
11.0-11.5 |
N/A |
Gunakan fungsi now() di sisi Flink untuk meneruskan nilai ke bidang yang sesuai dalam tabel hasil. Atau, atur parameter |
|
P0 |
Saat mengonsumsi Binlog, jika kolom fisik dan kolom metadata memiliki nama yang sama, seperti |
8.0.11, 11.0-11.4 |
11.5 |
Tingkatkan ke versi 11.5 atau versi setelahnya dan atur |
|
P1 |
Saat mengonsumsi Binlog, pemangkasan kolom dapat membaca data ke kolom yang salah. Hal ini terjadi karena holo-client mungkin mengambil kolom yang tidak diharapkan saat menangani pemangkasan kolom. |
11.3-11.5 |
Hotfix telah dirilis untuk semua versi yang terpengaruh (11.3-11.5). |
Hotfix mengatasi masalah ini, sehingga Anda kemungkinan besar tidak akan mengalaminya. Untuk pekerjaan DataStream, gunakan versi konektor terbaru. |
|
P2 |
Pemindai untuk tabel dimensi satu-ke-banyak tidak ditutup dengan benar saat Anda menghentikan pekerjaan. Hal ini dapat menyebabkan kebocoran sumber daya atau timeout pekerjaan selama shutdown. Masalah ini disebabkan oleh logika shutdown pemindai internal holo-client yang bermasalah. |
Versi sebelum 11.3 |
11.4 |
Tingkatkan ke versi 11.4 atau versi setelahnya. |
|
P1 |
Saat menggunakan fitur check-and-put, pemrosesan catatan delete melemparkan NullPointerException (NPE) dan menyebabkan pekerjaan gagal. |
8.0.11-11.4 |
11.5 |
Tingkatkan ke versi 11.5 atau versi setelahnya. Atau, hindari menggunakan check-and-put pada aliran yang memiliki operasi delete. |
|
P2 |
Konektor gagal melanjutkan dari checkpoint jika tabel dihapus dan dibuat ulang saat pekerjaan sedang berjalan. |
11.0-11.2 |
11.3 |
Di lingkungan pengujian, Anda dapat meningkatkan ke versi 11.3 atau versi setelahnya untuk menghindari masalah ini. Catatan: Menghapus tabel selama konsumsi Binlog memengaruhi kebenaran data. Oleh karena itu, hindari membangun ulang tabel selama konsumsi Binlog di lingkungan produksi. |
|
P1 |
Membaca data RoaringBitmap melalui JDBC Binlog gagal dan melemparkan exception parsing. |
11.0-11.2 |
11.3 |
Tingkatkan ke versi 11.3 atau versi setelahnya. |
|
P1 |
Saat mengonsumsi dari tabel partisi fisik, jika shard tidak memiliki data, konektor salah menginisialisasi Log Sequence Number (LSN) state ke 0. Hal ini menyebabkan kehilangan data saat pekerjaan dilanjutkan dari state ini. |
Versi sebelum 8.0.10, 11.0-11.2 |
8.0.11, 11.3 |
Tingkatkan ke versi 8.0.11, atau 11.3 atau versi setelahnya. |
|
P1 |
Menulis array TEXT yang berisi elemen null melemparkan NPE dan menyebabkan operasi penulisan gagal. |
11.0-11.1 |
11.2 |
Tingkatkan ke versi 11.2 atau versi setelahnya. Atau, pastikan array TEXT upstream tidak berisi elemen null. |
|
P1 |
Konflik antara sufiks pembuatan partisi dan partisi dinamis menyebabkan pembuatan partisi gagal. |
11.0-11.2 |
11.3 |
Tingkatkan ke versi 11.3 atau versi setelahnya. |
|
P2 |
Exception yang tidak terkait data kotor dapat memicu kebijakan data kotor, menyebabkan exception valid ditangani secara salah (misalnya, diam-diam dibuang). |
11.0-11.1 |
11.2 |
Tingkatkan ke versi 11.2 atau versi setelahnya. |
|
P1 |
Untuk tabel sumber Integrasi Lengkap dan Inkremental, JDBC Binlog mulai mengonsumsi di LSN+1. Jika LSN saat ini sudah ada di checkpoint, melanjutkan darinya mungkin melewatkan satu catatan. |
8.0.10 dan versi sebelumnya |
8.0.11 |
Tingkatkan ke versi 8.0.11. |
|
P2 |
Dalam skenario CTAS, jika penghapusan kolom dan perubahan tipe terjadi dalam operasi yang sama, kesalahan normalisasi tipe menyebabkan perubahan skema gagal. |
8.0.10 dan versi sebelumnya |
8.0.11 |
Tingkatkan ke versi 8.0.11. Atau, hindari menghapus kolom dan mengubah tipe dalam operasi yang sama. |
|
P2 |
Saat menggunakan tabel dimensi katalog, validasi parameter Binlog oleh factory menyebabkan exception positif palsu. |
8.0.10 dan versi sebelumnya |
8.0.11 |
Tingkatkan ke versi 8.0.11. |
|
P2 |
Dalam skenario multi-tabel, jumlah permintaan polling JDBC yang berlebihan menyebabkan SQL Gateway timeout. |
11.0-11.5 |
11.6 |
Tingkatkan ke versi 11.6. Atau, kurangi jumlah tabel Hologres dalam satu pekerjaan. |
|
P2 |
Saat mode FixedFE dipilih, jika tabel berisi tipe data yang tidak didukung oleh FixedFE, koneksi tidak secara otomatis menurunkan spesifikasi ke koneksi FE, menyebabkan exception penulisan atau kueri. |
11.0-11.2 |
11.3 |
Tingkatkan ke versi 11.3 atau versi setelahnya. Atau, tentukan secara manual mode koneksi FE. |
|
P1 |
Saat mengonsumsi Binlog dalam mode JDBC, exception "Binlog Convert Failed" mungkin terjadi, atau pembacaan data dari beberapa shard mungkin macet. Hal ini terjadi karena gateway instans Hologres memiliki masalah saat mengembalikan exception timeout backend ke klien, menyebabkan operasi baca hang atau gagal dengan error parsing. |
N/A |
N/A |
Masalah ini lebih mungkin terjadi saat tekanan balik pekerjaan tinggi. Jika pembacaan data macet, restart pekerjaan dan lanjutkan dari checkpoint terbaru. Untuk menyelesaikan masalah ini sepenuhnya, tingkatkan instans Hologres Anda ke V2.2.21 atau versi setelahnya. |
|
P2 |
Pekerjaan diterapkan dengan lambat atau timeout. Analisis thread dump menunjukkan bahwa proses macet di GetTableSchema. |
N/A |
N/A |
Masalah ini dapat memiliki berbagai penyebab. Anda dapat melakukan troubleshooting dengan mengikuti langkah-langkah berikut:
|
|
P0 |
Saat menulis data TEXT, JSON, atau JSONB ke Hologres dalam mode FixedFE (yang sesuai dengan mode jdbc_fixed konektor), karakter tidak valid dalam sumber data dapat melemparkan exception yang tidak terduga. Hal ini dapat menyebabkan node FE yang terhubung restart, mengganggu koneksi. |
N/A |
N/A |
Jika Anda tidak dapat menjamin validitas string upstream, Anda harus menulis data dalam mode JDBC. Anda juga harus mengatur parameter Atau, tingkatkan instans Hologres Anda ke V3.0 atau versi setelahnya untuk terus menggunakan mode jdbc_fixed. |
|
P1 |
Saat melakukan join satu-ke-banyak pada tabel dimensi JDBC, tugas Flink mungkin mengalami penggunaan memori tinggi atau error Out Of Memory (OOM). |
N/A |
N/A |
Di Hologres V1.3, jika Anda menggunakan Untuk menyelesaikan masalah ini sepenuhnya, tingkatkan instans Hologres Anda ke V2.0 atau versi setelahnya. |
|
P1 |
Pekerjaan Binlog melemparkan exception |
8.0.4 |
8.0.9 |
Mulai dari versi 8.0.9, pemeriksaan ID tabel tidak lagi diberlakukan. Sebagai gantinya, peringatan dicatat, yang memungkinkan pekerjaan dilanjutkan dari state terbaru. Namun, hindari membangun ulang tabel saat pekerjaan Binlog sedang berjalan, karena operasi ini menyebabkan semua data Binlog sebelumnya hilang. |
|
P2 |
Tekanan balik terjadi saat pekerjaan berjalan. Thread dump menunjukkan bahwa pool eksekusi macet di metode close() atau start(). Hal ini dapat terjadi jika beberapa klien berbagi kolam koneksi yang sama, yang mungkin menyebabkan deadlock yang mencegah kolam koneksi ditutup dengan benar. |
8.0.5 |
8.0.9 |
Tingkatkan versi konektor. |
|
P2 |
Jika Anda menjalankan pekerjaan untuk konsumsi lengkap dan inkremental setelah melakukan operasi |
8.0.6 dan versi sebelumnya |
8.0.7 |
Tingkatkan versi konektor atau tentukan waktu mulai untuk konsumsi inkremental. |
|
P1 |
Jika tabel dimensi berisi banyak bidang, penerapan pekerjaan timeout. |
8.0.6 |
8.0.7 |
Tingkatkan versi konektor. |
|
P0 |
Saat parameter Catatan
Masalah ini tidak memengaruhi tabel sumber untuk Integrasi Lengkap dan Inkremental atau tabel sumber Binlog. |
8.0.5 dan versi sebelumnya |
8.0.6 |
Tingkatkan versi konektor. |
|
P0 |
Saat menulis data JSON atau JSONB ke Hologres dalam mode FixedFE (yang sesuai dengan mode |
8.0.5 dan versi sebelumnya |
Tidak ada |
Jika validitas string JSON atau JSONB upstream tidak dapat dijamin, gunakan mode JDBC untuk menulis data. |
|
P1 |
Saat melakukan join satu-ke-banyak pada tabel dimensi JDBC, exception internal seperti kegagalan koneksi tidak dilemparkan dengan benar. Hal ini dapat memanifestasikan sebagai tekanan balik pada node join asinkron, menyebabkan aliran data berhenti. Masalah ini jarang terjadi. |
6.0.7 dan versi sebelumnya |
8.0.3 |
Tingkatkan versi konektor. Anda juga dapat me-restart pekerjaan sebagai solusi sementara. |
|
P1 |
Terjadi kebocoran memori saat mengonsumsi data Binlog dalam mode JDBC. Hal ini mungkin terlihat sebagai laju konsumsi tinggi di awal pekerjaan, yang kemudian terus menurun. |
6.0.7 dan versi sebelumnya |
6.0.7 |
Tingkatkan versi konektor. Untuk pekerjaan DataStream, Anda harus menggunakan dependensi versi 6.0.7-1. |
|
P0 |
Saat menulis dalam mode JDBC, exception yang ditangkap selama flush terjadwal (dikontrol oleh parameter jdbcWriteFlushInterval) tidak dilemparkan hingga catatan data berikutnya diproses. Jika trafik penulisan rendah, checkpoint mungkin berhasil dibuat meskipun exception telah ditangkap tetapi belum dilemparkan. Jika kegagalan berikutnya terjadi, pekerjaan akan dilanjutkan dari checkpoint tidak valid ini, yang dapat menyebabkan kehilangan data. |
6.0.6 dan versi sebelumnya |
6.0.7 |
Masalah ini lebih mungkin terjadi dengan trafik rendah. Tingkatkan versi konektor, atau atur jdbcWriteFlushInterval lebih panjang dari interval checkpoint. |
|
P2 |
Saat mengonsumsi data Binlog dalam mode JDBC tanpa mengatur nama slot, sistem secara otomatis membuatnya. Jika nama tabel atau skema berisi karakter khusus, nama slot yang dihasilkan secara otomatis tidak valid dan menyebabkan error sintaksis. |
6.0.6 |
6.0.7 |
Tingkatkan versi konektor. Untuk pekerjaan DataStream, Anda harus menggunakan dependensi versi 6.0.7-1. |
|
P1 |
Jika instans atau database Hologres berbeda dalam pekerjaan yang sama menggunakan |
6.0.6 dan versi sebelumnya |
6.0.7 |
Gunakan |
|
P1 |
NPE dilemparkan jika tabel dimensi berisi bidang string dengan nilai |
6.0.6 |
6.0.7 |
Tingkatkan versi konektor. |
|
P0 |
Filter pushdown diaktifkan secara default untuk tabel sumber Hologres. Namun, jika pekerjaan juga menggunakan tabel dimensi Hologres, dan DML penulisan berisi filter pada bidang non-kunci primer tabel dimensi, filter tersebut juga salah didorong ke tabel dimensi. Hal ini dapat menyebabkan hasil join tabel dimensi yang salah. |
6.0.3-6.0.5 |
6.0.6 |
Tingkatkan versi konektor. |
|
P0 |
Jika beberapa tabel hasil memiliki pengaturan |
6.0.2 dan versi sebelumnya |
6.0.3 |
Atur |
|
P1 |
NPE dilemparkan jika bidang |
6.0.2 |
6.0.3 |
Jangan gunakan bidang ini, atau tingkatkan versi konektor. |
|
P1 |
Pelaporan metrik memengaruhi kinerja penulisan tabel hasil. |
4.0.15-4.0.17 |
4.0.18 |
Gunakan versi yang tidak terpengaruh oleh masalah ini. |
|
P2 |
Saat membaca data tipe STRING atau STRING ARRAY dari tabel sumber batch, parsing gagal jika data berisi karakter khusus. |
4.0.14 dan versi sebelumnya |
4.0.15 |
Hapus data kotor dari tabel sumber, atau tingkatkan versi konektor. |
|
P2 |
Jika Anda mendeklarasikan bidang khusus Binlog, seperti |
4.0.13 |
4.0.14 |
Hindari menggunakan fitur Integrasi Lengkap dan Inkremental, atau tingkatkan versi konektor. |