Anda dapat menggunakan Alibaba Cloud Elasticsearch (ES) untuk melakukan pencarian teks lengkap, kueri multidimensi, atau analisis statistik pada data dari database MySQL. Topik ini menjelaskan cara menggunakan layanan Data Integration dari DataWorks untuk menyinkronkan data dari database MySQL ke kluster Alibaba Cloud ES dalam hitungan menit.
Informasi latar belakang
DataWorks adalah platform pengembangan dan tata kelola data besar (big data) end-to-end yang dibangun di atas mesin data besar. Platform ini mengintegrasikan fitur-fitur seperti pengembangan data, penjadwalan task, dan manajemen data. Anda dapat menggunakan task sinkronisasi di DataWorks untuk menyinkronkan data dari berbagai sumber data ke kluster Alibaba Cloud ES secara cepat.
Sumber data yang didukung meliputi:
Database ApsaraDB (MySQL, PostgreSQL, SQL Server, MongoDB, dan HBase)
Alibaba Cloud PolarDB-X (hasil peningkatan dari DRDS sebelumnya)
Alibaba Cloud MaxCompute
Alibaba Cloud OSS
Alibaba Cloud Tablestore
Versi self-managed dari Hadoop Distributed File System (HDFS), Oracle, FTP, DB2, dan jenis database yang tercantum di atas
Skenario:
Sinkronisasi offline data besar ke kluster Alibaba Cloud ES. Anda dapat menyinkronkan seluruh database atau tabel tertentu. Untuk informasi lebih lanjut, lihat Sinkronisasi offline seluruh database MySQL ke Elasticsearch.
Sinkronisasi real-time data besar ke kluster Alibaba Cloud ES. Metode ini mendukung sinkronisasi penuh maupun inkremental. Untuk informasi lebih lanjut, lihat Sinkronisasi real-time seluruh database MySQL ke Elasticsearch.
Prasyarat
Instans ApsaraDB RDS for MySQL telah dibuat. Untuk informasi lebih lanjut, lihat Buat instans ApsaraDB RDS for MySQL. Topik ini menggunakan MySQL 5.7 sebagai contoh.
Instans Alibaba Cloud ES telah dibuat dan fitur pembuatan indeks otomatis diaktifkan untuk instans tersebut. Untuk informasi lebih lanjut, lihat Buat instans Alibaba Cloud Elasticsearch dan Konfigurasi file YML.
Ruang kerja DataWorks telah dibuat. Untuk informasi lebih lanjut, lihat Buat ruang kerja.
Anda hanya dapat menyinkronkan data ke Alibaba Cloud ES. Kluster Elasticsearch self-managed tidak didukung.
Instans ApsaraDB RDS for MySQL, instans ES, dan ruang kerja DataWorks harus berada di wilayah yang sama.
Instans ApsaraDB RDS for MySQL, instans ES, dan ruang kerja DataWorks harus berada di zona waktu yang sama. Jika tidak, perbedaan zona waktu dapat terjadi antara data sumber dan tujuan saat Anda menyinkronkan data yang berkaitan dengan waktu.
Penagihan
Untuk informasi lebih lanjut tentang biaya instans ES, lihat Item penagihan ES.
Untuk informasi lebih lanjut tentang biaya kelompok sumber daya Data Integration, lihat Biaya kelompok sumber daya.
Prosedur
Topik ini menggunakan sinkronisasi offline sebagai contoh. Untuk 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 ApsaraDB RDS for MySQL.
Anda dapat menggunakan database ApsaraDB for RDS atau database self-managed di server lokal. Topik ini menggunakan database ApsaraDB RDS for MySQL sebagai contoh untuk menunjukkan cara membuat database dan tabel. Untuk informasi lebih lanjut, lihat Mulai Cepat.
Anda dapat menggunakan pernyataan berikut untuk 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 sambungkan virtual private cloud (VPC) serta ruang kerja ke kelompok tersebut.
Masuk ke Konsol DataWorks.
Pada bilah menu atas, pilih wilayah. Di panel navigasi sebelah kiri, klik Resource Groups.
Klik Create Resource Group dan konfigurasikan parameter yang diperlukan.
Pada kolom Operations dari kelompok sumber daya yang Anda buat, klik Network Settings untuk menyambungkan VPC ke kelompok sumber daya tersebut. Untuk informasi lebih lanjut, lihat Pengaturan jaringan.
Kelompok sumber daya harus dapat terhubung ke VPC dari instans ApsaraDB RDS for MySQL dan instans ES agar dapat menyinkronkan data. Anda harus menyambungkan VPC, Zone, dan VSwitch tempat instans ApsaraDB RDS for MySQL dan instans ES berada. Untuk melihat informasi VPC suatu instans, lihat Ganti VPC dan vSwitch untuk instans ApsaraDB RDS for MySQL dan Lihat informasi dasar instans Elasticsearch.
PentingSetelah Anda menyambungkan VPC, Anda harus menambahkan VSwitch CIDR Block dari VPC tersebut ke daftar putih akses internal instans ApsaraDB RDS for MySQL dan instans ES. Untuk informasi lebih lanjut, lihat Konfigurasi daftar putih alamat IP untuk instans ApsaraDB RDS for MySQL dan Konfigurasi daftar putih akses publik atau internal untuk instans ES.
Di pojok kiri atas halaman, klik ikon kembali untuk kembali ke halaman Resource Groups.
Pada kolom Operations dari kelompok sumber daya yang Anda buat, klik Attach Workspace untuk menyambungkan ruang kerja target ke kelompok sumber daya tersebut.
Langkah 3: Tambahkan sumber data
Tambahkan sumber data ApsaraDB RDS for MySQL dan ES ke layanan Data Integration di DataWorks.
Buka halaman Data Integration di DataWorks.
Masuk ke Konsol DataWorks.
Di panel navigasi sebelah kiri, klik Workspaces.
Pada kolom Operations dari ruang kerja target, pilih .
Di panel navigasi sebelah kiri, klik Data Source.
Tambahkan sumber data MySQL.
Pada halaman Data Source List, klik Add Data Source.
Pada halaman Add Data Source, cari dan pilih MySQL.
Pada dialog Add MySQL Data Source, konfigurasikan parameter sumber data di bagian Basic Information.
Untuk informasi lebih lanjut tentang konfigurasi, lihat Konfigurasi sumber data MySQL.
Di bagian Connection Configuration, klik Test Connectivity. Jika status konektivitasnya Connected, artinya koneksi berhasil.
Klik Complete.
Tambahkan sumber data ES dengan cara yang sama. Untuk informasi lebih lanjut tentang konfigurasi, lihat Konfigurasi sumber data ES.
Langkah 4: Konfigurasi dan jalankan task sinkronisasi data offline
Task sinkronisasi data offline dijalankan menggunakan kelompok sumber daya. Kelompok sumber daya mengambil data dari sumber data di Data Integration dan menulis data tersebut ke kluster ES.
Anda dapat mengonfigurasi task sinkronisasi offline dengan dua cara. Topik ini menggunakan Antarmuka tanpa kode (codeless UI) sebagai contoh. Anda juga dapat menggunakan editor kode untuk mengonfigurasi task sinkronisasi offline. Untuk informasi lebih lanjut, lihat Konfigurasi node sinkronisasi di editor kode, MySQL Reader, dan Elasticsearch Writer.
Topik ini menggunakan halaman Data Studio lama sebagai contoh untuk menunjukkan cara membuat task sinkronisasi offline.
Buka halaman Data Development di DataWorks.
Masuk ke Konsol DataWorks.
Di panel navigasi sebelah kiri, klik Workspaces.
Pada kolom Operations dari ruang kerja target, pilih .
Buat task sinkronisasi offline.
Pada tab Data Development (
icon) di panel navigasi sebelah kiri, pilih . Ikuti petunjuk di layar untuk membuat business flow.Klik kanan business flow yang Anda buat dan pilih .
Pada dialog Create Node, masukkan nama node dan klik Confirm.
Konfigurasi jaringan dan sumber daya.
Di bagian Data Source, atur Data Source ke MySQL dan Data Source Name ke nama sumber data tempat data akan disinkronkan.
Di bagian My Resource Group, pilih kelompok sumber daya.
Di bagian Data Destination, atur Data Destination ke Elasticsearch dan Data Source Name ke nama sumber data tujuan sinkronisasi.
Klik Next.
Konfigurasi task.
Di bagian Data Source, pilih tabel tempat data akan disinkronkan.
Di bagian Data Destination, konfigurasikan parameter untuk tujuan data.
Di bagian Field Mapping, atur hubungan pemetaan antara Source Field dan Destination Field.
Di bagian Channel Control, konfigurasikan parameter channel.
Untuk informasi lebih lanjut tentang konfigurasi, lihat Konfigurasi node sinkronisasi di Antarmuka tanpa kode.
Jalankan task.
(Opsional) Konfigurasi properti penjadwalan untuk task tersebut. Di panel kanan, klik Scheduling dan konfigurasikan parameter penjadwalan sesuai kebutuhan. Untuk informasi lebih lanjut tentang parameter tersebut, lihat Penjadwalan.
Di pojok kiri atas area node, klik ikon simpan untuk menyimpan task.
Di pojok kiri atas area node, klik ikon commit untuk meng-commit task.
Jika Anda mengonfigurasi properti penjadwalan untuk task tersebut, task akan berjalan secara otomatis secara berkala. Anda juga dapat mengklik ikon run di pojok kiri atas area node untuk menjalankan task segera.
Jika log berisi
Shell run successfully!, artinya task berhasil dijalankan.
Langkah 5: Verifikasi hasil sinkronisasi data
Masuk ke konsol Kibana dari instans Alibaba Cloud ES tujuan. Untuk informasi lebih lanjut, lihat Masuk ke konsol Kibana.
Di pojok kiri atas halaman Kibana, klik ikon tersebut 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 task sinkronisasi data.Jika data berhasil disinkronkan, hasil berikut akan dikembalikan.
