Untuk menjalankan operasi seperti pencarian teks lengkap, kueri multidimensi, dan analisis statistik pada data di MySQL, gunakan Alibaba Cloud Elasticsearch. Topik ini menjelaskan cara menggunakan layanan Data Integration dari DataWorks untuk menyinkronkan data dari MySQL ke instans Alibaba Cloud Elasticsearch secara cepat.
Latar Belakang
DataWorks adalah platform pengembangan dan tata kelola data besar (big data) komprehensif berbasis mesin data besar yang mengintegrasikan fitur-fitur seperti pengembangan data, penjadwalan tugas, dan manajemen data. Anda dapat menggunakan tugas sinkronisasi di DataWorks untuk menyinkronkan data dari berbagai sumber data ke Alibaba Cloud Elasticsearch secara cepat.
-
Sumber data yang didukung meliputi:
-
Database Alibaba Cloud (MySQL, PostgreSQL, SQL Server, MongoDB, dan HBase)
-
Alibaba Cloud PolarDB-X (hasil peningkatan dari DRDS)
-
Alibaba Cloud MaxCompute
-
Alibaba Cloud OSS
-
Alibaba Cloud Tablestore
-
Versi self-managed dari HDFS, Oracle, FTP, DB2, dan jenis database lain yang didukung
-
-
Skenario:
-
Sinkronisasi offline data besar ke Alibaba Cloud Elasticsearch. Anda dapat menyinkronkan seluruh database atau semua data dalam tabel tertentu. Untuk informasi lebih lanjut, lihat Sinkronisasi offline seluruh database MySQL ke Elasticsearch.
-
Sinkronisasi real-time data besar ke Alibaba Cloud Elasticsearch. Metode ini mendukung sinkronisasi penuh maupun inkremental. Untuk informasi lebih lanjut, lihat Sinkronisasi real-time seluruh database MySQL ke Elasticsearch.
-
Prasyarat
-
Buat instans RDS for MySQL. Untuk informasi lebih lanjut, lihat Buat instans RDS for MySQL. Topik ini menggunakan MySQL 5.7 sebagai contoh.
-
Buat instans Alibaba Cloud Elasticsearch dan aktifkan fitur pembuatan indeks otomatisnya. Untuk informasi lebih lanjut, lihat Buat instans Alibaba Cloud Elasticsearch dan Konfigurasi parameter YML.
-
Buat ruang kerja DataWorks. Untuk informasi lebih lanjut, lihat Buat ruang kerja.
-
Anda hanya dapat menyinkronkan data ke instans Alibaba Cloud Elasticsearch. Kluster Elasticsearch yang dikelola sendiri tidak didukung.
-
Instans RDS for MySQL, instans Elasticsearch, dan ruang kerja DataWorks harus berada di Wilayah yang sama.
-
Instans RDS for MySQL, instans Elasticsearch, dan ruang kerja DataWorks harus berada di zona waktu yang sama. Jika tidak, perbedaan waktu dapat terjadi saat menyinkronkan data yang berkaitan dengan waktu.
Penagihan
-
Untuk informasi tentang biaya instans Alibaba Cloud Elasticsearch, lihat Item yang dapat ditagih Elasticsearch.
-
Untuk informasi tentang biaya kelompok sumber daya Data Integration, lihat Biaya kelompok sumber daya.
Prosedur
Topik ini menggunakan tugas sinkronisasi offline sebagai contoh. Jika Anda ingin menyinkronkan data secara real-time, lihat Sinkronisasi real-time seluruh database MySQL ke Elasticsearch.
Langkah 1: Siapkan data sumber
Buat database dan tabel di instans RDS for MySQL.
-
Anda dapat menggunakan database RDS Alibaba Cloud atau database yang dikelola sendiri di server lokal. Topik ini menggunakan database RDS for MySQL sebagai contoh. Untuk informasi lebih lanjut, lihat Mulai cepat.
-
Kode contoh berikut menunjukkan cara membuat tabel dan memasukkan data.
-- buat tabel CREATE TABLE `es_test` ( `id` bigint(32) NOT NULL, `name` varchar(32) NULL, `age` bigint(32) NULL, `hobby` varchar(32) NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; -- masukkan data INSERT INTO `es_test` (`id`,`name`,`age`,`hobby`) VALUES (1,'user1',22,'music'); INSERT INTO `es_test` (`id`,`name`,`age`,`hobby`) VALUES (2,'user2',23,'sport'); INSERT INTO `es_test` (`id`,`name`,`age`,`hobby`) VALUES (3,'user3',43,'game'); INSERT INTO `es_test` (`id`,`name`,`age`,`hobby`) VALUES (4,'user4',24,'run'); INSERT INTO `es_test` (`id`,`name`,`age`,`hobby`) VALUES (5,'user5',42,'basketball');
Langkah 2: Beli dan konfigurasi kelompok sumber daya
Beli kelompok sumber daya Data Integration dan asosiasikan VPC serta ruang kerja dengan kelompok sumber daya tersebut.
-
Masuk ke Konsol DataWorks.
-
Di bilah navigasi atas, pilih Wilayah. Di panel navigasi kiri, klik Resource Groups.
-
Klik Create Resource Group dan konfigurasikan parameter sesuai petunjuk.
-
Di kolom Actions dari kelompok sumber daya yang telah dibuat, klik Network Settings untuk mengasosiasikan VPC dengan kelompok sumber daya tersebut. Untuk informasi lebih lanjut, lihat Konfigurasi pengaturan jaringan.
Agar sinkronisasi data dapat dilakukan, kelompok sumber daya harus dapat terhubung ke instans RDS for MySQL dan instans Elasticsearch. Oleh karena itu, Anda harus mengasosiasikan kelompok sumber daya tersebut dengan Virtual Private Cloud (VPC), Zone, dan VSwitch yang sama dengan instans Anda. Untuk menemukan informasi VPC instans Anda, lihat Ganti VPC dan vSwitch untuk instans RDS for MySQL dan Lihat informasi dasar instans Elasticsearch.
PentingSetelah Anda mengasosiasikan VPC, Anda harus menambahkan Blok CIDR dari vSwitch CIDR Block ke daftar putih IP instans RDS for MySQL dan instans Elasticsearch. Untuk informasi lebih lanjut, lihat Konfigurasi daftar putih IP untuk instans RDS for MySQL dan Konfigurasi daftar putih IP publik atau privat untuk instans Elasticsearch.
-
Di pojok kiri atas halaman, klik ikon kembali untuk kembali ke halaman Resource List.
-
Di kolom Actions dari kelompok sumber daya yang telah dibuat, klik Bind workspace untuk mengasosiasikan ruang kerja target dengan kelompok sumber daya tersebut.
Langkah 3: Tambahkan sumber data
Tambahkan sumber data RDS for MySQL dan Elasticsearch ke layanan Data Integration di DataWorks.
-
Buka halaman Data Integration di DataWorks.
-
Masuk ke Konsol DataWorks.
-
Di panel navigasi kiri, klik Workspace.
-
Di kolom Actions dari ruang kerja target, pilih .
-
-
Di panel navigasi kiri, klik Data Source.
-
Tambahkan sumber data RDS for MySQL.
-
Di halaman Data Sources, klik Add Data Source.
-
Di halaman Add Data Source, cari dan pilih MySQL.
-
Di kotak dialog Add MySQL data source, konfigurasikan parameter sumber data di bagian Basic Information.
Untuk informasi lebih lanjut, lihat Konfigurasi sumber data MySQL.
-
Di bagian Connection Configuration, klik Test Connectivity. Status Connected menunjukkan koneksi berhasil.
-
Klik Complete.
-
-
Tambahkan sumber data Elasticsearch dengan cara yang sama. Untuk informasi lebih lanjut, lihat Konfigurasi sumber data Elasticsearch.
Langkah 4: Konfigurasi dan jalankan tugas sinkronisasi offline
Tugas sinkronisasi offline dijalankan pada kelompok sumber daya, yang berfungsi sebagai sumber daya komputasi. Kelompok sumber daya mengambil data dari sumber data yang dikonfigurasi dan menuliskannya ke Elasticsearch.
-
Anda dapat mengonfigurasi tugas sinkronisasi offline dalam mode wizard atau mode skrip. Topik ini menggunakan mode wizard sebagai contoh. Untuk informasi lebih lanjut tentang mode skrip, lihat Konfigurasi node sinkronisasi dalam mode skrip, MySQL Reader, dan Elasticsearch Writer.
-
Langkah-langkah berikut dilakukan di halaman Data Development (DataStudio) versi lama.
-
Buka halaman Data development di DataWorks.
-
Masuk ke Konsol DataWorks.
-
Di panel navigasi kiri, klik Workspace.
-
Di kolom Actions dari ruang kerja target, pilih .
-
-
Buat node sinkronisasi offline.
-
Di tab Data Studio (
icon) di panel navigasi kiri, pilih . Lalu, buat alur kerja sesuai petunjuk. -
Klik kanan alur kerja yang telah dibuat dan pilih .
-
Di kotak dialog Create Node, masukkan nama node dan klik OK.
-
-
Konfigurasi jaringan dan sumber daya.
-
Di area Source, untuk Source, pilih MySQL, dan untuk Data Source Name, pilih nama sumber data yang akan disinkronkan.
-
Di bagian Resource Group, pilih kelompok sumber daya.
-
Di bagian Destination, untuk Destination, pilih Elasticsearch, dan untuk Data Source Name, pilih nama sumber data yang akan disinkronkan.
-
-
Klik Next step.
-
Konfigurasi tugas.
-
Di bagian Source, pilih tabel yang ingin disinkronkan.
-
Di bagian Destination, konfigurasikan parameter tujuan.
-
Di bagian Field Mapping, konfigurasikan pemetaan antara Source Column dan Target Column.
-
Di bagian Channel Control, konfigurasikan parameter channel.
Untuk informasi lebih lanjut tentang konfigurasi, lihat Konfigurasi tugas sinkronisasi menggunakan wizard.
-
-
Jalankan tugas.
-
(Opsional) Konfigurasi properti penjadwalan untuk tugas tersebut. Di panel kanan, klik Properties dan konfigurasikan parameter penjadwalan sesuai kebutuhan. Untuk informasi lebih lanjut tentang parameter tersebut, lihat Konfigurasi properti penjadwalan.
-
Di pojok kiri atas editor node, klik ikon Save untuk menyimpan tugas.
-
Di pojok kiri atas editor node, klik ikon Submit untuk mengirimkan tugas.
Jika Anda telah mengonfigurasi properti penjadwalan, tugas akan berjalan secara otomatis sesuai jadwal. Anda juga dapat mengklik ikon Run di pojok kiri atas editor node untuk segera menjalankan tugas.
Pesan
Shell run successfully!di log operasional menunjukkan bahwa tugas berhasil dijalankan.
-
Langkah 5: Verifikasi hasil
-
Masuk ke konsol Kibana dari instans Alibaba Cloud Elasticsearch tujuan. Untuk informasi lebih lanjut, lihat Masuk ke konsol Kibana.
-
Di pojok kiri atas halaman Kibana, klik ikon dan pilih Dev Tools.
-
Di Console, jalankan perintah berikut untuk melihat data yang telah disinkronkan.
POST /es_test/_search?pretty { "query": { "match_all": {}} }CatatanGanti
es_testdengan nama indeks yang Anda tentukan dalam tugas sinkronisasi data.Jika data berhasil disinkronkan, hasil berikut akan dikembalikan.
GET /es_test/_search { "took" : 0, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 5, "max_score" : 1.0, "hits" : [ { "_index" : "es_test", "_type" : "es_test", "_id" : "2", "_score" : 1.0, "_source" : { "age" : 23, "hobby" : "sport", "id" : 2, "name" : "user2" } }, { "_index" : "es_test", "_type" : "es_test", "_id" : "1", "_score" : 1.0, "_source" : { "age" : 22, "hobby" : "music", "id" : 1, "name" : "user1" } } ] } }