Untuk mengambil informasi, menjalankan kueri multidimensi, atau melakukan analisis statistik pada dataset besar di MaxCompute (ODPS), gunakan Alibaba Cloud Elasticsearch. Topik ini menjelaskan cara menggunakan Data Integration di DataWorks untuk menyinkronkan volume data besar dari MaxCompute ke kluster Alibaba Cloud Elasticsearch dalam hitungan menit.
Latar Belakang
DataWorks adalah platform pengembangan dan tata kelola data besar end-to-end yang dibangun di atas mesin data besar. Platform ini mengintegrasikan fitur-fitur seperti pengembangan data, penjadwalan tugas, dan manajemen data. Anda dapat menggunakan tugas sinkronisasi di DataWorks untuk dengan cepat menyinkronkan data dari berbagai sumber data ke Alibaba Cloud Elasticsearch.
-
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 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 proyek MaxCompute. Untuk informasi lebih lanjut, lihat Buat proyek MaxCompute.
-
Buat kluster Alibaba Cloud Elasticsearch dan aktifkan fitur auto-indexing-nya. Untuk informasi lebih lanjut, lihat Buat kluster Alibaba Cloud Elasticsearch dan Konfigurasi file YML.
-
Buat ruang kerja DataWorks. Untuk informasi lebih lanjut, lihat Buat ruang kerja.
-
Anda hanya dapat menyinkronkan data ke kluster Alibaba Cloud Elasticsearch. Kluster Elasticsearch self-managed tidak didukung.
-
Proyek MaxCompute, kluster Alibaba Cloud Elasticsearch, dan ruang kerja DataWorks harus berada di wilayah yang sama.
-
Kluster Alibaba Cloud Elasticsearch, proyek MaxCompute, dan ruang kerja DataWorks harus berada di zona waktu yang sama. Jika tidak, perbedaan zona waktu dapat terjadi saat Anda menyinkronkan data terkait waktu.
Penagihan
-
Untuk informasi tentang biaya instans Alibaba Cloud Elasticsearch, lihat Item yang dapat ditagih Elasticsearch.
-
Untuk informasi tentang biaya kelompok sumber daya Integrasi Data, lihat Biaya kelompok sumber daya.
Prosedur
Langkah 1: Siapkan data sumber
Buat tabel MaxCompute dan impor data uji ke dalam tabel tersebut. Untuk informasi lebih lanjut, lihat Buat tabel dan Impor data.
Topik ini menggunakan skema tabel dan data sampel berikut:
-
Skema tabel
Tabel berisi 7 bidang dan 1 bidang partisi. Bidang-bidang tersebut didefinisikan sebagai berikut:
create_time(string, primary key)category(string)brand(string)buyer_id(string)trans_num(bigint)trans_amount(double)click_cnt(bigint)
Bidang partisi adalah
pt(bigint). -
Data sampel
Tabel sumber berisi bidang-bidang berikut:
create_time: tanggal transaksi, misalnya, 2020/6/1category: kategori produk, misalnya, Outerwear, Fresh Food, Electronics, Bathroombrand: nama merek, misalnya, Brand A hingga Brand Gbuyer_id: ID pembeli, misalnya, user1 hingga user13trans_num: jumlah transaksitrans_amount: jumlah transaksiclick_cnt: jumlah klikpt: bidang partisi, dengan nilai 1
Langkah 2: Beli dan konfigurasi grup sumber daya eksklusif
Beli grup sumber daya eksklusif untuk Integrasi Data dan asosiasikan dengan VPC serta ruang kerja. Grup sumber daya eksklusif memastikan transmisi data yang cepat dan stabil.
-
Masuk ke Konsol DataWorks .
-
Di bilah navigasi atas, pilih wilayah. Di panel navigasi kiri, klik Resource Groups.
-
Pada tab Exclusive Resource Group, pilih .
-
Pada halaman pembelian DataWorks Exclusive Resources (Subscription), atur Exclusive Resource Type menjadi Exclusive Resources for Data Integration, masukkan nama untuk grup sumber daya, lalu klik Buy Now.
Untuk informasi lebih lanjut tentang konfigurasi, lihat Langkah 1: Beli grup sumber daya.
-
Temukan grup sumber daya eksklusif yang telah Anda buat dan klik Network Settings di kolom Actions untuk mengasosiasikannya dengan VPC. Untuk informasi lebih lanjut, lihat Bind a VPC.
CatatanTopik ini menggunakan grup sumber daya eksklusif untuk Integrasi Data guna menyinkronkan data melalui VPC. Untuk informasi tentang cara menyinkronkan data melalui internet, lihat Configure an allowlist.
Untuk mengaktifkan sinkronisasi data, grup sumber daya eksklusif harus terhubung ke VPC tempat kluster Alibaba Cloud Elasticsearch berada. Oleh karena itu, Anda harus mengasosiasikan grup sumber daya eksklusif dengan Virtual Private Cloud (VPC), Zone, dan VSwitch kluster Alibaba Cloud Elasticsearch Anda. Untuk melihat informasi ini, lihat View the basic information of an Elasticsearch cluster.
PentingSetelah mengasosiasikan grup sumber daya eksklusif dengan VPC, Anda harus menambahkan vSwitch CIDR Block ke daftar izin IP privat VPC kluster Alibaba Cloud Elasticsearch. Untuk informasi lebih lanjut, lihat Configure a public or private IP address allowlist for an Elasticsearch cluster.
-
Di pojok kiri atas halaman, klik ikon kembali untuk kembali ke halaman Resource List.
-
Temukan grup sumber daya eksklusif yang telah Anda buat dan klik Associate Workspace di kolom Actions untuk mengasosiasikannya dengan ruang kerja target.
Untuk informasi lebih lanjut, lihat Langkah 2: Asosiasikan ruang kerja.
Langkah 3: Tambahkan sumber data
Tambahkan MaxCompute dan Alibaba Cloud Elasticsearch sebagai sumber data di Integrasi Data.
-
Buka halaman Data Integration.
-
Masuk ke Konsol DataWorks .
-
Di panel navigasi kiri, klik Workspace.
-
Temukan ruang kerja target dan pilih di kolom Actions.
-
-
Di panel navigasi kiri, klik Data Source.
-
Tambahkan sumber data MaxCompute.
-
Pada halaman Data Sources, klik Add Data Source.
-
Pada halaman Add Data Source, temukan dan pilih tipe sumber data MaxCompute.
-
Pada kotak dialog Add MaxCompute data source, konfigurasikan parameter pada bagian Basic Information.
Untuk informasi selengkapnya, lihat Mengonfigurasi sumber data MaxCompute.
-
Pada bagian Connection Configuration, klik Test Connectivity. Status Connected menunjukkan bahwa koneksi berhasil.
-
Klik Complete.
-
-
Ikuti prosedur yang sama untuk menambahkan sumber data Elasticsearch. Untuk informasi lebih lanjut, lihat Configure an Elasticsearch data source.
Langkah 4: Konfigurasi dan jalankan task sinkronisasi batch
Task sinkronisasi batch dijalankan menggunakan grup sumber daya eksklusif. Grup sumber daya mengambil data dari sumber data di Integrasi Data dan menulis data ke kluster Alibaba Cloud Elasticsearch.
-
Anda dapat mengonfigurasi task sinkronisasi batch dalam mode wizard atau mode skrip. Topik ini menunjukkan mode wizard. Untuk informasi lebih lanjut, lihat Configure a synchronization task in script mode dan Elasticsearch Writer.
-
Langkah-langkah berikut dilakukan pada halaman legacy Data Development (DataStudio).
-
Buka halaman Data development di DataWorks.
-
Masuk ke Konsol DataWorks .
-
Di panel navigasi kiri, klik Workspace.
-
Temukan ruang kerja target dan pilih di kolom Actions.
-
-
Buat node sinkronisasi offline.
-
Pada tab Data Development (
), pilih . -
Klik kanan alur kerja yang telah Anda buat dan pilih .
-
Pada kotak dialog Create Node, masukkan nama untuk node tersebut dan klik OK.
-
-
Konfigurasi jaringan dan grup sumber daya.
-
Pada bagian Source, atur Source menjadi MaxCompute(ODPS) dan pilih sumber data Anda di bawah Data Source Name.
-
Pada bagian Resource Group, pilih grup sumber daya eksklusif.
-
Pada bagian Destination, atur Destination menjadi Elasticsearch dan pilih sumber data tujuan Anda di bawah Data Source Name.
-
-
Klik Next step.
-
Konfigurasi task.
-
Pada bagian Source, pilih tabel sumber.
-
Pada bagian Destination, konfigurasikan parameter untuk tujuan.
-
Pada bagian Field Mapping, petakan Source Column ke Target Column.
-
Pada bagian Channel Control, konfigurasikan parameter channel.
Untuk informasi selengkapnya tentang konfigurasi, lihat Mengonfigurasi Tugas Sinkronisasi dalam Mode Wizard.
-
-
Jalankan task.
-
(Opsional) Konfigurasi properti penjadwalan untuk task. Di panel kanan, klik Properties dan konfigurasikan parameter penjadwalan sesuai kebutuhan. Untuk informasi lebih lanjut tentang parameter, lihat Scheduling configuration.
-
Di pojok kanan atas area node, klik ikon Simpan untuk menyimpan task.
-
Di pojok kanan atas area node, klik ikon Commit.
Jika Anda mengonfigurasi properti penjadwalan untuk task, task akan berjalan secara otomatis pada interval yang dijadwalkan. Anda juga dapat mengklik ikon Run di pojok kanan atas area node untuk menjalankan task segera.
Pesan
Shell run successfully!dalam log eksekusi menunjukkan bahwa task berhasil dijalankan. Contoh log eksekusi task adalah sebagai berikut:2023-10-31 16:52:35 INFO Exit code of the Shell command 0 2023-10-31 16:52:35 INFO --- Invocation of Shell command completed --- 2023-10-31 16:52:35 INFO Shell run successfully! 2023-10-31 16:52:35 INFO Current task status: FINISH 2023-10-31 16:52:35 INFO Cost time is: 33.106s
-
Langkah 5: Verifikasi hasil sinkronisasi data
Di konsol Kibana, lihat data yang telah disinkronkan dan jalankan kueri.
-
Masuk ke konsol Kibana kluster Alibaba Cloud Elasticsearch target.
Untuk informasi lebih lanjut, lihat Log on to the Kibana console.
-
Di pojok kiri atas halaman Kibana, klik ikon
dan pilih Dev Tools. -
Di Console, jalankan perintah berikut untuk melihat data yang telah disinkronkan.
POST /odps_index/_search?pretty { "query": { "match_all": {}} }Catatanodps_indexadalah nilai bidangindexyang Anda atur dalam skrip sinkronisasi data.Sinkronisasi yang berhasil mengembalikan hasil berikut.
POST /odps_index/_search?pretty { "query": { "match_all": {}} } POST /odps_index/_search?pretty { "query": { "match_all": {} }, "_source": ["category", "brand"] } POST /odps_index/_search?pretty { "query": { "match": {"category":"生鲜"} } } POST /odps_index/_search?pretty { "query": { "match_all": {} }, "sort": { "trans_num": { "order": "desc" } } } --- Response --- { "took" : 2, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 13, "max_score" : null, "hits" : [ { "_index" : "odps_index", "_type" : "_doc", "_id" : "2020/6/7 8:00", "_score" : null, "_source" : { "trans_num" : 88, "click_cnt" : 80, "category" : "外套", "buyer_id" : "user7", "trans_amount" : 150.0, "brand" : "品牌E" }, "sort" : [ 88 ] }, { "_index" : "odps_index", "_type" : "_doc", "_id" : "2020/6/11 8:00", "_score" : null, "_source" : { "trans_num" : 22, "click_cnt" : 70, "category" : "卫浴", "buyer_id" : "user11", "trans_amount" : 4500.0, "brand" : "品牌G" }, "sort" : [ 22 ] } ] } } -
Jalankan perintah berikut untuk mencari bidang
categorydanbranddalam dokumen.POST /odps_index/_search?pretty { "query": { "match_all": {} }, "_source": ["category", "brand"] } -
Jalankan perintah berikut untuk mencari dokumen di mana
categoryadalahfresh food.POST /odps_index/_search?pretty { "query": { "match": {"category":"生鲜"} } } -
Jalankan perintah berikut untuk mengurutkan dokumen berdasarkan bidang
trans_num.POST /odps_index/_search?pretty { "query": { "match_all": {} }, "sort": { "trans_num": { "order": "desc" } } }Untuk perintah dan metode akses lainnya, lihat Elastic.co Help Center.