全部产品
Search
文档中心

AnalyticDB:Operator

更新时间:Jun 26, 2025

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.

Catatan

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 SUM(), COUNT(), dan AVG().

Catatan

Jika tidak ada bidang SELECT yang termasuk dalam klausa GROUP BY dan tidak ada fungsi agregat lain yang digunakan, sistem memanggil fungsi ARBITRARY() untuk secara acak mengembalikan nilai dari grup. Untuk informasi lebih lanjut, lihat bagian "ARBITRARY" dari topik Fungsi agregat.

Langkah

Tahap agregasi saat ini. Nilai valid:

  • PARTIAL: agregasi parsial.

  • FINAL: agregasi akhir.

  • SINGLE: agregasi satu langkah, yang menentukan bahwa agregasi akhir dilakukan secara langsung.

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.

    Catatan

    Tidak 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_columns atau filter_not_pushdown_columns digunakan dalam pernyataan kueri, atau konfigurasi adb_config filter_not_pushdown_columns digunakan dalam kluster, fitur penurunan kondisi filter dinonaktifkan.

  • Fungsi seperti CAST digunakan dalam kondisi filter.

  • Kolom terkait dalam kondisi filter tidak memiliki indeks. Sebagai contoh, kata kunci no_index digunakan saat Anda membuat tabel, atau pernyataan no_index dieksekusi 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: tb_1.col_a=tb_2.col_a.

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:

  • Hash: Algoritma hash join menyimpan tabel kecil di memori dan menggabungkan tabel kecil dengan tabel lain menggunakan tabel hash dari tabel kecil untuk menemukan kecocokan.

  • Index: Algoritma index join menggunakan indeks kunci join berdasarkan fitur pengindeksan kolom penuh dari 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.

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

  • ASC_NULLS_FIRST: Data diurutkan dalam urutan menaik, di mana nilai NULL dikembalikan sebelum nilai non-NULL.

  • ASC_NULLS_LAST: Data diurutkan dalam urutan menaik, di mana nilai NULL dikembalikan setelah nilai non-NULL.

  • DESC_NULLS_FIRST: Data diurutkan dalam urutan menurun, di mana nilai NULL dikembalikan sebelum nilai non-NULL.

  • DESC_NULLS_LAST: Data diurutkan dalam urutan menurun, di mana nilai NULL dikembalikan setelah nilai non-NULL.

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:

  • ASC_NULLS_FIRST: Data diurutkan dalam urutan menaik, di mana nilai NULL dikembalikan sebelum nilai non-NULL.

  • ASC_NULLS_LAST: Data diurutkan dalam urutan menaik, di mana nilai NULL dikembalikan setelah nilai non-NULL.

  • DESC_NULLS_FIRST: Data diurutkan dalam urutan menurun, di mana nilai NULL dikembalikan sebelum nilai non-NULL.

  • DESC_NULLS_LAST: Data diurutkan dalam urutan menurun, di mana nilai NULL dikembalikan setelah nilai non-NULL.

Langkah

Langkah eksekusi dari operator TopN. Nilai valid:

  • PARTIAL: Selama pengurutan terdistribusi, data di setiap node diurutkan sebagian.

  • SORTMERGE: Penggabungan dan pengurutan akhir dilakukan pada data yang telah diurutkan sebagian.

  • SINGLE: Penggabungan dan pengurutan akhir dilakukan langsung pada data.

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.