Mesin MaxQA (MaxCompute Query Accelerator) mengoptimalkan performa kueri untuk skenario near real-time. Mesin ini beroperasi dalam kolam sumber daya komputasi kueri khusus dan secara komprehensif mengoptimalkan beberapa komponen, termasuk lapisan kontrol, pengoptimal kueri, mesin eksekusi, mesin penyimpanan, dan mekanisme cache, sehingga ideal untuk skenario BI, analisis interaktif, serta gudang data near real-time yang memerlukan latensi rendah dan stabilitas tinggi. Topik ini menjelaskan cara menggunakan mesin MaxQA.
Ketersediaan Layanan
Timeline ketersediaan berdasarkan wilayah
Wilayah | Pratinjau publik | Ketersediaan umum |
China (Hangzhou) | 17 Februari 2025 | 24 November 2025 |
China (Shanghai) | ||
China (Beijing) | ||
China (Shenzhen) | ||
China (Ulanqab) | ||
China (Hong Kong) | 5 Maret 2025 | 27 November 2025 |
Jepang (Tokyo) | 5 Maret 2025 | |
Singapura | 20 Maret 2025 | |
Indonesia (Jakarta) | ||
Jerman (Frankfurt) | 31 Maret 2025 | |
AS (Silicon Valley) | ||
AS (Virginia) |
Catatan
Kelompok kuota interaktif baru secara default menggunakan mode MaxQA. Instans MaxQA yang sudah ada tidak terpengaruh.
Operasi dasar MaxQA
Buat instans MaxQA
MaxQA hanya tersedia untuk proyek MaxCompute yang menggunakan metode penagihan langganan. Untuk membuat instans MaxQA, ikuti langkah-langkah berikut:
Login ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
Pada panel navigasi kiri, pilih .
Pada halaman Quotas, klik Quota Configuration pada kolom Actions dari kuota target.
Konfigurasi dasar
Pada halaman Quota Configuration, pilih tab Basic Configurations dan klik Edit Basic Configurations.
Klik Add Level-2 Quota, masukkan Quota Name, dan pilih Interactive untuk Type.
Saat menggunakan MaxQA, Anda perlu menentukan Quota Name. Disarankan menggunakan nama yang mencerminkan atribut bisnis agar lebih mudah membedakan antarinstans.
Kuota Interactive dikhususkan untuk menjalankan pekerjaan akselerasi kueri (MaxQA).
Klik OK.
Setelah instans dibuat, status kelompok kuota interaktif yang sesuai berubah menjadi Starting. Tunggu selama 5 hingga 8 menit hingga status berubah menjadi Running. Setelah itu, Anda dapat menggunakan instans tersebut.
Hapus instans MaxQA
Pada halaman Quotas, klik Quota Configuration pada kolom Actions dari kuota target.
Pada halaman Quota Configuration, pilih tab Basic Configurations, lalu klik Delete pada kolom Actions dari kuota interaktif target.
Operasi penghapusan berjalan di latar belakang. Halaman tidak menampilkan pembaruan status atau progres penghapusan.
Skalakan instans MaxQA
Anda dapat melakukan scale-out atau scale-in pada kelompok kuota interaktif sesuai kebutuhan bisnis. Untuk melakukannya, ikuti langkah-langkah berikut:
Pada halaman Quotas, klik Quota Configuration pada kolom Actions dari kuota target.
Pada halaman Quota Configuration, pilih tab Basic Configurations dan klik Edit Basic Configurations.
Klik Add Level-2 Quota dan sesuaikan Reserved CUs [minCU,maxCU] dari kelompok kuota interaktif yang ingin Anda skalakan naik atau turun. Nilai yang lebih besar menunjukkan scale-up, sedangkan nilai yang lebih kecil menunjukkan scale-down.
CatatanInkremen minimum untuk CUs adalah 25.
Jumlah minimum CUs harus 25 atau lebih. Jika Anda tidak lagi memerlukan sumber daya interaktif, atur nilainya menjadi
0atau hapus kelompok kuota yang sesuai.Anda tidak dapat mengatur Elastically Reserved CUs untuk kuota interaktif.
Klik OK.
Penyesuaian CUs yang dipesan untuk kelompok kuota interaktif dimulai.
Scaling Out atau Scaling In muncul di kolom Actions untuk kelompok kuota interaktif. Scaling out memerlukan waktu sekitar 5 hingga 8 menit. Scaling in mungkin memerlukan 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. Hal ini memastikan semua pekerjaan selesai sebelum operasi scale-in dimulai. Pekerjaan Anda tidak terpengaruh selama operasi penskalaan.
Konfigurasikan penskalaan berbasis waktu untuk MaxQA
Anda dapat mengonfigurasi rencana penskalaan berbasis waktu untuk penjadwalan penskalaan. Ikuti langkah-langkah berikut:
Pada halaman Quotas, klik Quota Configuration pada kolom Actions dari kuota target.
Pada halaman Quota Configuration, pilih tab Scaling Configuration.
Konfigurasikan 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 memodifikasi rencana konfigurasi yang sudah ada:
Pada tab Scaling Configuration, klik Edit pada kolom Actions dari rencana target untuk memperbarui rencana tersebut.
Konfigurasikan jadwal berbasis waktu
Pada tab Scaling Configuration, klik Edit Time Plan pada 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 lebih lanjut, lihat Kelola sumber daya komputasi dan kuota.
Kebijakan penjadwalan
Saat Anda mengirimkan pekerjaan, Anda harus secara eksplisit menentukan nama kelompok kuota interaktif di client atau string koneksi JDBC. Pekerjaan tersebut kemudian dijadwalkan untuk berjalan pada instans MaxQA yang sesuai.
Kebijakan fallback
MaxQA tidak mendukung kebijakan fallback otomatis. Jika pekerjaan MaxQA gagal karena batasan penggunaan atau alasan lain, Anda harus mengirim ulang secara manual atau mengirimnya ke kelompok kuota batch.
Metode akses
Anda dapat mengakses MaxQA menggunakan metode berikut:
Menggunakan client MaxCompute
Instal dan konfigurasikan client MaxCompute (odpscmd) versi 0.51.1 atau lebih baru. Untuk informasi lebih lanjut, lihat Terhubung menggunakan client lokal (odpscmd).
(Opsional) Di direktori
confinstalasi client, modifikasi fileodps_config.inidengan menambahkan perintah berikut di baris terakhir.-- Aktifkan caching informasi koneksi MaxQA. enable_quota_cache=trueJalankan file skrip di direktori
binuntuk memulai client MaxCompute.PentingUntuk sistem Linux/macOS: Jalankan file skrip
odpscmd.Windows: Klik ganda file
odpscmd.bat.
Sebelum menjalankan pekerjaan, eksekusi perintah berikut. Pekerjaan berikutnya yang dikirim dari client akan berjalan dalam mode MaxQA pada instans MaxQA yang sesuai dengan kelompok kuota interaktif.
USE QUOTA <nama_kelompok_kuota_interaktif>;Atau, Anda dapat menentukan instans MaxQA untuk pekerjaan saat ini pada tingkat sesi.
SET odps.task.wlm.quota=<nama_kelompok_kuota_interaktif>;
Menggunakan DataWorks DataStudio
MaxQA hanya didukung di ruang kerja yang menggunakan versi baru DataStudio, yang saat ini dalam pratinjau publik. Jika Anda menggunakan versi DataStudio yang lebih lama, Anda harus meningkatkan ke versi baru untuk menggunakan MaxQA. Untuk informasi lebih lanjut, lihat Aktifkan versi baru DataStudio.
Login ke Konsol DataWorks dan pilih wilayah di pojok kiri atas.
Pada panel navigasi kiri, pilih .
Select Workspace, lalu klik Go to Data Studio.
Pada halaman Pengembangan Data, klik Run Configuration di sebelah kanan.
Pada halaman Konfigurasi Debugging, pilih sumber daya proyek MaxCompute yang terikat dengan ruang kerja ini untuk Sumber Daya Komputasi. Tabel berikut menjelaskan cara memilih kuota komputasi untuk skenario yang berbeda:
CatatanLingkungan run: Pekerjaan berjalan di modul analisis data atau pengembangan data. Fallback interaktif-ke-offline tidak berlaku.
Lingkungan run fallback: Pekerjaan berjalan di modul penjadwalan. Jika mode interaktif ditentukan, Anda juga dapat mengonfigurasi fallback ke mode offline ketika mode interaktif gagal.
Pemilihan Kuota Komputasi
Kuota / Aturan Routing yang Ditentukan
Expected Run Mode
Konfigurasi Penjadwalan dan Fallback yang Diharapkan
Project default quota
Jika ada aturan routing offline, aturan 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.
Specified quota
Pilih kuota offline.
Pekerjaan berjalan pada kuota offline.
Pekerjaan berjalan pada kuota offline. Fallback tidak berlaku.
Specified quota
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 dalam fallback); jika kuota tertentu dipilih, kuota offline yang ditentukan digunakan untuk fallback.
Interactive mode routing rule
Hanya ada aturan routing offline. Tidak ditemukan aturan routing interaktif yang cocok.
Terjadi error:
Cannot find MCQA quota to start connection on project *****. Untuk membuatnya, lihat Menggunakan kuota untuk sumber daya 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.
Interactive mode routing rule
Ada aturan routing interaktif yang cocok.
Pekerjaan berjalan pada instans MaxQA yang sesuai dengan kelompok kuota interaktif.
Setelah menyelesaikan konfigurasi, pekerjaan yang berjalan pada node SQL dijadwalkan ke instans MaxQA yang sesuai dengan kelompok kuota interaktif.
Untuk informasi lebih lanjut, lihat Buat node SQL MaxCompute di DataWorks.
Menggunakan Analisis SQL di konsol
Login ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
Pada panel navigasi kiri, pilih .
Setelah memasukkan pernyataan SQL Anda di editor SQL, klik Run Configurations di sebelah kanan untuk mengonfigurasi Project dan Computing Quota.
Pilih sumber daya komputasi yang sesuai dengan kelompok kuota interaktif.
Setelah menyelesaikan konfigurasi, pekerjaan yang berjalan pada halaman Analisis SQL dijadwalkan ke instans MaxQA yang sesuai dengan kelompok kuota interaktif.
Untuk informasi lebih lanjut, lihat Analisis SQL.
Menggunakan MaxCompute Studio
Pastikan Anda telah menginstal MaxCompute Studio dan menghubungkannya ke proyek MaxCompute Anda. Untuk menggunakan MaxQA, jalankan skrip dengan mengikuti langkah-langkah berikut:
Instal dan konfigurasikan MaxCompute Studio versi 4.3.2 atau lebih baru. Untuk informasi lebih lanjut, lihat Instal MaxCompute Studio.
Buat proyek MaxCompute Studio dan hubungkan ke proyek MaxCompute Anda. Untuk informasi lebih lanjut, lihat Kelola koneksi proyek.
Buat skrip SQL MaxCompute di proyek. Untuk informasi lebih lanjut, lihat Kembangkan dan kirimkan skrip SQL.
Di skrip SQL MaxCompute, masukkan pernyataan SQL. Dari daftar drop-down Execution Mode, pilih MaxQA.
Klik tombol Tentukan parameter tambahan
, masukkan nama kelompok kuota interaktif, lalu klik OK.Jalankan skrip. Pekerjaan sekarang menggunakan fitur akselerasi kueri MaxQA.
Menggunakan JDBC
Untuk mengaktifkan MaxQA saat terhubung ke MaxCompute menggunakan JDBC, ikuti langkah-langkah berikut. Untuk informasi lebih lanjut tentang koneksi JDBC, lihat Panduan pengguna.
Unduh kode sumber yang mendukung MaxQA.
Konfigurasikan dependensi POM di Maven.
<dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-jdbc</artifactId> <version>${Latest Version}</version> </dependency>PentingPada kode di atas,
Latest Versionadalah placeholder. Ganti dengan nomor versi SDK tertentu agar proyek berhasil dikompilasi. Kunjungi Maven Central Repository untuk melihat semua versi odps-jdbc yang dirilis. Disarankan menggunakan versi terbaru. Format nomor versi adalah X.X.X.Buat program Java dari kode sumber, sesuaikan dengan lingkungan Anda. Untuk informasi lebih lanjut, lihat JDBC MaxCompute. 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"; // ID AccessKey akun Alibaba Cloud memiliki izin untuk memanggil semua Operasi API. Ini adalah operasi berisiko tinggi. Kami menyarankan agar Anda membuat dan menggunakan Pengguna RAM untuk memanggil Operasi API atau melakukan O&M rutin. Untuk membuat Pengguna RAM, login ke Konsol RAM. // Dalam contoh ini, ID AccessKey dan Secret AccessKey disimpan dalam Variabel lingkungan. Anda juga dapat menyimpannya dalam file konfigurasi sesuai kebutuhan bisnis Anda. // Kami sangat menyarankan agar Anda tidak menyematkan ID AccessKey dan Secret AccessKey secara langsung 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 metadata 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=true"Parameter | Deskripsi |
MaxCompute_endpoint | Titik akhir wilayah tempat layanan MaxCompute berada. Untuk informasi lebih lanjut, lihat Titik akhir. |
MaxCompute_project_name | Nama proyek MaxCompute. |
interactiveMode | Sakelar untuk fitur MaxQA. |
quotaName | Nama kelompok kuota interaktif yang ingin Anda gunakan. |
enableLimit | Menentukan apakah Anda diizinkan mengunduh lebih dari 10.000 baris data. |
enableOdpsLogger | Mengaktifkan pencetakan log. Direkomendasikan 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. Bagian berikut menjelaskan prosedurnya.
Tableau
Tambahkan properti interactiveMode=true dan properti quotaName=your_quota_nick_name ke path URL server untuk mengaktifkan fitur MaxQA. Disarankan juga menambahkan properti enableOdpsLogger=true untuk mencetak log. Untuk langkah-langkah detail, lihat Konfigurasikan 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 lebih lanjut, 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, seperti
maxqatomax.your_quota_group_name
Ya
Nama kelompok kuota interaktif, seperti
maxfor1.Pada tab General kotak dialog koneksi Alibaba MaxCompute, masukkan URL yang telah dibuat di field Server. Masukkan ID AccessKey Anda di field Username dan Secret AccessKey Anda di field Password. Lalu, 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 kiri, pilih Data Sources, lalu 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 sumber daya komputasi Quota MaxQA untuk mengaktifkan fitur MaxQA dan menggunakan sumber daya komputasi MaxQA. Untuk informasi lebih lanjut, lihat Koneksi Quick BI ke MaxCompute.
Sebagai contoh, pada field Quota Computing Resource Group, masukkan maxqa (nama Quota MaxQA).
Guandata BI
Tambahkan driver.
Unggah Driver JDBC MaxCompute versi 3.8.5 atau lebih baru ke Guandata BI. Untuk informasi lebih lanjut, lihat JDBC MaxCompute 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, lalu simpan konfigurasi.
Klik nama driver baru. Pada bagian Driver List, klik Upload File untuk mengunggah driver JDBC MaxCompute. Lalu, 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 kiri, klik tab Data Account. Di pojok kanan atas, klik New Data Account dan konfigurasikan akun sesuai petunjuk.
Parameter
Deskripsi
Select connector
Pilih MaxCompute.
Configure data account
Connection method
Pilih JDBC URL.
Logon ID
ID AccessKey akun Alibaba Cloud Anda.
Logon Key
Secret AccessKey akun Alibaba Cloud Anda.
JDBC URL
Format URL untuk string koneksi JDBC MaxQA 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 lebih lanjut, lihat Titik akhir. Misalnya, titik akhir untuk wilayah China (Hangzhou) adalahhttps://service.cn-hangzhou.maxcompute.aliyun.com/api.maxcompute_projectName: Nama proyek MaxCompute, sepertimaxqatomax.your_quota_nickName: Nama kelompok kuota interaktif yang akan digunakan, sepertimaxfor1. Untuk informasi tentang cara membuat kelompok kuota interaktif, lihat Sumber daya komputasi - Manajemen kuota.
Contoh:
jdbc:odps:https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000SQL version
Pilih 2.0/hive compatibility mode.
Maximum connections
Nilai default adalah 16.
driver
Pilih Custom lalu pilih driver yang telah Anda buat.
Klik Test Connection. Setelah muncul pesan Connection Successful, klik Next.
Konfirmasi informasi akun data, masukkan Display Name kustom, lalu klik Confirm and Create.
SQL Workbench/J
Pada antarmuka konfigurasi profil, modifikasi URL JDBC untuk mengaktifkan MaxQA di SQL Workbench/J. Untuk informasi lebih lanjut, lihat Konfigurasikan 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=1000000000"Parameter
Wajib
Deskripsi
MaxCompute_endpoint
Ya
Titik akhir untuk wilayah layanan MaxCompute. Untuk informasi lebih lanjut, 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, seperti
maxqatomax.your_quota_group_name
Ya
Nama kelompok kuota interaktif yang ingin Anda gunakan, seperti
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 lebih lanjut tentang Java SDK, lihat Pengenalan 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>PentingPada kode di atas,
Latest Versionadalah placeholder. Anda harus menggantinya dengan nomor versi SDK tertentu agar proyek berhasil dikompilasi. Kunjungi Maven Central Repository untuk melihat semua versi odps-sdk-core yang dirilis. Disarankan menggunakan versi terbaru. Format nomor versi adalah X.X.X-public.Buat program Java. Kode berikut memberikan contohnya.
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. // ID AccessKey akun Alibaba Cloud memiliki izin untuk memanggil semua Operasi API. Ini adalah operasi berisiko tinggi. Kami menyarankan agar Anda membuat dan menggunakan Pengguna RAM untuk memanggil Operasi API atau melakukan O&M rutin. Untuk membuat Pengguna RAM, login ke Konsol RAM. // Dalam contoh ini, ID AccessKey dan Secret AccessKey disimpan dalam Variabel lingkungan. Anda juga dapat menyimpannya dalam file konfigurasi sesuai kebutuhan bisnis Anda. // Kami sangat menyarankan agar Anda tidak menyematkan ID AccessKey dan Secret AccessKey secara langsung 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"); // Siapkan untuk membangun SQLExecutor. SQLExecutorBuilder builder = SQLExecutorBuilder.builder(); SQLExecutor sqlExecutor = null; try { // Buat pelaksana yang secara default menggunakan mode MaxQA. // 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"); // Kirim 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 sumber daya. sqlExecutor.close(); } } } }
Menggunakan PyODPS
PyODPS versi 0.12.1 dan lebih baru mendukung MaxQA. Kode berikut menunjukkan contohnya.
import os
from odps import ODPS
# Atur informasi akun dan proyek.
# Pastikan bahwa variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET
# diatur ke ID AccessKey dan Secret AccessKey Anda.
# Kami tidak menyarankan agar Anda menggunakan string ID AccessKey dan Secret AccessKey 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
Mulai dari PyODPS versi 0.12.2, Anda dapat menggunakan SQLAlchemy untuk mengkueri data MaxCompute melalui MaxQA. Anda perlu menentukan 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 pemakaian ulang koneksi paksa. Untuk beberapa alat pihak ketiga, seperti Apache Superset, opsi ini dapat meningkatkan performa. |
Sebagai contoh, string koneksi berikut mengaktifkan MaxQA dan pemakaian ulang koneksi paksa.
odps://<access_id>:<ACCESS_KEY>@<project>/?endpoint=<endpoint>"a_name=<NAMA_KELompok_KUOTA_INTERAKTIF_ANDA>&interactive_mode=v2&reuse_odps=trueVerifikasi apakah pekerjaan menggunakan mode MaxQA
Dari halaman Logview
Setelah pekerjaan selesai, buka halaman Logview-nya untuk memverifikasi bahwa pekerjaan tersebut menggunakan mode MaxQA. Periksa hal-hal berikut:
InstanceId MaxCompute diakhiri dengan
_mcqa.Nickname kuota adalah nama kuota interaktif yang ditentukan.
Pada tab Summary, mode run pekerjaan adalah
mcqa 2.0.
Dari halaman O&M Pekerjaan
Login ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
Pada panel navigasi kiri, pilih .
Pada halaman Jobs, klik tab Regular Job List dan atur Job Type ke MCQA2 untuk melihat pekerjaan MaxQA dalam Time Range tertentu.