Fitur kueri SQL menyediakan antarmuka akses terpusat untuk berbagai mesin data Tablestore dan kompatibel dengan sintaks kueri MySQL. Sebelum menggunakan fitur ini untuk menanyakan data dalam tabel, Anda harus membuat tabel pemetaan untuk tabel tersebut.
Topik ini menjelaskan cara menggunakan fitur kueri SQL untuk menanyakan data dalam tabel. Untuk informasi tentang penggunaannya pada data deret waktu, lihat Gunakan SQL untuk menanyakan data deret waktu.
Catatan penggunaan
Fitur kueri SQL tersedia di wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Ulanqab), Tiongkok (Shenzhen), Tiongkok (Chengdu), Tiongkok (Hong Kong), Jepang (Tokyo), Singapura, Malaysia (Kuala Lumpur), Inggris (London), AS (Silicon Valley), Indonesia (Jakarta), Jerman (Frankfurt), SAU (Riyadh - Partner Region), dan AS (Virginia).
Prasyarat
Jika Anda ingin menanyakan data sebagai pengguna RAM, pastikan pengguna RAM telah dibuat dan diberikan semua izin operasi SQL. Anda dapat mengonfigurasi
"Action": "ots:SQL*"dalam kebijakan kustom yang dilampirkan pada pengguna RAM untuk memberikan semua izin operasi SQL. Untuk detail lebih lanjut, lihat Gunakan kebijakan RAM untuk memberikan izin kepada pengguna RAM.Pasangan AccessKey yang terdiri dari ID AccessKey dan Rahasia AccessKey telah diperoleh. Untuk informasi lebih lanjut, lihat Buat pasangan AccessKey.
Tabel data telah dibuat.
Instansi OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi klien Tablestore.
Prosedur
Anda dapat menggunakan SDK Tablestore untuk Java, SDK Tablestore untuk Go, SDK Tablestore untuk Python, SDK Tablestore untuk Node.js, SDK Tablestore untuk .NET, atau SDK Tablestore untuk PHP untuk menanyakan data dengan menjalankan pernyataan SQL. Contoh ini menggunakan SDK Tablestore untuk Java.
Setelah menjalankan pernyataan CREATE TABLE untuk membuat tabel pemetaan untuk tabel yang ada, Anda dapat menjalankan pernyataan SELECT untuk menanyakan data dalam tabel tersebut.
Jalankan pernyataan CREATE TABLE untuk membuat tabel pemetaan untuk tabel yang ada.
Contoh berikut menunjukkan cara menggunakan pernyataan
create table test_table (pk varchar(1024), long_value bigint(20), double_value double, string_value mediumtext, bool_value bool, primary key(pk))untuk membuat tabel pemetaan untuk tabel test_table.private static void createTable(SyncClient client) { // Buat permintaan SQL. SQLQueryRequest request = new SQLQueryRequest("create table test_table (pk varchar(1024), long_value bigint(20), double_value double, string_value mediumtext, bool_value bool, primary key(pk))"); client.sqlQuery(request); }Jalankan pernyataan SELECT untuk menanyakan data dalam tabel.
public static void queryDataExample(SyncClient client) { // Tentukan pernyataan SQL. SQLQueryRequest request = new SQLQueryRequest("select order_id, user_id, sku_id, price, num, total_price, order_status, create_time, modified_time from test_table limit 10;"); SQLQueryResponse response = client.sqlQuery(request); // Tentukan informasi RequestId. System.out.println("RequestId: " + response.getRequestId()); /*// Baca informasi konsumsi throughput. System.out.println("Konsumsi throughput baca (per tabel):"); for(Map.Entry<String, ConsumedCapacity> entry : response.getConsumedCapacity().entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue().getCapacityUnit().getReadCapacityUnit() + "CU"); }*/ // Dapatkan hasil kueri SQL. SQLResultSet resultSet = response.getSQLResultSet(); // Kembalikan informasi skema. System.out.println("Skema: " + response.getSQLResultSet().getSQLTableMeta().getSchema()); // Detail data System.out.println("Detail data:"); while (resultSet.hasNext()) { SQLRow row = resultSet.next(); System.out.println(row.get("order_id") + ", " + row.get("user_id") + ", " + row.get("sku_id") + ", " + row.get("price") + ", " + row.get("num") + ", " + row.get("total_price") + ", " + row.get("order_status") + ", " + row.get("create_time") + ", " + row.get("modified_time")); } }
FAQ
Referensi
Anda dapat menggunakan fitur kueri SQL di konsol Tablestore atau CLI Tablestore, atau melalui Java Database Connectivity (JDBC) atau driver Tablestore untuk Go. Untuk informasi lebih lanjut, lihat Gunakan konsol Tablestore, Gunakan fitur kueri SQL di CLI Tablestore, JDBC, dan Gunakan driver Tablestore untuk Go.
Anda juga dapat menghubungkan instansi Tablestore ke DataWorks atau Data Management (DMS), lalu menjalankan pernyataan SQL untuk menanyakan dan menganalisis data Tablestore. Untuk informasi lebih lanjut, lihat Hubungkan instansi Tablestore ke DataWorks dan Hubungkan Tablestore ke DMS.
Untuk mempercepat kueri data dan komputasi dengan menjalankan pernyataan SQL, Anda dapat membuat indeks sekunder atau indeks pencarian. Untuk informasi lebih lanjut, lihat Kebijakan pemilihan indeks dan Pushdown komputasi.
Anda juga dapat menggunakan mesin komputasi seperti MaxCompute, Spark, Hive, HadoopMR, Function Compute, Flink, dan PrestoDB untuk menghitung dan menganalisis data dalam tabel. Untuk informasi lebih lanjut, lihat Ikhtisar.
Untuk memvisualisasikan data, Anda dapat menggunakan Grafana. Misalnya, Anda dapat menggunakan Grafana untuk menampilkan data Tablestore dalam bentuk grafik. Untuk informasi lebih lanjut, lihat Hubungkan Tablestore ke Grafana.