Mesin MaxQA (MaxCompute Query Accelerator) mengoptimalkan performa kueri untuk skenario near real-time. Mesin ini beroperasi dalam resource pool komputasi kueri khusus dan mengoptimalkan control plane, query optimizer, execution engine, storage engine, serta mekanisme caching. MaxQA sangat ideal untuk skenario BI, analisis interaktif, dan data warehouse near real-time yang memerlukan latensi rendah serta stabilitas tinggi.
Ketersediaan Layanan
Linimasa ketersediaan berdasarkan wilayah
Wilayah | Ketersediaan umum |
China (Hangzhou) | 24 November 2025 |
China (Shanghai) | |
China (Beijing) | |
China (Shenzhen) | |
China (Ulanqab) | |
China (Hong Kong) | 27 November 2025 |
Japan (Tokyo) | |
Singapore | |
Indonesia (Jakarta) | |
Germany (Frankfurt) | |
US (Silicon Valley) | |
US (Virginia) | |
UAE (Dubai) |
Catatan
Kelompok kuota interaktif Baru secara default menggunakan mode MaxQA. Instans MaxQA yang sudah ada tidak terpengaruh.
Operasi dasar MaxQA
Membuat instans MaxQA
MaxQA hanya tersedia untuk proyek MaxCompute yang menggunakan metode penagihan subscription. Untuk membuat instans MaxQA:
Login ke Konsol MaxCompute, lalu pilih wilayah di pojok kiri atas.
Pada panel navigasi sebelah kiri, pilih .
Pada halaman Quotas, klik Quota Configuration pada kolom Actions untuk kuota target.
Konfigurasi dasar
Pada halaman Quota Configuration, pilih tab Basic Configurations, lalu klik Edit Basic Configurations.
Klik Add Level-2 Quota, masukkan Quota Name, dan pilih Interactive untuk Type.
Saat menggunakan MaxQA, tentukan Quota Name. Sebaiknya gunakan nama yang berkaitan dengan atribut bisnis Anda untuk membedakan antarinstans.
Kuota Interactive dikhususkan untuk menjalankan pekerjaan akselerasi kueri (MaxQA).
Klik OK.
Setelah instans dibuat, status kelompok kuota interaktif terkait akan berubah menjadi Starting. Tunggu selama 5 hingga 8 menit hingga status berubah menjadi Running. Setelah itu, Anda dapat menggunakan instans tersebut.
Menghapus instans MaxQA
Pada halaman Quotas, klik Quota Configuration pada kolom Actions untuk kuota target.
Pada halaman Quota Configuration, pilih tab Basic Configurations, lalu klik Delete pada kolom Actions untuk kuota interaktif target.
Proses penghapusan berjalan di latar belakang. Halaman tidak akan menampilkan pembaruan status atau progres penghapusan.
Menskalakan instans MaxQA
Anda dapat melakukan scale out atau scale in pada kelompok kuota interaktif sesuai kebutuhan bisnis:
Pada halaman Quotas, klik Quota Configuration pada kolom Actions untuk kuota target.
Pada halaman Quota Configuration, pilih tab Basic Configurations, lalu klik Edit Basic Configurations.
Klik Add Level-2 Quota dan sesuaikan Reserved CUs [minCU,maxCU] dari kelompok kuota interaktif yang ingin Anda skala naik atau turun. Nilai yang lebih besar menunjukkan scale-up, sedangkan nilai yang lebih kecil menunjukkan scale-down.
CatatanKenaikan minimum untuk CU adalah 25.
CU minimum harus setidaknya 25. Untuk stabilitas, atur CU minimum ke 50 atau lebih. Jika resource interaktif tidak diperlukan, atur nilainya ke 0 atau hapus kelompok kuota tersebut.
Batasan kuota interaktif:
Elastically Reserved CUs tidak didukung untuk kuota interaktif.
Untuk memastikan performa dan stabilitas akselerasi kueri, atur CU minimum sama dengan CU maksimum pada kuota interaktif.
Klik OK.
Penyesuaian reserved CU untuk kelompok kuota interaktif akan dimulai.
Status Scaling Out atau Scaling In akan muncul di kolom Actions untuk kelompok kuota interaktif. Proses scaling out memakan waktu sekitar 5 hingga 8 menit. Proses scaling in mungkin memakan waktu lebih lama, tergantung pada kapan pekerjaan yang sedang berjalan selesai. Dalam skenario terburuk, sistem mungkin perlu menunggu pekerjaan pada mesin yang akan dihapus mengalami timeout sebelum operasi scale-in dimulai. Pekerjaan Anda tidak akan terpengaruh selama operasi penskalaan berlangsung.
Mengonfigurasi penskalaan berbasis waktu untuk MaxQA
Anda dapat mengonfigurasi rencana penskalaan berbasis waktu untuk penjadwalan penskalaan:
Pada halaman Quotas, klik Quota Configuration pada kolom Actions untuk kuota target.
Pada halaman Quota Configuration, pilih tab Scaling Configuration.
Mengonfigurasi rencana penskalaan berbasis waktu
Pada tab Scaling Configuration, klik Add Configuration Plan. Pada kotak dialog Add Configuration Plan, masukkan Configuration Plan Name dan konfigurasikan Reserved CUs [minCU,maxCU] untuk kuota level-2.
Untuk mengubah rencana konfigurasi yang ada:
Pada tab Scaling Configuration, klik Edit pada kolom Actions dari rencana target untuk memperbaruinya.
Mengonfigurasi jadwal berbasis waktu
Pada tab Scaling Configuration, klik Edit Time Plan di bagian Scheduled Scaling Management.
Klik Add Effective Period, lalu pilih Effective start time dan Configuration Plan.
Hal ini memungkinkan Anda mengaktifkan rencana konfigurasi kuota yang berbeda pada waktu yang berbeda dalam sehari. Untuk informasi selengkapnya, lihat Mengelola resource komputasi dan kuota.
Kebijakan penjadwalan
Saat mengirimkan pekerjaan, tentukan nama kelompok kuota interaktif di client atau string koneksi JDBC. Pekerjaan tersebut kemudian akan dijadwalkan untuk berjalan pada instans MaxQA yang sesuai.
Kebijakan fallback
MaxQA mendukung kebijakan fallback. Saat diaktifkan, tugas MaxQA yang gagal karena pengecualian sistem secara otomatis akan kembali ke mode batch. Anda dapat mengaktifkan kebijakan fallback dengan cara berikut:
JDBC (versi 3.10.7 atau lebih baru): Fallback diaktifkan secara default. Atur disableFallback untuk menonaktifkannya, dan gunakan fallbackQuota untuk menentukan kuota target.
Java SDK:
MaxQAConnInfo.builder().fallbackInfo(FallbackInfo.enable("<offline_quota>")).build()DataWorks: Konfigurasikan aturan fallback di pengaturan penjadwalan DataStudio. Untuk informasi selengkapnya, lihat Menggunakan DataWorks DataStudio.
Metode akses
Anda dapat mengakses MaxQA menggunakan metode berikut:
Menggunakan client MaxCompute
Instal dan konfigurasikan client MaxCompute (odpscmd) v0.51.1 atau lebih baru. Untuk informasi selengkapnya, lihat Terhubung menggunakan client lokal (odpscmd).
Dalam direktori
confpada instalasi client, ubah fileodps_config.inidengan menambahkan perintah berikut pada baris terakhir.-- Aktifkan caching informasi koneksi MaxQA. enable_interactive_mode=true enable_quota_cache=true(Opsional)Jalankan file skrip di direktori
binuntuk memulai client MaxCompute.PentingUntuk sistem Linux/macOS: Jalankan file skrip
odpscmd.Windows: Klik dua kali file
odpscmd.bat.
Sebelum menjalankan pekerjaan, eksekusi perintah berikut. Pekerjaan selanjutnya dari client akan berjalan dalam mode MaxQA pada kelompok kuota interaktif yang sesuai.
USE QUOTA <name_of_the_interactive_quota_group>;
Menggunakan DataWorks DataStudio
MaxQA hanya didukung di ruang kerja yang menggunakan DataStudio versi baru, yang saat ini dalam tahap pratinjau publik. Jika Anda menggunakan DataStudio versi lama, Anda harus melakukan upgrade ke versi baru untuk menggunakan MaxQA. Untuk informasi selengkapnya, lihat Mengaktifkan DataStudio versi baru.
Login ke Konsol DataWorks, lalu pilih wilayah di pojok kiri atas.
Pada panel navigasi sebelah kiri, pilih .
Select Workspace, lalu klik Go to Data Studio.
Pada halaman Data Development, klik Run Configuration di sebelah kanan.
Pada halaman Debugging Configurations, pilih resource proyek MaxCompute yang terikat ke ruang kerja ini untuk Computing Resource. Tabel berikut menjelaskan cara memilih kuota komputasi untuk setiap skenario:
CatatanLingkungan eksekusi: Pekerjaan berjalan di modul analisis data atau pengembangan data. Fallback interaktif-ke-offline tidak berlaku.
Lingkungan eksekusi fallback: Pekerjaan berjalan di modul penjadwalan. Jika mode interaktif ditentukan, Anda juga dapat mengonfigurasi fallback ke mode offline jika mode interaktif gagal.
Pilihan Kuota Komputasi
Kuota / Aturan Routing yang Ditentukan
Mode Eksekusi yang Diharapkan
Konfigurasi Penjadwalan dan Fallback yang Diharapkan
Kuota default proyek
Jika aturan routing offline ada, aturan routing tersebut berlaku. Aturan routing interaktif tidak berlaku.
Kuota default proyek adalah kuota offline. Pekerjaan berjalan pada kuota offline.
Pekerjaan berjalan pada kuota offline. Fallback tidak berlaku.
Kuota yang ditentukan
Pilih kuota offline.
Pekerjaan berjalan pada kuota offline.
Pekerjaan berjalan pada kuota offline. Fallback tidak berlaku.
Kuota yang ditentukan
Pilih kuota interaktif.
Pekerjaan berjalan pada instans MaxQA yang sesuai dengan kelompok kuota interaktif.
Dalam Konfigurasi Penjadwalan: jika fallback dinonaktifkan, tidak ada fallback yang dicoba; jika kuota default proyek dipilih, kuota default proyek digunakan untuk fallback (aturan routing offline tidak berlaku saat fallback); jika kuota tertentu dipilih, kuota offline yang ditentukan digunakan untuk fallback.
Aturan routing mode interaktif
Hanya aturan routing offline yang ada. Tidak ditemukan aturan routing interaktif yang cocok.
Error dilaporkan:
Cannot find MCQA quota to start connection on project *****. Untuk membuatnya, lihat Menggunakan kuota untuk resource komputasi.Jika fallback dinonaktifkan, tidak ada fallback yang dicoba; jika kuota default proyek dipilih, kuota default proyek digunakan untuk fallback; jika kuota tertentu dipilih, kuota offline yang ditentukan digunakan untuk fallback.
Aturan routing mode interaktif
Terdapat aturan routing interaktif yang cocok.
Pekerjaan berjalan pada instans MaxQA yang sesuai dengan kelompok kuota interaktif.
Setelah konfigurasi selesai, pekerjaan pada node SQL akan dijadwalkan ke instans MaxQA yang sesuai dengan kelompok kuota interaktif.
Untuk informasi selengkapnya, lihat Membuat node SQL MaxCompute di DataWorks.
Menggunakan SQL Analysis di konsol
Login ke Konsol MaxCompute, lalu pilih wilayah di pojok kiri atas.
Pada panel navigasi sebelah kiri, pilih .
Setelah memasukkan Pernyataan SQL Anda di editor SQL, klik Run Configurations di sebelah kanan untuk mengonfigurasi Project dan Computing Quota.
Pilih resource komputasi yang sesuai dengan kelompok kuota interaktif.
Setelah konfigurasi selesai, pekerjaan pada halaman SQL Analysis akan dijadwalkan ke instans MaxQA yang sesuai dengan kelompok kuota interaktif.
Untuk informasi selengkapnya, lihat SQL Analysis.
Menggunakan MaxCompute Studio
Pastikan Anda telah menginstal MaxCompute Studio dan menghubungkannya ke proyek MaxCompute Anda. Untuk menggunakan MaxQA, jalankan skrip:
Instal dan konfigurasikan MaxCompute Studio v4.3.2 atau lebih baru. Untuk informasi selengkapnya, lihat Menginstal MaxCompute Studio.
Buat proyek MaxCompute Studio dan hubungkan ke proyek MaxCompute Anda. Untuk informasi selengkapnya, lihat Mengelola koneksi proyek.
Buat skrip SQL MaxCompute di dalam proyek. Untuk informasi selengkapnya, lihat Mengembangkan dan mengirimkan skrip SQL.
Dalam skrip SQL MaxCompute, masukkan Pernyataan SQL. Dari daftar drop-down Execution Mode, pilih MaxQA.
Klik tombol Specify additional parameters
, masukkan nama kelompok kuota interaktif, lalu klik OK.Jalankan skrip. Pekerjaan kini menggunakan fitur akselerasi kueri MaxQA.
Menggunakan JDBC
Untuk mengaktifkan MaxQA saat terhubung ke MaxCompute menggunakan JDBC: Untuk informasi selengkapnya tentang koneksi JDBC, lihat Panduan pengguna.
Unduh kode sumber dengan dukungan MaxQA.
Konfigurasikan dependensi POM di Maven.
<dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-jdbc</artifactId> <version>${Latest Version}</version> </dependency>PentingDalam kode di atas,
Latest Versionadalah placeholder. Ganti dengan nomor versi SDK tertentu agar proyek berhasil dikompilasi. Kunjungi GitHub Releases untuk melihat semua versi odps-jdbc yang telah dirilis. Sebaiknya gunakan versi terbaru. Format nomor versi adalah X.X.X.Buat program Java dari kode sumber, sesuaikan dengan lingkungan Anda. Untuk informasi selengkapnya, lihat MaxCompute JDBC. Kode berikut memberikan contoh.
import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class MaxCompute { private static final String DRIVER_NAME = "com.aliyun.odps.jdbc.OdpsDriver"; // AccessKey ID dari Akun Alibaba Cloud memiliki izin untuk memanggil semua Operasi API. Ini adalah operasi berisiko tinggi. Sebaiknya buat dan gunakan RAM user untuk memanggil Operasi API atau melakukan O&M rutin. Untuk membuat RAM user, login ke Konsol RAM. // Dalam contoh ini, AccessKey ID dan AccessKey Secret disimpan dalam Variabel lingkungan. Anda juga dapat menyimpannya dalam file konfigurasi sesuai kebutuhan bisnis. // Sangat disarankan untuk tidak melakukan hard-code AccessKey ID dan AccessKey Secret dalam kode Anda. Hal ini menimbulkan risiko keamanan. private static String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); private static String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); public static void main(String[] args) throws SQLException { try { Class.forName(DRIVER_NAME); } catch (ClassNotFoundException e) { e.printStackTrace(); System.exit(1); } Connection conn = DriverManager.getConnection( "jdbc:odps:https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000", MaxCompute.accessId, MaxCompute.accessKey); // buat tabel Statement stmt = conn.createStatement(); final String tableName = "jdbc_test11"; stmt.execute("DROP TABLE IF EXISTS " + tableName); stmt.execute("CREATE TABLE " + tableName + " (key BIGINT, value STRING)"); // dapatkan meta data DatabaseMetaData metaData = conn.getMetaData(); System.out.println("product = " + metaData.getDatabaseProductName()); System.out.println("jdbc version = " + metaData.getDriverMajorVersion() + ", " + metaData.getDriverMinorVersion()); ResultSet tables = metaData.getTables(null, "default", tableName, null); while (tables.next()) { String name = tables.getString("TABLE_NAME"); System.out.println("inspecting table: " + name); ResultSet columns = metaData.getColumns(null, null, name, null); while (columns.next()) { System.out.println( columns.getString("COLUMN_NAME") + "\t" + columns.getString("TYPE_NAME") + "(" + columns.getInt("DATA_TYPE") + ")"); } columns.close(); } tables.close(); stmt.close(); conn.close(); } }
Kode berikut menunjukkan contoh string koneksi JDBC.
// your_quota_group_name adalah nama kelompok kuota interaktif yang ingin Anda gunakan.
jdbc:odps:<MaxCompute_endpoint>?
project=<MaxCompute_project_name>&interactiveMode=true"aName=your_quota_group_name&enableLimit=false&enableOdpsLogger=trueParameter | Deskripsi |
MaxCompute_endpoint | Titik akhir wilayah tempat layanan MaxCompute berada. Untuk informasi selengkapnya, lihat Titik Akhir. |
MaxCompute_project_name | Nama proyek MaxCompute. |
interactiveMode | Sakelar untuk fitur MaxQA. Atur ke |
quotaName | Nama kelompok kuota interaktif yang ingin Anda gunakan. |
enableLimit | Menentukan apakah mengizinkan pengunduhan lebih dari 10.000 baris data. |
enableOdpsLogger | Mengaktifkan pencetakan log. Disarankan jika SLF4J tidak dikonfigurasi. |
Menggunakan alat BI
Anda dapat terhubung ke MaxQA menggunakan alat BI seperti Tableau, Quick BI, Guandata BI, dan SQL Workbench/J.
Tableau
Tambahkan properti interactiveMode=true dan properti quotaName=your_quota_nick_name ke jalur URL server untuk mengaktifkan fitur MaxQA. Sebaiknya tambahkan juga properti enableOdpsLogger=true untuk mencetak log. Untuk langkah-langkah terperinci, lihat Mengonfigurasi JDBC untuk menggunakan Tableau.
Format URL:
<MaxCompute_endpoint>?project=<MaxCompute_project_name>&charset=UTF-8&interactiveMode=true"aName=<your_quota_group_name>&autoSelectLimit=1000000000Parameter
Wajib
Deskripsi
MaxCompute_endpoint
Ya
Titik akhir wilayah tempat layanan MaxCompute berada. Untuk informasi selengkapnya, lihat Titik Akhir. Misalnya, titik akhir untuk wilayah China (Hangzhou) adalah
https://service.cn-hangzhou.maxcompute.aliyun.com/api.MaxCompute_project_name
Ya
Nama proyek MaxCompute, misalnya
maxqatomax.your_quota_group_name
Ya
Nama kelompok kuota interaktif, misalnya
maxfor1.Pada tab General di kotak dialog koneksi Alibaba MaxCompute, masukkan URL yang telah dibuat ke bidang Server. Masukkan AccessKey ID Anda di bidang Username dan AccessKey Secret Anda di bidang Password. Kemudian, klik Sign In.
Contoh URL:
https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000
Quick BI
Login ke Konsol Quick BI.
Pada panel navigasi sebelah kiri, pilih Data Sources, dan di pojok kanan atas, klik Create Data Source.
Pada halaman Create data source, pilih MaxCompute.
Pada halaman Configure connection, untuk Quota computing resource group, masukkan nama resource komputasi Kuota MaxQA untuk mengaktifkan fitur MaxQA dan menggunakan resource komputasi MaxQA. Untuk informasi selengkapnya, lihat Koneksi Quick BI ke MaxCompute.
Misalnya, pada bidang Quota Computing Resource Group, masukkan maxqa (nama Kuota MaxQA).
Guandata BI
Tambahkan driver.
Unggah MaxCompute JDBC Driver v3.8.5 atau lebih baru ke Guandata BI. Untuk informasi selengkapnya, lihat MaxCompute JDBC dan Catatan Rilis.
Di pojok kanan atas Konsol Guandata BI, klik ikon
untuk membuka Management Center.Klik System Settings > General Settings lalu buka halaman Drivers and Connectors.
Pada tab Driver Management, klik Add Driver, masukkan Driver Name, dan simpan konfigurasi.
Klik nama driver baru. Di bagian Driver List, klik Upload File untuk mengunggah driver MaxCompute JDBC. Kemudian, pilih com.aliyun.odps.jdbc.OdpsDriver untuk Driver dan klik Apply.
Buat akun data untuk terhubung ke Sumber data MaxCompute menggunakan MaxQA.
Pada bilah menu atas, klik Data Preparation.
Pada panel sebelah kiri, klik tab Data Account. Di pojok kanan atas, klik New Data Account dan konfigurasikan akun sesuai petunjuk.
Parameter
Deskripsi
Pilih konektor
Pilih MaxCompute.
Konfigurasi akun data
Metode koneksi
Pilih JDBC URL.
Logon ID
AccessKey ID dari Akun Alibaba Cloud Anda.
Logon Key
AccessKey Secret dari Akun Alibaba Cloud Anda.
JDBC URL
Format URL untuk string koneksi MaxQA JDBC adalah sebagai berikut:
jdbc:odps:<maxcompute_endpoint>?project=<maxcompute_projectName>&charset=UTF-8&interactiveMode=true"aName=<your_quota_nickName>&autoSelectLimit=1000000000.Tabel berikut menjelaskan parameter-parameter tersebut.
maxcompute_endpoint: Titik akhir wilayah tempat layanan MaxCompute berada. Untuk informasi selengkapnya, lihat Titik Akhir. Misalnya, titik akhir untuk wilayah China (Hangzhou) adalahhttps://service.cn-hangzhou.maxcompute.aliyun.com/api.maxcompute_projectName: Nama proyek MaxCompute, misalnyamaxqatomax.your_quota_nickName: Nama kelompok kuota interaktif yang akan digunakan, misalnyamaxfor1. Untuk informasi tentang cara membuat kelompok kuota interaktif, lihat Resource komputasi - Manajemen Kuota.
Contoh:
jdbc:odps:https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000Versi SQL
Pilih 2.0/hive compatibility mode.
Koneksi maksimum
Nilai default adalah 16.
driver
Pilih Custom lalu pilih driver yang telah Anda buat.
Klik Test Connection. Setelah pesan Connection Successful muncul, klik Next.
Konfirmasikan informasi akun data, masukkan Display Name kustom, lalu klik Confirm and Create.
SQL Workbench/J
Dalam konfigurasi profil, ubah URL JDBC untuk mengaktifkan MaxQA di SQL Workbench/J. Untuk informasi selengkapnya, lihat Mengonfigurasi SQL Workbench/J menggunakan JDBC.
Format URL:
jdbc:odps:<MaxCompute_endpoint>? project=<MaxCompute_project_name>&charset=UTF-8&interactiveMode=true"aName=<your_quota_group_name>&autoSelectLimit=1000000000Parameter
Wajib
Deskripsi
MaxCompute_endpoint
Ya
Titik akhir untuk wilayah layanan MaxCompute. Untuk informasi selengkapnya, lihat Titik Akhir. Misalnya, untuk wilayah China (Hangzhou), titik akhirnya adalah
https://service.cn-hangzhou.maxcompute.aliyun.com/api.MaxCompute_project_name
Ya
Nama proyek MaxCompute, misalnya
maxqatomax.your_quota_group_name
Ya
Nama kelompok kuota interaktif yang ingin Anda gunakan, misalnya
maxfor1.Contoh URL:
jdbc:odps:https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000
Menggunakan Java SDK
Untuk informasi selengkapnya tentang Java SDK, lihat Pengantar Java SDK.
Konfigurasikan dependensi POM di Maven. Kode berikut menunjukkan contohnya.
<dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-sdk-core</artifactId> <version>${Latest Version}</version> </dependency>PentingDalam kode di atas,
Latest Versionadalah placeholder. Anda harus menggantinya dengan nomor versi SDK tertentu agar proyek berhasil dikompilasi. Kunjungi GitHub Releases untuk melihat semua versi odps-sdk-core yang telah dirilis. Sebaiknya gunakan versi terbaru. Format nomor versi adalah X.X.X-public.Buat program Java. Kode berikut memberikan contoh.
import com.aliyun.odps.Odps; import com.aliyun.odps.OdpsException; import com.aliyun.odps.account.Account; import com.aliyun.odps.account.AliyunAccount; import com.aliyun.odps.sqa.ExecuteMode; import com.aliyun.odps.sqa.SQLExecutor; import com.aliyun.odps.sqa.SQLExecutorBuilder; import java.util.HashMap; import java.util.Map; public class MaxCompute { public static void main(String args[]) { // Atur informasi akun dan proyek. // AccessKey ID dari Akun Alibaba Cloud memiliki izin untuk memanggil semua Operasi API. Ini adalah operasi berisiko tinggi. Sebaiknya buat dan gunakan RAM user untuk memanggil Operasi API atau melakukan O&M rutin. Untuk membuat RAM user, login ke Konsol RAM. // Dalam contoh ini, AccessKey ID dan AccessKey Secret disimpan dalam Variabel lingkungan. Anda juga dapat menyimpannya dalam file konfigurasi sesuai kebutuhan bisnis. // Sangat disarankan untuk tidak melakukan hard-code AccessKey ID dan AccessKey Secret dalam kode Anda. Hal ini menimbulkan risiko keamanan. Account account = new AliyunAccount(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); Odps odps = new Odps(account); odps.setDefaultProject("maxqatomax"); odps.setEndpoint("https://service.cn-hangzhou.maxcompute.aliyun.com/api"); // Bersiap membangun SQLExecutor. SQLExecutorBuilder builder = SQLExecutorBuilder.builder(); SQLExecutor sqlExecutor = null; try { // Buat pelaksana yang menggunakan mode MaxQA secara default. // enableMcqaV2(true) mengaktifkan mode MaxQA sqlExecutor = builder.odps(odps) .executeMode(ExecuteMode.INTERACTIVE) .quotaName("maxfor1") .enableMcqaV2(true) .build(); // Jika diperlukan, Anda dapat meneruskan pengaturan kustom untuk kueri. Map<String, String> queryHint = new HashMap<>(); queryHint.put("odps.sql.mapper.split.size", "128"); // Kirimkan pekerjaan kueri. Anda dapat meneruskan petunjuk. sqlExecutor.run("select count(1) from test_table;", queryHint); // Logview dari pekerjaan kueri saat ini. System.out.println("Logview:" + sqlExecutor.getLogView()); // ID instans dari pekerjaan kueri saat ini. System.out.println("InstanceId:" + sqlExecutor.getQueryId()); } catch (OdpsException e) { e.printStackTrace(); } finally { if (sqlExecutor != null) { // Tutup pelaksana untuk melepaskan resource. sqlExecutor.close(); } } } }
Menggunakan PyODPS
PyODPS v0.12.1 dan yang lebih baru mendukung MaxQA. Kode berikut menunjukkan contohnya.
import os
from odps import ODPS
# Atur informasi akun dan proyek.
# Pastikan Variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET
# diatur ke AccessKey ID dan AccessKey Secret Anda.
# Tidak disarankan menggunakan string AccessKey ID dan AccessKey Secret secara langsung.
o = ODPS(
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
project='maxto****',
endpoint='https://service.cn-hangzhou.maxcompute.aliyun.com/api',
)
# Jika diperlukan, Anda dapat meneruskan pengaturan kustom untuk kueri.
hints = {"odps.sql.mapper.split.size": "128"}
inst = o.execute_sql_interactive(
'select count(1) from test_table',
use_mcqa_v2=True,
quota_name='maxfor1',
# Atur quota_name ke nama kelompok kuota interaktif untuk instans MaxQA.
hints=hints,
)
# Logview dari pekerjaan kueri saat ini.
print(inst.get_logview_address())
# ID instans dari pekerjaan kueri saat ini.
print(inst.id)
# Baca data baris demi baris.
with inst.open_reader() as reader:
result = [res.values for res in reader]Menggunakan PyODPS dengan SQLAlchemy atau alat pihak ketiga lain yang mendukung SQLAlchemy untuk akselerasi kueri
PyODPS v0.12.2 dan yang lebih baru mendukung kueri data MaxCompute melalui MaxQA menggunakan SQLAlchemy. Tentukan parameter berikut dalam string koneksi.
Parameter | Wajib | Deskripsi |
interactive_mode=v2 | Ya | Sakelar utama untuk fitur akselerasi kueri. |
quota_name=<YOUR_INTERACTIVE_QUOTA_GROUP_NAME> | Ya | Nama kelompok kuota interaktif. |
reuse_odps=true | Tidak | Mengaktifkan penggunaan ulang koneksi paksa. Untuk beberapa alat pihak ketiga, seperti Apache Superset, opsi ini dapat meningkatkan performa. |
Misalnya, string koneksi berikut mengaktifkan MaxQA dan penggunaan ulang koneksi paksa.
odps://<access_id>:<ACCESS_KEY>@<project>/?endpoint=<endpoint>"a_name=<YOUR_INTERACTIVE_QUOTA_GROUP_NAME>&interactive_mode=v2&reuse_odps=trueMemverifikasi apakah pekerjaan menggunakan mode MaxQA
Dari halaman Logview
Setelah pekerjaan selesai, buka halaman Logview-nya untuk memverifikasi bahwa pekerjaan tersebut berjalan dalam mode MaxQA. Periksa hal-hal berikut:
InstanceId MaxCompute berakhiran
_mcqa.Nama panggilan kuota adalah nama kuota interaktif yang ditentukan.
Pada tab Summary, mode eksekusi pekerjaan adalah
mcqa 2.0.
Dari halaman O&M Pekerjaan
Login ke Konsol MaxCompute, lalu pilih wilayah di pojok kiri atas.
Pada panel navigasi sebelah kiri, pilih .
Pada halaman Jobs, klik tab Regular Job List dan atur Job Type ke MCQA2 untuk melihat pekerjaan MaxQA dalam Time Range yang ditentukan.