Memindahkan data Kafka di Google Cloud

Dokumen ini memberikan saran kepada developer, arsitek, dan pengambil keputusan tentang opsi untuk memigrasikan data Kafka eksternal ke Google Cloud, pemulihan dari bencana (DR), mengintegrasikan dengan BigQuery, dan pengambilan data perubahan (CDC) dari database.

Dalam Google Cloud, Anda dapat memindahkan data Kafka ke cluster Google Cloud Managed Service for Apache Kafka atau ke produk Google lain seperti tabel BigQuery atau lokasi Cloud Storage. Untuk mengetahui ringkasannya, lihat tabel berikut.

Kasus penggunaan Sumber data Tujuan data Solusi yang direkomendasikan
Salin data Cluster Apache Kafka yang dikelola sendiri Cluster Managed Service for Apache Kafka Buat konektor sumber MirrorMaker 2.0 di cluster Connect.
Menganalisis data di data warehouse Cluster Managed Service for Apache Kafka BigQuery Buat konektor sink BigQuery di cluster Connect.
Memigrasikan data dengan sinkronisasi Cluster Kafka yang dikelola sendiri Cluster Managed Service for Apache Kafka Buat konektor sumber MirrorMaker 2.0 di cluster Connect.
Mereplikasi cluster di seluruh region Managed Service for Apache Kafka (region A) Cluster Managed Service for Apache Kafka (region B) Buat konektor sumber MirrorMaker 2.0 di cluster Connect.
Mencadangkan data Managed Service untuk Apache Kafka Cloud Storage Buat konektor sink Cloud Storage di cluster Connect.
Mencatat perubahan database Database relasional, Spanner, atau Bigtable Managed Service untuk Apache Kafka Menjalankan pipeline Apache Beam di Dataflow.
Memproses data dengan Apache Spark Managed Service untuk Apache Kafka Apache Spark Jalankan Dataproc di Compute Engine.

Google Cloud menawarkan beberapa solusi untuk mengintegrasikan data Kafka Anda. Setiap penawaran memiliki keunggulan unik, bergantung pada kebutuhan dan infrastruktur yang ada. Metode integrasi terbaik untuk Anda bergantung pada sistem yang ada, kumpulan keahlian saat ini, dan kapasitas untuk mengelola infrastruktur.

Menggunakan Kafka Connect

Google Cloud Managed Service for Apache Kafka memungkinkan Anda menyediakan cluster yang menjalankan Kafka Connect. Tujuan utama Kafka Connect adalah menghubungkan cluster Managed Service for Apache Kafka Anda ke sistem lain untuk kasus penggunaan seperti migrasi, pencadangan, pemulihan dari bencana, ketersediaan tinggi, dan integrasi data. Sebaiknya gunakan Kafka Connect untuk tugas integrasi data yang paling umum bagi Managed Service for Apache Kafka. Kafka Connect menawarkan beberapa keuntungan:

  • Hubungkan cluster Kafka eksternal Anda ke berbagai Google Cloud sumber data dan sink menggunakan konektor bawaan. Cluster Kafka eksternal mencakup Managed Service for Apache Kafka, cluster Kafka lokal, dan deployment cloud kustom. Konektor yang didukung meliputi:

    • Konektor MirrorMaker 2.0

    • Sink BigQuery

    • Sink Cloud Storage

    • Sumber Pub/Sub

    • Tujuan Pub/Sub

  • Manfaatkan skalabilitas dan keandalan infrastruktur Google Cloud's yang memastikan pipeline data Anda dapat menangani volume data yang terus bertambah dan mempertahankan ketersediaan tinggi.

  • Menghilangkan beban operasional pengelolaan infrastruktur Kafka Connect ke Google Cloud.

  • Pantau dan kelola cluster Kafka Connect menggunakan alat pemantauan dan logging Google Cloud.

Untuk mengetahui Kafka Connect lebih lanjut, lihat Ringkasan Kafka Connect.

Menggunakan Dataflow

Layanan pemrosesan data tanpa serverGoogle Cloudmenawarkan integrasi data batch dan streaming tanpa server. Anda dapat menggunakan Dataflow untuk memindahkan data Kafka ke berbagai tujuan seperti set data BigQuery atau bucket Cloud Storage. Anda dapat men-deploy pipeline Dataflow menggunakan template Dataflow atau men-deploy pipeline Apache Beam. Pilih deployment Dataflow Anda berdasarkan faktor berikut:

  • Untuk deployment yang lebih sederhana dan cepat, terutama untuk tugas integrasi data umum, pilih template Dataflow bawaan yang dapat di-deploy langsung dari konsol.

  • Untuk fleksibilitas, kontrol, dan kasus penggunaan kompleks yang memerlukan logika kustom maksimal, pilih pipeline Apache Beam.

Template bawaan

Template Dataflow bawaan adalah pipeline Apache Beam yang telah ditentukan sebelumnya yang dapat Anda deploy dalam wizard tugas yang mudah digunakan dan bebas kode. Dataflow menyediakan beberapa template Dataflow untuk mengekspor data Kafka ke Google Cloud.

Pipeline Apache Beam kustom

Template Dataflow yang dibahas di bagian sebelumnya mungkin tidak memenuhi semua persyaratan Anda. Misalnya, Anda mungkin perlu mengintegrasikan data Kafka dengan sumber atau tujuan yang tidak didukung oleh template ini. Anda mungkin juga harus melakukan transformasi, normalisasi, atau mutasi pada data.

Untuk skenario ini, Anda dapat menggunakan Apache Beam SDK untuk membuat pipeline yang dapat dijalankan di Dataflow.

Untuk mengetahui informasi tentang model pemrograman Apache Beam, termasuk konsep utama seperti pipeline, PCollection, transformasi, dan runner, lihat Model pemrograman untuk Apache Beam.

Untuk mengetahui referensi tentang cara memulai pemrograman Apache Beam, termasuk cara menginstal SDK, panduan pemrograman, dan lingkungan interaktif, lihat Menggunakan Apache Beam untuk membangun pipeline. Dokumen ini juga menyediakan link untuk mendesain, membuat, dan menguji pipeline Anda, beserta contoh pipeline streaming.

Jika Anda perlu menulis Change Streams (penangkapan data perubahan) ke Kafka, sebaiknya gunakan komponen berikut sebagai bagian dari pipeline Dataflow Anda:

Dataflow menyediakan beberapa resource untuk menggunakan Kafka dengan pipeline Dataflow Anda:

Memilih antara Kafka Connect dan Dataflow

Saat mentransfer data antar-cluster Kafka, terutama ke Managed Service for Apache Kafka, Kafka Connect biasanya menjadi solusi yang paling tepat. MirrorMaker 2.0, yang merupakan bagian dari Kafka Connect, sangat cocok untuk tugas seperti migrasi cluster, pencadangan, pemulihan dari bencana, atau transformasi dasar. Kafka Connect mendukung transformasi satu per satu untuk modifikasi dasar per pesan.

Untuk migrasi data bervolume tinggi yang memerlukan transformasi kompleks, Dataflow adalah pilihan yang lebih tepat. Keunggulan Dataflow terletak pada kemampuannya untuk melakukan operasi berbasis streaming yang kompleks, termasuk pembersihan, pengayaan, dan agregasi data, sebelum data mencapai cluster Managed Service untuk Apache Kafka target. Dataflow memungkinkan penggabungan beberapa aliran data dengan logika perataan dan penentuan jendela lanjutan, yang penting untuk korelasi dan agregasi data yang kompleks. Kemampuan ini membedakan Dataflow dari Kafka Connect, yang terbatas pada modifikasi dasar per pesan.

Menggunakan Dataproc untuk pipeline Spark

Layanan terkelola sepenuhnya untuk workload Apache Spark dan Hadoop ini cocok jika Anda memiliki pipeline Spark yang sudah ada. Pengguna Apache Spark dapat menghubungkan deployment Spark yang ada ke Managed Service for Apache Kafka menggunakan Dataproc. Dataproc adalah layanan terkelola sepenuhnya Google Cloud untuk pipeline Spark dan mencakup alat untuk pengelolaan siklus proses cluster. Misalnya, jika Anda memiliki aplikasi Spark yang memproses data streaming dari Kafka dan Anda ingin memigrasikan aplikasi ini ke Google Cloud, Dataproc akan menjadi pilihan yang tepat.

Untuk Spark Streaming dan Kafka, Apache Spark menyediakan panduan integrasi. Untuk membantu men-deploy alur kerja Kafka umum, Dataproc menyediakan sejumlah template open source.