Anda dapat membuat dan menjalankan tugas ekstraksi, transformasi, dan pemuatan (ETL) untuk membersihkan, mentransformasi, dan mengekspor data di instance ApsaraMQ for Kafka. Topik ini menjelaskan cara membuat tugas ETL di konsol ApsaraMQ for Kafka untuk mengirimkan data yang telah diproses dari topik sumber ke topik tujuan.
Prasyarat
Sebelum menjalankan tugas ETL, pastikan operasi berikut telah dilakukan:
Buat topik sumber dan topik tujuan pada instance ApsaraMQ for Kafka. Untuk informasi lebih lanjut, lihat Langkah 1: Buat topik.
CatatanJika Anda ingin secara manual membuat topik bantu yang diperlukan oleh tugas ETL, Anda juga harus membuat topik yang digunakan untuk menyimpan informasi tentang tugas ETL. Untuk informasi tentang parameter yang dikonfigurasi untuk membuat topik, lihat Langkah 3 di bagian "Buat tugas ETL" dari topik ini.
Aktifkan Function Compute. Untuk informasi lebih lanjut, lihat Aktifkan Function Compute.
Peroleh izin yang diperlukan jika Anda adalah Pengguna Resource Access Management (RAM). Untuk informasi lebih lanjut, lihat Berikan izin kepada pengguna RAM.
Kode berikut memberikan contoh kebijakan yang menentukan izin:
{ "Version": "1", "Statement": [ { "Action": [ "kafka:CreateETLTask", "kafka:ListETLTask", "kafka:DeleteETLTask" ], "Resource": "*", "Effect": "Allow" } ] }
Informasi latar belakang
ETL adalah proses di mana data diekstraksi, ditransformasi, dan dimuat ke dalam tujuan. Anda dapat menulis fungsi untuk mengimplementasikan logika tugas ETL. ApsaraMQ for Kafka memanggil fungsi tersebut untuk memproses data di topik sumber dan mengirimkan data ke topik tujuan.
Selama pemrosesan data, Function Compute secara otomatis membuat layanan dan fungsi yang sesuai. Nama layanan yang dibuat berada dalam format
_FC-kafka-nama tugas ETL.Topik sumber dan topik tujuan pada instance ApsaraMQ for Kafka harus berada di wilayah yang sama.
Function Compute memungkinkan Anda untuk menanyakan log panggilan fungsi untuk menyelesaikan masalah. Untuk informasi lebih lanjut, lihat Konfigurasikan fitur logging.
Fitur tugas ETL dari ApsaraMQ for Kafka sedang dalam pratinjau publik. Fitur ini independen dari instance ApsaraMQ for Kafka. ApsaraMQ for Kafka tidak membebankan biaya untuk fitur ini. Jika tugas ETL yang Anda buat bergantung pada layanan lain, lihat aturan penagihan layanan terkait.
Aktifkan ETL
Tugas ETL dibuat di modul Integrasi Ekosistem Konektor dari konsol ApsaraMQ for Kafka. Modul ini menyediakan kemampuan penyaringan dan transformasi data. Untuk informasi lebih lanjut, lihat Ikhtisar.
Pertama kali Anda menggunakan fitur tugas ETL, Anda harus memberikan otorisasi kepada ApsaraMQ for Kafka untuk mengakses layanan terkait. Setelah Anda mengonfirmasi otorisasi, sistem secara otomatis membuat peran terkait layanan AliyunServiceRoleForAlikafkaETL. ApsaraMQ for Kafka dapat mengasumsikan peran tersebut untuk mengakses layanan yang digunakan selama pemrosesan tugas ETL. Untuk informasi lebih lanjut, lihat Peran terkait layanan.
Masuk ke Konsol ApsaraMQ for Kafka. Di bagian Resource Distribution halaman Overview, pilih wilayah tempat instance ApsaraMQ for Kafka yang ingin Anda kelola berada.
Di panel navigasi di sebelah kiri, pilih .
Di halaman ETL Tasks, klik Create Task.
Di pesan Service Authorization yang muncul, klik OK.
Buat tugas ETL
Bagian ini menjelaskan cara membuat dan menerapkan tugas ETL untuk mengekstrak data dari topik sumber, memproses data, dan kemudian memuat data yang telah diproses ke topik tujuan.
Di halaman ETL Tasks, klik Create Task.
Di langkah Configure Basic Information, masukkan nama tugas dan klik Next.
Di langkah Configure Source and Destination, tentukan sumber data, topik tujuan, dan informasi konsumsi. Lalu, klik Next.
Parameter
Deskripsi
Contoh
Instance
Instance tempat topik sumber dan topik tujuan berada.
alikafka_pre-cn-7pp2bz47****
alikafka_post-cn-2r42bvbm****
Topic
Topik sumber dan topik tujuan.
CatatanTopik sumber dan topik tujuan harus berbeda.
topic****
test****
Consumer Offset
Offset dari mana Anda ingin pesan dikonsumsi. Parameter ini hanya ditampilkan setelah Anda klik Advanced Settings. Nilai valid:
Earliest Offset: Konsumsi pesan dari offset paling awal.
Latest Offset: Konsumsi pesan dari offset terbaru.
Latest Offset
Failure Handling Policy
Menentukan apakah akan mengirim pesan berikutnya jika sebuah pesan gagal dikirim. Parameter ini hanya ditampilkan setelah Anda klik Advanced Settings. Nilai valid:
Continue Subscription: Kirim pesan berikutnya jika sebuah pesan gagal dikirim.
Stop Subscription: Jangan kirim pesan berikutnya jika sebuah pesan gagal dikirim.
Continue Subscription
Resource Creation Method
Metode yang digunakan untuk membuat topik bantu yang diperlukan oleh tugas ETL. Parameter ini hanya ditampilkan setelah Anda klik Advanced Settings. Nilai valid:
Auto
Manual
Auto
Consumer Group
kelompok konsumen yang digunakan oleh tugas ETL. Parameter ini hanya ditampilkan jika Anda mengatur parameter Resource Creation Method ke Manual. Kami menyarankan Anda menggunakan etl-cluster sebagai awalan dari nama kelompok konsumen.
etl-cluster-kafka
Task Offset Topic
Topik yang digunakan untuk menyimpan offset konsumen. Parameter ini hanya ditampilkan jika Anda mengatur parameter Manual ke Resource Creation Method.
Topik: nama topik. Kami merekomendasikan agar Anda menggunakan etl-offset sebagai awalan nama topik.
Partisi: jumlah partisi dalam topik. Parameter ini harus diatur ke nilai lebih dari 1.
Mesin Penyimpanan: mesin penyimpanan yang digunakan oleh topik. Parameter ini harus diatur ke Penyimpanan Lokal.
CatatanAnda hanya dapat mengatur parameter Mesin Penyimpanan ke Penyimpanan Lokal jika Anda membuat topik pada instance Edisi Profesional.
cleanup.policy: kebijakan pembersihan log yang digunakan oleh topik. Parameter ini harus diatur ke Compact.
etl-offset-kafka
Task Configuration Topic
Topik yang digunakan untuk menyimpan konfigurasi tugas. Parameter ini hanya ditampilkan jika Anda mengatur parameter Manual ke Resource Creation Method.
Topik: nama topik. Kami merekomendasikan agar Anda menggunakan etl-config sebagai awalan nama topik.
Partisi: jumlah partisi dalam topik. Parameter ini harus diatur ke 1.
Mesin Penyimpanan: mesin penyimpanan yang digunakan oleh topik. Parameter ini harus diatur ke Penyimpanan Lokal.
CatatanAnda hanya dapat mengatur parameter Mesin Penyimpanan ke Penyimpanan Lokal jika Anda membuat topik pada instance Edisi Profesional.
cleanup.policy: kebijakan pembersihan log yang digunakan oleh topik. Parameter ini harus diatur ke Compact.
etl-config-kafka
Task Status Topic
Topik yang digunakan untuk menyimpan status tugas. Parameter ini hanya ditampilkan jika Anda mengatur parameter Manual ke Resource Creation Method.
Topik: nama topik. Kami merekomendasikan agar Anda menggunakan etl-status sebagai awalan nama topik.
Partisi: jumlah partisi dalam topik. Kami merekomendasikan agar Anda mengatur parameter ini ke 6.
Mesin Penyimpanan: mesin penyimpanan yang digunakan oleh topik. Parameter ini harus diatur ke Penyimpanan Lokal.
CatatanAnda hanya dapat mengatur parameter Mesin Penyimpanan ke Penyimpanan Lokal jika Anda membuat topik pada instance Edisi Profesional.
cleanup.policy: kebijakan pembersihan log yang digunakan oleh topik. Parameter ini harus diatur ke Compact.
etl-status-kafka
Dead-letter Queue Topic
Topik yang digunakan untuk menyimpan data kesalahan kerangka kerja ETL. Parameter ini hanya ditampilkan jika Anda mengatur parameter Manual ke Resource Creation Method. Untuk menghemat sumber daya topik, topik ini bisa sama dengan Topik Data Kesalahan.
Topik: nama topik. Kami merekomendasikan agar Anda menggunakan etl-error sebagai awalan nama topik.
Partisi: jumlah partisi dalam topik. Kami merekomendasikan agar Anda mengatur parameter ini ke 6.
Mesin Penyimpanan: mesin penyimpanan yang digunakan oleh topik. Parameter ini dapat diatur ke Penyimpanan Lokal atau Penyimpanan Cloud.
CatatanAnda hanya dapat mengatur parameter Mesin Penyimpanan ke Penyimpanan Lokal jika Anda membuat topik pada instance Edisi Profesional.
etl-error-kafka
Error Data Topic
Topik yang digunakan untuk menyimpan data kesalahan sink. Parameter ini hanya ditampilkan jika Anda mengatur parameter Manual ke Resource Creation Method. Untuk menghemat sumber daya topik, topik ini bisa sama dengan Topik Antrian Surat Mati.
Topik: nama topik. Kami merekomendasikan agar Anda menggunakan etl-error sebagai awalan nama topik.
Partisi: jumlah partisi dalam topik. Kami merekomendasikan agar Anda mengatur parameter ini ke 6.
Mesin Penyimpanan: mesin penyimpanan yang digunakan oleh topik. Parameter ini dapat diatur ke Penyimpanan Lokal atau Penyimpanan Cloud.
CatatanAnda hanya dapat mengatur parameter Mesin Penyimpanan ke Penyimpanan Lokal jika Anda membuat topik pada instance Edisi Profesional.
etl-error-kafka
Di langkah Configure Function, konfigurasikan parameter dan klik Create.
Sebelum Anda klik Create, Anda dapat klik Test untuk menguji apakah fungsi bekerja seperti yang diharapkan.
Parameter
Deskripsi
Contoh
Programming Language
Bahasa yang digunakan untuk menulis fungsi. Atur parameter ini ke Python 3.
Python3
Template
Template fungsi yang disediakan oleh sistem. Setelah Anda memilih template fungsi, sistem secara otomatis mengisi bidang Kode dengan kode dari template fungsi.
Tambahkan Awalan/Akhiran
Code
Kode yang digunakan untuk memproses pesan. ApsaraMQ for Kafka menyediakan template fungsi yang dapat Anda gunakan untuk membersihkan dan mentransformasi data. Anda dapat memodifikasi kode dari template fungsi yang dipilih berdasarkan kebutuhan bisnis Anda.
CatatanAnda dapat mengimpor modul Python sesuai dengan kebutuhan Anda.
Pesan dalam kode berada dalam format kamus. Anda hanya perlu memodifikasi kunci dan nilainya.
Kembalikan pesan yang telah diproses. Jika fungsi digunakan untuk menyaring pesan, kembalikan None.
def deal_message(message): for keyItem in message.keys(): if (keyItem == 'key'): message[keyItem] = message[keyItem] + "KeySurfix" continue if (keyItem == 'value'): message[keyItem] = message[keyItem] + "ValueSurfix" continue return messageMessage Key
Kunci pesan yang akan diproses di topik sumber. Klik Test Code untuk menampilkan parameter.
demo
Message Content
Nilai pesan yang akan diproses di topik sumber.
{"key": "test"}
Setelah tugas ETL dibuat, Anda dapat melihat tugas tersebut di halaman ETL Tasks. Sistem secara otomatis menerapkan tugas tersebut.
Kirim pesan uji
Setelah tugas ETL diterapkan, Anda dapat mengirim pesan uji ke topik ApsaraMQ for Kafka sumber untuk menguji apakah data dapat diproses oleh fungsi yang dikonfigurasi dan dikirim ke topik tujuan.
Di halaman ETL Tasks, temukan tugas ETL yang Anda buat dan klik Test di kolom Actions.
Di panel Send Message, masukkan informasi pesan uji dan klik OK untuk mengirim pesan uji.
Di bidang Message Key, masukkan kunci pesan uji. Contoh: demo.
Di bidang Message Content, masukkan isi pesan uji. Contoh: {"key": "test"}.
Konfigurasikan parameter Send to Specified Partition untuk menentukan apakah akan mengirim pesan uji ke partisi tertentu.
Jika Anda ingin mengirim pesan uji ke partisi tertentu, klik Partition ID dan masukkan ID partisi di bidang Yes. Contoh: 0. Untuk informasi tentang cara menanyakan ID partisi, lihat Lihat status partisi.
Jika Anda tidak ingin mengirim pesan uji ke partisi tertentu, klik No.
Lihat log fungsi
Setelah Anda mengekstrak dan memproses data di ApsaraMQ for Kafka, Anda dapat melihat log fungsi untuk memverifikasi apakah topik tujuan menerima data yang telah diproses. Untuk informasi lebih lanjut, lihat Konfigurasikan fitur logging.
Gambar 1. Lihat log fungsi
Lihat detail tugas ETL
Setelah Anda membuat tugas ETL, Anda dapat melihat detailnya di konsol ApsaraMQ for Kafka.
Di halaman ETL Tasks, temukan tugas ETL yang Anda buat dan klik Details di kolom Actions.
Di halaman Task Details, lihat detail tugas ETL.
Hapus tugas ETL
Jika Anda tidak lagi memerlukan tugas ETL, Anda dapat menghapus tugas tersebut di konsol ApsaraMQ for Kafka.
Di halaman ETL Tasks, temukan tugas ETL yang ingin Anda hapus dan klik Delete di kolom Actions.
Di pesan Notes yang muncul, klik OK.