全部产品
Search
文档中心

Tablestore:Gunakan PrestoDB untuk mengakses Tablestore

更新时间:Jul 06, 2025

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.

    Catatan

    Jika 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 plugin di 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

      prestodb-tablestore-connector-0.280.tar.gz

      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.

    Catatan

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

    Penting
    • Jika 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.

    image.png

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

File konfigurasi katalog Presto berisi konfigurasi seperti konfigurasi konektor dan mode konfigurasi skema. Parameter konektor harus disetel ke tablestore. Mode konfigurasi skema dapat berupa mode konfigurasi berdasarkan file statis lokal atau mode konfigurasi dinamis berdasarkan tabel metadata.

Tabel berikut menjelaskan mode konfigurasi skema.

Mode konfigurasi skema

Deskripsi

Metode konfigurasi

Mode konfigurasi berdasarkan file statis lokal

File statis digunakan untuk mendefinisikan informasi tentang sumber daya Tablestore, seperti akun yang digunakan untuk mengakses Tablestore, informasi instance, dan metadata tabel pemetaan.

Penting

Saat menentukan metadata tabel pemetaan, tabel pemetaan harus berisi semua kolom kunci utama dari tabel Tablestore dan urutan kolom kunci utama dalam tabel pemetaan harus sama dengan urutan di tabel Tablestore.

Saat menggunakan PrestoDB untuk mengakses Tablestore, Anda hanya dapat mengakses tabel dalam instance Tablestore yang dikonfigurasi dalam file statis.

Sebelum menjalankan PrestoDB, lakukan langkah-langkah berikut:

  1. Setel mode konfigurasi skema ke mode konfigurasi berdasarkan file statis lokal dan konfigurasikan jalur lengkap file statis.

  2. Tentukan akun, informasi instance, dan informasi tabel dalam file statis.

(Direkomendasikan) Mode konfigurasi dinamis berdasarkan tabel metadata

Anda hanya perlu menentukan informasi untuk metastore yang digunakan untuk menyimpan skema. Anda tidak perlu mendefinisikan informasi tentang sumber daya Tablestore.

Anda dapat membuat skema dan tabel pemetaan secara dinamis untuk menentukan informasi tentang sumber daya Tablestore saat menggunakan PrestoDB untuk mengakses Tablestore. Saat membuat skema, Anda harus menentukan informasi tentang akun dan instance. Saat membuat tabel pemetaan, Anda harus mengonfigurasi informasi tentang tabel pemetaan.

  1. Sebelum menjalankan PrestoDB, setel mode konfigurasi skema ke mode konfigurasi dinamis berdasarkan tabel metadata dan konfigurasikan metastore yang digunakan untuk menyimpan skema.

  2. Setelah menjalankan PrestoDB, eksekusi pernyataan CREATE SCHEMA dan CREATE TABLE untuk membuat skema dan tabel pemetaan yang diperlukan secara dinamis.

Menurut tabel di atas, tabel yang ingin Anda akses harus didefinisikan sebelumnya jika Anda menggunakan mode konfigurasi berdasarkan file statis lokal. Jika tabel tidak didefinisikan sebelumnya, Anda harus mengonfigurasi tabel secara manual sebelum dapat mengakses tabel tersebut. Jika Anda menggunakan PrestoDB untuk mengakses Tablestore menggunakan mode konfigurasi dinamis berdasarkan tabel metadata, Anda dapat membuat tabel yang diperlukan secara dinamis dan fleksibel berdasarkan kebutuhan bisnis Anda. Kami sarankan Anda mengonfigurasi skema dalam mode konfigurasi dinamis berdasarkan tabel metadata.

Prosedur

Tentukan mode konfigurasi skema dalam file konfigurasi katalog dan konfigurasikan parameter yang diperlukan. Dalam contoh ini, mode konfigurasi dinamis berdasarkan tabel metadata digunakan.

  1. Pergi ke direktori tempat PrestoDB diinstal. Buat file tablestore.properties di jalur etc/catalog/ direktori tersebut.

    Penting

    Pastikan Anda memiliki izin eksekusi untuk file tersebut sebelum memodifikasi file.

    Gambar berikut menunjukkan direktori tempat file konfigurasi katalog berada.

    image.png

  2. Modifikasi contoh konfigurasi dalam file tablestore.properties berdasarkan kebutuhan bisnis Anda dan salin file tersebut ke file katalog.

    Jika ingin mengonfigurasi skema dalam mode konfigurasi dinamis berdasarkan tabel metadata, setel parameter tablestore.schema-mode ke meta-table.

    Catatan

    Jika ingin mengonfigurasi skema dalam mode konfigurasi berdasarkan file statis lokal, setel parameter tablestore.schema-mode ke file dan tentukan jalur lengkap file tablestore.schema-file. Lalu, konfigurasikan informasi skema dalam file statis. Untuk informasi lebih lanjut, lihat bagian Konfigurasikan Server Presto dari topik "Konfigurasikan Server Presto dan Eksekusi Pernyataan SQL Sampel".

    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 dalam file tablestore.properties.

    Parameter

    Contoh

    Diperlukan

    Deskripsi

    connector.name

    tablestore

    Ya

    Nama konektor. Anda harus menyetel parameter ini ke tablestore.

    tablestore.schema-mode

    meta-table

    Ya

    Mode konfigurasi skema. Dalam contoh ini, parameter disetel ke meta-table.

    tablestore.meta-instance

    metastoreinstance

    Ya

    Nama instance Tablestore yang digunakan untuk menyimpan metadata. Modifikasi nilai parameter ini berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Instance.

    Penting

    Pastikan bahwa instance Tablestore yang Anda tentukan untuk menyimpan metadata dibuat dalam akun Alibaba Cloud Anda.

    tablestore.endpoint

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

    Ya

    Titik akhir instance Tablestore yang digunakan untuk menyimpan metadata. Modifikasi nilai parameter ini berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Endpoints.

    tablestore.accessid

    ****************

    Ya

    ID AccessKey dan Rahasia AccessKey dari pengguna RAM yang diberikan izin untuk mengakses instance Tablestore yang digunakan untuk menyimpan metadata.

    tablestore.accesskey

    **************************

    tablestore.meta-table

    meta_table

    Ya

    Nama tabel Tablestore yang digunakan untuk menyimpan metadata. Modifikasi nilai parameter ini berdasarkan kebutuhan bisnis Anda.

    tablestore.auto-create-meta-table

    true

    Tidak

    Menentukan apakah akan membuat tabel metadata secara otomatis. Nilai default adalah true, yang menentukan bahwa tabel metadata dibuat secara otomatis saat Anda membuat skema.

  3. Simpan dan keluar dari file konfigurasi.

    Catatan

    Anda dapat menjalankan perintah cat untuk memeriksa apakah file konfigurasi disimpan.

Langkah 2: Jalankan SQL CLI Presto

Setelah Tablestore terhubung ke PrestoDB, Anda dapat memulai server Presto dan mengeksekusi pernyataan SQL.

  1. Peroleh program yang dapat dieksekusi untuk menginstal klien PrestoDB.

    1. Unduh paket instalasi klien PrestoDB.

      Dalam contoh ini, paket presto-cli-0.280-executable.jar diunduh.

    2. Simpan paket instalasi klien PrestoDB ke direktori bin di bawah direktori tempat PrestoDB diinstal.

    3. Jalankan perintah berikut di direktori bin untuk 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 presto

      Gambar berikut menunjukkan direktori tempat program yang dapat dieksekusi untuk menginstal klien PrestoDB berada.

      image.png

  2. Jalankan perintah berikut di direktori bin untuk memulai server Presto.

    Penting

    Saat 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 run
  3. Jalankan perintah berikut di direktori bin untuk memulai SQL CLI.

    Catatan
    • Secara default, PrestoDB berjalan di port 8080. Jika ingin memodifikasi konfigurasi port, ubah nilai parameter http-server.http.port dalam file etc/config.properties.

    • Setelah memodifikasi konfigurasi tertentu, Anda harus memulai ulang server Presto agar konfigurasi baru berlaku.

    • ./presto dalam perintah menunjukkan jalur relatif program yang dapat dieksekusi untuk menginstal klien PrestoDB dalam direktori bin.

    ./presto --server localhost:8080 --catalog tablestore --schema default

    Tabel 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.uri dalam file etc/config.properties di 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.

Catatan

Jika Anda mengonfigurasi skema dalam mode konfigurasi berdasarkan file statis lokal, lewati langkah ini.

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

  2. Eksekusi pernyataan use <SCHEMA_NAME>; untuk menggunakan skema yang telah dibuat.

    Ganti <SCHEMA_NAME> dengan nama skema yang telah dibuat. Anda dapat mengeksekusi pernyataan show schemas; untuk melihat daftar skema.

  3. Eksekusi pernyataan berikut untuk membuat tabel pemetaan untuk tabel Tablestore.

    Penting

    Saat 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

Penting

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.

  1. Akses konfigurasi skema.

    • Akses daftar skema

      show schemas;
    • Akses daftar tabel dalam skema tertentu

      show tables;
  2. Akses metadata tabel tertentu

    Ganti <TABLE_NAME> dengan nama aktual tabel.

    describe <TABLE_NAME>;
  3. 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

        Penting

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