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.
CatatanMasuk 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.
PentingMasuk ke Konsol AnalyticDB for MySQL. Di panel navigasi kiri, pilih . 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.
CatatanUntuk 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
Navigasikan ke editor SQL.
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.
Di panel navigasi di sebelah kiri, pilih .
Buat basis data eksternal. Pernyataan contoh berikut digunakan:
CREATE EXTERNAL DATABASE adb_external_db;Buat tabel eksternal. Topik ini menggunakan
test_adbsebagai 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" }';CatatanTabel 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.
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 | +------+-------+------+---------+Ikuti langkah-langkah berikut untuk mengimpor data dari MaxCompute ke AnalyticDB for MySQL.
Buat basis data di AnalyticDB for MySQL. Berikut adalah contoh pernyataannya:
CREATE DATABASE adb_demo;Buat tabel di AnalyticDB for MySQL untuk menyimpan data yang diimpor dari MaxCompute. Berikut adalah contoh pernyataannya:
CatatanTabel 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');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 JOBuntuk 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
Navigasikan ke editor SQL.
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.
Di panel navigasi di sebelah kiri, pilih .
Buat database. Anda dapat melewati langkah ini jika database sudah ada. Pernyataan berikut adalah contohnya:
CREATE DATABASE adb_demo;Buat tabel eksternal.
CatatanNama 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.
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 | +------+-------+------+---------+Buat tabel di AnalyticDB for MySQL untuk menyimpan data yang diimpor dari MaxCompute. Berikut adalah contoh pernyataannya:
CatatanTabel 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;Impor data.
PentingImpor 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 JOBuntuk 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;PentingAnda tidak dapat mengatur antrian prioritas saat mengirimkan tugas impor elastis secara asinkron.
Hasil berikut dikembalikan:
+---------------------------------------+ | job_id | +---------------------------------------+ | 2023081517192220291720310090151****** | +---------------------------------------+
Setelah Anda menggunakan perintah
SUBMIT JOBuntuk 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.
(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_loadadalah 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:
|
ODPS_TUNNEL_SPLIT_BY_SIZE_ENABLED | Menentukan apakah akan mengaktifkan pemisahan dinamis. Nilai yang valid:
|
Langkah 2: Akses dan impor data MaxCompute
Navigasikan ke editor SQL.
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.
Di panel navigasi di sebelah kiri, pilih .
Buat database eksternal. Berikut adalah contoh pernyataan:
CREATE EXTERNAL DATABASE adb_external_db;Buat tabel eksternal. Topik ini menggunakan
test_adbsebagai 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" }';CatatanTabel 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.
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 | +------+-------+------+---------+Ikuti langkah-langkah berikut untuk mengimpor data dari MaxCompute ke AnalyticDB for MySQL.
Buat database di AnalyticDB for MySQL. Berikut adalah contoh pernyataan:
CREATE DATABASE adb_demo;Buat tabel di AnalyticDB for MySQL untuk menyimpan data yang diimpor dari MaxCompute. Berikut adalah contoh pernyataan:
CatatanTabel 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');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 JOBuntuk 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
Hubungkan ke kluster AnalyticDB for MySQL. Untuk informasi lebih lanjut, lihat Hubungkan ke kluster AnalyticDB for MySQL.
Buat database tujuan.
CREATE database test_adb;Buat tabel eksternal MaxCompute. Topik ini menggunakan
odps_nopart_import_test_external_tablesebagai 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.
endpointEndpoint (domain Name) dari MaxCompute.
CatatanAnda dapat mengakses MaxCompute dari AnalyticDB for MySQL hanya melalui endpoint VPC MaxCompute.
Untuk memeriksa endpoint VPC di berbagai wilayah, lihat Endpoint VPC.
accessidID 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.
accesskeyRahasia 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_columnContoh 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 parameterpartition_column.project_nameNama ruang kerja di MaxCompute.
table_nameNama tabel sumber di MaxCompute.
Di dalam database
test_adb, buat tabeladb_nopart_import_testuntuk 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;Impor data.
Metode 1: Jalankan pernyataan
INSERT INTOuntuk mengimpor data. Jika terjadi konflik kunci utama, sistem akan mengabaikan data saat ini dan tidak melakukan pembaruan. Operasi ini setara denganINSERT 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 OVERWRITEuntuk 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 OVERWRITEuntuk mengimpor data. Anda dapat menggunakan perintahSUBMIT JOBuntuk 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.