All Products
Search
Document Center

AnalyticDB:Ekspor data ke OSS

Last Updated:Jun 21, 2026

AnalyticDB for MySQL memungkinkan Anda mengekspor data dari AnalyticDB for MySQL Data Warehouse Edition (V3.0) ke Object Storage Service (OSS) menggunakan tabel eksternal dan pernyataan INSERT INTO. Fitur ekspor ini hanya mendukung format file CSV dan Parquet.

Prasyarat

  • Buat direktori di Object Storage Service (OSS) untuk menyimpan data dari AnalyticDB for MySQL:

    1. Aktifkan OSS.

      Catatan

      Bucket OSS dan kluster AnalyticDB for MySQL Data Warehouse Edition (V3.0) Anda harus berada di wilayah yang sama.

    2. Buat bucket.

    3. Buat direktori di OSS.

      Misalnya, buat direktori bernama adb_data/ di OSS. Data yang diekspor dari AnalyticDB for MySQL Data Warehouse Edition (V3.0) disimpan di direktori ini.

  • Anda telah membuat kluster Data Warehouse Edition (V3.0), mengonfigurasi daftar putihnya, serta membuat akun dan database. Untuk informasi selengkapnya, lihat Panduan cepat AnalyticDB for MySQL.

Catatan

Jika kluster AnalyticDB for MySQL Data Warehouse Edition berada dalam mode elastis, login ke Konsol AnalyticDB for MySQL untuk mengaktifkan jaringan ENI (Elastic Network Interface). Pada panel Network Information instans, aktifkan sakelar ENI Network. Jaringan ENI harus diaktifkan agar instans dalam mode elastis dapat mengimpor data menggunakan tabel eksternal.

Prosedur

Contoh ini mengekspor data dari tabel source_table di database adb_demo pada AnalyticDB for MySQL Data Warehouse Edition ke folder adb_data di OSS.

  1. Hubungkan ke kluster target dan masuk ke database sumber.

  2. Di database adb_demo, buat tabel eksternal. Untuk informasi selengkapnya, lihat Tabel eksternal OSS non-partisi.

  3. Jalankan pernyataan write untuk menyalin data sumber ke tabel eksternal yang telah dibuat sebelumnya. Untuk informasi tentang sintaks yang didukung untuk berbagai jenis tabel eksternal, lihat Sintaks untuk tabel eksternal non-partisi dan Sintaks untuk tabel eksternal partisi.

  4. Setelah pekerjaan write pada Langkah 3 selesai, login ke Konsol OSS untuk melihat file data yang diekspor di folder tujuan. Anda juga dapat langsung melakukan kueri terhadap data yang diekspor ke tabel eksternal dari AnalyticDB for MySQL.

Sintaks untuk tabel eksternal non-partisi

Ketika Anda menggunakan INSERT INTO atau INSERT OVERWRITE SELECT untuk menulis data, pekerjaan tersebut berjalan secara sinkron secara default. Jika Anda menulis data dalam jumlah besar, misalnya ratusan gigabyte, koneksi antara client dan server AnalyticDB for MySQL mungkin mengalami timeout, sehingga menyebabkan pekerjaan gagal. Oleh karena itu, jika Anda menulis data dalam jumlah besar, kami menyarankan menjalankan pernyataan INSERT OVERWRITE SELECT secara asinkron dengan menambahkan SUBMIT JOB sebelum pernyataan tersebut. Contoh: SUBMIT JOB INSERT OVERWRITE adb_table SELECT * FROM oss_table;. Untuk informasi selengkapnya tentang pengiriman pekerjaan secara asinkron, lihat pengiriman pekerjaan impor asinkron.

Penting

Secara default, file yang diekspor ke OSS hanya berisi data dan tidak menyertakan header kolom. Untuk mengekspor file beserta header kolom, tambahkan petunjuk /*+sql_output_oss_file_head_enable=true*/ sebelum pernyataan tersebut.

  • Insert select from

    • Deskripsi: Jika data Anda sudah ada di tabel lain, Anda dapat menggunakan INSERT SELECT FROM untuk menyalinnya ke tabel eksternal. Pernyataan ini menulis data dari tabel sumber ke lokasi OSS tabel eksternal. Setiap operasi write menghasilkan file data OSS baru.

      Penting

      Anda harus menulis semua kolom ke tabel eksternal. Anda tidak dapat menentukan hanya sebagian kolom saja.

      Sintaks:

      INSERT INTO table_name 
      SELECT select_statement FROM from_statement;       

      Contoh:

      insert into oss_table select col1, col2, col3 from source_table;
  • Insert overwrite select

    • Deskripsi: Gunakan INSERT OVERWRITE SELECT untuk melakukan penyisipan massal ke tabel. Jika tabel eksternal tujuan sudah berisi data, pernyataan ini terlebih dahulu menghapus semua file data yang ada di path tabel eksternal tersebut, lalu menghasilkan file data OSS baru.

      Penting

      Anda harus menulis semua kolom ke tabel eksternal. Anda tidak dapat menentukan hanya sebagian kolom saja.

      Sintaks:

      INSERT OVERWRITE table_name 
      SELECT select_statement FROM from_statement;

      Contoh:

      INSERT OVERWRITE oss_table 
      SELECT col1, col2, col3 FROM source_table;
  • Replace select from

    • Deskripsi: Karena tabel eksternal OSS tidak mendukung primary key, REPLACE SELECT FROM berperilaku identik dengan INSERT SELECT FROM. Pernyataan ini menyalin data ke tabel lain. Data yang sudah ada di tabel tujuan tetap tidak berubah, dan data baru ditambahkan sebagai file data OSS baru.

  • Ekspor ke satu file OSS (hanya format CSV; tidak didukung untuk format Parquet)

    • Deskripsi: Anda dapat menggunakan petunjuk untuk mengekspor data ke satu file OSS tertentu. Jika kata kunci OVERWRITE disertakan, file yang sudah ada dengan nama yang sama di direktori yang didefinisikan dalam TABLE_PROPERTIES tabel eksternal akan ditimpa. File lain di direktori tersebut tidak terpengaruh.

      Penting

      Anda harus menulis semua kolom ke tabel eksternal. Anda tidak dapat menentukan hanya sebagian kolom saja.

      Catatan versi:

      • Untuk kluster AnalyticDB for MySQL versi sebelum V3.1.2: Fitur ini tidak didukung. Sistem secara otomatis menghasilkan nama file dan mengekspor data ke beberapa file. Jumlah file tujuan ditentukan secara dinamis berdasarkan konkurensi pekerjaan.

      • Untuk kluster AnalyticDB for MySQL versi 3.1.2 dan seterusnya, Anda dapat menggunakan petunjuk untuk mengekspor tabel eksternal reguler dalam format CSV AnalyticDB for MySQL ke satu file di OSS. Anda juga dapat menyesuaikan nama file selama proses ekspor. Tanpa petunjuk, perilaku ekspor konsisten dengan versi sebelum 3.1.2: data diekspor ke beberapa file.

      Sintaks:

      /*+output_filename=adb.txt*/INSERT [OVERWRITE] table_name 
      SELECT select_statement FROM from_statement;

      Contoh:

      /*+output_filename=adb.txt*/INSERT [OVERWRITE] oss_table 
      SELECT * FROM source_table;

Sintaks untuk tabel eksternal partisi

Ketika Anda menggunakan INSERT INTO atau INSERT OVERWRITE SELECT untuk menulis data, pekerjaan tersebut berjalan secara sinkron secara default. Jika Anda menulis data dalam jumlah besar, misalnya ratusan gigabyte, koneksi antara client dan server AnalyticDB for MySQL mungkin mengalami timeout, sehingga menyebabkan pekerjaan gagal. Oleh karena itu, jika Anda menulis data dalam jumlah besar, kami menyarankan menjalankan pernyataan INSERT OVERWRITE SELECT secara asinkron dengan menambahkan SUBMIT JOB sebelum pernyataan tersebut. Contoh: SUBMIT JOB INSERT OVERWRITE adb_table SELECT * FROM oss_table;. Untuk informasi selengkapnya tentang pengiriman pekerjaan secara asinkron, lihat pengiriman pekerjaan impor asinkron.

Penting

Secara default, file yang diekspor ke OSS hanya berisi data dan tidak menyertakan header kolom. Untuk mengekspor file beserta header kolom, tambahkan petunjuk /*+sql_output_oss_file_head_enable=true*/ sebelum pernyataan tersebut.

Ketika Anda menulis data dari tabel partisi, file data tidak menyertakan data kolom kunci partisi. Informasi partisi disimpan dalam struktur direktori OSS.

Penting

Mengekspor data dari tabel eksternal partisi ke satu file OSS tidak didukung.

Sebagai contoh, pertimbangkan tabel partisi yang memiliki dua kolom kunci partisi dan tiga kolom biasa. Kolom kunci partisi tingkat pertama adalah pcol1 dengan nilai 1, dan kolom kunci partisi tingkat kedua adalah pcol2 dengan nilai a. Data dari tabel partisi tersebut diekspor ke path OSS adb_data/. Ketika Anda menulis data ke partisi di mana pcol1=1 dan pcol2=a, path relatif file data tersebut adalah adb_data/pcol1=1/pcol2=a/. File data CSV atau Parquet yang dihasilkan tidak berisi nilai untuk pcol1 dan pcol2. File tersebut hanya berisi nilai dari tiga kolom biasa.

  • Insert into partition select from

Fungsi: Perintah INSERT INTO PARTITION SELECT FROM melakukan penyisipan massal data ke tabel eksternal partisi. Saat menulis data, Anda dapat menggunakan klausa PARTITION untuk menentukan semua kolom dan nilai partisi. Atau, Anda dapat menentukan hanya nilai partisi tingkat tinggi dan membiarkan partisi tingkat rendah dihasilkan secara dinamis. Anda juga dapat menghilangkan klausa PARTITION sepenuhnya, yang akan menghasilkan semua level partisi secara dinamis.

Ketika data ditulis, data tersebut ditambahkan ke partisi yang sesuai. Setiap operasi write menghasilkan file data OSS baru.

Anda harus menulis semua kolom ke tabel eksternal. Anda tidak dapat menentukan hanya sebagian kolom saja.

Partisi statis penuh

Sintaks

INSERT INTO table_name PARTITION(par1=val1,par2=val2,...) 
SELECT select_statement FROM from_statement;

Contoh

INSERT INTO oss_table_par PARTITION(par1=val1,par2=val2) 
select col1, col2, col3 FROM source_table;

Partisi sebagian statis dan sebagian dinamis

Sintaks

INSERT INTO table_name PARTITION(par1=val1,par2,...) 
SELECT select_statement FROM from_statement;

Contoh

INSERT INTO oss_table_par PARTITION(par1=val1,par2) 
SELECT col1, col2, col3, par2col FROM source_table;

Partisi dinamis penuh

Sintaks

INSERT INTO table_name 
SELECT select_statement FROM from_statement;

Contoh

INSERT INTO oss_table_par
SELECT col1, col2, col3, par1col, par2col FROM source_table;
  • Insert overwrite partition select

Fungsi: Penggunaannya sama dengan INSERT INTO PARTITION SELECT. Namun, perintah ini juga menghapus file data yang sudah ada dari partisi target yang terlibat dalam eksekusi. File data di partisi yang tidak menerima data baru tidak dihapus.

Sintaks:

INSERT OVERWRITE table_name PARTITION(par1=val1,par2=val2,...)[IF NOT EXISTS] 
SELECT select_statement FROM from_statement;

Contoh:

INSERT OVERWRITE oss_table_par PARTITION(par1=val1,par2=val2) IF NOT EXISTS 
SELECT col1, col2, col3 FROM source_table;
  • Replace into partition select from

Deskripsi: Karena tabel eksternal tidak mendukung primary key, REPLACE INTO PARTITION SELECT FROM berperilaku identik dengan INSERT INTO PARTITION SELECT FROM.

Sintaks yang tidak didukung

Tabel eksternal AnalyticDB for MySQL tidak mendukung sintaks penulisan tingkat baris. Secara spesifik, pernyataan INSERT INTO VALUES dan REPLACE INTO VALUES tidak didukung.