Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Layanan Terkelola 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 besar yang membutuhkan perencanaan yang cermat. Tinjau daftar lengkap perubahan dan penghentian yang rusak 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 cermat bersama perubahan API Flink di bagian berikutnya.
Penanganan Konfigurasi Terprogram
MSF Flink 2.2 sekarang melaporkan pengecualian ketika pelanggan mencoba memodifikasi konfigurasi yang tidak didukung oleh MSF melalui
env.getConfig().set()atau API serupa. Lihat Properti konfigurasi Flink terprogram.Pelanggan masih dapat meminta untuk mengubah konfigurasi tertentu melalui tiket dukungan (lihat Pengaturan yang Dapat Dimodifikasi)
Penghapusan Metrik
Met
fullRestartsrik 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 lebihrestartingTime,cancellingTime, danfailingTime.Lihat halaman Metrik dan Dim ensi untuk daftar lengkap metrik yang didukung.
Non-Credential Panggilan IMDS 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 secara otomatis mengonfigurasi kredenSIAL dan wilayah untuk aplikasi Anda.Aplikasi yang menggunakan fungsi AWS SDK yang mengandalkan panggilan IMDS non-kredensional (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, buat ulang kode Anda untuk menggunakan variabel lingkungan atau konfigurasi aplikasi sebagai gantinya.
Read-Only Sistem File Root
Untuk meningkatkan keamanan, ketergantungan apa pun di luar direktori kerja flink default akan menghasilkan:
java.io.FileNotFoundException: /{path}/{filename} (Read-only file system)./tmpDependensi sistem file dapat berasal langsung dari kode Anda atau secara tidak langsung dari pustaka yang termasuk dalam dependensi Anda. Ganti dependensi sistem file langsung ke
/tmp/dalam kode Anda. 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 diperkenalkan di Layanan Terkelola untuk Apache Flink 2.2. Lihat Catatan Rilis Apache Flink 2.0
Flink API dan Penghapusan Bahasa
DataSet API Dihapus
DataSet API lama untuk pemrosesan batch telah dihapus sepenuhnya di Flink 2.0+. Semua pemrosesan batch sekarang harus menggunakan DataStream API terpadu.
Aplikasi yang menggunakan DataSet API harus dimigrasikan ke DataStream API sebelum memutakhirkan. Lihat panduan migrasi Apache Flink DataSet untuk konversi 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 menjadi default.
Kelas Konektor Legacy Dihapus
Warisan
SourceFunctiondanSinkFunctionantarmuka telah digantikan oleh API Source (FLIP-27) dan Sink () terpadu yang baru, yang memberikan dukungan yang lebih baik untuk bounded/unbounded dualitas, peningkatan koordinasi pos pemeriksaan, dan model pemrograman yang lebih bersih. FLIP-143Untuk Aliran Data Kinesis, gunakan
KinesisStreamsSourcedanKinesisStreamsSinkdariflink-connector-aws-kinesis-streams:6.0.0-2.0.
Scala API dihapus
API Flink Scala telah dihapus. API Java Flink sekarang menjadi API tunggal yang didukung untuk JVM-based aplikasi.
Jika aplikasi Anda ditulis dalam Scala, Anda masih dapat menggunakan API Java Flink dari kode Scala — perubahan utamanya adalah Scala-specific pembungkus dan konversi implisit tidak lagi tersedia. Lihat Upgrade 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.
POJO 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 menentukan tingkat risiko aplikasi Anda.
Fitur Apache Flink 2.2 didukung
Runtime dan dukungan bahasa
| Fitur | Deskripsi | Dokumentasi |
|---|---|---|
| Runtime Java 17 | 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 peningkatan RockSDB. | Bagian belakang negara |
| Peningkatan Serialisasi | Serializer khusus untuk Map, List, Set; Kryo ditingkatkan dari 2.24 menjadi 5.6. | Jenis Serialisasi |
Fitur SQL dan Table API
| Fitur | Deskripsi | Dokumentasi |
|---|---|---|
| Tipe Data VARIANT | Dukungan asli untuk data semi-terstruktur (JSON) tanpa penguraian string berulang. | Tipe Data |
| Delta Bergabung | Mengurangi persyaratan status untuk bergabung streaming dengan hanya mempertahankan versi terbaru dari setiap kunci; memerlukan 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 langsung di SQL dengan status per kunci dan pengatur waktu. | User-Defined Fungsi |
| Fungsi ML_PREDICT | Panggil model ML terdaftar pada streaming/batch tabel langsung dari SQL. Membutuhkan pelanggan untuk menggabungkan ModelProvider implementasi (mis.,flink-model-openai). ModelProvider pustaka tidak dikirim oleh Layanan Terkelola 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 |
|---|---|---|
| FLIP-27 Sumber API | Antarmuka sumber terpadu baru menggantikan warisan SourceFunction. | Sumber |
| FLIP-143 API Wastafel | Antarmuka wastafel terpadu baru menggantikan warisan SinkFunction. | Wastafel |
| Python asinkron DataStream | Non-blocking I/O operasi di Python DataStream 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 dirilis 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 | Versi Flink 2.0+ | Catatan |
|---|---|---|---|
| Apache Kafka | flink-connector-kafka 3.4.0-1.20 | flink-connector-kafka 4.0.0-2.0 | Direkomendasikan untuk Flink 2.2 |
| Aliran Data Kinesis (sumber) | flink-connector-kinesis 5.0.0-1.20 | flink-connector-aws-kinesis-stream-6.0.0-2.0 | Direkomendasikan untuk Flink 2.2 |
| Aliran Data Kinesis (sink) | flink-connector-aws-kinesis-stream-5.1.0-1.20 | flink-connector-aws-kinesis-stream-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 | konektor flink-jdbc 3.3.0-1.20 | Belum dirilis untuk 2.x | Tidak ada rilis yang kompatibel dengan Flink 2.x yang tersedia |
| OpenSearch | flink-connector-opensearch 1.2.0-1.19 | Belum dirilis untuk 2.x | Tidak ada rilis yang kompatibel dengan Flink 2.x yang tersedia |
| 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 yang tersedia |
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-firehosedalam beberapa versi perantara).Selalu periksa dokumentasi konektor Amazon Managed Service for Apache Flink untuk mengetahui nama dan versi artefak yang tepat yang didukung dalam runtime target Anda.
Fitur eksperimental dan tidak didukung
Fitur-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 Status Backend: Penyimpanan status terpilah (eksperimental dalam sumber terbuka).
Java 21: Dukungan eksperimental dalam open source, tidak didukung dalam Layanan Terkelola untuk Apache Flink.
Masalah yang diketahui
Layanan Terkelola 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
KinesisStreamsSourcedengan 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 selengkapnya, lihat FLINK-37648. Aplikasi yang menggunakan jalur
KinesisStreamsSourcedengan 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 komunitas. Untuk informasi selengkapnya, lihat FLINK-34071.
Upgrade pengalaman
Amazon Managed Service for Apache Flink mendukung peningkatan versi di tempat yang mempertahankan konfigurasi aplikasi, log, metrik, tag, dan—jika status dan biner kompatibil—status aplikasi Anda. Untuk instruksi langkah demi langkah, lihat Memutakhirkan ke Flink 2.2: Panduan lengkap.
Untuk panduan tentang menilai risiko kompatibilitas status dan menangani status yang tidak kompatibel selama peningkatan, lihatPanduan kompatibilitas status untuk peningkatan Flink 2.2.
Langkah selanjutnya
Baru mengenal Flink 2.2? Untuk dokumentasi Apache Flink 2.2 terperinci, lihat Dokumentasi Apache Flink 2.2.
Merencanakan peningkatan? Lihat Memutakhirkan 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 Dukungan.