View a markdown version of this page

Layanan Terkelola 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 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.

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 fullRestarts rik 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 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 (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, 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). /tmp

  • Dependensi 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/

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 untuk catatan rilis lengkap Apache Flink 2.0 yang memperkenalkan perubahan besar ini.

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 SourceFunction dan SinkFunction antarmuka 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-143

  • Untuk Aliran Data Kinesis, gunakan KinesisStreamsSource dan KinesisStreamsSink dariflink-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.

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

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:

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

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 KinesisStreamsSource dengan 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 KinesisStreamsSource dengan 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 komunitas. Untuk informasi selengkapnya, lihat FLINK-34071.

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.

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