Layanan Dikelola Amazon untuk Apache Flink 2.2 - Layanan Terkelola untuk Apache Flink

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.

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. Gunakan numRestarts metrik 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).

  • downtimeMetrik uptime dan keduanya ditandai sebagai usang di Flink 2.2 dan akan segera dihapus. Ganti uptime dengan metrik barurunningTime. Ganti downtime dengan 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 (sepertiEC2MetadataUtils.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 /tmp yang 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/

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 lengkap Apache Flink 2.0 yang memperkenalkan perubahan yang melanggar ini.

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 SourceFunction dan SinkFunction antarmuka 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 StreamsKinesisStreamsSource, KinesisStreamsSink gunakan 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.

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

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:

Ketersediaan konektor untuk Flink 2.2
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-firehose ke flink-connector-aws-firehose beberapa 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 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.

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 KinesisStreamsSource with 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 KinesisStreamsSource with EFO (Enhanced Fan-Out/ SubscribeToShard) yang diperkenalkan di konektor v5.0.0 dan v6.0.0 bersama-sama dengan KinesisStreamsSink mungkin 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.

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

Untuk pertanyaan atau masalah, lihat Memecahkan Masalah Layanan Terkelola untuk Apache Flink atau hubungi AWS Support.