全部产品
Search
文档中心

AnalyticDB:Impor Data MaxCompute Menggunakan Tabel Eksternal

更新时间:Oct 22, 2025

AnalyticDB for MySQL memungkinkan Anda menggunakan tabel eksternal untuk membaca dan mengimpor data dari MaxCompute. Metode ini memaksimalkan pemanfaatan sumber daya kluster serta meningkatkan kinerja impor data. Topik ini menjelaskan cara mengimpor data MaxCompute ke AnalyticDB for MySQL menggunakan tabel eksternal.

Fitur

AnalyticDB for MySQL Seri Produk

Metode Akses

AnalyticDB for MySQL Versi Kernel

Efisiensi Akses Data

Edisi Perusahaan, Edisi Dasar, dan Edisi Danau Data

Tunnel Record API

Tidak ada batasan

Cocok untuk akses data skala kecil. Akses data dan impor lambat.

Tunnel Arrow API

3.2.2.3 atau lebih baru

Membaca data dalam kolom untuk mengurangi waktu akses dan impor data, memberikan transmisi data yang lebih cepat.

Edisi Gudang Data

Tunnel Record API

Tidak ada batasan

Menggunakan sumber daya kelompok Layanan Transmisi Data publik. Sumber daya ini dibagikan oleh semua proyek di wilayah tersebut, mengakibatkan akses data dan impor lambat.

Prasyarat

  • Proyek MaxCompute dan kluster AnalyticDB for MySQL harus berada di wilayah yang sama. Untuk informasi lebih lanjut, lihat Buat Kluster.

  • Blok CIDR VPC dari kluster AnalyticDB for MySQL telah ditambahkan ke daftar putih proyek MaxCompute.

    Catatan

    Masuk ke Konsol AnalyticDB for MySQL dan temukan ID VPC di halaman Cluster Information. Masuk ke Konsol VPC dan gunakan ID VPC untuk menemukan blok CIDR di halaman VPCs. Untuk informasi lebih lanjut tentang konfigurasi daftar putih MaxCompute, lihat Kelola Daftar Putih IP.

  • Untuk kluster AnalyticDB for MySQLEdisi Perusahaan, Edisi Dasar, dan Edisi Danau Data:

    • Akses Elastic Network Interface (ENI) telah diaktifkan.

      Penting
      • Masuk ke Konsol AnalyticDB for MySQL. Di panel navigasi kiri, pilih Cluster Management > Cluster Information. Di bagian Network Information, aktifkan saklar untuk akses ENI.

      • Mengaktifkan atau menonaktifkan akses ENI akan memutus koneksi database selama sekitar 2 menit. Selama periode ini, Anda tidak dapat membaca atau menulis data. Kami sarankan Anda mengevaluasi dampak potensial sebelum melakukan operasi ini.

    • Untuk mengakses dan mengimpor data MaxCompute menggunakan Tunnel Arrow API, kluster Anda harus versi 3.2.2.3 atau lebih baru.

      Catatan

      Untuk melihat dan memperbarui versi minor dari kluster AnalyticDB for MySQL, masuk ke Konsol AnalyticDB for MySQL dan buka bagian Configuration Information dari halaman Cluster Information.

Persiapan Data

Bagian ini menggunakan proyek MaxCompute odps_project dan tabel contoh odps_nopart_import_test sebagai referensi:

CREATE TABLE IF NOT EXISTS odps_nopart_import_test (
    id int,
    name string,
    age int)
partitioned by (dt string);

Jalankan pernyataan berikut untuk menambahkan partisi ke tabel odps_nopart_import_test:

ALTER TABLE odps_nopart_import_test 
ADD 
PARTITION (dt='202207');

Jalankan pernyataan contoh berikut untuk menambahkan data ke partisi:

INSERT INTO odps_project.odps_nopart_import_test 
PARTITION (dt='202207') 
VALUES (1,'james',10),(2,'bond',20),(3,'jack',30),(4,'lucy',40);

Prosedur

Edisi Perusahaan, Edisi Dasar, dan Edisi Danau Data

Secara default, kluster AnalyticDB for MySQL menggunakan Tunnel Record API untuk mengakses dan mengimpor data dari MaxCompute. Untuk menggunakan Tunnel Arrow API, Anda harus terlebih dahulu mengaktifkan fitur API Arrow. Setelah fitur ini diaktifkan, kluster AnalyticDB for MySQL menggunakan Tunnel Arrow API untuk mengimpor data.

Tunnel Record API

Tersedia dua metode impor data: impor reguler (default) dan impor elastis. Metode impor reguler membaca data sumber dari node komputasi dan membangun indeks pada node penyimpanan, yang mengonsumsi sumber daya komputasi dan penyimpanan. Sementara itu, metode impor elastis membaca data sumber serta membangun indeks dalam Serverless Spark Job, menggunakan sumber daya dari kelompok sumber daya pekerjaan. Metode impor elastis hanya didukung pada kluster yang menjalankan Milvus versi 3.1.10.0 atau lebih baru dan memiliki kelompok sumber daya pekerjaan. Dibandingkan dengan metode impor reguler, metode impor elastis mengonsumsi lebih sedikit sumber daya, mengurangi dampak pada operasi pembacaan dan penulisan data real-time, serta meningkatkan isolasi sumber daya dan efisiensi impor data. Untuk informasi lebih lanjut, lihat Metode Impor Data.

Impor Reguler

  1. Navigasikan 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 basis data eksternal. Pernyataan contoh berikut digunakan:

    CREATE EXTERNAL DATABASE adb_external_db;
  3. Buat tabel eksternal. Topik ini menggunakan test_adb sebagai contoh.

    CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_db.test_adb (
        id int,
        name varchar(1023),
        age int,
        dt string
        ) ENGINE='ODPS'
    TABLE_PROPERTIES='{
    "accessid":"yourAccessKeyID",
    "endpoint":"http://service.cn-hangzhou.maxcompute.aliyun.com/api",
    "accesskey":"yourAccessKeySecret",
    "partition_column":"dt",
    "project_name":"odps_project",
    "table_name":"odps_nopart_import_test"
    }';
    Catatan
    • Tabel eksternal di AnalyticDB for MySQL dan tabel di MaxCompute harus memiliki nama bidang, jumlah bidang, dan urutan bidang yang sama. Tipe data bidang harus kompatibel.

    • Untuk informasi lebih lanjut tentang parameter untuk tabel eksternal, lihat CREATE EXTERNAL TABLE.

  4. Kueri data.

    SELECT * FROM adb_external_db.test_adb;

    Hasil berikut dikembalikan:

    +------+-------+------+---------+
    | id   | name  | age  |   dt    |
    +------+-------+------+---------+
    |    1 | james |   10 |  202207 |
    |    2 | bond  |   20 |  202207 |
    |    3 | jack  |   30 |  202207 |
    |    4 | lucy  |   40 |  202207 |
    +------+-------+------+---------+
  5. Ikuti langkah-langkah berikut untuk mengimpor data dari MaxCompute ke AnalyticDB for MySQL.

    1. Buat basis data di AnalyticDB for MySQL. Berikut adalah contoh pernyataannya:

      CREATE DATABASE adb_demo; 
    2. Buat tabel di AnalyticDB for MySQL untuk menyimpan data yang diimpor dari MaxCompute. Berikut adalah contoh pernyataannya:

      Catatan

      Tabel baru dan tabel eksternal yang Anda buat di Langkah 3 harus memiliki urutan bidang dan jumlah bidang yang sama. Tipe data bidang harus kompatibel.

      CREATE TABLE IF NOT EXISTS adb_demo.adb_import_test(
          id int,
          name string,
          age int,
          dt string,
          PRIMARY KEY(id,dt)
      )
      DISTRIBUTED BY HASH(id)  
      PARTITION BY VALUE('dt'); 
    3. Tulis data ke tabel. Pernyataan contoh berikut digunakan:

      • Metode 1: Jalankan pernyataan `INSERT INTO` untuk mengimpor data. Jika kunci utama duplikat ada, data secara otomatis diabaikan dan tidak diperbarui. Operasi ini setara dengan INSERT IGNORE INTO. Untuk informasi lebih lanjut, lihat INSERT INTO. Pernyataan berikut adalah contohnya:

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

        Untuk mengimpor data dari partisi tertentu ke adb_demo.adb_import_test, Anda dapat menjalankan pernyataan berikut:

        INSERT INTO adb_demo.adb_import_test
        SELECT * FROM adb_external_db.test_adb 
        WHERE dt = '202207'; 
      • Metode 2: Jalankan pernyataan `INSERT OVERWRITE INTO` untuk mengimpor data. Pernyataan ini menimpa data yang ada di tabel. Pernyataan berikut adalah contohnya:

        INSERT OVERWRITE INTO adb_demo.adb_import_test
        SELECT * FROM adb_external_db.test_adb;
      • Metode 3: Secara asinkron jalankan pernyataan `INSERT OVERWRITE INTO` untuk mengimpor data. Anda dapat menggunakan perintah SUBMIT JOB untuk mengirimkan tugas asinkron. Tugas dijadwalkan oleh backend. Anda dapat menambahkan petunjuk (/*+ direct_batch_load=true*/) sebelum tugas tulis untuk mempercepat tugas. Untuk informasi lebih lanjut, lihat Penulisan Asinkron. Pernyataan berikut adalah contohnya:

        SUBMIT job 
        INSERT OVERWRITE INTO adb_demo.adb_import_test
        SELECT * FROM adb_external_db.test_adb;

        Hasil berikut dikembalikan:

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

        Untuk informasi selengkapnya, lihat Mengirim tugas impor secara asinkron.

Impor elastis

  1. Navigasikan ke editor SQL.

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

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

  2. Buat database. Anda dapat melewati langkah ini jika database sudah ada. Pernyataan berikut adalah contohnya:

    CREATE DATABASE adb_demo; 
  3. Buat tabel eksternal.

    Catatan
    • Nama tabel eksternal di AnalyticDB for MySQL harus sesuai dengan nama Proyek MaxCompute. Jika tidak, pembuatan tabel eksternal akan gagal.

    • Tabel eksternal di AnalyticDB for MySQL dan tabel di MaxCompute harus memiliki nama bidang, jumlah bidang, serta urutan bidang yang sama. Tipe data dari bidang-bidang tersebut juga harus kompatibel.

    • Impor elastis mendukung pembuatan tabel eksternal hanya menggunakan pernyataan CREATE TABLE.

    CREATE TABLE IF NOT EXISTS test_adb
    (
        id int,
        name string,
        age int,
        dt string
    )
     ENGINE='ODPS'
     TABLE_PROPERTIES='{
     "endpoint":"http://service.cn-hangzhou.maxcompute.aliyun-inc.com/api",
     "accessid":"yourAccessKeyID",
     "accesskey":"yourAccessKeySecret",
     "partition_column":"dt",
     "project_name":"odps_project",
     "table_name":"odps_nopart_import_test"
     }';                 

    Untuk informasi lebih lanjut tentang parameter yang dapat Anda atur untuk tabel eksternal, lihat Deskripsi Parameter.

  4. Kueri data.

    SELECT * FROM adb_demo.test_adb;

    Hasil berikut dikembalikan:

    +------+-------+------+---------+
    | id   | name  | age  |   dt    |
    +------+-------+------+---------+
    |    1 | james |   10 |  202207 |
    |    2 | bond  |   20 |  202207 |
    |    3 | jack  |   30 |  202207 |
    |    4 | lucy  |   40 |  202207 |
    +------+-------+------+---------+
  5. Buat tabel di AnalyticDB for MySQL untuk menyimpan data yang diimpor dari MaxCompute. Berikut adalah contoh pernyataannya:

    Catatan

    Tabel internal dan tabel eksternal yang Anda buat di Langkah 3 harus memiliki nama bidang, jumlah bidang, urutan bidang, dan tipe data yang sama.

    CREATE TABLE IF NOT EXISTS adb_import_test
    (   id int,
        name string,
        age int,
        dt string,
        PRIMARY KEY(id,dt)
    )
    DISTRIBUTED BY HASH(id)
    PARTITION BY VALUE('dt') LIFECYCLE 30;  
  6. Impor data.

    Penting

    Impor elastis mendukung impor data hanya menggunakan pernyataan INSERT OVERWRITE INTO.

    • Metode 1: Jalankan pernyataan INSERT OVERWRITE INTO untuk mengimpor data secara elastis. Pernyataan ini menimpa data yang ada di tabel. Pernyataan berikut adalah contohnya:

      /*+ elastic_load=true, elastic_load_configs=[adb.load.resource.group.name=resource_group]*/
      INSERT OVERWRITE INTO adb_demo.adb_import_test SELECT * FROM adb_demo.test_adb;
    • Metode 2: Secara asinkron jalankan pernyataan INSERT OVERWRITE INTO untuk mengimpor data secara elastis. Anda dapat menggunakan perintah SUBMIT JOB untuk mengirimkan tugas asinkron. Tugas tersebut dijadwalkan oleh backend.

      /*+ elastic_load=true, elastic_load_configs=[adb.load.resource.group.name=resource_group]*/
      SUBMIT JOB INSERT OVERWRITE INTO adb_demo.adb_import_test SELECT * FROM adb_demo.test_adb;
      Penting

      Anda tidak dapat mengatur antrian prioritas saat mengirimkan tugas impor elastis secara asinkron.

      Hasil berikut dikembalikan:

      +---------------------------------------+
      | job_id                                |
      +---------------------------------------+
      | 2023081517192220291720310090151****** |
      +---------------------------------------+

    Setelah Anda menggunakan perintah SUBMIT JOB untuk mengirimkan pekerjaan asinkron, hasil yang dikembalikan hanya menunjukkan bahwa pekerjaan berhasil dikirimkan. Anda dapat menggunakan job_id yang dikembalikan untuk menghentikan pekerjaan asinkron atau memeriksa statusnya untuk melihat apakah pekerjaan berhasil dieksekusi. Untuk informasi lebih lanjut, lihat Kirim tugas impor secara asinkron.

    Parameter petunjuk:

    • elastic_load: Menentukan apakah menggunakan impor elastis. Nilai valid: true dan false. Nilai default: false.

    • elastic_load_configs: Parameter konfigurasi fitur impor elastis. Anda harus mengapit parameter dalam tanda kurung siku ([ ]) dan memisahkan beberapa parameter dengan garis vertikal (|). Tabel berikut menjelaskan parameter-parameter tersebut.

      Parameter

      Diperlukan

      Deskripsi

      adb.load.resource.group.name

      Ya

      Nama kelompok sumber daya pekerjaan yang menjalankan tugas impor elastis.

      adb.load.job.max.acu

      Tidak

      Jumlah maksimum sumber daya untuk tugas impor elastis. Unit: Unit komputasi AnalyticDB (ACUs). Nilai minimum: 5 ACUs. Nilai default: jumlah shard ditambah 1.

      Jalankan pernyataan berikut untuk menanyakan jumlah shard dalam kluster:

      SELECT count(1) FROM information_schema.kepler_meta_shards;

      spark.driver.resourceSpec

      Tidak

      Tipe sumber daya Spark driver. Nilai default: small. Untuk informasi tentang nilai-nilai yang valid, lihat kolom Type di tabel "Parameter konfigurasi aplikasi Spark" pada topik parameter konfigurasi Conf.

      spark.executor.resourceSpec

      Tidak

      Tipe sumber daya Spark executor. Nilai default: large. Untuk informasi tentang nilai-nilai yang valid, lihat kolom Type di tabel "Parameter konfigurasi aplikasi Spark" pada topik parameter konfigurasi Conf.

      spark.adb.executorDiskSize

      Tidak

      Kapasitas disk Spark executor. Nilai valid: (0,100]. Unit: GiB. Nilai default: 10 GiB. Untuk informasi lebih lanjut, lihat bagian "Tentukan sumber daya driver dan executor" pada topik parameter konfigurasi Conf.

  7. (Opsional) Periksa apakah tugas impor yang dikirimkan adalah tugas impor elastis.

    SELECT job_name, (job_type = 3) AS is_elastic_load FROM INFORMATION_SCHEMA.kepler_meta_async_jobs WHERE job_name = "2023081818010602101701907303151******";

    Hasilnya adalah sebagai berikut:

    +---------------------------------------+------------------+
    | job_name                              | is_elastic_load  |
    +---------------------------------------+------------------+
    | 2023081517195203101701907203151****** |       1          |
    +---------------------------------------+------------------+

    Nilai kembali dari is_elastic_load adalah 1 untuk tugas impor elastis dan 0 untuk tugas impor biasa.

Tunnel Arrow API

Langkah 1: Aktifkan Arrow API

Metode

Anda dapat mengaktifkan Arrow API di tingkat kluster menggunakan perintah `SET` atau di tingkat kueri menggunakan petunjuk:

  • Aktifkan Arrow API di tingkat kluster:

    SET ADB_CONFIG <config_name>= <value>;
  • Aktifkan Arrow API di tingkat kueri:

    /*<config_name>= <value>*/ SELECT * FROM table;

Parameter konfigurasi Arrow API

Parameter (config_name)

Deskripsi

ODPS_TUNNEL_ARROW_ENABLED

Menentukan apakah akan mengaktifkan Arrow API. Nilai yang valid:

  • true: Ya.

  • false (default): Tidak.

ODPS_TUNNEL_SPLIT_BY_SIZE_ENABLED

Menentukan apakah akan mengaktifkan pemisahan dinamis. Nilai yang valid:

  • true: Ya.

  • false (default): Tidak.

Langkah 2: Akses dan impor data MaxCompute

  1. Navigasikan ke editor SQL.

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

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

  2. Buat database eksternal. Berikut adalah contoh pernyataan:

    CREATE EXTERNAL DATABASE adb_external_db;
  3. Buat tabel eksternal. Topik ini menggunakan test_adb sebagai contoh.

    CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_db.test_adb (
        id int,
        name varchar(1023),
        age int,
        dt string
        ) ENGINE='ODPS'
    TABLE_PROPERTIES='{
    "accessid":"yourAccessKeyID",
    "endpoint":"http://service.cn-hangzhou.maxcompute.aliyun.com/api",
    "accesskey":"yourAccessKeySecret",
    "partition_column":"dt",
    "project_name":"odps_project",
    "table_name":"odps_nopart_import_test"
    }';
    Catatan
    • Tabel eksternal di AnalyticDB for MySQL dan tabel di MaxCompute harus memiliki nama bidang, jumlah bidang, serta urutan bidang yang sama. Tipe data dari bidang-bidang tersebut juga harus kompatibel.

    • Untuk informasi lebih lanjut tentang parameter untuk tabel eksternal, lihat CREATE EXTERNAL TABLE.

  4. Kueri data.

    SELECT * FROM adb_external_db.test_adb;

    Hasil berikut dikembalikan:

    +------+-------+------+---------+
    | id   | name  | age  |   dt    |
    +------+-------+------+---------+
    |    1 | james |   10 |  202207 |
    |    2 | bond  |   20 |  202207 |
    |    3 | jack  |   30 |  202207 |
    |    4 | lucy  |   40 |  202207 |
    +------+-------+------+---------+
  5. Ikuti langkah-langkah berikut untuk mengimpor data dari MaxCompute ke AnalyticDB for MySQL.

    1. Buat database di AnalyticDB for MySQL. Berikut adalah contoh pernyataan:

      CREATE DATABASE adb_demo; 
    2. Buat tabel di AnalyticDB for MySQL untuk menyimpan data yang diimpor dari MaxCompute. Berikut adalah contoh pernyataan:

      Catatan

      Tabel baru dan tabel eksternal yang Anda buat di Langkah 3 harus memiliki urutan bidang dan jumlah bidang yang sama. Tipe data dari bidang-bidang tersebut harus kompatibel.

      CREATE TABLE IF NOT EXISTS adb_demo.adb_import_test(
          id int,
          name string,
          age int,
          dt string
          PRIMARY KEY(id,dt)
      )
      DISTRIBUTED BY HASH(id)  
      PARTITION BY VALUE('dt'); 
    3. Tulis data ke tabel. Contoh pernyataan berikut digunakan:

      • Metode 1: Jalankan pernyataan `INSERT INTO` untuk mengimpor data. Operasi ini setara dengan INSERT IGNORE INTO. Jika kunci utama duplikat, data baru diabaikan dan catatan yang ada tidak diperbarui. Untuk informasi lebih lanjut, lihat INSERT INTO. Berikut adalah contoh pernyataan:

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

        Untuk mengimpor data dari partisi tertentu ke adb_demo.adb_import_test, Anda dapat menjalankan pernyataan berikut:

        INSERT INTO adb_demo.adb_import_test
        SELECT * FROM adb_external_db.test_adb 
        WHERE dt = '202207'; 
      • Metode 2: Jalankan pernyataan `INSERT OVERWRITE INTO` untuk mengimpor data. Pernyataan ini menimpa data yang ada di tabel. Berikut adalah contoh pernyataan:

        INSERT OVERWRITE INTO adb_demo.adb_import_test
        SELECT * FROM adb_external_db.test_adb;
      • Metode 3: Impor data secara asinkron menggunakan pernyataan `INSERT OVERWRITE INTO`. Anda dapat menggunakan perintah SUBMIT JOB untuk mengirimkan tugas asinkron. Tugas dijadwalkan oleh backend. Anda dapat menambahkan petunjuk (/*+ direct_batch_load=true*/) sebelum tugas penulisan untuk mempercepat tugas. Untuk informasi lebih lanjut, lihat Penulisan Asinkron. Berikut adalah contoh pernyataan:

        SUBMIT job 
        INSERT OVERWRITE INTO adb_demo.adb_import_test
        SELECT * FROM adb_external_db.test_adb;

        Hasil berikut dikembalikan:

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

        Untuk informasi lebih lanjut, lihat Mengirimkan tugas impor secara asinkron.

Edisi Data Warehouse

  1. Hubungkan ke kluster AnalyticDB for MySQL. Untuk informasi lebih lanjut, lihat Hubungkan ke kluster AnalyticDB for MySQL.

  2. Buat database tujuan.

    CREATE database test_adb;
  3. Buat tabel eksternal MaxCompute. Topik ini menggunakan odps_nopart_import_test_external_table sebagai contoh.

    CREATE TABLE IF NOT EXISTS odps_nopart_import_test_external_table
    (
        id int,
        name string,
        age int,
        dt string
    )
     ENGINE='ODPS'
     TABLE_PROPERTIES='{
     "endpoint":"http://service.cn.maxcompute.aliyun-inc.com/api",
     "accessid":"yourAccessKeyID",
     "accesskey":"yourAccessKeySecret",
     "partition_column":"dt",
     "project_name":"odps_project1",
     "table_name":"odps_nopart_import_test"
     }';                 

    Parameter

    Deskripsi

    ENGINE=’ODPS’

    Mesin penyimpanan untuk tabel eksternal. Atur parameter ini ke ODPS untuk membaca atau menulis data dari/ke MaxCompute.

    endpoint

    Endpoint (domain Name) dari MaxCompute.

    Catatan

    Anda dapat mengakses MaxCompute dari AnalyticDB for MySQL hanya melalui endpoint VPC MaxCompute.

    Untuk memeriksa endpoint VPC di berbagai wilayah, lihat Endpoint VPC.

    accessid

    ID AccessKey dari Akun Alibaba Cloud atau Pengguna Resource Access Management (RAM) yang memiliki izin untuk mengakses MaxCompute.

    Untuk informasi lebih lanjut tentang cara mendapatkan ID AccessKey dan Rahasia AccessKey, lihat Akun dan Izin.

    accesskey

    Rahasia AccessKey dari Akun Alibaba Cloud atau Pengguna RAM yang memiliki izin untuk mengakses MaxCompute.

    Untuk informasi lebih lanjut tentang cara mendapatkan ID AccessKey dan Rahasia AccessKey, lihat Akun dan Izin.

    partition_column

    Contoh ini membuat tabel partisi dan membutuhkan parameter partition_column. Jika tabel sumber Anda di MaxCompute tidak dipartisi, buat tabel non-partisi di AnalyticDB for MySQL dan hilangkan parameter partition_column.

    project_name

    Nama ruang kerja di MaxCompute.

    table_name

    Nama tabel sumber di MaxCompute.

  4. Di dalam database test_adb, buat tabel adb_nopart_import_test untuk menyimpan data yang diimpor dari MaxCompute.

    CREATE TABLE IF NOT EXISTS adb_nopart_import_test
    (   id int,
        name string,
        age int,
        dt string,
        PRIMARY KEY(id,dt)
    )
    DISTRIBUTED BY HASH(id)
    PARTITION BY VALUE('dt') LIFECYCLE 30;
  5. Impor data.

    • Metode 1: Jalankan pernyataan INSERT INTO untuk mengimpor data. Jika terjadi konflik kunci utama, sistem akan mengabaikan data saat ini dan tidak melakukan pembaruan. Operasi ini setara dengan INSERT IGNORE INTO. Untuk informasi lebih lanjut, lihat INSERT INTO. Pernyataan berikut adalah contohnya:

      INSERT INTO adb_nopart_import_test
      SELECT * FROM odps_nopart_import_test_external_table; 

      Contoh berikut menunjukkan cara menggunakan pernyataan SELECT untuk memeriksa data yang ditulis ke tabel:

      SELECT * FROM adb_nopart_import_test;

      Hasil berikut dikembalikan:

      +------+-------+------+---------+
      | id   | name  | age  |   dt    |
      +------+-------+------+---------+
      |    1 | james |   10 |  202207 |
      |    2 | bond  |   20 |  202207 |
      |    3 | jack  |   30 |  202207 |
      |    4 | lucy  |   40 |  202207 |
      +------+-------+------+---------+

      Untuk mengimpor data dari partisi tertentu ke adb_nopart_import_test, jalankan perintah berikut:

      INSERT INTO adb_nopart_import_test
      SELECT * FROM odps_nopart_import_test_external_table
      WHERE dt = '202207';
    • Metode 2: Jalankan pernyataan INSERT OVERWRITE untuk mengimpor data. Operasi ini menimpa data yang ada di tabel. Pernyataan berikut adalah contohnya:

      INSERT OVERWRITE adb_nopart_import_test
      SELECT * FROM odps_nopart_import_test_external_table;
    • Metode 3: Secara asinkron jalankan pernyataan INSERT OVERWRITE untuk mengimpor data. Anda dapat menggunakan perintah SUBMIT JOB untuk menyerahkan tugas asinkron yang dijadwalkan di latar belakang. Anda dapat menambahkan petunjuk sebelum tugas penulisan untuk mempercepatnya. Untuk informasi lebih lanjut, lihat Penulisan Asinkron. Pernyataan berikut adalah contohnya:

      SUBMIT JOB 
      INSERT OVERWRITE adb_nopart_import_test 
      SELECT * FROM odps_nopart_import_test_external_table;  

      Hasil berikut dikembalikan:

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

      Untuk informasi lebih lanjut tentang cara menyerahkan tugas impor asinkron, lihat Serahkan tugas impor asinkron.