Topik ini menjelaskan cara menggunakan fitur ekstraksi, transformasi, dan pemuatan (ETL) untuk menganalisis pesanan real-time.
Skenario
Fitur ETL memungkinkan Anda mengekstrak, mentransformasi, dan memuat data streaming serta mengintegrasikan sejumlah besar data real-time secara efisien untuk memenuhi kebutuhan pemrosesan data real-time. Fitur ini mendukung operasi seret-dan-lepas serta pengembangan berkode rendah untuk memfasilitasi berbagai skenario bisnis seperti pengambilan keputusan, pelaporan real-time, dan komputasi data real-time. Selama transformasi digital perusahaan, fitur ETL dapat digunakan dalam skenario pemrosesan data real-time berikut:
Pengelolaan terpusat data multi-wilayah atau heterogen secara real-time: Fitur ETL memungkinkan Anda menyimpan data heterogen atau data dari beberapa wilayah ke database yang sama secara real-time. Hal ini memfasilitasi pengelolaan dan pengambilan keputusan terpusat yang efisien.
Pelaporan real-time: Fitur ETL memungkinkan Anda membangun sistem pelaporan real-time. Sistem pelaporan meningkatkan efisiensi pelaporan selama transformasi digital dan cocok untuk berbagai skenario analisis real-time.
Komputasi real-time: Fitur ETL memungkinkan Anda membersihkan data streaming yang dihasilkan di sisi bisnis secara real-time untuk mengekstrak nilai fitur dan tag. Skenario komputasi real-time yang khas meliputi model komputasi bisnis online seperti profiling, pengendalian risiko, rekomendasi, dan dashboard yang digunakan untuk menampilkan data real-time.
Ikhtisar
Dalam contoh ini, fitur ETL digunakan untuk menggabungkan data transaksi real-time dan data bisnis, serta mengirimkan data yang memenuhi kondisi filter tertentu ke gudang data secara real-time. Data transaksi mencakup nomor pesanan, ID pelanggan, kode produk atau komoditas, jumlah transaksi, dan waktu transaksi. Data bisnis mencakup kode produk, harga satuan produk, dan nama produk. Sebagai contoh, Anda dapat menentukan kondisi filter untuk menanyakan informasi transaksi real-time tentang pesanan yang nilainya melebihi 3.000. Kemudian, Anda dapat menganalisis data transaksi dari berbagai dimensi seperti dimensi produk dan pelanggan. Selain itu, Anda dapat menggunakan alat untuk membuat dasbor visual dan mendapatkan wawasan tentang data dinamis berdasarkan kebutuhan bisnis Anda.

Prosedur

Langkah | Deskripsi |
Simpan data transaksi real-time dan data bisnis di tabel sumber, lalu buat tabel tujuan sesuai dengan kebutuhan bisnis Anda. Catatan Dalam contoh ini, tabel yang menyimpan data transaksi real-time, data bisnis, dan tabel tujuan disimpan dalam instance ApsaraDB RDS for MySQL. | |
Konfigurasikan tabel yang menyimpan data transaksi real-time sebagai tabel aliran dan tabel yang menyimpan data bisnis sebagai tabel dimensi. | |
Gabungkan tabel dimensi dan tabel aliran menjadi tabel lebar. | |
Tentukan kondisi filter untuk menanyakan data di tabel lebar. Sebagai contoh, Anda dapat menanyakan pesanan yang nilainya melebihi 3.000. | |
Muat data yang telah diproses ke tabel tujuan secara real-time. | |
Pra-periksa dan mulai tugas ETL. |
Persiapan
Sebelum mengonfigurasi tugas ETL, Anda harus menyimpan data transaksi real-time dalam tabel aliran dan data bisnis dalam tabel dimensi di instance ApsaraDB RDS for MySQL sumber.
Anda juga harus membuat tabel tujuan di instance ApsaraDB RDS for MySQL tujuan sesuai dengan kebutuhan bisnis Anda.
Anda dapat mengeksekusi pernyataan berikut untuk membuat tabel data transaksi real-time, tabel data bisnis, dan tabel tujuan.
Tabel 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 Price',
order_date TIMESTAMP not null COMMENT 'Order Date',
PRIMARY KEY (order_id))Tabel data 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 '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 Price',
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 'Unit Price',
PRIMARY KEY (order_id))Langkah 1: Konfigurasikan database sumber
Buka halaman Streaming ETL.
Masuk ke Konsol DTS.
Di panel navigasi di sebelah kiri, klik ETL.
Di sudut kiri atas halaman Streaming ETL, klik
. Di kotak dialog Create Data Flow, tentukan nama tugas ETL di bidang Data Flow Name dan atur parameter Development Method ke DAG.Klik OK.
Konfigurasikan tabel aliran dan tabel dimensi.
Konfigurasikan tabel aliran.
Di sebelah kiri kanvas, seret node Input/Dimension Table MySQL ke area kosong kanvas.
Klik Input/Dimension Table MySQL-1 di kanvas.
Di tab Node Settings, konfigurasikan parameter.
Parameter
Deskripsi
Data Source Name
Data Transmission Service (DTS) secara otomatis menghasilkan nama sumber data. Kami sarankan Anda menentukan nama deskriptif untuk identifikasi mudah. Anda tidak perlu menggunakan nama unik.
Region
Pilih wilayah tempat database sumber berada.
CatatanAnda dapat membuat tugas ETL di salah satu wilayah berikut: China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Shenzhen), China (Guangzhou), dan China (Hong Kong).
Instances
Pilih instance database sumber. Anda juga dapat mengklik Create Instance untuk membuat instance database sumber. Untuk informasi lebih lanjut, lihat Database yang didukung oleh DMS.
Node Type
Pilih tipe tabel sumber. Dalam contoh ini, Stream Table dipilih.
Stream Table: tabel yang diperbarui secara real-time dan dapat dikaitkan dengan tabel dimensi untuk kueri asosiasi data.
Dimension Table: tabel yang tidak diperbarui secara real-time dan biasanya digunakan untuk merakit data real-time ke dalam tabel lebar untuk analisis data.
Convert Format
ETL mengubah aliran menjadi tabel dinamis dan melakukan kueri kontinu pada tabel dinamis untuk menghasilkan tabel dinamis baru. Dalam proses ini, tabel dinamis terus dimodifikasi dengan melakukan operasi INSERT, UPDATE, dan DELETE. Ketika tabel dinamis akhirnya ditulis ke database tujuan, tabel dinamis baru dikonversi kembali menjadi aliran. Saat tabel dinamis baru dikonversi menjadi aliran, Anda harus menentukan parameter Convert Format untuk mengkodekan modifikasi pada tabel dinamis.
Upsert Stream: Data dalam tabel dinamis dapat dimodifikasi dengan melakukan operasi INSERT, UPDATE, dan DELETE. Saat tabel dinamis dikonversi menjadi aliran, operasi INSERT dan UPDATE dikodekan sebagai pesan upsert dan operasi DELETE dikodekan sebagai pesan delete.
CatatanTabel dinamis yang dikonversi menjadi aliran upsert memerlukan kunci unik. Kunci tersebut dapat berupa komposit.
Append-Only Stream: Data dalam tabel dinamis hanya dapat dimodifikasi dengan melakukan operasi INSERT. Saat tabel dinamis dikonversi menjadi aliran, hanya data yang dimasukkan yang dikirim.
Select Databases and Tables
Pilih database dan tabel yang ingin Anda ubah.
Setelah node dikonfigurasi, Anda akan dialihkan ke tab Output Fields. Pada tab ini, pilih database dan tabel di kolom Column Name sesuai dengan kebutuhan bisnis Anda.
Klik tab Time Attribute dan konfigurasikan parameter.
Parameter
Deskripsi
Event Time Watermark
Pilih bidang waktu di tabel aliran. Dalam banyak kasus, bidang waktu didefinisikan di tabel aliran untuk merepresentasikan waktu ketika data dihasilkan. Bidang waktu biasanya merupakan timestamp informatif seperti ordertime.
Latency of Event Time Watermark
Masukkan latensi data maksimum yang dapat Anda terima.
Latensi mungkin ada antara waktu ketika data dihasilkan dan waktu ketika data diproses di ETL. ETL tidak dapat menunggu tanpa batas untuk memproses data yang tertunda. Anda dapat menggunakan parameter ini untuk menentukan latensi maksimum untuk ETL memproses data yang tidak berurutan. Sebagai contoh, jika data yang dihasilkan pada pukul 10:00 diterima, tetapi data yang dihasilkan pada pukul 9:59 belum diterima, ETL hanya menunggu hingga "10:00 + latensi". Jika data yang dihasilkan pada pukul 9:59 tidak diterima sebelum titik waktu ini, data tersebut dibuang.
Processing Time
Waktu server ketika data diproses di ETL. Masukkan nama kolom. ETL menyimpan waktu server ketika data diproses di kolom ini. Waktu pemrosesan digunakan untuk operasi operator. Sebagai contoh, waktu pemrosesan digunakan untuk mengaitkan versi terbaru tabel standar saat Anda melakukan operasi temporal join.
CatatanJika ikon
tidak ditampilkan di sebelah kanan tabel aliran, tabel aliran telah dikonfigurasi.Konfigurasikan tabel dimensi.
Di sebelah kiri kanvas, seret node Input/Dimension Table MySQL ke area kosong kanvas.
Klik Input/Dimension Table MySQL-2 di kanvas.
Di tab Node Settings, konfigurasikan parameter.
Parameter
Deskripsi
Data Source Name
DTS secara otomatis menghasilkan nama sumber data. Kami sarankan Anda menentukan nama deskriptif untuk identifikasi mudah. Anda tidak perlu menggunakan nama unik.
Region
Pilih wilayah tempat database sumber berada.
Instances
Pilih instance database sumber. Anda juga dapat mengklik Create Instance untuk membuat instance database sumber. Untuk informasi lebih lanjut, lihat Database yang didukung oleh DMS.
Node Type
Dalam contoh ini, Dimension Table dipilih.
Select Databases and Tables
Pilih database dan tabel yang ingin Anda ubah.
Setelah node dikonfigurasi, Anda akan dialihkan ke tab Output Fields. Pada tab ini, pilih database dan tabel di kolom Column Name sesuai dengan kebutuhan bisnis Anda.
CatatanJika ikon
tidak ditampilkan di sebelah kanan tabel aliran, tabel aliran telah dikonfigurasi.
Langkah 2: Konfigurasikan komponen Table Join
Di bagian Transform di sebelah kiri halaman, pilih JOIN dan seret ke kanvas di sebelah kanan halaman.
Gerakkan pointer di atas node tabel aliran, klik lingkaran kosong di sebelah kanan node, lalu tarik garis koneksi ke komponen Table Join-1. Lalu, gerakkan pointer di atas node tabel dimensi, klik lingkaran kosong di sebelah kanan node, lalu tarik garis koneksi ke komponen Table Join-1.
Klik Table Join-1 di kanvas untuk mengonfigurasi komponen tersebut.
Di tab Node Settings, konfigurasikan parameter.
Bagian
Parameter
Deskripsi
Conversion Name
Enter Transformation Name
DTS secara otomatis menghasilkan nama untuk komponen Table Join-1. Kami sarankan Anda menentukan nama deskriptif untuk identifikasi mudah. Anda tidak perlu menggunakan nama unik.
JOIN Settings
Left Table in JOIN Clause
Pilih tabel kiri dalam klausul JOIN. Tabel ini digunakan sebagai tabel utama. Dalam contoh ini, tabel aliran dipilih.
Temporal Join Time Attribute (Regular joins apply if not selected)
Pilih atribut waktu tabel aliran yang terkait dengan tabel temporal ketika operasi temporal join dilakukan. Jika Anda tidak menentukan parameter ini, operasi join reguler dilakukan. Dalam contoh ini, Based on Processing Time dipilih.
CatatanTabel temporal adalah tabel dinamis, yang merupakan tampilan berbasis tabel berparameter. Tabel temporal mencatat sejarah perubahan data berdasarkan waktu. Tabel temporal mencakup tabel versi dan tabel standar. Tabel versi dapat menampilkan versi historis data. Tabel standar hanya menampilkan versi terbaru data.
Untuk melakukan operasi temporal join, atribut waktu harus didefinisikan untuk semua tabel aliran, dan tabel kanan harus memiliki kunci utama. Jika tabel kanan adalah tabel dimensi, kunci utama tabel tersebut harus terkandung dalam parameter JOIN Condition yang ditentukan.
Based on Event Time Watermark: menggunakan waktu ketika data tabel aliran dihasilkan untuk mengaitkan versi tabel versi.
Based on Processing Time: menggunakan waktu pemrosesan tabel aliran untuk mengaitkan versi terbaru tabel standar.
Select JOIN Operation
Pilih operasi join. Dalam contoh ini, Inner Join dipilih.
Inner Join: mendapatkan irisan dari dua tabel.
Left Join: mendapatkan semua data di tabel kiri dan irisan dari dua tabel di tabel kanan.
Right Join: mendapatkan irisan dari dua tabel di tabel kiri dan semua data di tabel kanan.
JOIN Condition
+ Add Condition
Klik + Add Condition dan pilih kondisi join.
CatatanBidang di sebelah kiri tanda sama dengan (=) milik tabel kiri. Bidang di sebelah kanan tanda sama dengan (=) milik tabel kanan.
Setelah mengonfigurasi parameter Kondisi JOIN, klik tab Output Fields. Pada tab ini, pilih bidang di kolom Column Name sesuai dengan kebutuhan bisnis Anda.
Jika ikon
tidak ditampilkan di sebelah kanan komponen Table Join-1, komponen join telah dikonfigurasi.
Langkah 3: Konfigurasikan komponen Table Record Filter
Di bagian Transform di sebelah kiri halaman, pilih Table Record Filter dan seret ke kanvas di sebelah kanan halaman.
Gerakkan pointer di atas komponen Table Join-1, klik lingkaran kosong di sebelah kanan komponen, lalu tarik garis koneksi ke komponen Table Record Filter-1.
Klik Table Record Filter -1 di kanvas untuk mengonfigurasi komponen tersebut.
Di tab Node Settings, masukkan nama komponen Table Record Filter-1 di bidang Conversion Name.
CatatanDTS secara otomatis menghasilkan nama untuk komponen Table Record Filter-1. Kami sarankan Anda menentukan nama deskriptif untuk identifikasi mudah. Anda tidak perlu menggunakan nama unik.
Di bidang WHERE Condition, tentukan kondisi WHERE dengan menggunakan salah satu metode berikut:
Masukkan kondisi WHERE. Sebagai contoh, masukkan total_price>3000.00 untuk menanyakan data yang nilainya parameter total_price lebih besar dari 3.000,00 di tabel gabungan.
Klik opsi di bagian Input Fields atau Operator untuk menentukan kondisi WHERE.
Jika ikon
tidak ditampilkan di sebelah kanan komponen Table Join-1, komponen join telah dikonfigurasi.
Langkah 4: Konfigurasikan database tujuan
Di bagian Output di sebelah kiri halaman, pilih MySQL dan seret ke kanvas di sebelah kanan halaman.
Gerakkan pointer di atas komponen Table Record Filter-1, klik lingkaran kosong di sebelah kanan komponen, lalu tarik garis koneksi ke komponen Output MySQL-1.
Klik Output MySQL-1 di kanvas untuk mengonfigurasi komponen Output MySQL-1.
Di tab Node Settings, konfigurasikan parameter.
Parameter
Deskripsi
Data Source Name
DTS secara otomatis menghasilkan nama sumber data. Kami sarankan Anda menentukan nama deskriptif untuk identifikasi mudah. Anda tidak perlu menggunakan nama unik.
Region
Pilih wilayah tempat database tujuan berada.
CatatanAnda dapat membuat tugas ETL di salah satu wilayah berikut: China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Shenzhen), China (Guangzhou), dan China (Hong Kong).
Instances
Pilih instance database tujuan. Anda juga dapat mengklik Create Instance untuk membuat instance database tujuan. Untuk informasi lebih lanjut, lihat Database yang didukung oleh DMS.
Table Mapping
Pilih tabel yang akan disimpan di database tujuan.
Di bagian Select Destination Table, klik tabel tujuan.
Pilih tabel di kolom Column Name sesuai dengan kebutuhan bisnis Anda.
Jika ikon
tidak ditampilkan di sebelah kanan komponen Output MySQL-1, database tujuan telah dikonfigurasi.
Langkah 5: Pra-periksa dan mulai tugas
Setelah menyelesaikan konfigurasi sebelumnya, klik Generate Flink SQL Validation. ETL akan menghasilkan dan memvalidasi pernyataan Flink SQL.
Setelah validasi Flink SQL selesai, klik View ETL Validation Details. Di kotak dialog yang muncul, lihat hasil validasi Flink SQL dan pernyataan SQL. Konfirmasikan hasilnya dan klik Close.
CatatanJika validasi gagal, Anda dapat menelusuri penyebab kegagalan berdasarkan informasi yang ditampilkan di hasil.
Klik Next: Save Task Settings and Precheck. DTS hanya dapat memulai tugas ETL setelah tugas melewati pra-pemeriksaan. Jika tugas gagal melewati pra-pemeriksaan, klik View Details di sebelah setiap item yang gagal. Perbaiki masalah berdasarkan pesan kesalahan dan jalankan pra-pemeriksaan lagi.
Setelah pra-pemeriksaan selesai, klik Next: Purchase Instance di bagian bawah halaman.
Di halaman Purchase Instance, konfigurasikan parameter Instance Class dan Compute Units (CUs). Lalu, 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 dua instance ETL secara gratis.
Klik Buy and Start untuk memulai tugas ETL.
Hasil Tugas
Dalam contoh ini, setelah tugas ETL dimulai pada 1 Agustus, data yang diperbarui di tabel transaksi real-time test_orders yang memenuhi kondisi filter disinkronkan ke tabel tujuan test_orders_new. Kondisi filter adalah bahwa nilai parameter total_price lebih besar dari 3.000,00, yang menunjukkan bahwa total volume transaksi suatu pesanan lebih besar dari 3.000,00.
Gambar 1. Tabel Data Transaksi Real-Time: test_orders
Gambar 2. Tabel Tujuan: test_orders_new