PrestoDB adalah mesin query SQL terdistribusi open source untuk data besar berbasis arsitektur pemrosesan paralel masif (MPP). PrestoDB dapat dihubungkan ke berbagai sumber data seperti MySQL, Elasticsearch, dan Tablestore. Setelah terhubung ke Tablestore, Anda dapat mengeksekusi pernyataan SQL di PrestoDB untuk mengakses, menganalisis, menulis, dan mengimpor data ke Tablestore.
Informasi latar belakang
PrestoDB adalah mesin query SQL terdistribusi open source untuk data besar berbasis arsitektur pemrosesan paralel masif (MPP). PrestoDB dapat dihubungkan ke berbagai sumber data seperti MySQL, Elasticsearch, dan Tablestore. PrestoDB dapat digunakan sebagai alat query, alat ETL, alat uji stres, atau mesin query terpadu untuk memenuhi kebutuhan pengolahan data dalam berbagai skenario.
Sebagai alat query untuk pengembangan sehari-hari dan pemecahan masalah, PrestoDB memungkinkan Anda mengeksekusi pernyataan SQL untuk mengakses dan menganalisis data dalam tabel.
Sebagai alat ETL, PrestoDB memungkinkan Anda mereplikasi data antar tabel atau instance serta menyalin data dari sumber data yang berbeda.
Sebagai alat uji stres, PrestoDB memungkinkan Anda memindai atau menulis beberapa catatan data secara bersamaan.
Sebagai mesin query terpadu di mid-end data, PrestoDB dapat dihubungkan ke berbagai sumber data yang berbeda.
Sebelum mengakses Tablestore menggunakan PrestoDB, Anda harus menghubungkan PrestoDB ke Tablestore. Setelah terhubung, Anda dapat mengeksekusi pernyataan SQL di PrestoDB untuk mengakses, menganalisis, menulis, dan mengimpor data ke Tablestore.
Prasyarat
Server dengan sistem operasi Linux atau macOS tersedia. Dalam contoh ini, server dengan sistem operasi Linux digunakan.
CatatanJika tidak ada server dengan sistem operasi Linux, kami sarankan Anda menggunakan Instance ECS yang menjalankan sistem operasi Linux. Untuk informasi lebih lanjut, lihat Buat dan Kelola Instance ECS Menggunakan Konsol ECS (Versi Ekspres).
Java 8 64-bit dan Python 3 telah diinstal pada server.
PrestoDB telah diinstal pada server.
File prestodb-tablestore-connector sesuai versi PrestoDB telah diunduh dan diunggah ke direktori
plugindi bawah direktori instalasi PrestoDB. File tersebut didekompresi di direktori instalasi.Tabel berikut menjelaskan pemetaan antara versi plug-in prestodb-tablestore-connector dan versi PrestoDB.
Versi Plug-in
Versi PrestoDB
Deskripsi
0.280
Versi plug-in ini adalah rilis pertama. Plug-in ini didukung oleh PrestoDB 0.280 atau yang lebih baru.
Informasi Tablestore yang diperlukan untuk menghubungkan PrestoDB ke Tablestore, seperti akun, informasi instance, dan informasi tabel, telah diperoleh.
Pair AccessKey telah diperoleh untuk pengguna RAM yang diberikan izin untuk mengelola Tablestore. Untuk informasi lebih lanjut, lihat Dapatkan Pair AccessKey.
CatatanJika pengguna RAM belum diberikan izin untuk mengelola Tablestore, Anda harus memberikan izin yang diperlukan kepada pengguna RAM sebelum melakukan operasi selanjutnya. Untuk informasi lebih lanjut, lihat Gunakan Kebijakan RAM untuk Memberikan Izin kepada Pengguna RAM.
Catatan Penggunaan
Anda hanya dapat mengakses data Tablestore dari model Kolom Lebar menggunakan PrestoDB.
Secara default, PrestoDB menulis data ke Tablestore dengan memanggil operasi UpdateRow. PrestoDB tidak dapat menulis data ke Tablestore dengan memanggil operasi PutRow. Jika ingin menggunakan PrestoDB untuk menulis data ke tabel Tablestore, pastikan parameter Allow Updates disetel ke Yes untuk tabel tersebut. Jika tidak, PrestoDB tidak dapat menulis data ke tabel tersebut.
PentingJika Anda menyetel parameter Time to Live ke nilai selain -1 untuk tabel Tablestore dan ingin membuat indeks pencarian untuk tabel tersebut, Anda harus menyetel parameter Allow updates ke No untuk tabel tersebut. PrestoDB tidak dapat menulis data ke tabel tersebut.
Jika Anda ingin menggunakan PrestoDB untuk menulis data ke Tablestore dengan memanggil operasi PutRow, bergabunglah dengan grup DingTalk 36165029092 untuk menghubungi dukungan teknis Alibaba Cloud.
Untuk memeriksa apakah tabel dapat diperbarui, lihat nilai parameter Allow Updates di tab Basic Information tabel di konsol Tablestore atau panggil operasi DescribeTable menggunakan SDK Tablestore.

Pemetaan Tipe Data
Tablestore dan PrestoDB mendukung tipe data yang berbeda. Tabel berikut menjelaskan pemetaan antara tipe data yang didukung oleh Tablestore dan PrestoDB.
Tipe data yang didukung oleh Tablestore | Tipe data yang didukung oleh PrestoDB |
string | varchar |
integer | bigint |
double | double |
boolean | boolean |
binary | varbinary |
Prosedur
Untuk mengakses Tablestore menggunakan PrestoDB, lakukan langkah-langkah berikut: Hubungkan PrestoDB ke Tablestore, jalankan SQL CLI PrestoDB, buat skema dan tabel pemetaan, lalu eksekusi pernyataan SQL untuk melakukan operasi pada data.
Langkah 1: Hubungkan PrestoDB ke Tablestore
Setelah menginstal PrestoDB, Anda harus mengonfigurasi katalog dan skema PrestoDB untuk menghubungkan PrestoDB ke Tablestore. File konfigurasi katalog disimpan di jalur etc/catalog/tablestore.properties.
Deskripsi Konfigurasi
Langkah 2: Jalankan SQL CLI Presto
Setelah Tablestore terhubung ke PrestoDB, Anda dapat memulai server Presto dan mengeksekusi pernyataan SQL.
Peroleh program yang dapat dieksekusi untuk menginstal klien PrestoDB.
Unduh paket instalasi klien PrestoDB.
Dalam contoh ini, paket presto-cli-0.280-executable.jar diunduh.
Simpan paket instalasi klien PrestoDB ke direktori
bindi bawah direktori tempat PrestoDB diinstal.Jalankan perintah berikut di direktori
binuntuk mendapatkan program yang dapat dieksekusi untuk menginstal klien PrestoDB.# Ubah nama paket instalasi klien PrestoDB menjadi presto. Ganti presto-cli-0.280-executable.jar dengan nama versi aktual klien PrestoDB. mv presto-cli-0.280-executable.jar presto # Berikan izin kepada pengguna untuk melakukan operasi pada file presto. chmod +x prestoGambar berikut menunjukkan direktori tempat program yang dapat dieksekusi untuk menginstal klien PrestoDB berada.

Jalankan perintah berikut di direktori
binuntuk memulai server Presto.PentingSaat memulai server Presto, Anda harus memulai koordinator dan setidaknya satu worker secara terpisah.
# Anda dapat menjalankan server Presto di latar belakang atau latar depan. Jika Anda menjalankan server Presto di latar depan, Anda dapat melihat log operasi dengan cara yang lebih mudah. # Metode 1: Jalankan server Presto di latar belakang ./launcher start # Metode 2: Jalankan server Presto di latar depan ./launcher runJalankan perintah berikut di direktori
binuntuk memulai SQL CLI.CatatanSecara default, PrestoDB berjalan di port 8080. Jika ingin memodifikasi konfigurasi port, ubah nilai parameter
http-server.http.portdalam fileetc/config.properties.Setelah memodifikasi konfigurasi tertentu, Anda harus memulai ulang server Presto agar konfigurasi baru berlaku.
./prestodalam perintah menunjukkan jalur relatif program yang dapat dieksekusi untuk menginstal klien PrestoDB dalam direktoribin.
./presto --server localhost:8080 --catalog tablestore --schema defaultTabel berikut menjelaskan parameter dalam perintah.
Parameter
Contoh
Diperlukan
Deskripsi
--server
localhost:8080
Ya
URI server Presto. Ganti nilainya dengan URI aktual server Presto Anda. Nilai parameter ini harus sama dengan nilai parameter
discovery.uridalam fileetc/config.propertiesdi direktori tempat PrestoDB diinstal.--catalog
tablestore
Ya
Nama file konfigurasi katalog. Dalam contoh ini, parameter disetel ke tablestore.
--schema
default
Ya
Konfigurasi skema. Pertahankan konfigurasi default.
Langkah 3: Buat skema dan tabel pemetaan
Jika Anda mengonfigurasi skema dalam mode konfigurasi dinamis berdasarkan tabel metadata, Anda harus membuat dan menggunakan skema secara manual untuk mengonfigurasi instance Tablestore yang terhubung ke PrestoDB dan mengotentikasi izin pengguna. Lalu, Anda dapat membuat tabel pemetaan untuk tabel Tablestore untuk mengakses dan menganalisis data.
Jika Anda mengonfigurasi skema dalam mode konfigurasi berdasarkan file statis lokal, lewati langkah ini.
Eksekusi pernyataan berikut untuk membuat skema:
Contoh pernyataan SQL berikut menunjukkan cara membuat skema bernama testdb untuk mengakses instance Tablestore bernama myinstance.
CREATE SCHEMA tablestore.testdb WITH ( endpoint = 'https://myinstance.cn-hangzhou.ots.aliyuncs.com', instance_name = 'myinstance', access_id = '************************', access_key = '********************************' );Tabel berikut menjelaskan parameter-parameter yang digunakan.
Parameter
Contoh
Diperlukan
Deskripsi
endpoint
https://myinstance.cn-hangzhou.ots.aliyuncs.com
Ya
Titik akhir instance Tablestore. Untuk informasi lebih lanjut, lihat Endpoints.
instance_name
myinstance
Ya
Nama instance Tablestore yang terhubung. Untuk informasi lebih lanjut, lihat Instance.
access_id
************************
Ya
ID AccessKey akun Alibaba Cloud Anda atau pengguna RAM.
access_key
********************************
Ya
Rahasia AccessKey akun Alibaba Cloud Anda atau pengguna RAM.
Eksekusi pernyataan
use <SCHEMA_NAME>;untuk menggunakan skema yang telah dibuat.Ganti
<SCHEMA_NAME>dengan nama skema yang telah dibuat. Anda dapat mengeksekusi pernyataanshow schemas;untuk melihat daftar skema.Eksekusi pernyataan berikut untuk membuat tabel pemetaan untuk tabel Tablestore.
PentingSaat membuat tabel pemetaan, perhatikan hal-hal berikut:
Pastikan bahwa tipe data kolom dalam tabel pemetaan dipetakan ke tipe data dalam tabel Tablestore. Untuk informasi lebih lanjut, lihat bagian Pemetaan Tipe Data dari topik "Akses Tablestore menggunakan PrestoDB".
Nama tabel pemetaan harus sama dengan nama sebenarnya dari tabel Tablestore.
Tabel yang ditentukan oleh parameter table_name dalam pernyataan CREATE TABLE dipetakan ke tabel sebenarnya di Tablestore. Anda dapat membuat beberapa tabel pemetaan untuk tabel Tablestore yang sama.
Tabel pemetaan harus berisi semua kolom kunci utama dari tabel Tablestore, tetapi hanya kolom atribut tertentu.
Nama dan urutan kolom kunci utama dalam tabel pemetaan harus sama dengan yang ada di tabel Tablestore. Anda dapat memetakan setiap kolom atribut dalam tabel pemetaan ke nama kolom dalam tabel Tablestore sebenarnya dengan menentukan parameter origin_name.
Dalam contoh ini, tabel main_table Tablestore yang berisi dua kolom kunci utama bernama gid dan uid serta tiga kolom atribut bernama col1, col2, dan col3 digunakan.
Contoh pernyataan SQL berikut memberikan contoh cara membuat tabel pemetaan dengan nama yang sama dengan tabel main_table Tablestore:
CREATE TABLE if not exists main_table ( gid bigint, uid bigint, c1 boolean with (origin_name = 'col1'), c2 bigint with (origin_name = 'col2'), c3 varchar with (origin_name = 'col3') ) WITH ( table_name = 'main_table' );
Langkah 4: Eksekusi pernyataan SQL untuk melakukan operasi pada data
Sebelum mengeksekusi pernyataan SQL untuk melakukan operasi pada data, pastikan bahwa Anda menggunakan skema yang diperlukan dengan mengeksekusi pernyataan use <SCHEMA_NAME>;.
Eksekusi pernyataan SQL untuk mengakses konfigurasi skema dan metadata tabel pemetaan, serta membaca data dari dan menulis data ke tabel Tablestore. Untuk informasi lebih lanjut tentang contoh pernyataan SQL, lihat bagian "Contoh Pernyataan SQL Umum" dari topik Konfigurasikan Server Presto dan Eksekusi Contoh Pernyataan SQL.
Akses konfigurasi skema.
Akses daftar skema
show schemas;Akses daftar tabel dalam skema tertentu
show tables;
Akses metadata tabel tertentu
Ganti
<TABLE_NAME>dengan nama aktual tabel.describe <TABLE_NAME>;Lakukan operasi pada data.
Baca dan tulis data Tablestore.
Tulis data
Sisipkan satu baris data
Contoh pernyataan SQL berikut memberikan contoh cara menyisipkan satu baris data ke dalam tabel main_table:
insert into main_table values(10001,10001,true,100,'hangzhou');Impor beberapa catatan data secara bersamaan
PentingSebelum mengimpor beberapa catatan data secara bersamaan, pastikan bahwa tabel tujuan telah dibuat dan skema tabel tujuan sama dengan skema tabel sumber.
Contoh pernyataan SQL berikut memberikan contoh cara mengimpor kolom gid, uid, c1, c2, dan c3 dari baris-baris di mana nilai kolom gid lebih besar dari 0 dan nilai kolom uid kurang dari 10000 dari tabel main_table ke tabel sampletable:
insert into sampletable select gid, uid, c1, c2, c3 from main_table where gid > 0 and uid < 100000;
Baca data
Contoh pernyataan SQL berikut memberikan contoh cara mengakses baris-baris di mana nilai kolom gid lebih besar dari 0, nilai kolom uid kurang dari 10, dan nilai kolom c1 adalah true dalam tabel sampletable:
select * from sampletable where gid > 0 and uid < 10 and c1 = true;
Penagihan
Saat menggunakan PrestoDB untuk mengakses Tablestore, Anda akan dikenakan biaya oleh Tablestore berdasarkan throughput baca dan throughput tulis. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan.
Referensi
Anda dapat menggunakan mesin komputasi lainnya seperti MaxCompute, Spark, Function Compute, dan Realtime Compute for Apache Flink untuk mengakses dan menganalisis data dalam tabel Tablestore. Untuk informasi lebih lanjut, lihat Ikhtisar. Anda juga dapat mengakses dan menganalisis data dalam tabel Tablestore menggunakan fitur query SQL atau fitur agregasi yang didukung oleh indeks pencarian. Untuk informasi lebih lanjut, lihat Ikhtisar Query SQL dan Ikhtisar Indeks Pencarian.
Anda dapat menggunakan fitur Data Integration dari DataWorks untuk menyinkronkan data antar tabel atau instance Tablestore. Untuk informasi lebih lanjut, lihat Sinkronisasi Data Antar Tabel.
Anda dapat menggunakan DataV atau Grafana untuk memvisualisasikan data seperti menampilkan data dalam bentuk grafik. Untuk informasi lebih lanjut, lihat Visualisasi Data.
