All Products
Search
Document Center

Elasticsearch:Sinkronisasi data MySQL ke Alibaba Cloud Elasticsearch dengan DataWorks

Last Updated:Aug 20, 2026

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:

Prasyarat

Catatan
  • 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

Prosedur

Catatan

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.

  1. Masuk ke Konsol DataWorks.

  2. Di bilah navigasi atas, pilih Wilayah. Di panel navigasi kiri, klik Resource Groups.

  3. Klik Create Resource Group dan konfigurasikan parameter sesuai petunjuk.

  4. 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.

    Penting

    Setelah 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.

  5. Di pojok kiri atas halaman, klik ikon kembali untuk kembali ke halaman Resource List.

  6. 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.

  1. Buka halaman Data Integration di DataWorks.

    1. Masuk ke Konsol DataWorks.

    2. Di panel navigasi kiri, klik Workspace.

    3. Di kolom Actions dari ruang kerja target, pilih Quick access > Data Integration.

  2. Di panel navigasi kiri, klik Data Source.

  3. Tambahkan sumber data RDS for MySQL.

    1. Di halaman Data Sources, klik Add Data Source.

    2. Di halaman Add Data Source, cari dan pilih MySQL.

    3. Di kotak dialog Add MySQL data source, konfigurasikan parameter sumber data di bagian Basic Information.

      Untuk informasi lebih lanjut, lihat Konfigurasi sumber data MySQL.

    4. Di bagian Connection Configuration, klik Test Connectivity. Status Connected menunjukkan koneksi berhasil.

    5. Klik Complete.

  4. 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.

Catatan
  1. Buka halaman Data development di DataWorks.

    1. Masuk ke Konsol DataWorks.

    2. Di panel navigasi kiri, klik Workspace.

    3. Di kolom Actions dari ruang kerja target, pilih Quick access > Data development.

  2. Buat node sinkronisasi offline.

    1. Di tab Data Studio (image icon) di panel navigasi kiri, pilih Create > New business process. Lalu, buat alur kerja sesuai petunjuk.

    2. Klik kanan alur kerja yang telah dibuat dan pilih Create Node > Data Integration > Batch Synchronization.

    3. Di kotak dialog Create Node, masukkan nama node dan klik OK.

  3. Konfigurasi jaringan dan sumber daya.

    1. Di area Source, untuk Source, pilih MySQL, dan untuk Data Source Name, pilih nama sumber data yang akan disinkronkan.

    2. Di bagian Resource Group, pilih kelompok sumber daya.

    3. Di bagian Destination, untuk Destination, pilih Elasticsearch, dan untuk Data Source Name, pilih nama sumber data yang akan disinkronkan.

  4. Klik Next step.

  5. Konfigurasi tugas.

    1. Di bagian Source, pilih tabel yang ingin disinkronkan.

    2. Di bagian Destination, konfigurasikan parameter tujuan.

    3. Di bagian Field Mapping, konfigurasikan pemetaan antara Source Column dan Target Column.

    4. Di bagian Channel Control, konfigurasikan parameter channel.

    Untuk informasi lebih lanjut tentang konfigurasi, lihat Konfigurasi tugas sinkronisasi menggunakan wizard.

  6. Jalankan tugas.

    1. (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.

    2. Di pojok kiri atas editor node, klik ikon Save untuk menyimpan tugas.

    3. 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

  1. Masuk ke konsol Kibana dari instans Alibaba Cloud Elasticsearch tujuan. Untuk informasi lebih lanjut, lihat Masuk ke konsol Kibana.

  2. Di pojok kiri atas halaman Kibana, klik ikon dan pilih Dev Tools.

  3. Di Console, jalankan perintah berikut untuk melihat data yang telah disinkronkan.

    POST /es_test/_search?pretty
    {
    "query": { "match_all": {}}
    }
    Catatan

    Ganti es_test dengan 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"
            }
          }
        ]
      }
    }