AnalyticDB for MySQL menyediakan operator untuk menyelesaikan logika pemrosesan data dasar. Anda dapat mengoptimalkan urutan dan metode eksekusi operator untuk meningkatkan efisiensi pemrosesan data. Topik ini menjelaskan operator umum yang didukung oleh AnalyticDB for MySQL beserta propertinya.
Informasi latar belakang
AnalyticDB for MySQL menggunakan operator untuk menyelesaikan logika pemrosesan data dasar. Sekumpulan operator menyelesaikan serangkaian aturan pemrosesan berdasarkan rencana eksekusi. Dalam sistem terdistribusi AnalyticDB for MySQL, sebagian besar operator dapat menyelesaikan tugas komputasi secara paralel di beberapa node untuk meningkatkan efisiensi pemrosesan data.
Anda dapat menggunakan fitur diagnostik SQL dari AnalyticDB for MySQL untuk melihat operator yang memiliki properti dan hasil diagnosis tingkat operator. Untuk informasi lebih lanjut, lihat Hasil Diagnosis Tingkat Operator dan bagian "Bagan Hierarki Rencana Eksekusi pada Lapisan Operator" dari topik Menggunakan Rencana Eksekusi untuk Menganalisis Kueri.
Hanya operator tertentu yang memiliki properti.
Agregasi
AnalyticDB for MySQL adalah layanan basis data terdistribusi yang mendukung operasi agregat paralel di beberapa node. Untuk informasi lebih lanjut tentang agregasi reguler dan agregasi berbasis pengelompokan, lihat Optimasi Kueri Pengelompokan dan Agregasi. Operator Agregasi menggunakan fungsi seperti SUM(), COUNT(), dan AVG() untuk melakukan agregasi reguler atau agregasi berbasis pengelompokan pada data.
Tabel berikut menjelaskan properti dari operator Agregasi.
Properti | Deskripsi |
GroupByKeys | Bidang yang digunakan untuk pengelompokan. |
AggregationFunctions | Fungsi agregat yang digunakan, seperti Catatan Jika tidak ada bidang SELECT yang termasuk dalam klausa GROUP BY dan tidak ada fungsi agregat lain yang digunakan, sistem memanggil fungsi |
Langkah | Tahap agregasi saat ini. Nilai valid:
|
DistinctLimit
Operator ini setara dengan operasi DISTINCT LIMIT dalam pernyataan SQL.
Filter
AnalyticDB for MySQL mendukung jenis penyaringan data berikut:
Penyaringan sumber data: Indeks data di lapisan penyimpanan digunakan untuk menyaring data.
CatatanTidak ada operator independen yang digunakan untuk mewakili proses penyaringan sumber data. Kondisi filter dalam proses ini tercermin dalam operator TableScan. Untuk informasi lebih lanjut, lihat bagian "TableScan" dari topik ini.
Penyaringan non-sumber data: Data di lapisan penyimpanan tidak diindeks. Anda harus menggunakan operator Filter untuk menyaring data di lapisan komputasi.
Secara default, AnalyticDB for MySQL membuat indeks untuk semua bidang. Namun, kondisi filter tidak diturunkan dalam skenario berikut:
Jika petunjuk
no_index_columnsataufilter_not_pushdown_columnsdigunakan dalam pernyataan kueri, atau konfigurasi adb_config filter_not_pushdown_columns digunakan dalam kluster, fitur penurunan kondisi filter dinonaktifkan.Fungsi seperti
CASTdigunakan dalam kondisi filter.Kolom terkait dalam kondisi filter tidak memiliki indeks. Sebagai contoh, kata kunci
no_indexdigunakan saat Anda membuat tabel, atau pernyataanno_indexdieksekusi untuk menghapus indeks setelah tabel dibuat.
Dalam hal ini, AnalyticDB for MySQL menyaring data dengan menggunakan operator Filter.
Tabel berikut menjelaskan properti dari operator Filter.
Properti | Deskripsi |
Filter | Kondisi filter dari operator Filter. |
Join
Operator ini setara dengan operasi JOIN dalam pernyataan SQL. Saat Anda membuat tabel terdistribusi di AnalyticDB for MySQL, Anda harus menentukan bidang distribusi menggunakan klausa DISTRIBUTED BY. Jenis redistribusi data ditentukan oleh apakah kunci join digunakan sebagai bidang distribusi. Untuk informasi lebih lanjut tentang redistribusi data, lihat bagian "RemoteExchange" dari topik ini.
Tabel berikut menjelaskan properti dari operator Join.
Properti | Deskripsi |
Criterias | Kondisi join. Contoh: |
Tipe | Tipe join. Empat jenis join tersedia di AnalyticDB for MySQL: INNER JOIN, LEFT JOIN, RIGHT JOIN, dan FULL JOIN. |
Metode | Algoritma join. Dua jenis algoritma join tersedia di AnalyticDB for MySQL:
|
JoinFilter | Kondisi filter dalam join. |
Limit
Operator ini setara dengan operasi LIMIT dalam pernyataan SQL.
MarkDistinct
Operator ini setara dengan operasi COUNT(DISTINCT) dalam pernyataan SQL.
Operator MarkDistinct hanya digunakan jika pernyataan SQL berisi dua atau lebih operasi
COUNT(DISTINCT).Jika pernyataan SQL hanya berisi satu operasi
COUNT(DISTINCT), AnalyticDB for MySQL secara otomatis menggunakan operator Aggregation. Untuk informasi lebih lanjut, lihat bagian "Agregasi" dari topik ini.
Proyek
Operator ini setara dengan operasi proyeksi pada bidang tertentu dalam pernyataan SQL, seperti pernyataan kontrol aliran CASE WHEN THEN dan fungsi CONCAT().
Tabel berikut menjelaskan properti dari operator Proyek.
Properti | Deskripsi |
ProjectExpression | Ekspresi proyeksi. |
RemoteExchange
Operator ini menunjukkan metode yang digunakan untuk mentransfer data dari tahap hulu ke tahap hilir. Metode berikut tersedia:
Broadcast: Data dari setiap node komputasi di tahap hulu disalin dan ditransfer ke semua node komputasi di tahap hilir.
Repartition: Data dari setiap node komputasi di tahap hulu dipartisi berdasarkan aturan tertentu dan kemudian didistribusikan ke node komputasi tertentu di tahap hilir.
Gather: Data dari setiap node komputasi di tahap hulu dikonsentrasikan pada node komputasi tertentu di tahap hilir.
Untuk informasi lebih lanjut, lihat bagian "Bagan Hierarki Rencana Eksekusi pada Lapisan Tahap" dari topik Gunakan Rencana Eksekusi untuk Menganalisis Kueri.
RemoteSource
Operator ini menunjukkan bahwa data masukan dari tahap saat ini ditransfer dari node jarak jauh melalui jaringan.
Tabel berikut menjelaskan properti dari operator RemoteSource.
Properti | Deskripsi |
OutputColumns | Bidang yang diekspor oleh operator RemoteSource. |
StageOutput
Operator ini mentransfer data yang diproses di tahap saat ini ke node tahap hilir melalui jaringan.
Sort
Operator ini setara dengan operasi ORDER BY dalam pernyataan SQL. Operator ini mengurutkan bidang dalam klausa ORDER BY.
Tabel berikut menjelaskan properti dari operator Sort.
Properti | Deskripsi |
OrderBy | Bidang yang digunakan untuk mengurutkan data. |
Orderings | Urutan data diurutkan. Nilai valid:
|
SortMerge
Selama pengurutan terdistribusi, operator ini menggabungkan dan mengurutkan data yang ditransfer dari beberapa node di tahap hulu.
TableScan
Operator ini membaca data dari sumber data. Sumber data bawah dapat menggunakan indeks untuk menyaring data.
Tabel berikut menjelaskan properti dari operator TableScan.
Properti | Deskripsi |
TableName | Nama tabel tempat data yang dipindai dimiliki. |
SelectFields | Bidang yang dipindai oleh node TableScan. |
DataBase | Nama basis data tempat data yang dipindai dimiliki. |
FilterPushDown | Menentukan apakah kondisi filter diturunkan ke node penyimpanan. Catatan Properti ini hanya ditampilkan jika tahap saat ini berisi kondisi filter yang diturunkan. |
PushedDownFilter | Kondisi filter yang diturunkan ke node penyimpanan. Catatan Properti ini hanya ditampilkan jika tahap saat ini berisi kondisi filter yang diturunkan. |
TableWriter
Setelah data diquery menggunakan pernyataan SQL yang melakukan pekerjaan extract-transform-load (ETL), seperti INSERT INTO dan REPLACE INTO, operator ini menulis data ke tabel.
TopN
Operator ini setara dengan operasi ORDER BY LIMIT m,n dalam pernyataan SQL.
Tabel berikut menjelaskan properti dari operator TopN.
Properti | Deskripsi |
OrderBy | Bidang yang digunakan untuk mengurutkan data. |
Count | Operator ini setara dengan operasi ORDER BY LIMIT dalam pernyataan SQL. |
Orderings | Urutan data diurutkan. Nilai valid:
|
Langkah | Langkah eksekusi dari operator TopN. Nilai valid:
|
Offset | Operator ini setara dengan operasi ORDER BY OFFSET dalam pernyataan SQL. |
Union
Operator ini setara dengan operasi UNION dalam pernyataan SQL.
Window
Operator ini setara dengan fungsi jendela dalam pernyataan SQL. Untuk informasi lebih lanjut, lihat Fungsi Jendela.