Topik ini menjelaskan cara menggunakan fitur ETL untuk menganalisis pesanan real-time.
Kasus penggunaan
Fitur ini sedang dihentikan dan hanya tersedia secara gratis bagi pengguna yang sebelumnya pernah menggunakannya. Pengguna baru tidak dapat lagi mengakses fitur ini. Kami menyarankan Anda mengonfigurasi tugas ETL dalam instans sinkronisasi data atau migrasi data. Untuk informasi selengkapnya, lihat Konfigurasikan tugas ETL dalam tugas migrasi atau sinkronisasi data DTS.
Untuk memenuhi kebutuhan perusahaan akan pemrosesan data real-time, fitur ETL menyediakan kemampuan ekstraksi, transformasi, dan pemuatan aliran data. Fitur ini secara efisien mengintegrasikan data real-time dalam jumlah besar, mendukung operasi seret-dan-lepas, serta menggunakan pendekatan pengembangan low-code, sehingga membantu perusahaan menganalisis keputusan bisnis, mempercepat pembuatan laporan, dan melakukan komputasi data real-time. Selama transformasi digital, kasus penggunaan umum untuk pemrosesan data real-time meliputi:
-
Konsolidasi real-time data multi-wilayah atau heterogen: Simpan data dari berbagai wilayah atau sumber heterogen ke dalam satu database secara real-time guna memfasilitasi manajemen terpusat yang efisien dan dukungan pengambilan keputusan.
-
Pelaporan dipercepat: Bangun sistem pelaporan real-time yang secara signifikan meningkatkan efisiensi pembuatan laporan dan mendukung lebih banyak skenario analisis real-time, memenuhi tuntutan tinggi terhadap efisiensi pelaporan selama transformasi digital.
-
Komputasi real-time: Bersihkan dan proses data bisnis aliran secara real-time untuk menghasilkan nilai fitur dan tag. Hal ini mendukung model bisnis online, seperti profil pengguna, pengendalian risiko, dan sistem rekomendasi, serta dasbor real-time dan skenario komputasi aliran lainnya.
Latar belakang
Contoh ini menunjukkan cara menggunakan fitur ETL aliran untuk menggabungkan data transaksi real-time (seperti ID pesanan, ID pelanggan, kode produk, jumlah transaksi, dan waktu transaksi) dengan data dimensi bisnis (seperti kode produk, harga satuan, dan nama produk). Data yang memenuhi kondisi filter tertentu—misalnya, transaksi dengan jumlah lebih dari 3.000—dimuat ke gudang data secara real-time. Hal ini memungkinkan analisis multidimensi data transaksi berdasarkan dimensi seperti produk dan pelanggan. Anda juga dapat menggunakan alat visualisasi untuk membuat dasbor dinamis guna mendapatkan wawasan berbasis data.

Prosedur
Untuk memastikan Anda dapat berhasil mengonfigurasi dan menjalankan tugas ETL, baca dan ikuti Prasyarat dan Catatan penggunaan sebelum memulai.

|
Langkah |
Deskripsi |
|
Simpan data transaksi real-time dan data dimensi bisnis di tabel sumber, lalu buat tabel tujuan yang sesuai dengan kebutuhan bisnis Anda. Catatan
Dalam contoh ini, tabel transaksi real-time, tabel dimensi bisnis, dan tabel tujuan semuanya disimpan dalam instans ApsaraDB RDS for MySQL. |
|
|
Konfigurasikan data transaksi real-time sebagai tabel aliran dan data dimensi bisnis sebagai tabel dimensi. |
|
|
Gabungkan tabel dimensi dan tabel aliran untuk membuat tabel lebar. |
|
|
Konfigurasikan kondisi filter (jumlah transaksi tunggal harus lebih dari 3.000) untuk memfilter data dari tabel lebar. |
|
|
Muat data yang telah diproses ke tabel tujuan secara real-time. |
|
|
Jalankan Pemeriksaan Awal dan mulai tugas ETL untuk menerapkan konfigurasi. |
Persiapan
Sebelum mengonfigurasi tugas ETL, simpan data transaksi real-time Anda di tabel aliran dan data dimensi bisnis di tabel dimensi dalam database sumber ApsaraDB RDS for MySQL.
Kemudian, buat tabel di database tujuan ApsaraDB RDS for MySQL berdasarkan kebutuhan bisnis Anda.
Data transaksi real-time
create table test_orders(
order_id bigint not null COMMENT 'Order ID',
user_id bigint not null comment 'User ID',
product_id bigint not null comment 'Product ID',
total_price decimal(15,2) not null COMMENT 'Total order value',
order_date TIMESTAMP not null COMMENT 'Order date',
PRIMARY KEY (order_id))
Data dimensi bisnis
CREATE table product (
product_id bigint not null comment 'Product ID',
product_name varchar(20) comment 'Product name',
product_price decimal(15,2) not null comment 'Product unit price')
Tabel tujuan
create table test_orders(
order_id bigint not null COMMENT 'Order ID',
user_id bigint not null comment 'User ID',
product_id bigint not null comment 'Product ID',
total_price decimal(15,2) not null COMMENT 'Total order value',
order_date TIMESTAMP not null
COMMENT 'Order date',
product_id_2 bigint not null comment 'Product ID',
product_name varchar(20) comment 'Product name',
product_price decimal(15,2) not null comment 'Product unit price',
PRIMARY KEY (order_id))
Langkah 1: Konfigurasikan database sumber
-
Buka halaman daftar tugas ETL.
-
Login ke Konsol Data Transmission Service (DTS).
-
Di panel navigasi kiri, klik ETL.
-
-
Di pojok kiri atas, klik
. Di kotak dialog Create Data Flow, masukkan nama untuk tugas ETL di kolom Data Flow Name, lalu untuk Development Method, pilih DAG. -
Klik Confirm.
-
Konfigurasikan tabel aliran dan tabel dimensi.
-
Konfigurasikan tabel aliran
-
Dari panel kiri, seret node Input/Dimension Table (MySQL) ke kanvas di sebelah kanan.
-
Klik node Input/Dimension Table MySQL-1 di kanvas, lalu konfigurasikan database sumber.
-
Di tab Node Configuration, atur parameter berikut.
Parameter
Deskripsi
Data Source Name
Untuk memudahkan identifikasi, kami menyarankan menggunakan nama deskriptif yang tidak unik.
Region
Pilih wilayah database sumber.
CatatanTugas ETL hanya tersedia di wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Qingdao), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Shenzhen), Tiongkok (Guangzhou), dan Tiongkok (Hong Kong).
Instances
Pilih nama instans yang menampung database sumber. Anda juga dapat mengklik Create Instance untuk membuat instans baru. Untuk informasi selengkapnya, lihat Database yang didukung oleh DMS.
Node Type
Pilih jenis tabel sumber. Dalam contoh ini, pilih Stream Table.
-
Stream Table: Tabel yang berubah secara real-time. Tabel ini dapat digabungkan dengan tabel dimensi untuk memperkaya data.
-
Dimension Tables: Tabel yang jarang diperbarui (tidak secara real-time). Tabel ini biasanya digunakan untuk digabungkan dengan data real-time guna membuat tabel lebar untuk analisis.
Convert Format
Saat memproses data, ETL mengonversi aliran menjadi tabel dinamis dan menjalankan kueri kontinu padanya. Tabel dinamis tersebut terus-menerus dimodifikasi oleh operasi INSERT, UPDATE, dan DELETE, yang menghasilkan tabel dinamis baru. Saat menulis data ke database tujuan, tabel dinamis baru ini dikonversi kembali menjadi aliran. Anda harus menentukan conversion format untuk mengencode perubahan tersebut:
-
Upsert Stream: Data dalam tabel dinamis dapat dimodifikasi oleh operasi INSERT, UPDATE, dan DELETE. Saat dikonversi menjadi aliran, operasi INSERT dan UPDATE diencode sebagai pesan upsert, sedangkan operasi DELETE diencode sebagai pesan delete.
CatatanFormat encoding ini mengharuskan tabel dinamis memiliki kunci unik, yang dapat berupa kunci komposit.
-
Append-Only Stream: Data dalam tabel dinamis hanya dapat dimodifikasi oleh operasi INSERT. Saat dikonversi menjadi aliran, hanya data yang dimasukkan yang dikirim.
Select Databases and Tables
Pilih database dan tabel sumber yang akan ditransformasi.
-
-
Setelah node dikonfigurasi, tab Output Fields akan ditampilkan. Di kolom Column Name, pilih bidang yang diperlukan.
-
Dalam contoh ini, tabel aliran digunakan. Klik tab Time Attribute dan atur parameter berikut.
Parameter
Deskripsi
Select Event Time Watermark
Pilih bidang waktu dari tabel aliran. Tabel aliran biasanya memiliki bidang waktu yang menunjukkan kapan data dihasilkan, seperti timestamp spesifik bisnis seperti
ordertime.Latency of Event Time Watermark
Masukkan latensi data maksimum yang dapat Anda toleransi.
Karena kondisi jaringan, data mungkin tidak tiba di layanan ETL sesuai urutan pembuatannya, sehingga menyebabkan keterlambatan. ETL tidak dapat menunggu tanpa batas untuk data yang terlambat tiba. Oleh karena itu, Anda harus menentukan periode latensi untuk menangani data yang tidak berurutan. Misalnya, jika data pukul 10:00 telah tiba tetapi data pukul 09:59 belum tiba, ETL hanya menunggu hingga 10:00 ditambah latensi yang ditentukan. Jika data pukul 09:59 tiba setelah periode ini, ETL akan membuangnya.
Processing Time
Waktu pemrosesan adalah waktu server lokal saat ETL memproses data. Anda harus menentukan kolom untuk menyimpan nilai ini. Kolom ini terutama digunakan untuk perhitungan operator; misalnya, join temporal menggunakan waktu pemrosesan untuk mencari versi terbaru dari tabel reguler.
CatatanKonfigurasi selesai ketika ikon tanda seru
menghilang dari sisi kanan node database sumber. -
-
Konfigurasikan tabel dimensi
-
Dari panel kiri, seret node Input/Dimension Table (MySQL) ke kanvas di sebelah kanan.
-
Klik node Input/Dimension Table MySQL-2 di kanvas, lalu konfigurasikan database sumber.
-
Di tab Node Configuration, atur parameter berikut.
Parameter
Deskripsi
Data Source Name
Untuk memudahkan identifikasi, kami menyarankan menggunakan nama deskriptif yang tidak unik.
Region
Pilih wilayah database sumber.
Instances
Pilih nama instans yang menampung database sumber. Anda juga dapat mengklik Create Instance untuk membuat instans baru. Untuk informasi selengkapnya, lihat Database yang didukung oleh DMS.
Node Type
Pilih jenis tabel sumber. Dalam contoh ini, pilih Dimension Tables.
Select Databases and Tables
Pilih database dan tabel sumber yang akan ditransformasi.
-
Setelah node dikonfigurasi, tab Output Fields akan ditampilkan. Di kolom Column Name, pilih bidang yang diperlukan.
CatatanKonfigurasi selesai ketika ikon tanda seru
menghilang dari sisi kanan node database sumber. -
-
Langkah 2: Konfigurasikan node Table Join
-
Di panel kiri, seret node Table Join ke area kosong di kanvas.
-
Arahkan penunjuk ke node tabel aliran dan tabel dimensi yang telah dikonfigurasi. Klik lingkaran pada setiap node dan seret garis koneksi ke node Table Join-1.
-
Klik node Table Join-1 di kanvas untuk mengonfigurasi node tersebut.
-
Di tab Node Settings, atur parameter berikut.
Bagian
Parameter
Deskripsi
Conversion Name
Enter Transformation Name
Untuk memudahkan identifikasi, kami menyarankan menggunakan nama deskriptif yang tidak unik.
JOIN Settings
Left Table in JOIN Clause
Pilih tabel yang akan ditempatkan di sisi kiri operator JOIN. Tabel ini berfungsi sebagai tabel utama. Dalam contoh ini, pilih tabel aliran.
Temporal Join Time Attribute (Regular joins apply if not selected)
Pilih atribut waktu dari tabel aliran yang digunakan untuk menggabungkan dengan tabel temporal. Jika Anda tidak memilih atribut, DTS akan melakukan join reguler. Dalam contoh ini, pilih Based on Processing Time.
Catatan-
Tabel temporal, juga dikenal sebagai tabel dinamis, adalah tampilan parameter dari tabel yang mencatat perubahan data dari waktu ke waktu. Tabel temporal mencakup tabel versi yang menunjukkan versi historis data dan tabel reguler yang hanya menunjukkan versi terbaru data.
-
Join temporal mengharuskan tabel aliran memiliki atribut waktu dan tabel kanan memiliki kunci primer. Jika tabel kanan adalah tabel dimensi, Join condition harus mencakup kunci primer tabel dimensi.
-
Based on Event Time Watermark: Menggunakan waktu event dari tabel aliran untuk menggabungkan dengan versi yang sesuai di tabel versi.
-
Based on Processing Time: Menggunakan waktu pemrosesan dari tabel aliran untuk menggabungkan dengan versi terbaru dari tabel reguler.
Select JOIN Operation
Pilih operasi join. Dalam contoh ini, pilih Inner Join.
-
Inner Join: Mengembalikan catatan yang memiliki nilai yang cocok di kedua tabel.
-
Left Join: Mengembalikan semua catatan dari tabel kiri, dan catatan yang cocok dari tabel kanan.
-
Right Join: Mengembalikan semua catatan dari tabel kanan, dan catatan yang cocok dari tabel kiri.
JOIN Condition
+ Add condition
Klik + Add Condition untuk memilih bidang untuk kondisi join.
CatatanBidang di sebelah kiri tanda sama dengan (=) milik tabel kiri dalam join, dan bidang di sebelah kanan milik tabel kanan.
-
-
-
Setelah Anda mengonfigurasi kondisi join, klik tab Output Fields. Di kolom Column Name, pilih bidang yang diperlukan.
Konfigurasi selesai ketika ikon tanda seru
menghilang dari sisi kanan node.
Langkah 3: Konfigurasikan node Table Record Filter
-
Di panel kiri, seret node Table Record Filter ke area kosong di kanvas.
-
Arahkan penunjuk ke node Table Join-1 yang telah dikonfigurasi. Klik lingkaran dan seret garis koneksi dari node Table Join-1 ke node Table Record Filter-1.
-
Klik node Table Record Filter-1 di kanvas untuk mengonfigurasi node tersebut.
-
Di bagian Conversion Name, masukkan nama untuk transformasi.
CatatanUntuk memudahkan identifikasi, kami menyarankan menggunakan nama deskriptif yang tidak unik.
-
Di bagian WHERE Condition, konfigurasikan kondisi WHERE dengan salah satu metode berikut:
-
Masukkan langsung kondisi WHERE. Misalnya, masukkan
total_price > 3000.00untuk memfilter catatan di manatotal_pricedari tabel gabungan lebih dari 3000.00. -
Klik opsi di bagian Input Fields atau Operator untuk membangun kondisi WHERE.
-
-
Konfigurasi selesai ketika ikon tanda seru
menghilang dari sisi kanan node.
Langkah 4: Konfigurasikan database tujuan
-
Dari daftar komponen di sebelah kiri, seret node Output (MySQL) ke kanvas di sebelah kanan.
-
Arahkan penunjuk ke node Table Record Filter-1 yang telah dikonfigurasi. Klik lingkaran dan seret garis koneksi dari node Table Record Filter-1 ke node Output MySQL-1.
-
Klik node Output MySQL-1 di kanvas untuk mengonfigurasi database tujuan.
-
Di tab Node Configuration, atur parameter berikut.
Parameter
Deskripsi
Data Source Name
Untuk memudahkan identifikasi, kami menyarankan menggunakan nama deskriptif yang tidak unik.
Region
Pilih wilayah database tujuan.
CatatanTugas ETL hanya tersedia di wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Qingdao), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Shenzhen), Tiongkok (Guangzhou), dan Tiongkok (Hong Kong).
Instances
Pilih nama instans yang menampung database tujuan. Anda juga dapat mengklik Create Instance untuk membuat instans baru. Untuk informasi selengkapnya, lihat Database yang didukung oleh DMS.
Table Mapping
Pilih tabel tujuan tempat data hasil transformasi akan disimpan.
Di bagian Select Destination Table, klik tabel tujuan.
-
-
Di kolom Column Name, pilih parameter yang diperlukan.
Konfigurasi selesai ketika ikon tanda seru
menghilang dari sisi kanan node database tujuan.
Langkah 5: Lakukan Pemeriksaan Awal dan mulai tugas
-
Setelah konfigurasi selesai, klik Generate Flink SQL Validation. ETL akan menghasilkan dan memvalidasi Flink SQL.
-
Setelah validasi selesai, klik View ETL Validation Details untuk melihat pernyataan Flink SQL yang dihasilkan dan hasil validasi di kotak dialog. Setelah Anda memastikan informasi tersebut benar, klik Close.
CatatanJika validasi gagal, atasi kegagalan tersebut berdasarkan penyebab yang ditampilkan dalam hasil.
-
Klik Next: Save Task Settings and Precheck. Tugas ETL hanya dapat dimulai setelah lulus Pemeriksaan Awal. Jika Pemeriksaan Awal gagal, klik View Details di sebelah item yang gagal, perbaiki masalah berdasarkan informasi yang diberikan, lalu jalankan kembali Pemeriksaan Awal.
-
Setelah Pemeriksaan Awal selesai, klik Next: Purchase Instance di bagian bawah halaman.
-
Di halaman Purchase, pilih Instance Class dan tentukan Compute Units (CUs). Kemudian, baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms dan Service Terms for Public Preview.
CatatanSelama pratinjau publik, setiap pengguna dapat membuat dan menggunakan dua instans ETL secara gratis.
-
Klik Buy and Start untuk memulai tugas ETL.
Hasil tugas
Dalam contoh ini, setelah tugas ETL dimulai (misalnya, pada 1 Agustus), ketika catatan yang diperbarui di tabel transaksi real-time test_orders memenuhi kondisi filter (total_price > 3000.00), catatan tersebut disinkronkan ke tabel tujuan test_orders_new.
Gambar 1. Tabel transaksi real-time test_orders berisi dua catatan di mana order_date setelah 1 Agustus: satu dengan order_id 3 (total_price adalah 5000.00, yang memenuhi kondisi filter dan akan disinkronkan) dan satu lagi dengan order_id 4 (total_price adalah 2000.00, yang tidak memenuhi kondisi dan tidak akan disinkronkan).
Gambar 2. Tabel tujuan test_orders_new. Di Konsol SQL DMS, jalankan SELECT * FROM test_orders_new LIMIT 20; untuk mengkueri tabel tujuan. Kueri mengembalikan satu catatan yang disinkronkan: order_id=3, user_id=2020073003, total_price=5000.00 (yang lebih dari 3000.00), dan order_date=2021-08-03 16:58:14. Catatan tersebut juga mencakup informasi produk yang digabungkan: product_name=Stationery dan product_price=20.00. Hal ini memverifikasi bahwa tugas ETL telah menggabungkan data pesanan yang memenuhi syarat dengan informasi produk dan menyinkronkan hasilnya ke tabel lebar.