Saat menghubungkan PrestoDB ke Tablestore, Anda harus menyelesaikan konfigurasi katalog dan skema server Presto sesuai dengan kebutuhan bisnis. Setelah terhubung, Anda dapat menggunakan pernyataan SQL contoh untuk melakukan operasi pada data Tablestore. Topik ini menjelaskan cara mengonfigurasi server Presto dan menyediakan pernyataan SQL contoh.
Konfigurasikan server Presto
Lakukan konfigurasi katalog dan skema server Presto berdasarkan kebutuhan bisnis Anda.
Konfigurasi katalog mencakup pengaturan konektor dan mode konfigurasi skema. Anda dapat mengonfigurasi skema secara statis melalui file lokal atau secara dinamis berdasarkan metadata tabel.
Konfigurasi skema utamanya melibatkan penggunaan file statis lokal. Jika menggunakan mode konfigurasi dinamis berdasarkan metadata tabel, Anda tidak perlu mengonfigurasi skema sebelum memulai server Presto. Skema dan tabel pemetaan dapat dibuat setelah menjalankan CLI SQL.
Konfigurasi Katalog
File konfigurasi katalog berisi pengaturan konektor dan skema. File ini disimpan di jalur etc/catalog/tablestore.properties direktori instalasi PrestoDB.
Contoh kode berikut menunjukkan contoh file konfigurasi katalog:
connector.name=tablestore
tablestore.schema-mode=meta-table
#tablestore.schema-mode=file
tablestore.schema-file=/users/test/tablestore/presto/tablestore.schema
tablestore.meta-instance=metastoreinstance
tablestore.endpoint=http://metastoreinstance.cn-hangzhou,ots.aliyuncs.com/
tablestore.accessid=****************
tablestore.accesskey=**************************
tablestore.meta-table=meta_table
tablestore.auto-create-meta-table=trueTabel berikut menjelaskan parameter yang digunakan.
Parameter | Contoh | Diperlukan | Deskripsi |
connector.name | tablestore | Ya | Nama konektor. Atur nilainya menjadi tablestore. |
tablestore.schema-mode | meta-table | Ya | Mode konfigurasi skema. Nilai yang valid:
|
tablestore.schema-file | /users/test/tablestore/presto/tablestore.schema | Kondisional | Parameter ini diperlukan hanya jika parameter Jalur lengkap file statis lokal. Untuk informasi lebih lanjut tentang cara mengonfigurasi file statis lokal, lihat bagian "Konfigurasi Skema" dari topik ini. |
tablestore.meta-instance | metastoreinstance | Kondisional | Parameter ini diperlukan hanya jika parameter Instance Tablestore yang digunakan untuk menyimpan metadata. Ubah nilai parameter ini berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Instance. Penting Pastikan bahwa instance Tablestore yang Anda konfigurasi ada di akun Alibaba Cloud Anda. |
tablestore.endpoint | http://metastoreinstance.cn-hangzhou,ots.aliyuncs.com/ | Kondisional | Parameter ini diperlukan hanya jika parameter Titik akhir instance Tablestore yang digunakan untuk menyimpan metadata. Ubah nilai parameter ini berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Endpoints. |
tablestore.accessid | **************** | Kondisional | Parameter ini diperlukan hanya jika parameter ID AccessKey dan Rahasia AccessKey Pengguna Resource Access Management (RAM) yang memiliki izin untuk mengakses instance Tablestore yang digunakan untuk menyimpan metadata. |
tablestore.accesskey | ************************** | Kondisional | |
tablestore.meta-table | meta_table | Kondisional | Parameter ini diperlukan hanya jika parameter Nama tabel Tablestore yang digunakan untuk menyimpan metadata. Ubah nilai parameter ini berdasarkan kebutuhan bisnis Anda. |
tablestore.auto-create-meta-table | true | Kondisional | Parameter ini diperlukan hanya jika parameter Menentukan apakah akan otomatis membuat tabel metadata. Nilai default: true, yang menunjukkan bahwa tabel metadata dibuat secara otomatis saat Anda membuat skema. |
Konfigurasi Skema
Anda dapat mengonfigurasi skema menggunakan file statis lokal atau secara dinamis berdasarkan tabel metadata. Kami merekomendasikan penggunaan mode konfigurasi dinamis berdasarkan tabel metadata.
Konfigurasikan skema dalam mode konfigurasi dinamis berdasarkan tabel metadata
Dalam mode ini, Anda tidak perlu mengonfigurasi skema sebelum menjalankan server Presto.
Setelah menghubungkan PrestoDB ke Tablestore dan menjalankan CLI SQL, eksekusi pernyataan
CREATE SCHEMAdanCREATE TABLEuntuk membuat skema dan tabel pemetaan secara dinamis. Untuk detail lebih lanjut, lihat bagian Buat Skema dan Buat Tabel Pemetaan.
Konfigurasikan skema berdasarkan file statis lokal
Jalur file statis lokal harus sesuai dengan jalur lengkap yang ditentukan oleh parameter tablestore.schema-file dalam file konfigurasi katalog.
Anda dapat membuat file di server Presto dan mengonfigurasinya berdasarkan contoh kode berikut:
{
"account" : {
"accessId" : "xxxxxxxx", ----- <Diperlukan> ID AccessKey akun Alibaba Cloud atau pengguna RAM Anda.
"accessKey" : "xxxxxxxxxxxxxxx", ----- <Diperlukan> Rahasia AccessKey akun Alibaba Cloud atau pengguna RAM Anda.
},
"instances" : {
"mydb" : { ----- <Diperlukan> Nama skema di PrestoDB.
"instanceName" : "myinstance", ----- <Diperlukan> Nama instance Tablestore yang terhubung.
"endpoint" : "http://myinstance.cn-hangzhou.ots.aliyuncs.com", ----- <Diperlukan> Titik akhir instance Tablestore yang terhubung.
"tables": {
"mytable" : { ----- <Diperlukan> Nama tabel di PrestoDB.
"originName" : "SampleTable", ----- <Opsional> Nama tabel Tablestore yang dipetakan ke tabel di PrestoDB. Nama bersifat case-sensitive. Jika Anda tidak menentukan parameter ini, nama tabel Tablestore sama dengan nama tabel di Presto.
"columns" : [ ----- <Diperlukan> Metadata tabel di PrestoDB. Metadata harus berisi semua kolom kunci utama. Urutan kolom kunci utama dalam metadata harus sama dengan urutan di tabel.
{"name" : "gid", "type" : "bigint"},
{"name" : "uid", "type" : "bigint"},
{"name" : "c1", "type" : "boolean", "originName" : "col1"},
{"name" : "c2", "type" : "bigint", "originName" : "col2"},
{"name" : "C3", "type" : "varchar", "originName" : "col3"}
]
},
"anotherTable" : {
"originName" : "sampleTable2",
"columns" : [
{"name" : "gid", "type" : "bigint"},
{"name" : "uid", "type" : "bigint"},
{"name" : "a", "type" : "varchar"},
{"name" : "b", "type" : "varchar"},
{"name" : "c", "type" : "boolean"},
{"name" : "d", "type" : "bigint"},
{"name" : "e", "type" : "varchar"}
]
}
}
}
}
}Parameter | Diperlukan | Deskripsi | |
account | accessId | Ya | ID AccessKey dan Rahasia AccessKey akun Alibaba Cloud atau pengguna RAM Anda |
accessKey | Ya | ||
instances(map(<schema_name> -> <schema_info>)) | Ya | Konfigurasi peta JSON yang berisi nama skema dan informasi skema. Penting Nama skema tidak peka huruf besar/kecil di PrestoDB. | |
<schema_info> | instanceName | Ya | Nama instance Tablestore yang dipetakan ke skema. Untuk informasi lebih lanjut, lihat Instance. |
endpoint | Ya | Titik akhir instance Tablestore. Untuk informasi lebih lanjut, lihat Endpoints. | |
tables(map(<table_name> -> <table_info>)) | Ya | Daftar tabel yang dipasang ke PrestoDB. Penting Nilai parameter | |
<table_info> | originName | Tidak | Nama tabel Tablestore yang dipetakan ke tabel di PrestoDB.
Jika konektor tidak menemukan nama tabel Tablestore yang dipetakan ke tabel di PrstoDB, Anda tidak dapat membaca data dari atau menulis data ke tabel tersebut. |
columns(list([<column_info>])) | Ya | Metadata tabel. Metadata harus berisi semua kolom yang didefinisikan. Penting
| |
<column_info> | name | Ya | Nama kolom. Penting Nama kolom tidak peka huruf besar/kecil di PrestoDB. |
type | Ya | Tipe data kolom di tabel. PrestoDB hanya mendukung tipe data berikut: BIGINT, VARCHAR, VARBINARY, DOUBLE, dan BOOLEAN. Penting Tipe data yang didefinisikan di PrestoDB harus dipetakan ke tipe data di Tablestore. | |
originName | Tidak | Nama kolom di instance Tablestore yang dipetakan ke skema di PrestoDB. | |
Pernyataan SQL contoh umum
Gunakan PrestoDB untuk mengakses Tablestore dengan mengeksekusi pernyataan SQL contoh umum untuk membuat skema, tabel pemetaan, dan melakukan operasi pada data.
Buat skema
Skema digunakan untuk mengonfigurasi informasi instance Tablestore yang akan diakses dan mengotentikasi izin pengguna.
Pernyataan SQL contoh 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 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 atau pengguna RAM Anda. |
access_key | ******************************** | Ya | Rahasia AccessKey akun Alibaba Cloud atau pengguna RAM Anda. |
Buat tabel pemetaan
Buat tabel pemetaan yang dipetakan ke tabel Tablestore.
Perhatikan hal-hal berikut saat membuat tabel pemetaan:
Pastikan tipe data kolom di tabel pemetaan sesuai dengan tipe data di tabel Tablestore. Untuk informasi lebih lanjut, lihat bagian Pemetaan Tipe Data.
Nama tabel pemetaan harus sama dengan nama aktual tabel Tablestore.
Tabel yang ditentukan oleh parameter table_name dalam pernyataan CREATE TABLE dipetakan ke tabel aktual di Tablestore. Beberapa tabel pemetaan dapat dibuat untuk tabel Tablestore yang sama.
Tabel pemetaan harus mencakup semua kolom kunci utama tabel Tablestore, tetapi hanya beberapa kolom atribut tertentu.
Nama dan urutan kolom kunci utama di tabel pemetaan harus sesuai dengan tabel Tablestore. Kolom atribut di tabel pemetaan dapat dipetakan ke kolom di tabel Tablestore aktual menggunakan parameter origin_name.
Pernyataan SQL berikut menunjukkan cara membuat tabel pemetaan dengan nama yang sama dengan tabel Tablestore exampletable:
CREATE TABLE if not exists exampletable
(
pk varchar,
c1 double with (origin_name = 'col1'),
c2 varcha with (origin_name = 'col2'),
c3 varchar with (origin_name = 'col3')
) WITH (
table_name = 'exampletable'
);Lakukan operasi pada skema
Setelah membuat skema, Anda dapat menanyakan daftar skema dan menggunakannya sesuai kebutuhan bisnis.
Tanyakan daftar skema
Eksekusi pernyataan SQL berikut untuk menanyakan daftar skema:
show schemas;Respons contoh:
Schema
--------------------
information_schema
testdb
testdb1
(3 rows)Gunakan skema
Gunakan skema untuk melakukan operasi selanjutnya pada tabel dalam skema tersebut.
Operasi pada tabel hanya dapat dilakukan setelah menggunakan skema.
Pernyataan SQL berikut menunjukkan cara menggunakan skema testdb.
use testb;Respons contoh:
USELakukan operasi pada tabel pemetaan
Setelah membuat tabel pemetaan, Anda dapat menanyakan tabel dalam skema tertentu, melihat metadata tabel, dan menghapus tabel pemetaan.
Tanyakan tabel dalam skema tertentu
Eksekusi pernyataan SQL berikut untuk menanyakan tabel dalam skema yang digunakan:
show tables;Respons contoh:
Schema
--------------------
information_schema
testdb
testdb1
(3 rows)Lihat metadata tabel tertentu
Pernyataan SQL berikut menunjukkan cara melihat metadata tabel exampletable.
describe exampletable;Respons contoh:
Table
-----------------
exampletable
sampletable
sampletabletest
table1
testtable
(5 rows)Lihat deskripsi tabel
Pernyataan SQL berikut menunjukkan cara melihat deskripsi tabel exampletable.
describe exmapletable;Respons contoh:
Column | Type | Extra | Comment
--------+---------+-------+---------
pk | varchar | |
c1 | double | |
c2 | varchar | |
c3 | varchar | |
(4 rows)Hapus tabel pemetaan
Pernyataan SQL berikut menunjukkan cara menghapus tabel pemetaan bernama table1.
drop table table1;Respons contoh:
DROP TABLELakukan operasi pada data
Setelah membuat tabel pemetaan untuk tabel Tablestore, Anda dapat menulis, menanyakan, dan menganalisis data di tabel Tablestore.
PrestoDB tidak mendukung pembaruan atau penghapusan data di tabel Tablestore.
Tulis data
Sisipkan satu baris data
Pernyataan SQL berikut menunjukkan cara menyisipkan satu baris data ke tabel exampletable.
insert into exampletable values('101', 22.0, 'Mary', '10002');Respons contoh:
INSERT: 1 rowImpor beberapa catatan data sekaligus
PentingSebelum mengimpor beberapa catatan data sekaligus, pastikan tabel tujuan telah dibuat dan skema tabel tujuan sesuai dengan skema tabel sumber.
Pernyataan SQL berikut menunjukkan cara menyalin baris-baris dengan nilai kolom c1 kurang dari 50 dari tabel exampletable ke tabel sampletable:
insert into sampletable select pk, c1, c2, c3 from exampletable where c1 < 50;Respons contoh:
INSERT: 3 row
Baca data
Tanyakan semua data dalam tabel
Pernyataan SQL berikut menunjukkan cara membaca data dari tabel exampletable.
select * from exampletable;Respons contoh:
pk | c1 | c2 | c3 ----- +------+------+------+------- 100 | 11.0 | Lily | 10001 101 | 22.0 | Mary | 10002 102 | 12.0 | Jim | 10003 (3 rows)Tanyakan data yang memenuhi kondisi tertentu dalam tabel
Pernyataan SQL berikut menunjukkan cara menanyakan baris-baris dengan nilai kolom c1 kurang dari 15 dan nilai kolom c3 sama dengan 10001 dalam tabel exampletable.
select * from exampletable where c1 < 15 and c3 = '10001';Respons contoh:
pk | c1 | c2 | c3 ----- +------+------+------+------- 100 | 11.0 | Lily | 10001 (1 row)
Analisis data.
Hitung rata-rata nilai kolom tertentu dalam tabel
Pernyataan SQL berikut menunjukkan cara menghitung rata-rata nilai kolom c2 dalam tabel exampletable.
select avg(c1) as Average from exampletable;Respons contoh:
Average --------- 15.0 (1 row)Hitung jumlah baris dalam tabel
Pernyataan SQL berikut menunjukkan cara menghitung jumlah baris dalam tabel exampletable.
select count(*) as total from exampletable;Respons contoh:
total ------- 3 (1 row)