全部产品
Search
文档中心

Tablestore:Konfigurasikan server Presto dan eksekusi pernyataan SQL contoh

更新时间:Jul 02, 2025

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=true

Tabel 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:

  • meta-table: mengonfigurasi skema secara dinamis berdasarkan tabel metadata. Jika Anda menggunakan mode ini, Anda harus mengonfigurasi metastore yang digunakan untuk menyimpan informasi skema.

  • file: mengonfigurasi skema berdasarkan file statis lokal. Jika Anda menggunakan mode ini, Anda harus mengonfigurasi jalur lengkap file statis lokal dan file statis lokal itu sendiri.

tablestore.schema-file

/users/test/tablestore/presto/tablestore.schema

Kondisional

Parameter ini diperlukan hanya jika parameter tablestore.schema-mode diatur ke file.

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 tablestore.schema-mode diatur ke meta-table.

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 tablestore.schema-mode diatur ke meta-table.

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 tablestore.schema-mode diatur ke meta-table.

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 tablestore.schema-mode diatur ke meta-table.

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 tablestore.schema-mode diatur ke meta-table.

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 SCHEMA dan CREATE TABLE untuk 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_name> tidak peka huruf besar/kecil di PrestoDB.

<table_info>

originName

Tidak

Nama tabel Tablestore yang dipetakan ke tabel di PrestoDB.

  • Jika Anda tidak menentukan parameter ini, konektor secara otomatis menggunakan nama aktual tabel Tablestore yang dipetakan ke tabel di PrestoDB.

  • Jika Anda menentukan parameter ini, konektor menggunakan nama tabel yang Anda tentukan.

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
  • Metadata kolom harus berisi semua kolom kunci utama tabel Tablestore. Nama dan urutan kolom kunci utama dalam metadata harus sama dengan yang ada di tabel Tablestore.

  • Jika metadata tidak valid, kesalahan dilaporkan saat Anda membaca data dari atau menulis data ke tabel.

<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.

Penting

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.

Penting

Operasi pada tabel hanya dapat dilakukan setelah menggunakan skema.

Pernyataan SQL berikut menunjukkan cara menggunakan skema testdb.

use testb;

Respons contoh:

USE

Lakukan 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 TABLE

Lakukan operasi pada data

Setelah membuat tabel pemetaan untuk tabel Tablestore, Anda dapat menulis, menanyakan, dan menganalisis data di tabel Tablestore.

Penting

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 row
  • Impor beberapa catatan data sekaligus

    Penting

    Sebelum 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)