全部产品
Search
文档中心

AnalyticDB:Parameter konfigurasi Config dan Hint

更新时间:Jul 06, 2025

AnalyticDB for MySQL memungkinkan Anda mengonfigurasi parameter dengan mengeksekusi pernyataan SET ADB_CONFIG KEY=VALUE atau menggunakan hint /*+ KEY=VALUE*/. Pernyataan SET ADB_CONFIG berlaku untuk seluruh kluster AnalyticDB for MySQL dan digunakan untuk membuat konfigurasi global. Hint hanya berlaku untuk pernyataan SQL tertentu dan tidak memengaruhi konfigurasi global. Jika Anda menggunakan baik pernyataan SET ADB_CONFIG maupun hint untuk mengonfigurasi item tertentu, maka hint akan didahulukan. Topik ini menjelaskan parameter konfigurasi config dan hint umum di AnalyticDB for MySQL.

Parameter config umum

Item konfigurasi

Parameter

Deskripsi

Contoh

Referensi

Jendela pergantian

REPLICATION_SWITCH_TIME_RANGE

Jendela waktu saat kluster yang ada beralih ke kluster baru. Selama pergantian ke kluster baru, kluster yang ada menjadi hanya-baca selama periode 5 hingga 10 menit. Setelah terhubung ke kluster yang ada, Anda dapat menggunakan parameter REPLICATION_SWITCH_TIME_RANGE untuk menentukan jendela pergantian.

Catatan

Jika Anda tidak menentukan jendela pergantian, kluster yang ada akan beralih ke kluster baru setelah data inkremen dari kluster yang ada disinkronkan secara real-time ke kluster baru.

SET ADB_CONFIG REPLICATION_SWITCH_TIME_RANGE=`23:00, 23:30`;

Skala kluster Data Warehouse Edition

Jumlah maksimum kondisi IN

MAX_IN_ITEMS_COUNT

Jumlah maksimum kondisi IN. Nilainya harus bilangan bulat lebih besar dari 0.

  • Nilai default untuk kluster AnalyticDB for MySQL versi V3.1.8 atau lebih lama: 2000.

  • Nilai default untuk kluster AnalyticDB for MySQL versi V3.1.9.x hingga V3.1.10.x: 4000.

  • Nilai default untuk kluster AnalyticDB for MySQL versi V3.2.1 atau lebih baru: 20000.

SET ADB_CONFIG MAX_IN_ITEMS_COUNT=4000;

Penulisan dan kueri

Periode timeout kueri

QUERY_TIMEOUT

Periode timeout semua kueri dalam kluster. Nilainya harus bilangan bulat lebih besar dari 0. Unit: milidetik.

SET ADB_CONFIG QUERY_TIMEOUT=1000;

Periode timeout pernyataan INSERT, UPDATE, dan DELETE

INSERT_SELECT_TIMEOUT

Durasi eksekusi maksimum pernyataan INSERT, UPDATE, dan DELETE dalam kluster. Nilai default: 24 × 3600000. Nilainya harus bilangan bulat lebih besar dari 0. Unit: milidetik.

SET ADB_CONFIG INSERT_SELECT_TIMEOUT=3600000;

Batasan

Kondisi filter tanpa penurunan kondisi

  • V3.1.4 dan lebih baru: FILTER_NOT_PUSHDOWN_COLUMNS

  • Versi sebelum V3.1.4: NO_INDEX_COLUMNS

Menonaktifkan penurunan kondisi filter untuk kolom tertentu dalam kluster.

  • V3.1.4 dan lebih baru: SET ADB_CONFIG FILTER_NOT_PUSHDOWN_COLUMNS=[Schema1.tableName1:colName1|colName2;Schema2.tableName2:colName1|colName2]

  • Versi sebelum V3.1.4: SET ADB_CONFIG NO_INDEX_COLUMNS=[tableName1.colName1;colName2,tableName2.colName1]

Kondisi filter tanpa penurunan kondisi

Mode eksekusi kueri

QUERY_TYPE

Mode eksekusi kueri kluster. Nilai valid:

  • interactive

  • batch

Catatan

Anda tidak dapat mengubah mode eksekusi kueri untuk kluster AnalyticDB for MySQL Data Warehouse Edition dalam mode cadangan atau kluster AnalyticDB for MySQL Enterprise Edition, Basic Edition, dan Data Lakehouse Edition.

SET ADB_CONFIG QUERY_TYPE=interactive;

Mode eksekusi kueri

Antrian kueri

XIHE_ENV_QUERY_ETL_MAX_CONCURRENT_SIZE

Jumlah maksimum kueri yang dapat dieksekusi untuk antrian LOWEST pada satu node frontend tunggal. Nilai default: 20.

SET ADB_CONFIG XIHE_ENV_QUERY_ETL_MAX_CONCURRENT_SIZE=20;

Antrian prioritas dan konkurensi grup sumber daya interaktif

XIHE_ENV_QUERY_ETL_MAX_QUEUED_SIZE

Jumlah maksimum kueri yang dapat di-antrikan untuk antrian LOWEST pada satu node frontend tunggal. Nilai default: 200.

SET ADB_CONFIG XIHE_ENV_QUERY_ETL_MAX_QUEUED_SIZE=200;

XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE

Jumlah maksimum kueri yang dapat dieksekusi untuk antrian LOW pada satu node frontend tunggal. Nilai default: 20.

SET ADB_CONFIG XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE=20;

XIHE_ENV_QUERY_LOW_PRIORITY_MAX_QUEUED_SIZE

Jumlah maksimum kueri yang dapat di-antrikan untuk antrian LOW pada satu node frontend tunggal. Nilai default: 200.

SET ADB_CONFIG XIHE_ENV_QUERY_LOW_PRIORITY_MAX_QUEUED_SIZE=200;

XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE

Jumlah maksimum kueri yang dapat dieksekusi untuk antrian NORMAL pada satu node frontend tunggal. Nilai default: 20.

SET ADB_CONFIG XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE=20;

XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE

Jumlah maksimum kueri yang dapat di-antrikan untuk antrian NORMAL pada satu node frontend tunggal. Nilai default: 200.

SET ADB_CONFIG XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE=200;

XIHE_ENV_QUERY_HIGH_MAX_CONCURRENT_SIZE

Jumlah maksimum kueri yang dapat dieksekusi untuk antrian HIGH pada satu node frontend tunggal. Nilai default: 40.

SET ADB_CONFIG XIHE_ENV_QUERY_HIGH_MAX_CONCURRENT_SIZE=40;

XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE

Jumlah maksimum kueri yang dapat di-antrikan untuk antrian HIGH pada satu node frontend tunggal. Nilai default: 400.

SET ADB_CONFIG XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE=400;

Prioritas pekerjaan BSP XIHE

QUERY_PRIORITY

Prioritas pekerjaan BSP XIHE. Nilai valid:

  • HIGH

  • NORMAL (default)

  • LOW

  • LOWEST

SET ADB_CONFIG QUERY_PRIORITY=HIGH;

Parameter konfigurasi

Jumlah maksimum unit komputasi analitik (ACU) yang digunakan oleh pekerjaan BSP XIHE

ELASTIC_JOB_MAX_ACU

Jumlah maksimum ACU yang dapat digunakan oleh pekerjaan BSP XIHE. Nilai default: 9. Nilai minimum: 3. Nilai valid: 3 hingga jumlah maksimum ACU untuk grup sumber daya pekerjaan.

SET ADB_CONFIG ELASTIC_JOB_MAX_ACU=20;

Periode timeout pekerjaan BSP XIHE

BATCH_QUERY_TIMEOUT

Periode timeout pekerjaan BSP XIHE. Nilai default: 7200000. Nilainya harus bilangan bulat lebih besar dari 0. Unit: milidetik.

SET ADB_CONFIG BATCH_QUERY_TIMEOUT=3600000 ;

Impor data menggunakan tabel eksternal Object Storage Service (OSS)

HIVE_SPLIT_ASYNC_GENERATION_ENABLED

Menentukan apakah akan mengirimkan tugas yang menjalankan split ke antrian untuk eksekusi secara asinkron ketika Hive menghasilkan rencana eksekusi. Nilai valid:

  • true

  • false (default)

Catatan

Parameter ini didukung hanya untuk kluster AnalyticDB for MySQL versi V3.1.10.1 atau lebih baru.

SET ADB_CONFIG HIVE_SPLIT_ASYNC_GENERATION_ENABLED=true;

Tidak ada

Impor data menggunakan tabel eksternal MaxCompute

SQL_OUTPUT_BATCH_SIZE

Jumlah maksimum entri yang dapat diimpor sekaligus. Nilainya harus bilangan bulat lebih besar dari 0.

SET ADB_CONFIG SQL_OUTPUT_BATCH_SIZE = 6000;

Impor dan ekspor

ENABLE_ODPS_MULTI_PARTITION_PART_MATCH

Menentukan apakah akan mendapatkan jumlah entri di setiap partisi MaxCompute terlebih dahulu.

SET ADB_CONFIG ENABLE_ODPS_MULTI_PARTITION_PART_MATCH=false;

ASYNC_GET_SPLIT

Menentukan apakah akan mengirimkan tugas secara asinkron ke antrian untuk eksekusi dengan mengoptimalkan kinerja pemuatan split ketika MaxCompute menghasilkan rencana eksekusi. Nilai valid:

  • true

  • false (default)

Catatan

Parameter ini didukung hanya untuk kluster AnalyticDB for MySQL versi V3.1.10.1 atau lebih baru.

SET ADB_CONFIG ASYNC_GET_SPLIT=true;

Penjadwalan otomatis untuk pekerjaan BUILD

RC_CSTORE_BUILD_SCHEDULE_PERIOD

Rentang waktu di mana Anda ingin menjadwalkan pekerjaan BUILD. Parameter ini berlaku untuk penjadwalan pekerjaan, bukan eksekusi pekerjaan. Waktu mulai dan waktu akhir harus berupa bilangan bulat. Nilai valid: 0 hingga 24.

SET ADB_CONFIG RC_CSTORE_BUILD_SCHEDULE_PERIOD=`6,8`;

Konfigurasikan penjadwalan otomatis untuk pekerjaan BUILD

Prioritas penjadwalan pekerjaan BUILD

ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST

Prioritas penjadwalan pekerjaan BUILD untuk satu atau lebih tabel. Prioritas yang dikonfigurasi tetap efektif sampai Anda mengonfigurasi prioritas penjadwalan pekerjaan BUILD baru untuk tabel tersebut.

Parameter task_priority menentukan prioritas penjadwalan pekerjaan BUILD. Nilainya harus berupa bilangan bulat. Nilai default: 0.

SET ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST = `<db1_name>.<table1_name>.<task_priority>;<db2_name>.<table2_name>.<task_priority>`;

BUILD

Impor elastis

RC_ELASTIC_JOB_SCHEDULER_ENABLE

Mengaktifkan fitur impor elastis.

SET ADB_CONFIG RC_ELASTIC_JOB_SCHEDULER_ENABLE=true;

Fungsi REMOTE_CALL

XIHE_REMOTE_CALL_SERVER_ENDPOINT

Titik akhir internal Function Compute yang digunakan saat Anda memanggil fungsi REMOTE_CALL untuk fungsi pengguna yang ditentukan (UDF). Untuk informasi lebih lanjut, lihat Titik Akhir.

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_ENDPOINT="1234567890000****.cn-zhangjiakou-internal.fc.aliyuncs.com"

UDF

XIHE_REMOTE_CALL_SERVER_AK

ID AccessKey dari akun Alibaba Cloud atau pengguna Resource Access Management (RAM) ke mana layanan Function Compute milik yang digunakan saat Anda memanggil fungsi REMOTE_CALL untuk UDF.

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_AK=************;

XIHE_REMOTE_CALL_SERVER_SK

Rahasia AccessKey dari akun Alibaba Cloud atau pengguna RAM ke mana layanan Function Compute milik yang digunakan saat Anda memanggil fungsi REMOTE_CALL untuk UDF.

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_SK=************;

XIHE_REMOTE_CALL_COMPRESS_ENABLED

Menentukan apakah akan menekan data ke dalam format GZIP sebelum mengirimkan data ke Function Compute saat Anda memanggil fungsi REMOTE_CALL untuk UDF.

SET ADB_CONFIG REMOTE_CALL_COMPRESS_ENABLED=true;

XIHE_REMOTE_CALL_MAX_BATCH_SIZE

Jumlah maksimum baris data yang dapat dikirim sekaligus ke Function Compute saat Anda memanggil fungsi REMOTE_CALL untuk UDF.

SET ADB_CONFIG XIHE_REMOTE_CALL_MAX_BATCH_SIZE=500000;

Kontrol aliran split

ADB_CONFIG SPLIT_FLOW_CONTROL_ENABLED

Menentukan apakah akan mengaktifkan fitur kontrol aliran split. AnalyticDB for MySQL memungkinkan Anda mengonfigurasi kuota untuk pemindaian split bersamaan pada node untuk mencegah ketidakstabilan node yang disebabkan oleh pemindaian split bersamaan yang berlebihan dan penggunaan sumber daya. Nilai valid:

  • true (default)

  • false

SET ADB_CONFIG SPLIT_FLOW_CONTROL_ENABLED=true;

Kontrol aliran split

ADB_CONFIG NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED

Menentukan apakah akan mengaktifkan fitur yang memungkinkan kuota untuk pemindaian split bersamaan dalam tugas disesuaikan secara dinamis. AnalyticDB for MySQL memungkinkan Anda menyesuaikan kuota untuk pemindaian split bersamaan dalam tugas berdasarkan kuota keseluruhan untuk pemindaian split bersamaan dari node tempat tugas berjalan. Nilai valid:

  • true

  • false (default)

SET ADB_CONFIG NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED=true;

MIN_RUNNING_SPLITS_LIMIT_PER_TASK

Kuota minimum untuk pemindaian split bersamaan dalam tugas. Nilai default: 1. Nilai valid berkisar dari 1 hingga nilai parameter TARGET_RUNNING_SPLITS_LIMIT_PER_TASK.

SET ADB_CONFIG MIN_RUNNING_SPLITS_LIMIT_PER_TASK=24;

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK

Kuota perantara untuk pemindaian split bersamaan dalam tugas. Kuota aktual disesuaikan secara dinamis berdasarkan nilai parameter ini. Nilai default: 32. Nilai valid berkisar dari nilai parameter MIN_RUNNING_SPLITS_LIMIT_PER_TASK hingga nilai parameter MAX_RUNNING_SPLITS_LIMIT_PER_TASK.

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=32;

MAX_RUNNING_SPLITS_LIMIT_PER_TASK

Kuota maksimum untuk pemindaian split bersamaan dalam tugas. Nilai default: 64. Nilai parameter ini harus lebih besar dari nilai parameter TARGET_RUNNING_SPLITS_LIMIT_PER_TASK.

SET ADB_CONFIG MAX_RUNNING_SPLITS_LIMIT_PER_TASK=128;

ADB_CONFIG WORKER_MAX_RUNNING_SOURCE_SPLITS_PER_NODE

Secara default, kuota untuk pemindaian split bersamaan pada node penyimpanan adalah 256. Kami merekomendasikan agar Anda tidak mengubah nilai default karena kuota yang terlalu besar atau terlalu kecil dapat memengaruhi kinerja kluster.

SET ADB_CONFIG WORKER_MAX_RUNNING_SOURCE_SPLITS_PER_NODE=256;

ADB_CONFIG EXECUTOR_MAX_RUNNING_SOURCE_SPLITS_PER_NODE

Secara default, kuota untuk pemindaian split bersamaan pada node komputasi adalah 256. Kami merekomendasikan agar Anda tidak mengubah nilai default karena kuota yang terlalu besar atau terlalu kecil dapat memengaruhi kinerja kluster.

SET ADB_CONFIG EXECUTOR_MAX_RUNNING_SOURCE_SPLITS_PER_NODE=256;

Sensitivitas huruf besar/kecil nama tampilan logis

VIEW_OUTPUT_NAME_CASE_SENSITIVE

Menentukan apakah akan mengatur nama tampilan logis sebagai sensitif huruf besar/kecil. Nilai valid:

  • true

  • false (default)

SET ADB_CONFIG VIEW_OUTPUT_NAME_CASE_SENSITIVE=true;

CREATE VIEW

Ekseskusi berturutan dari beberapa pernyataan SQL

ALLOW_MULTI_QUERIES

Menentukan apakah akan mengaktifkan fitur multi-pernyataan untuk eksekusi berturutan dari beberapa pernyataan SQL. Nilai valid:

  • true

  • false (default)

SET ADB_CONFIG ALLOW_MULTI_QUERIES=true;

Multi-Pernyataan

Pencatatan biner

BINLOG_ENABLE

  • Anda harus mengaktifkan fitur pencatatan biner secara manual untuk kluster AnalyticDB for MySQL sebelum versi V3.2.0.0. Kemudian, Anda dapat mengaktifkan fitur tersebut untuk tabel.

  • Secara default, fitur pencatatan biner diaktifkan untuk kluster AnalyticDB for MySQL versi V3.2.0.0 atau lebih baru. Anda tidak perlu menentukan parameter ini.

SET ADB_CONFIG BINLOG_ENABLE=true;

Persiapan

Cache paging (optimasi kinerja untuk kueri paging dalam)

PAGING_CACHE_SCHEMA

Database yang digunakan untuk menyimpan tabel cache sementara untuk kueri paging. Jika Anda tidak menentukan parameter ini, database internal yang terhubung digunakan.

SET ADB_CONFIG PAGING_CACHE_SCHEMA=paging_cache;

Cache paging (optimasi kinerja untuk kueri paging dalam)

PAGING_CACHE_MAX_TABLE_COUNT

Jumlah maksimum tabel cache sementara. Jika jumlah tabel cache sementara melebihi nilai parameter ini, Anda tidak dapat membuat tabel cache lagi. Nilai default: 100. Nilainya harus bilangan bulat lebih besar dari 0.

SET ADB_CONFIG PAGING_CACHE_MAX_TABLE_COUNT=100;

PAGING_CACHE_EXPIRATION_TIME

Waktu kedaluwarsa cache. Data cache kueri paging yang tidak diakses dalam rentang waktu tertentu secara otomatis dibersihkan. Nilai default: 600. Nilainya harus bilangan bulat lebih besar dari 0. Unit: detik.

SET ADB_CONFIG PAGING_CACHE_EXPIRATION_TIME=600;

PAGING_CACHE_ENABLE

Menentukan apakah akan mengaktifkan fitur cache paging di tingkat kluster. Nilai valid:

  • true (default)

  • false

SET ADB_CONFIG PAGING_CACHE_ENABLE=false;

Menentukan mesin tabel

RC_DDL_ENGINE_REWRITE_XUANWUV2

Menentukan apakah akan mengatur mesin tabel ke XUANWU_V2 di tingkat kluster. Nilai valid:

  • true (default): mengatur mesin tabel ke XUANWU_V2 untuk tabel baru sambil mempertahankan mesin tabel dari tabel yang ada tetap tidak berubah. Bahkan jika Anda menentukan ENGINE=XUANWU saat membuat tabel, mesin tabel tabel secara otomatis diubah menjadi XUANWU_V2.

  • false: mengatur mesin tabel ke XUANWU untuk tabel baru sambil mempertahankan mesin tabel dari tabel yang ada tetap tidak berubah.

SET ADB_CONFIG RC_DDL_ENGINE_REWRITE_XUANWUV2=true;

Tentukan mesin tabel

Parameter hint umum

Item konfigurasi

Parameter

Deskripsi

Contoh

Referensi

Periode timeout kueri

QUERY_TIMEOUT

Periode timeout untuk satu kueri. Nilainya harus bilangan bulat lebih besar dari 0. Unit: milidetik.

/*+ QUERY_TIMEOUT=1000 */select count(*) from t;

Penulisan dan kueri

Periode timeout pernyataan INSERT, UPDATE, dan DELETE

INSERT_SELECT_TIMEOUT

Durasi eksekusi maksimum pernyataan INSERT, UPDATE, dan DELETE dalam kueri. Nilai default: 24 × 3600000. Nilainya harus bilangan bulat lebih besar dari 0. Unit: milidetik.

/*+ INSERT_SELECT_TIMEOUT=3600000 */update customer set customer_name ='adb' where customer_id ='2369';

Batasan

Kondisi filter tanpa penurunan kondisi

  • V3.1.4 dan lebih baru: FILTER_NOT_PUSHDOWN_COLUMNS

  • Versi sebelum V3.1.4: NO_INDEX_COLUMNS

Menonaktifkan penurunan kondisi filter untuk kolom tertentu dalam kueri.

  • V3.1.4 dan lebih baru: /*+ FILTER_NOT_PUSHDOWN_COLUMNS=[Schema1.table1:colName1|colName2;Schema2.table2:colName1|colName2] */

  • Versi sebelum V3.1.4: /*+ NO_INDEX_COLUMNS=[tableName1.colName1;colName2,tableName2.colName1] */

Kondisi filter tanpa penurunan kondisi

Prioritas penjadwalan pekerjaan BUILD

BUILD_TASK_PRIORITY

Prioritas penjadwalan pekerjaan BUILD. Anda dapat menggunakan hint untuk mengonfigurasi prioritas penjadwalan pekerjaan BUILD hanya untuk satu tabel pada satu waktu. Nilai default: 0. Nilainya harus bilangan bulat lebih besar dari atau sama dengan 0. Nilai yang lebih besar menentukan prioritas penjadwalan yang lebih tinggi.

/*+ BUILD_TASK_PRIORITY = 2*/ BUILD TABLE db.table;

Konfigurasikan prioritas penjadwalan untuk pekerjaan BUILD

Impor elastis

  • ELASTIC_LOAD

  • ELASTIC_LOAD_CONFIGS

Pilih impor elastis dan konfigurasikan grup sumber daya untuk pekerjaan impor.

/*+ ELASTIC_LOAD=true, ELASTIC_LOAD_CONFIGS=[adb.load.resource.group.name=resource_group]*/

SUBMIT JOB INSERT OVERWRITE INTO adb_demo.adb_import_test SELECT * FROM adb_external_db.person;

Rencana eksekusi

  • V3.1.8 dan lebih baru: O_CBO_RULE_SWAP_OUTER_JOIN

  • Versi sebelum V3.1.8: LEFT_TO_RIGHT_ENABLED

Algoritma hash join menggunakan tabel kanan untuk membangun tabel hash, dan LEFT JOIN tidak mengurutkan ulang tabel kiri dan kanan. Akibatnya, jumlah data yang besar di tabel kanan dapat menyebabkan masalah seperti pelaksanaan lambat dan konsumsi memori berlebihan. Anda dapat menambahkan hint sebelum pernyataan SQL untuk mengonfigurasi pengoptimal untuk mengubah LEFT JOIN menjadi RIGHT JOIN berdasarkan konsumsi sumber daya. Nilai valid:

  • true

  • false (default)

  • /*+ O_CBO_RULE_SWAP_OUTER_JOIN=true*/

  • /*+ LEFT_TO_RIGHT_ENABLED=true*/

Ubah LEFT JOIN menjadi RIGHT JOIN

REORDER_JOINS

Menentukan apakah akan mengaktifkan fitur penyesuaian urutan join otomatis. Secara default, fitur penyesuaian urutan join otomatis AnalyticDB for MySQL diaktifkan. Setelah Anda menonaktifkan fitur ini, Anda dapat menyesuaikan urutan join secara manual berdasarkan karakteristik data dari kueri. Ini memungkinkan Anda menjalankan kueri berdasarkan urutan join dalam pernyataan SQL yang ditulis. Nilai valid:

  • true (default)

  • false

/*+ REORDER_JOINS=false*/

Sesuaikan urutan join secara manual

AGGREGATION_PATH_TYPE

Menentukan apakah akan melewati agregasi parsial secara paksa untuk kueri. Dalam skenario pengelompokan dan agregasi yang melibatkan sejumlah besar kelompok, agregasi dua langkah mengonsumsi banyak sumber daya komputasi. Anda dapat mengatur nilai parameter hint ini ke single_agg untuk melewati agregasi parsial dan langsung melakukan agregasi akhir untuk kueri. Nilai valid:

  • single_agg: melewati agregasi parsial secara paksa.

  • auto (default): memungkinkan pengoptimal menentukan secara otomatis apakah akan melewati agregasi parsial.

/*+ AGGREGATION_PATH_TYPE=single_agg*/

Optimasi kueri pengelompokan dan agregasi

Kebijakan runtime

HASH_PARTITION_COUNT

Jumlah tugas bersamaan tempat setiap pekerjaan komputasi dapat dibagi. Pembagian tugas membantu memanfaatkan sepenuhnya sumber daya komputasi. Anda dapat menggunakan parameter hint ini untuk menentukan konkurensi tugas. Nilai default: 32. Nilainya harus bilangan bulat lebih besar dari 0.

/*+ HASH_PARTITION_COUNT=32*/

Tidak ada

TASK_WRITER_COUNT

Jumlah pekerjaan impor bersamaan yang dieksekusi menggunakan pernyataan INSERT INTO SELECT. Jika node penyimpanan kelebihan beban, Anda dapat menggunakan parameter hint ini untuk mengurangi jumlah pekerjaan impor bersamaan. Nilai default: 16. Nilainya harus bilangan bulat lebih besar dari 0.

/*+ TASK_WRITER_COUNT=8*/

CTE_EXECUTION_MODE

Menentukan apakah akan mengaktifkan fitur optimasi eksekusi common table expression (CTE). Jika fitur optimasi eksekusi CTE diaktifkan, subquery CTE yang dirujuk berulang kali hanya dapat dieksekusi sekali untuk meningkatkan kinerja kueri tertentu. Nilai valid:

  • shared: mengaktifkan fitur optimasi eksekusi CTE.

  • inline (default): menonaktifkan fitur optimasi eksekusi CTE.

/*+ CTE_EXECUTION_MODE=shared*/

WITH

Batasan pada kondisi kueri

QUERY_MAX_SHUFFLE_DATA_SIZE_MB

Jumlah maksimum data yang diacak untuk sebuah query. Secara default, tidak ada error yang dikembalikan terlepas dari jumlah data yang di-query. Jika Anda menentukan parameter ini dan jumlah data yang di-query dalam sebuah query melebihi nilai yang ditentukan, sistem akan menghentikan query dan mengembalikan error. Nilai tersebut harus berupa integer yang lebih besar dari 0. Satuan: MB.

/*+ QUERY_MAX_SHUFFLE_DATA_SIZE_MB=1024*/

Tidak ada

MAX_SELECT_ITEMS_COUNT

Jumlah maksimum kondisi SELECT. Nilai default: 1024. Nilai tersebut harus berupa bilangan bulat yang lebih besar dari 0.

/*+ MAX_SELECT_ITEMS_COUNT=2048*/

MAX_IN_ITEMS_COUNT

Jumlah maksimum kondisi IN. Nilai default: 4000. Nilainya harus berupa bilangan bulat yang lebih besar dari 0.

/*+ MAX_IN_ITEMS_COUNT=1000*/

MAX_WHERE_ITEMS_COUNT

Jumlah maksimum kondisi WHERE. Nilai default: 256. Nilainya harus berupa bilangan bulat yang lebih besar dari 0.

/*+ MAX_WHERE_ITEMS_COUNT=512*/

Prioritas dari pekerjaan XIHE BSP

QUERY_PRIORITY

Prioritas dari pekerjaan XIHE BSP. Nilai yang valid:

  • HIGH

  • NORMAL (default)

  • LOW

  • LOWEST

/*+ QUERY_PRIORITY=HIGH*/

Parameter konfigurasi

Jumlah maksimum ACU yang digunakan oleh pekerjaan XIHE BSP

ELASTIC_JOB_MAX_ACU

Jumlah maksimum ACU yang dapat digunakan oleh pekerjaan XIHE BSP. Nilai default: 9. Nilai minimum: 3. Nilai valid: 3 hingga jumlah maksimum ACU untuk grup sumber daya pekerjaan.

/*+ ELASTIC_JOB_MAX_ACU=20*/

Periode timeout untuk pekerjaan XIHE BSP

BATCH_QUERY_TIMEOUT

Periode timeout untuk pekerjaan XIHE BSP. Nilai default: 7.200.000. Nilai tersebut harus berupa bilangan bulat lebih besar dari 0. Satuan: milidetik.

/*+ BATCH_QUERY_TIMEOUT=3600000*/

Tabel eksternal OSS

OUTPUT_FILENAME

Nama objek OSS tempat Anda ingin mengekspor data. Saat menggunakan tabel eksternal OSS untuk mengekspor data, Anda dapat menambahkan petunjuk ini sebelum pernyataan ekspor data untuk menentukan nama objek OSS.

/*+ OUTPUT_FILENAME=output.csv*/

Ekspor data ke OSS

SQL_OUTPUT_OSS_FILE_HEAD_ENABLE

Menentukan apakah akan menyertakan nama kolom dalam data yang diekspor ke OSS. Secara default, data yang diekspor ke OSS menggunakan tabel eksternal OSS tidak berisi nama kolom. Jika Anda ingin data memiliki nama kolom, tambahkan petunjuk /*+ SQL_OUTPUT_OSS_FILE_HEAD_ENABLE=true*/ sebelum pernyataan impor data. Nilai yang valid:

  • true

  • false (default)

/*+ SQL_OUTPUT_OSS_FILE_HEAD_ENABLE=true*/

HIVE_SPLIT_ASYNC_GENERATION_ENABLED

Menentukan apakah akan mengirimkan tugas yang menjalankan split ke antrian untuk dieksekusi secara asinkron ketika Hive menghasilkan rencana eksekusi. Nilai yang valid:

  • true

  • false (bawaan)

Catatan

Parameter ini hanya didukung untuk kluster AnalyticDB for MySQL versi 3.1.10.1 atau lebih baru.

/*+ HIVE_SPLIT_ASYNC_GENERATION_ENABLED=true*/

Gunakan tabel eksternal untuk mengimpor data ke Data Lakehouse Edition

FAST_PARQUET_READER_ENABLE

Menentukan apakah akan kembali ke pembaca Parquet asli

jika statistik dalam file Parquet tidak benar. Nilai yang valid:

  • true (bawaan)

  • false

/*+ FAST_PARQUET_READER_ENABLE=true*/

OSS_VECTORIZED_PARQUET_READER_ENABLE

Menentukan apakah akan mengaktifkan pembacaan vektorisasi file Parquet ketika data tidak mengandung nilai NULL. Nilai yang valid:

  • true

  • false (default)

/*+ OSS_VECTORIZED_PARQUET_READER_ENABLE=true*/

OSS_VECTORIZED_PARQUET_READER_NULL_SCENE_ENABLE

Menentukan apakah akan mengaktifkan pembacaan vektorisasi file Parquet saat data berisi nilai NULL. Nilai yang valid:

  • true

  • false (bawaan)

/*+ OSS_VECTORIZED_PARQUET_READER_NULL_SCENE_ENABLE=true*/

HUDI_METADATA_TABLE_ENABLED

Menentukan apakah akan memuat metadata Hudi. Nilai yang valid:

  • true

  • false (default)

/*+ HUDI_METADATA_TABLE_ENABLED=true*/

HUDI_QUERY_TYPE

Mode di mana Anda ingin menanyakan tabel Hudi. Nilai yang valid:

  • snapshot: menanyakan semua data yang telah diserahkan atau dikompresi pada titik waktu tertentu.

  • read_optimized (default): menanyakan data setelah pengiriman atau kompresi terbaru.

/*+ HUDI_QUERY_TYPE=snapshot*/

HUDI_REALTIME_SKIP_MERGE

Menentukan apakah akan melewati penggabungan file dasar dan file log saat tabel Hudi di-query dalam mode snapshot. Nilai yang valid:

  • true

  • false (default)

/*+ HUDI_REALTIME_SKIP_MERGE=true*/

HUDI_MAX_SPLIT_SIZE=

Ukuran maksimum dari sebuah split. Nilai default: 128. Satuan: MB.

/*+ HUDI_MAX_SPLIT_SIZE=128*/

HUDI_SPLIT_PARALLEL_GENERATION_ENABLED

Menentukan apakah akan menghasilkan split secara paralel. Nilai yang valid:

  • true (bawaan)

  • false

/*+ HUDI_SPLIT_PARALLEL_GENERATION_ENABLED=true*/

HUDI_DATA_SKIPPING_ENABLED

Menentukan apakah akan menggunakan statistik di Hudi MetaTable untuk melewati split yang tidak perlu dibaca guna meningkatkan kinerja query. Nilai yang valid:

  • true

  • false (bawaan)

/*+ HUDI_DATA_SKIPPING_ENABLED=true*/

HUDI_SPLIT_ASYNC_GENERATION_ENABLED

Menentukan apakah akan secara asinkron menghasilkan Hudi splits selama pembuatan rencana eksekusi. Nilai yang valid:

  • true (default)

  • false

/*+ HUDI_SPLIT_ASYNC_GENERATION_ENABLED=true*/

Tabel eksternal ApsaraDB RDS for MySQL

JDBC_SCAN_SPLITS

Jumlah split yang terlibat dalam operasi TableScan berbasis Java Database Connectivity (JDBC). Nilai valid: 1 hingga 100. Nilai default: 1.

/*+ JDBC_SCAN_SPLITS=1*/

Gunakan tabel eksternal untuk mengimpor data ke Data Lakehouse Edition

JDBC_SPLIT_COLUMN

Nama kolom yang digunakan untuk membagi split saat Anda membaca tabel eksternal ApsaraDB RDS for MySQL.

/*+ JDBC_SPLIT_COLUMN=column1*/

JDBC_INSERT_DIRECTLY

Menentukan apakah akan langsung menulis data ke tabel tujuan. Secara default, ketika Anda menggunakan tabel eksternal ApsaraDB RDS for MySQL untuk menulis data, data ditulis terlebih dahulu ke tabel sementara dan kemudian ke tabel tujuan. Anda dapat menggunakan petunjuk /*+ JDBC_INSERT_DIRECTLY=true*/ untuk mengonfigurasi data agar langsung ditulis ke tabel tujuan. Namun, jika terjadi kesalahan selama proses penulisan, tabel tujuan akan memiliki data kotor. Nilai yang valid:

  • true

  • false (default)

/*+ JDBC_INSERT_DIRECTLY=true*/

Tabel eksternal Tablestore

OTS-INSERT-AS-UPDATE

Menentukan apakah akan mengganti pernyataan UPDATE dengan pernyataan INSERT. Nilai yang valid:

  • true

  • false (default)

/*+ OTS-INSERT-AS-UPDATE=true*/

Kueri dan impor data Tablestore

Tabel eksternal MaxCompute

ODPS_SPLIT_LIMIT

Jumlah maksimum split yang diizinkan saat Anda menggunakan Tunnel untuk membaca data. Nilai valid: 1 hingga 1.000. Nilai default: 1.000.

/*+ ODPS_SPLIT_LIMIT=1000*/

Gunakan tabel eksternal untuk mengimpor data ke Data Lakehouse Edition

IGNORE_PARTITION_CACHE

Menentukan apakah akan langsung meminta metadata partisi dari tabel MaxCompute alih-alih menggunakan metadata partisi yang di-cache jika kueri dijalankan berdasarkan kondisi partisi. Nilai yang valid:

  • true

  • false (default)

/*+ IGNORE_PARTITION_CACHE=true*/

ROWS_PER_SPLIT

Jumlah maksimum baris yang dapat dimuat oleh satu split saat Anda menggunakan Tunnel untuk membaca data. Nilai valid: 10.000 hingga 500.000. Nilai default: 500.000.

/*+ ROWS_PER_SPLIT=500000*/

STORAGE_API_ENABLED

Menentukan apakah akan menggunakan MaxCompute Operasi API penyimpanan untuk membaca data MaxCompute. Dibandingkan dengan layanan Tunnel tradisional, API Penyimpanan MaxCompute sangat meningkatkan kinerja pembacaan.

Nilai yang valid:

  • true

  • false (default)

/*+ STORAGE_API_ENABLED=true*/

APLIT_BYTE_SIZE

Ukuran maksimum dari satu split saat Anda menggunakan MaxCompute Storage API untuk membaca data. Nilai default: 256. Satuan: MB.

/*+ APLIT_BYTE_SIZE=256*/

MAX_BATCH_ROW_COUNT

Jumlah maksimum baris yang dapat dimuat oleh satu split saat Anda menggunakan MaxCompute Storage API untuk membaca data. Nilai default: 1024.

/*+ MAX_BATCH_ROW_COUNT=1024*/

PAGE_BATCH_SIZE

Jumlah maksimum baris yang dapat dimuat setiap halaman saat Anda menggunakan MaxCompute Storage API untuk membaca data. Nilai default: 1024.

/*+ PAGE_BATCH_SIZE=1024*/

MAKS_ALOKASI_PER_SPLIT

Memori puncak maksimum yang dapat dialokasikan pada level split saat Anda menggunakan MaxCompute Storage API untuk membaca data. Nilai default: 300. Satuan: MB.

/*+ MAX_ALLOCATION_PER_SPLIT=300*/

ASYNC_GET_SPLIT

Menentukan apakah akan mengirimkan tugas secara asinkron ke antrian untuk dieksekusi dengan mengoptimalkan kinerja pemisahan beban saat MaxCompute menghasilkan rencana eksekusi. Nilai yang valid:

  • true

  • false (default)

Catatan

Parameter ini hanya didukung untuk kluster AnalyticDB for MySQL versi V3.1.10.1 atau lebih baru.

/*+ ASYNC_GET_SPLIT=true*/

Kontrol aliran pemisah

SPLIT_FLOW_CONTROL_ENABLED

Menentukan apakah akan mengaktifkan fitur kontrol aliran pemisahan. AnalyticDB for MySQL memungkinkan Anda mengonfigurasi kuota untuk pemindaian pemisahan bersamaan pada sebuah node untuk mencegah ketidakstabilan node yang disebabkan oleh pemindaian pemisahan bersamaan yang berlebihan dan penggunaan sumber daya. Nilai yang valid:

  • true (default)

  • false

/*+ SPLIT_FLOW_CONTROL_ENABLED=true*/ SELECT * FROM table;

Pengendalian aliran terpisah

MIN_RUNNING_SPLITS_LIMIT_PER_TASK

Kuota minimum untuk pemindaian split konkuren dalam sebuah tugas. Nilai default: 1. Nilai valid berkisar dari 1 hingga nilai parameter TARGET_RUNNING_SPLITS_LIMIT_PER_TASK.

/*+ MIN_RUNNING_SPLITS_LIMIT_PER_TASK=10*/SELECT * FROM orders;

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK

Kuota antara untuk pemindaian terpisah bersamaan dalam sebuah tugas. Kuota aktual disesuaikan secara dinamis berdasarkan nilai parameter ini. Nilai default: 32. Nilai valid berkisar dari nilai parameter MIN_RUNNING_SPLITS_LIMIT_PER_TASK hingga nilai parameter MAX_RUNNING_SPLITS_LIMIT_PER_TASK.

/*+ TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=32*/SELECT * FROM adb_test;

MAX_RUNNING_SPLITS_LIMIT_PER_TASK

Kuota maksimum untuk pemindaian split konkuren dalam sebuah tugas. Nilai default: 64. Nilai dari parameter ini harus lebih besar dari nilai parameter TARGET_RUNNING_SPLITS_LIMIT_PER_TASK.

/*+ MAX_RUNNING_SPLITS_LIMIT_PER_TASK=100*/SELECT * FROM adb_test;

Cache paging (optimasi kinerja untuk kueri halaman dalam yang mendalam)

PAGING_ID

Mengaktifkan fitur cache paging. Anda harus menentukan parameter paging_id untuk mengidentifikasi tabel cache yang dibuat untuk sekumpulan kueri paging. Kueri-kueri paging berbagi pola SQL yang sama tetapi melibatkan nilai-nilai berbeda dalam klausa LIMIT dan OFFSET.

/*PAGING_ID=paging123*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

Cache paging (optimasi kinerja untuk kueri paging dalam)

PAGING_CACHE_ENABLED

Menentukan apakah akan mengaktifkan fitur cache paging. Sistem secara otomatis menghasilkan ID paging berdasarkan pola SQL untuk mengidentifikasi tabel cache yang dibuat untuk sekumpulan kueri paging. Kueri-kueri paging berbagi pola SQL yang sama tetapi melibatkan nilai-nilai berbeda dalam klausa LIMIT dan OFFSET. Nilai valid:

  • true

  • false (default)

/*PAGING_CACHE_ENABLED=true*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

PAGING_CACHE_VALIDITY_INTERVAL

Periode validitas tabel cache. Setelah periode validitas berakhir, tabel cache menjadi tidak valid. Jika tabel cache tidak diakses dalam waktu 1 jam setelah menjadi tidak valid, sistem secara otomatis menghapus tabel cache. Nilainya harus bilangan bulat lebih besar dari 0. Unit: detik. Parameter ini harus digunakan bersama dengan parameter paging_cache_enabled.

/*PAGING_CACHE_ENABLED=true,PAGING_CACHE_VALIDITY_INTERVAL=300*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

INVALIDATE_PAGING_CACHE

Menentukan apakah akan membersihkan data cache kueri paging yang ditentukan oleh pola SQL. Nilai valid:

  • true

  • false (default)

Parameter ini harus digunakan bersama dengan parameter paging_id atau paging_cache_enabled.

/*PAGING_CACHE_ENABLED=true,INVALIDATE_PAGING_CACHE=true*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

Menentukan mesin tabel

RC_DDL_ENGINE_REWRITE_XUANWUV2

Menentukan apakah akan mengatur mesin tabel ke XUANWU_V2 untuk tabel yang dibuat dengan mengeksekusi pernyataan SQL saat ini. Nilai valid:

  • true (default): mengatur mesin tabel ke XUANWU_V2 untuk tabel yang dibuat dengan mengeksekusi pernyataan SQL saat ini sambil mempertahankan mesin tabel dari tabel yang ada tetap tidak berubah. Bahkan jika Anda menentukan ENGINE=XUANWU saat membuat tabel, mesin tabel tabel secara otomatis diubah menjadi XUANWU_V2.

  • false: mengatur mesin tabel ke XUANWU untuk tabel yang dibuat dengan mengeksekusi pernyataan SQL saat ini sambil mempertahankan mesin tabel dari tabel yang ada tetap tidak berubah.

/*+ RC_DDL_ENGINE_REWRITE_XUANWUV2=true */

Tentukan mesin tabel

Lainnya

RESOURCE_GROUP

Grup sumber daya yang digunakan oleh kueri. Jika Anda tidak menentukan grup sumber daya, grup sumber daya yang terkait dengan akun database digunakan. Jika akun database tidak terkait dengan grup sumber daya, grup sumber daya default digunakan.

/*+ RESOURCE_GROUP=my_group_name*/

Tidak ada

DML_EXCEPTION_TO_NULL_ENABLED

Menentukan apakah akan menulis nilai NULL tanpa melempar pengecualian jika data yang ditulis oleh pernyataan INSERT SELECT mengandung nilai tidak valid. Nilai valid:

  • true: menulis nilai NULL tanpa melempar pengecualian.

  • false (default): melempar pengecualian.

/*+ DML_EXCEPTION_TO_NULL_ENABLED=true*/

DISPLAY_HINT

Pengenal kueri, seperti string yang menentukan pengguna yang mengeksekusi kueri.

/*+ DISPLAY_HINT=from_user_123*/

FAQ

Bagaimana cara menghapus pengaturan parameter ADB_CONFIG?

Jika Anda menentukan nilai parameter menggunakan SET ADB_CONFIG key=value;, Anda dapat menggunakan metode berikut untuk mengembalikan nilai parameter ke nilai default.

Metode

Contoh

SET ADB_CONFIG REMOVE key;
SET ADB_CONFIG REMOVE QUERY_TIMEOUT; --Kembalikan periode timeout ke nilai default.

Jika pernyataan SQL di atas berhasil, Anda dapat mengeksekusi pernyataan SHOW ADB_CONFIG KEY=key; untuk memeriksa apakah nilai parameter telah dikembalikan ke nilai default.