全部产品
Search
文档中心

AnalyticDB:Kueri dan impor data Tablestore

更新时间:Jul 02, 2025

Topik ini menjelaskan cara mengkueri dan mengimpor data Tablestore di AnalyticDB for MySQL Data Lakehouse Edition (V3.0).

Prasyarat

  • Sebuah kluster AnalyticDB for MySQL Data Lakehouse Edition (V3.0) telah dibuat. Untuk informasi lebih lanjut, lihat Buat Kluster.

    Catatan

    Jika sebuah virtual private cloud (VPC) terhubung ke instance Tablestore yang dibuat, pastikan bahwa kluster AnalyticDB for MySQL dibuat di VPC yang sama.

Informasi latar belakang

Sebuah instance Tablestore adalah entitas yang digunakan untuk mengelola tabel dan data di Tablestore. Setiap instance setara dengan sebuah database. Sebuah instance Tablestore sesuai dengan skema atau database AnalyticDB for MySQL. Jika tidak ada VPC yang terhubung ke instance Tablestore, Anda dapat langsung mengakses data Tablestore dari AnalyticDB for MySQL. Jika sebuah VPC terhubung ke instance Tablestore, pastikan bahwa kluster AnalyticDB for MySQL dibuat di VPC yang sama.

Data sampel

Dalam contoh ini, sebuah tabel bernama person dibuat di Tablestore dan empat entri dimasukkan ke dalam tabel. Jika Anda telah membuat data sumber, lewati langkah ini.

id (kunci utama)

nama

usia

1

james

10

2

bond

20

3

jack

30

4

lucy

40

Prosedur

  1. Pergi ke Editor SQL.

    1. Masuk ke Konsol AnalyticDB for MySQL. Di sudut kiri atas konsol, pilih wilayah. Di panel navigasi di sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola dan klik ID kluster.

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

  2. Buat Database Eksternal.

    Dalam contoh ini, sebuah database bernama adb_external_db dibuat. Contoh pernyataan:

    create external database adb_external_db;
  3. Buat Tabel Eksternal.

    Catatan

    Tabel eksternal AnalyticDB for MySQL harus memiliki nama, jumlah, dan urutan bidang yang sama dengan tabel Tablestore. Tipe data bidang harus kompatibel antara kedua tabel tersebut. Untuk informasi tentang pemetaan tipe data, lihat bagian "Pemetaan Tipe Data" dari topik ini.

    Dalam contoh ini, sebuah tabel bernama person dibuat di database adb_external_db. Contoh pernyataan:

    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 Tablestore, atur mesin penyimpanan ke OTS.

    mapped_name

    Nama tabel di instance Tablestore. Untuk melihat nama tabel, masuk ke Konsol Tablestore dan buka halaman Semua Instance.

    location

    URL VPC dari instance Tablestore. Untuk melihat URL VPC, masuk ke Konsol Tablestore dan buka halaman Semua Instances.

  4. Setelah tabel eksternal dibuat, AnalyticDB for MySQL secara otomatis memetakan data dari tabel Tablestore ke tabel AnalyticDB for MySQL. Eksekusi pernyataan SELECT berikut di AnalyticDB for MySQL untuk mengkueri data tabel person di instance Tablestore:

    select * from adb_external_db.person;

    Informasi berikut dikembalikan:

    +------+-------+------+
    | id   | name  | age  |
    +------+-------+------+
    |    1 | james |   10 |
    |    2 | bond  |   20 |
    |    3 | jack  |   30 |
    |    4 | lucy  |   40 |
    +------+-------+------+
    4 baris dalam set (0,35 detik)
  5. Lakukan langkah-langkah berikut untuk mengimpor data dari Tablestore ke AnalyticDB for MySQL:

    1. Buat Database di AnalyticDB for MySQL.

      CREATE DATABASE adb_demo; 
    2. Buat Tabel di AnalyticDB for MySQL untuk menyimpan data yang diimpor dari Tablestore.

      Catatan

      Tabel yang dibuat harus menggunakan jumlah dan urutan bidang yang sama dengan tabel eksternal yang dibuat pada Langkah 3. Tipe data bidang harus kompatibel antara kedua tabel tersebut.

      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: Eksekusi pernyataan INSERT INTO untuk mengimpor data. Jika kunci utama memiliki nilai duplikat, data tidak akan dimasukkan ulang dan pernyataan INSERT INTO setara dengan pernyataan INSERT IGNORE INTO. Untuk informasi lebih lanjut, lihat INSERT INTO.

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

        Eksekusi pernyataan SELECT untuk mengkueri data yang ditulis ke tabel.

        select * from adb_demo.adb_import_test;

        Informasi berikut dikembalikan:

        +------+-------+------+
        | id   | name  | age  |
        +------+-------+------+
        |    1 | james |   10 |
        |    2 | bond  |   20 |
        |    3 | jack  |   30 |
        |    4 | lucy  |   40 |
        +------+-------+------+
      • Metode 2: Eksekusi pernyataan INSERT OVERWRITE untuk mengimpor data. Jika kunci utama memiliki nilai duplikat, nilai asli akan ditimpa oleh nilai baru.

        INSERT OVERWRITE adb_demo.adb_import_test
        SELECT * FROM adb_external_db.person;
      • Metode 3: Secara asinkron eksekusi pernyataan INSERT OVERWRITE INTO untuk mengimpor data. Dalam banyak kasus, SUBMIT JOB digunakan untuk mengirim pekerjaan asinkron. Anda dapat menambahkan petunjuk (/*+ direct_batch_load=true*/) sebelum pernyataan impor data untuk mempercepat pekerjaan. Untuk informasi lebih lanjut, lihat bagian "Penulisan Asinkron" dari topik INSERT OVERWRITE SELECT.

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

        Informasi berikut dikembalikan:

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

        Untuk informasi tentang cara mengirim pekerjaan asinkron, lihat Kirim Pekerjaan Impor secara Asinkron.

Pemetaan tipe data

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

Tipe data yang didukung oleh Tablestore

Tipe data yang didukung oleh AnalyticDB for MySQL

INTEGER (8 byte)

BIGINT (8 byte)

STRING

VARCHAR

BINARY

BINARY

DOUBLE

DOUBLE

BOOLEAN

BOOLEAN