Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Layanan Dikelola Amazon untuk Apache Flink 2.2
Amazon Managed Service untuk Apache Flink sekarang mendukung Apache Flink versi 2.2. Ini adalah upgrade versi utama pertama untuk layanan ini. Halaman ini mencakup kemampuan yang diperkenalkan di Flink 2.2, bersama dengan pertimbangan penting untuk meningkatkan dari Flink 1.x.
catatan
Flink 2.2 memperkenalkan perubahan yang melanggar yang membutuhkan perencanaan yang matang. Tinjau daftar lengkap perubahan dan penghentian yang melanggar di bawah ini dan Panduan kompatibilitas status untuk peningkatan Flink 2.2 sebelum memutakhirkan dari 1.x.
Apa yang baru di Amazon Managed Service for Apache Flink 2.2
Amazon Managed Service untuk Apache Flink 2.2 memperkenalkan perubahan perilaku yang dapat merusak aplikasi yang ada saat upgrade. Tinjau ini dengan hati-hati di samping perubahan Flink API di bagian berikutnya.
Penanganan Konfigurasi Terprogram
MSF Flink 2.2 sekarang melaporkan pengecualian ketika pelanggan mencoba memodifikasi konfigurasi yang tidak didukung oleh MSF melalui atau serupa.
env.getConfig().set()APIs Lihat Properti konfigurasi Flink terprogram.Pelanggan masih dapat meminta untuk mengubah konfigurasi tertentu melalui tiket dukungan (lihat Pengaturan yang Dapat Dimodifikasi)
Penghapusan Metrik
fullRestartsMetrik telah dihapus di Flink 2.2. GunakannumRestartsmetrik sebagai gantinya.bytesRequestedPerFetchMetrik untuk konektor KDS telah dihapus di konektor Flink versi 6.0.0 (hanya versi AWS konektor yang kompatibel dengan Flink 2.2).downtimeMetrikuptimedan keduanya ditandai sebagai usang di Flink 2.2 dan akan segera dihapus. Gantiuptimedengan metrik barurunningTime. Gantidowntimedengan satu atau lebih darirestartingTime,cancellingTime, danfailingTime.Lihat halaman Metrik dan Dimensi untuk daftar lengkap metrik yang didukung.
Panggilan IMDS Non-Kredenal Diblokir
Titik akhir yang diizinkan ini digunakan oleh AWS SDK DefaultCredentialsProvider(
/latest/meta-data/iam/security-credentials/) dan DefaultAwsRegionProviderChain(/latest/dynamic/instance-identity/document) untuk mengonfigurasi kredensil dan wilayah secara otomatis untuk aplikasi Anda.Aplikasi yang menggunakan fungsi AWS SDK yang mengandalkan panggilan IMDS non-kredensi (seperti
EC2MetadataUtils.getInstanceId(),,EC2MetadataUtils.getInstanceType()EC2MetadataUtils.getLocalHostName(), atauEC2MetadataUtils.getAvailabilityZone()) akan menerima kesalahan HTTP 4xx saat mencoba panggilan ini.Jika aplikasi Anda menggunakan IMDS misalnya metadata atau informasi lain di luar jalur yang diizinkan, refactor kode Anda untuk menggunakan variabel lingkungan atau konfigurasi aplikasi sebagai gantinya.
Sistem File Root Hanya Baca
Untuk meningkatkan keamanan, ketergantungan apa pun di luar
/tmpyang merupakan direktori kerja flink default akan menghasilkan:.java.io.FileNotFoundException: /{path}/{filename} (Read-only file system)Dependensi sistem file dapat berasal langsung dari kode Anda atau secara tidak langsung dari pustaka yang disertakan dalam dependensi Anda. Ganti dependensi sistem file langsung ke dalam kode Anda.
/tmp/Untuk dependensi sistem file tidak langsung dari pustaka, gunakan penggantian konfigurasi pustaka untuk mengarahkan operasi sistem file ke./tmp/
Melanggar perubahan dan penghentian
Di bawah ini adalah ringkasan perubahan dan penghentian yang melanggar yang diperkenalkan di Managed Service untuk Apache Flink 2.2. Lihat Catatan Rilis Apache Flink 2.0 untuk catatan rilis
Flink API dan Penghapusan Bahasa
DataSet API Dihapus
DataSet API lama untuk pemrosesan batch telah sepenuhnya dihapus di Flink 2.0+. Semua pemrosesan batch sekarang harus menggunakan DataStream API terpadu.
Aplikasi yang menggunakan DataSet API harus dimigrasikan ke DataStream API sebelum melakukan upgrade. Lihat panduan migrasi Apache Flink untuk konversi DataSet DataStream
Java 11 dan Python 3.8 Dihapus
Dukungan Java 11 sepenuhnya dihapus; Java 17 adalah runtime default dan direkomendasikan.
Dukungan Python 3.8 dihapus; Python 3.12 sekarang default.
Kelas Konektor Legacy Dihapus
Warisan
SourceFunctiondanSinkFunctionantarmuka telah digantikan oleh Sumber terpadu baru (FLIP-27) dan Sink (FLIP-143), yang memberikan dukungan yang lebih baik untuk bounded/unbounded dualitas, peningkatan koordinasi pos pemeriksaan APIs, dan model pemrograman yang lebih bersih.Untuk Kinesis Data Streams
KinesisStreamsSource,KinesisStreamsSinkgunakan dan dari.flink-connector-aws-kinesis-streams:6.0.0-2.0
Scala API dihapus
Flink Scala API telah dihapus. API Java Flink sekarang menjadi API tunggal yang didukung untuk aplikasi berbasis JVM.
Jika aplikasi Anda ditulis dalam Scala, Anda masih dapat menggunakan API Java Flink dari kode Scala — perubahan utamanya adalah pembungkus khusus Scala dan konversi implisit tidak lagi tersedia. Lihat Memutakhirkan Aplikasi dan Versi Flink
untuk detail tentang memperbarui aplikasi Scala Anda.
Pertimbangan Kompatibilitas Negara
Kryo serializer yang ditingkatkan dari versi 2.24 ke 5.6 dapat menyebabkan masalah kompatibilitas status.
POJOs dengan koleksi (
HashMap,ArrayList,HashSet) mungkin memiliki masalah kompatibilitas status.Serialisasi Avro dan Protobuf tidak terpengaruh.
Lihat penilaian terperinci Panduan kompatibilitas status untuk peningkatan Flink 2.2 untuk menilai tingkat risiko aplikasi Anda.
Fitur Apache Flink 2.2 didukung
Runtime dan dukungan bahasa
| Fitur | Deskripsi | Dokumentasi |
|---|---|---|
| Java 17 Runtime | Java 17 sekarang menjadi runtime default dan direkomendasikan; Dukungan Java 11 dihapus. | Kompatibilitas Java |
| Dukungan Python 3.12 | Python 3.12 sekarang didukung; Dukungan Python 3.8 dihapus. | PyFlink Dokumentasi |
Manajemen dan kinerja negara
| Fitur | Deskripsi | Dokumentasi |
|---|---|---|
| RocksDB 8.10.0 | Peningkatan I/O kinerja dengan upgrade RocksDB. | Backend Negara |
| Perbaikan Serialisasi | Serializer khusus untuk Peta, Daftar, Set; Kryo ditingkatkan dari 2,24 menjadi 5,6. | Jenis Serialisasi |
Fitur SQL dan Table API
| Fitur | Deskripsi | Dokumentasi |
|---|---|---|
| VARIANT Tipe Data | Dukungan asli untuk data semi-terstruktur (JSON) tanpa penguraian string berulang. | Tipe Data |
| Delta Bergabung | Mengurangi persyaratan status untuk streaming bergabung dengan hanya mempertahankan versi terbaru dari setiap kunci; membutuhkan infrastruktur yang dikelola pelanggan (misalnya, Apache Fluss). | Bergabung |
| StreamingMultiJoinOperator | Mengeksekusi gabungan multi-arah sebagai operator tunggal, menghilangkan materialisasi menengah. | FLIP-516 |
| ProcessTableFunction (PTF) | Mengaktifkan logika stateful dan berbasis peristiwa secara langsung di SQL dengan status dan timer per kunci. | Fungsi yang Ditetapkan Pengguna |
| Fungsi ML_PREDICT | Panggil model ML terdaftar pada streaming/batch tabel langsung dari SQL. Membutuhkan pelanggan untuk menggabungkan ModelProvider implementasi (misalnya,flink-model-openai). ModelProvider pustaka tidak dikirimkan oleh Managed Service untuk Apache Flink. |
Prediksi ML |
| Model DDL | Tentukan model ML sebagai objek katalog kelas satu menggunakan pernyataan CREATE MODEL. | BUAT Pernyataan |
| Pencarian Vektor | Flink SQL API mendukung pencarian database vektor. Tidak ada VectorSearchTableSource implementasi open source saat ini tersedia; pelanggan harus menyediakan implementasi mereka sendiri. |
Flink SQL |
DataStream Fitur API
| Fitur | Deskripsi | Dokumentasi |
|---|---|---|
| API Sumber FLIP-27 | Antarmuka sumber terpadu baru menggantikan warisan SourceFunction. | Sumber |
| API Wastafel FLIP-143 | Antarmuka wastafel terpadu baru menggantikan warisan SinkFunction. | Wastafel |
| Python Asinkron DataStream | I/O Operasi non-pemblokiran di DataStream Python API menggunakan. AsyncFunction | Asinkron I/O |
Ketersediaan konektor
Saat memutakhirkan ke Flink 2.2, Anda juga perlu memperbarui dependensi konektor Anda ke versi yang kompatibel dengan runtime Flink 2.2. Konektor Flink dilepaskan secara independen dari runtime Flink, dan belum semua konektor memiliki rilis yang kompatibel dengan Flink 2.2. Tabel berikut merangkum ketersediaan konektor yang umum digunakan di Amazon Managed Service untuk Apache Flink:
| Konektor | Versi Flink 1.20 | Flink 2.0+ Versi | Catatan |
|---|---|---|---|
| Apache Kafka | flink-connector-kafka 3.4.0-1.20 | flink-connector-kafka 4.0.0-2.0 | Direkomendasikan untuk Flink 2.2 |
| Kinesis Data Streams (sumber) | flink-connector-kinesis 5.0.0-1.20 | flink-connector-aws-kinesis-aliran 6.0.0-2.0 | Direkomendasikan untuk Flink 2.2 |
| Kinesis Data Streams (wastafel) | flink-connector-aws-kinesis-aliran 5.1.0-1.20 | flink-connector-aws-kinesis-aliran 6.0.0-2.0 | Direkomendasikan untuk Flink 2.2 |
| Amazon Data Firehose | flink-connector-aws-kinesis-firehose 5.1.0-1.20 | flink-connector-aws-kinesis-firehose 6.0.0-2.0 | Kompatibel dengan Flink 2.0 |
| Amazon DynamoDB | flink-connector-dynamodb 5.1.0-1.20 | flink-connector-dynamodb 6.0.0-2.0 | Kompatibel dengan Flink 2.0 |
| Amazon SQS | flink-connector-sqs 5.1.0-1.20 | flink-connector-sqs 6.0.0-2.0 | Kompatibel dengan Flink 2.0 |
| FileSystem (S3, HDFS) | Dibundel dengan Flink | Dibundel dengan Flink | Dibangun ke dalam distribusi Flink - selalu tersedia |
| JDBC | flink-connector-jdbc 3.3.0-1.20 | Belum dirilis untuk 2.x | Tidak ada rilis yang kompatibel dengan Flink 2.x |
| OpenSearch | flink-connector-opensearch 1.2.0-1.19 | Belum dirilis untuk 2.x | Tidak ada rilis yang kompatibel dengan Flink 2.x |
| Elasticsearch | Hanya konektor lama | Belum dirilis untuk 2.x | Pertimbangkan untuk bermigrasi ke konektor OpenSearch |
| Amazon Managed Service for Prometheus | flink-connector-prometheus 1.0.0-1.20 | Belum dirilis untuk 2.x | Tidak ada rilis yang kompatibel dengan Flink 2.x |
Jika aplikasi Anda bergantung pada konektor yang belum memiliki rilis Flink 2.x, Anda memiliki dua opsi: tunggu konektor merilis versi yang kompatibel, atau evaluasi apakah Anda dapat menggantinya dengan alternatif (misalnya, menggunakan katalog JDBC atau wastafel khusus).
Saat memperbarui versi konektor, perhatikan perubahan nama artefak - beberapa konektor diganti namanya di antara versi utama (misalnya, konektor Firehose berubah dari
flink-connector-aws-kinesis-firehosekeflink-connector-aws-firehosebeberapa versi perantara).Selalu periksa dokumentasi konektor Amazon Managed Service untuk Apache Flink untuk mengetahui nama dan versi artefak yang tepat yang didukung dalam runtime target Anda.
Fitur yang tidak didukung dan eksperimental
Fitur berikut tidak didukung di Amazon Managed Service untuk Apache Flink 2.2:
Tabel Terwujud: Snapshot tabel yang dipelihara secara terus menerus dan dapat dikueri.
Perubahan Telemetri Kustom: Reporter metrik khusus dan konfigurasi telemetri.
ForSt State Backend: Penyimpanan status terpilah (eksperimental di open source).
Java 21: Dukungan eksperimental di open source, tidak didukung di Managed Service untuk Apache Flink.
Masalah yang diketahui
Layanan Dikelola Amazon untuk Apache Flink Studio
Flink 2.2 di Amazon Managed Service untuk Apache Flink tidak mendukung aplikasi Studio. Untuk informasi selengkapnya, lihat Membuat buku catatan Studio.
Konektor Kinesis EFO
Aplikasi yang menggunakan jalur
KinesisStreamsSourcewith EFO (Enhanced Fan-Out/ SubscribeToShard) yang diperkenalkan di konektor v5.0.0 dan v6.0.0 mungkin gagal saat aliran Kinesis mengalami resharding. Ini adalah masalah yang diketahui di masyarakat. Untuk informasi lebih lanjut, lihat FLINK-37648. Aplikasi yang menggunakan jalur
KinesisStreamsSourcewith EFO (Enhanced Fan-Out/ SubscribeToShard) yang diperkenalkan di konektor v5.0.0 dan v6.0.0 bersama-sama denganKinesisStreamsSinkmungkin mengalami kebuntuan jika aplikasi Flink berada di bawah tekanan balik, menghasilkan penghentian total pemrosesan data dalam satu atau lebih. TaskManagers Operasi penghentian paksa dan operasi aplikasi mulai diperlukan untuk memulihkan aplikasi. Ini adalah sub-kasus dari masalah yang diketahui di masyarakat. Untuk informasi lebih lanjut, lihat FLINK-34071.
Tingkatkan pengalaman
Amazon Managed Service untuk Apache Flink mendukung peningkatan versi di tempat yang mempertahankan konfigurasi aplikasi, log, metrik, tag, dan—jika status dan binari kompatibel — status aplikasi Anda. Untuk step-by-step instruksi, lihatUpgrade ke Flink 2.2: Panduan lengkap.
Untuk panduan tentang menilai risiko kompatibilitas status dan menangani status yang tidak kompatibel selama peningkatan, lihat. Panduan kompatibilitas status untuk peningkatan Flink 2.2
Langkah selanjutnya
Baru mengenal Flink 2.2? Untuk mendetail dokumentasi Apache Flink 2.2, lihat Dokumentasi Apache Flink
2.2. Merencanakan peningkatan? Lihat Upgrade ke Flink 2.2: Panduan lengkap
Masalah kompatibilitas negara? Lihat Panduan kompatibilitas status untuk peningkatan Flink 2.2
Untuk pertanyaan atau masalah, lihat Memecahkan Masalah Layanan Terkelola untuk Apache Flink atau hubungi AWS Support.