All Products
Search
Document Center

Tablestore:Konfigurasi Presto Server dan contoh SQL

Last Updated:Apr 30, 2026

Untuk menghubungkan PrestoDB ke Tablestore, konfigurasikan Catalog dan Schema pada Presto Server. Setelah terhubung, gunakan contoh SQL dalam topik ini untuk melakukan operasi data.

Konfigurasi server

Konfigurasikan Catalog dan Schema pada Presto Server.

  • Konfigurasi Catalog menentukan pengaturan konektor dan mode konfigurasi Schema. Schema dapat dikonfigurasi secara dinamis menggunakan tabel meta atau secara statis melalui file lokal.

  • Dengan konfigurasi dinamis (mode tabel meta), tidak diperlukan konfigurasi Schema sebelum memulai Presto Server. Buat Schema dan tabel pemetaan setelah menjalankan command-line interface (CLI) SQL.

Konfigurasi Catalog

File konfigurasi Catalog terletak di etc/catalog/tablestore.properties dalam folder instalasi PrestoDB.

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

Item konfigurasi

Contoh

Wajib

Deskripsi

connector.name

tablestore

Ya

Nama konektor. Harus diatur ke tablestore.

tablestore.schema-mode

meta-table

Ya

Mode konfigurasi Schema. Nilai yang valid:

  • meta-table: Konfigurasi dinamis menggunakan tabel meta. Memerlukan informasi instans Tablestore untuk penyimpanan metadata.

  • file: Konfigurasi statis menggunakan file lokal. Memerlukan path lengkap ke file statis lokal.

tablestore.schema-file

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

Ya, kondisional

Diperlukan hanya ketika tablestore.schema-mode diatur ke file.

Path lengkap ke file statis lokal. Untuk informasi selengkapnya, lihat Konfigurasi Schema.

tablestore.meta-instance

metastoreinstance

Ya, kondisional

Diperlukan hanya ketika tablestore.schema-mode diatur ke meta-table.

Instans Tablestore yang digunakan untuk menyimpan metadata. Untuk informasi selengkapnya, lihat Instans.

Penting

Pastikan instans yang dikonfigurasi sudah ada di Akun Alibaba Cloud Anda.

tablestore.endpoint

http://metastoreinstance.cn-hangzhou,ots.aliyuncs.com/

Ya, kondisional

Diperlukan hanya ketika tablestore.schema-mode diatur ke meta-table.

Titik akhir instans Tablestore yang digunakan untuk menyimpan metadata. Untuk informasi selengkapnya, lihat Titik akhir.

tablestore.accessid

Ya, kondisional

Diperlukan hanya ketika tablestore.schema-mode diatur ke meta-table.

ID AccessKey dan Rahasia AccessKey dari Akun Alibaba Cloud atau pengguna Resource Access Management (RAM) yang memiliki izin akses ke instans metadata.

tablestore.accesskey

Ya, kondisional

tablestore.meta-table

meta_table

Ya, kondisional

Diperlukan hanya ketika tablestore.schema-mode diatur ke meta-table.

Nama tabel Tablestore yang digunakan untuk menyimpan metadata.

tablestore.auto-create-meta-table

true

Tidak

Berlaku hanya ketika tablestore.schema-mode diatur ke meta-table.

Menentukan apakah tabel metadata dibuat secara otomatis. Nilai default-nya adalah true, yang berarti tabel metadata akan dibuat otomatis saat Anda membuat Schema.

Konfigurasi Schema

Konfigurasikan Schema dalam salah satu dari dua mode: konfigurasi dinamis dengan tabel meta (disarankan) atau konfigurasi statis dengan file lokal.

Konfigurasi dinamis dengan tabel meta

  • Tidak diperlukan konfigurasi Schema sebelum memulai Presto Server.

  • Setelah terhubung dan menjalankan CLI SQL, gunakan perintah create schema dan create table untuk membuat Schema dan tabel pemetaan. Untuk informasi selengkapnya, lihat Buat Schema dan Buat tabel pemetaan.

Konfigurasi file statis lokal

Path ke file statis lokal harus sesuai dengan path lengkap yang ditentukan untuk tablestore.schema-file dalam konfigurasi Catalog.

Buat file di server dengan konten berikut:

{
	"account" : {
		"accessId" : "xxxxxxxx", ----- <Required> ID AccessKey dari Akun Alibaba Cloud atau pengguna RAM.
		"accessKey" : "xxxxxxxxxxxxxxx", ----- <Required> Rahasia AccessKey dari Akun Alibaba Cloud atau pengguna RAM.
	},
	"instances" : {
		"mydb" : { ----- <Required> Nama Schema di PrestoDB.
			"instanceName" : "myinstance", ----- <Required> Nama instans Tablestore.
			"endpoint" : "http://myinstance.cn-hangzhou.ots.aliyuncs.com", ----- <Required> Titik akhir instans Tablestore.
			"tables": {
				"mytable" : { ----- <Required> Nama tabel di PrestoDB.
					"originName" : "SampleTable", ----- <Optional> Nama tabel yang sesuai di Tablestore (case-sensitive). Jika tidak dikonfigurasi, nilainya sama dengan nama tabel di Presto.
					"columns" : [  ----- <Required> Metadata tabel. Harus mencakup semua kolom kunci primer, dan urutan kolom kunci primer harus sama dengan urutan kunci primer tabel tersebut.
						{"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"}
					]
				}
			}
		}
	}
}

Item konfigurasi

Wajib

Deskripsi

account

accessId

Ya

ID AccessKey dan Rahasia AccessKey dari Akun Alibaba Cloud atau pengguna RAM.

accessKey

Ya

instances(map(<schema_name> -> <schema_info>))

Ya

Peta JSON yang memetakan nama Schema ke informasi Schema.

Penting

Nama Schema tidak case-sensitive di PrestoDB.

<schema_info>

instanceName

Ya

Nama instans Tablestore yang sesuai dengan Schema ini. Untuk informasi selengkapnya, lihat Instans.

endpoint

Ya

Titik akhir instans Tablestore. Untuk informasi selengkapnya, lihat Titik akhir.

tables(map(<table_name> -> <table_info>))

Ya

Daftar tabel yang dimasang ke PrestoDB.

Penting

<table_name> tidak case-sensitive di PrestoDB.

<table_info>

originName

Tidak

Nama tabel aktual di Tablestore.

  • Jika dihilangkan, konektor secara otomatis memetakan nama tabel PrestoDB ke nama tabel Tablestore yang sesuai.

  • Jika ditentukan, konektor menggunakan nilai ini sebagai nama tabel aktual.

Jika konektor tidak dapat menemukan tabel yang sesuai di Tablestore, operasi baca dan tulis pada tabel tersebut akan gagal.

columns(list([<column_info>]))

Ya

Metadata tabel, termasuk semua kolom yang didefinisikan.

Penting
  • Sertakan semua kolom kunci primer dari tabel data Tablestore. Nama dan urutan kolom kunci primer harus sesuai dengan definisi aktual di tabel Tablestore.

  • Metadata yang salah menyebabkan semua operasi baca dan tulis berikutnya pada tabel tersebut gagal.

<column_info>

name

Ya

Nama kolom.

Penting

Nama kolom tidak case-sensitive di PrestoDB.

type

Ya

Tipe kolom. Tipe PrestoDB yang didukung dan dipetakan ke tipe kolom Tablestore: Bigint, Varchar, Varbinary, Double, dan Boolean.

Penting

Tipe kolom di PrestoDB harus sesuai dengan tipe kolom di Tablestore.

originName

Tidak

Nama kolom yang sesuai di tabel data Tablestore.

Contoh SQL umum

Contoh SQL berikut menunjukkan cara bekerja dengan data Tablestore melalui PrestoDB. Semua contoh menggunakan Schema bernama testdb yang terhubung ke instans Tablestore myinstance, serta tabel pemetaan bernama exampletable dengan skema (pk varchar, c1 double, c2 varchar, c3 varchar).

Buat Schema

Schema mengonfigurasi akses ke instans Tablestore dan menangani otentikasi. Contoh berikut membuat Schema bernama testdb untuk mengakses instans Tablestore myinstance.

CREATE SCHEMA tablestore.testdb
WITH (
  endpoint = 'https://myinstance.cn-hangzhou.ots.aliyuncs.com',
  instance_name = 'myinstance',
  access_id = '************************',
  access_key = '********************************'
);

Parameter

Contoh

Wajib

Deskripsi

endpoint

https://myinstance.cn-hangzhou.ots.aliyuncs.com

Ya

Titik akhir instans Tablestore. Untuk informasi selengkapnya, lihat Titik akhir.

instance_name

myinstance

Ya

Nama instans Tablestore. Untuk informasi selengkapnya, lihat Instans.

access_id

****

Ya

ID AccessKey dari Akun Alibaba Cloud atau pengguna RAM.

access_key

**

Ya

Rahasia AccessKey dari Akun Alibaba Cloud atau pengguna RAM.

Buat tabel pemetaan

Tabel pemetaan bersesuaian dengan tabel fisik di instans Tablestore.

Penting

Perhatikan hal-hal berikut saat membuat tabel pemetaan:

  • Pastikan tipe bidang di tabel pemetaan sesuai dengan tipe di tabel data Tablestore. Untuk informasi selengkapnya, lihat Pemetaan tipe bidang.

  • Nama tabel pemetaan harus sesuai dengan nama tabel di Tablestore.

  • Properti table_name dalam pernyataan CREATE TABLE memetakan tabel PrestoDB ke tabel aktual di Tablestore. Beberapa tabel pemetaan dengan nama berbeda dapat mengarah ke tabel data Tablestore yang sama.

  • Tabel pemetaan harus mencakup semua kolom kunci primer dari tabel data, tetapi hanya boleh mencakup sebagian kolom atribut.

  • Nama dan urutan kolom kunci primer di tabel pemetaan harus sesuai dengan tabel data Tablestore. Petakan setiap kolom atribut ke padanannya di Tablestore menggunakan parameter origin_name.

Contoh berikut membuat tabel pemetaan bernama exampletable yang dipetakan ke tabel data Tablestore dengan nama yang sama.

CREATE TABLE if not exists exampletable
(
   pk varchar,
   c1 double with (origin_name = 'col1'),
   c2 varchar with (origin_name = 'col2'),
   c3 varchar with (origin_name = 'col3')
) WITH (
   table_name = 'exampletable'
);

Operasi Schema

Setelah membuat Schema, daftarkan semua Schema atau pilih Schema untuk digunakan.

Daftar semua Schema

show schemas;

Contoh respons:

       Schema       
--------------------
 information_schema 
 testdb             
 testdb1            
(3 rows)

Gunakan Schema

Pilih Schema sebelum melakukan operasi pada tabel-tabelnya.

Penting

Pilih Schema sebelum melakukan operasi pada tabel-tabel di dalamnya.

Contoh berikut memilih Schema testdb.

use testdb;

Contoh respons:

USE

Operasi tabel pemetaan

Setelah membuat tabel pemetaan, daftarkan tabel dalam Schema, lihat metadata tabel, atau hapus tabel pemetaan.

Daftar tabel dalam Schema

Setelah memilih Schema, daftarkan tabel-tabelnya.

show tables;

Contoh respons:

      Table      
-----------------
 exampletable    
 sampletable     
 sampletabletest 
 table1          
 testtable       
(5 rows)

Deskripsikan tabel

Contoh berikut mendeskripsikan tabel exampletable.

describe exampletable;

Contoh respons:

Column |  Type   | Extra | Comment 
--------+---------+-------+---------
 pk     | varchar |       |         
 c1     | double  |       |         
 c2     | varchar |       |         
 c3     | varchar |       |         
(4 rows)

Hapus tabel pemetaan

Contoh berikut menghapus tabel pemetaan table1.

drop table table1;

Contoh respons:

DROP TABLE

Operasi data

Setelah membuat tabel pemetaan, tulis data ke dan baca data dari tabel Tablestore yang sesuai.

Penting

PrestoDB tidak mendukung operasi UPDATE atau DELETE pada tabel Tablestore.

Tulis data

  • Masukkan satu baris

    Contoh berikut memasukkan satu baris ke exampletable.

    insert into exampletable values('101', 22.0, 'Mary', '10002');

    Contoh respons:

    INSERT: 1 row
  • Impor data batch

    Penting

    Sebelum mengimpor data secara batch, pastikan tabel tujuan sudah ada dan skemanya sesuai dengan tabel sumber.

    Contoh berikut menyalin baris-baris di mana c1 < 50 dari exampletable ke sampletable.

    insert into sampletable select pk, c1, c2, c3 from exampletable where c1 < 50; 

    Contoh respons:

    INSERT: 3 rows

Baca data

  • Kueri semua baris

    Contoh berikut membaca semua data dari exampletable.

    select * from exampletable;

    Contoh respons:

     pk  |  c1  |  c2  |  c3   
    -----+------+------+-------
     100 | 11.0 | Lily | 10001 
     101 | 22.0 | Mary | 10002  
     102 | 12.0 | Jim  | 10003   
    (3 rows)
  • Kueri baris dengan kondisi

    Contoh berikut mengkueri baris-baris di exampletable di mana c1 < 15 dan c3 = '10001'.

    select * from exampletable where c1 < 15 and c3 = '10001'; 

    Contoh respons:

     pk  |  c1  |  c2  |  c3   
    -----+------+------+-------
     100 | 11.0 | Lily | 10001 
    (1 row)

Analisis data

  • Hitung rata-rata kolom

    Contoh berikut menghitung rata-rata kolom c1 di exampletable.

    select avg(c1) as Average from exampletable;

    Contoh respons:

    Average 
    ---------
        15.0 
    (1 row)
  • Hitung total baris

    Contoh berikut menghitung semua baris di exampletable.

    select count(*) as total from exampletable;

    Contoh respons:

    total 
    -------
         3 
    (1 row)