All Products
Search
Document Center

AnalyticDB:Kueri dan impor data dari Tablestore

Last Updated:Aug 25, 2026

Topik ini menjelaskan cara melakukan kueri dan mengimpor data dari Tablestore ke AnalyticDB for MySQL Edisi Perusahaan, Edisi Dasar, dan Edisi Data Lakehouse.

Prasyarat

  • Anda telah membuat instans Tablestore. Untuk informasi selengkapnya, lihat Aktifkan Tablestore dan buat instans.

  • Anda telah membuat kluster AnalyticDB for MySQL Edisi Perusahaan, Edisi Dasar, atau Edisi Data Lakehouse. Untuk informasi selengkapnya, lihat Buat kluster.

    Catatan

    Jika instans Tablestore menggunakan VPC, pastikan kluster AnalyticDB for MySQL dan instans Tablestore berada dalam VPC yang sama.

Latar Belakang

Tablestore adalah layanan database NoSQL multi-model yang dikembangkan oleh Alibaba Cloud. Layanan ini mendukung kueri berdasarkan Search Index. Di AnalyticDB for MySQL, Anda dapat melakukan kueri terhadap data Tablestore dengan metode seperti kueri titik (point) dan kueri rentang (range). AnalyticDB for MySQL dapat secara cerdas memilih tabel utama, indeks sekunder, atau Search Index untuk mempercepat kueri dan mengurangi biaya.

Instans Tablestore adalah entitas yang digunakan untuk mengelola layanan Tablestore. Setiap instans setara dengan sebuah database. Instans Tablestore berkorespondensi dengan skema atau database di AnalyticDB for MySQL. Jika instans Tablestore tidak terikat ke VPC, AnalyticDB for MySQL dapat langsung mengakses instans tersebut. Jika instans Tablestore menggunakan VPC, pastikan kluster AnalyticDB for MySQL dan instans Tablestore berada dalam VPC yang sama.

Data contoh

Contoh ini membuat tabel person di Tablestore dan memasukkan 4 catatan ke dalamnya. Jika Anda sudah memiliki sumber data, lewati langkah ini.

id (kunci utama)

Name

Age

1

james

10

2

bond

20

3

jack

30

4

lucy

40

Prosedur

  1. Buka editor Pengembangan SQL.

    1. Login ke Konsol AnalyticDB for MySQL. Di pojok kiri atas konsol, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola lalu klik ID kluster tersebut.

    2. Di panel navigasi sebelah kiri, buka Job Development > SQL Development.

  2. Buat database eksternal.

    Berikut adalah contoh pernyataan untuk membuat database adb_external_db:

    CREATE EXTERNAL database adb_external_db;
  3. Buat tabel eksternal.

    Catatan

    Tabel eksternal di AnalyticDB for MySQL harus memiliki nama kolom, jumlah kolom, dan urutan kolom yang sama dengan tabel di Tablestore. Tipe data kolom harus kompatibel. Untuk informasi selengkapnya tentang pemetaan tipe data, lihat Pemetaan tipe data.

    Di database adb_external_db, buat tabel person. Contoh pernyataannya sebagai berikut:

    CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_db.person (
        id int,
        name string,
        age int
    ) ENGINE = 'OTS'  
    TABLE_PROPERTIES = '{
    "mapped_name":"person",
    "location":"https://w0****la.cn-hangzhou.vpc.tablestore.aliyuncs.com"
    }'

    Parameter

    Deskripsi

    ENGINE='OTS'

    Mesin penyimpanan tabel eksternal. Untuk membaca dan menulis data ke Tablestore, atur nilainya menjadi OTS.

    mapped_name

    Nama tabel di instans Tablestore. Untuk melihat nama tabel, login ke Konsol Tablestore dan buka halaman All Instances.

    location

    Titik akhir VPC dari instans Tablestore. Untuk melihat titik akhir VPC, login ke Konsol Tablestore dan buka halaman All Instances.

  4. Setelah tabel eksternal dibuat, AnalyticDB for MySQL secara otomatis memetakan data tabel dari Tablestore ke tabel AnalyticDB for MySQL. Anda dapat melakukan kueri terhadap data di tabel person Tablestore dengan menggunakan pernyataan SELECT di AnalyticDB for MySQL.

    SELECT * FROM adb_external_db.person;

    Output yang diharapkan:

    +------+-------+------+
    | id   | name  | age  |
    +------+-------+------+
    |    1 | james |   10 |
    |    2 | bond  |   20 |
    |    3 | jack  |   30 |
    |    4 | lucy  |   40 |
    +------+-------+------+
    4 rows in set (0.35 sec)
  5. Jika Anda ingin mengimpor data dari Tablestore ke AnalyticDB for MySQL, ikuti langkah-langkah berikut.

    1. Buat database di AnalyticDB for MySQL:

      CREATE DATABASE adb_demo; 
    2. Buat tabel di AnalyticDB for MySQL untuk menyimpan data yang diimpor:

      Catatan

      Tabel baru harus memiliki urutan kolom dan jumlah kolom yang sama dengan tabel eksternal yang dibuat pada Langkah 3. Tipe data kolom harus kompatibel.

      CREATE TABLE IF NOT EXISTS adb_demo.adb_import_test(
          id int,
          name string,
          age int
      )
      DISTRIBUTED BY HASH(id);                   
    3. Tulis data ke tabel:

      • Metode 1: Anda dapat menggunakan pernyataan INSERT INTO untuk mengimpor data. Jika terjadi duplikasi kunci utama, operasi penulisan saat ini akan diabaikan secara otomatis dan tidak dilakukan pembaruan. Operasi ini setara dengan INSERT IGNORE INTO. Untuk informasi selengkapnya, lihat INSERT INTO. Berikut contohnya:

        INSERT INTO adb_demo.adb_import_test
        SELECT * FROM adb_external_db.person;

        Lakukan kueri terhadap tabel tujuan. Contoh:

        SELECT * FROM adb_demo.adb_import_test;

        Output yang diharapkan:

        +------+-------+------+
        | id   | name  | age  |
        +------+-------+------+
        |    1 | james |   10 |
        |    2 | bond  |   20 |
        |    3 | jack  |   30 |
        |    4 | lucy  |   40 |
        +------+-------+------+
      • Metode 2: Jalankan pernyataan INSERT OVERWRITE untuk mengimpor data, menimpa data yang sudah ada di tabel. Berikut contohnya:

        INSERT OVERWRITE adb_demo.adb_import_test
        SELECT * FROM adb_external_db.person;
      • Metode 3: Impor data secara asinkron dengan menggunakan pernyataan INSERT OVERWRITE. Anda dapat menggunakan SUBMIT JOB untuk mengirimkan pekerjaan asinkron, yang kemudian dijadwalkan oleh backend. Anda dapat menambahkan Hint (/*+ direct_batch_load=true*/) sebelum tugas penulisan untuk mempercepat prosesnya. Untuk informasi selengkapnya, lihat Penulisan asinkron. Berikut contohnya:

        SUBMIT JOB
        INSERT OVERWRITE adb_demo.adb_import_test
        SELECT * FROM adb_external_db.person;

        Pernyataan tersebut mengembalikan job ID:

        +---------------------------------------+
        | job_id                                |
        +---------------------------------------+
        | 2020112122202917203100908203303****** |

        Untuk informasi selengkapnya tentang pengiriman pekerjaan impor asinkron, lihat Kirimkan pekerjaan impor secara asinkron.

Pemetaan tipe data

Tabel berikut menjelaskan pemetaan tipe data antara Tablestore dan AnalyticDB for MySQL:

Tipe Tablestore

AnalyticDB for MySQL tipe

INTEGER (8 byte)

BIGINT (8 byte)

STRING

VARCHAR

BINARY

BINARY

DOUBLE

DOUBLE

BOOLEAN

BOOLEAN