全部产品
Search
文档中心

ApsaraDB for SelectDB:Gunakan OSS Load untuk mengimpor data

更新时间:Jul 30, 2025

ApsaraDB for SelectDB bekerja sama dengan Object Storage Service (OSS) untuk menyediakan fitur impor berkecepatan tinggi melalui jaringan internal. Anda dapat menggunakan fitur ini untuk mengimpor ratusan GB data sekaligus. Topik ini menjelaskan cara menggunakan OSS untuk mengimpor data ke instans ApsaraDB for SelectDB.

Prasyarat

  • Pasangan Kunci Akses telah diperoleh. Untuk informasi lebih lanjut, lihat Buat Pasangan Kunci Akses.

  • OSS telah diaktifkan dan Bucket OSS telah dibuat. Bucket OSS berada di wilayah yang sama dengan instans ApsaraDB for SelectDB tempat Anda ingin mengimpor data. Untuk informasi lebih lanjut, lihat Mulai menggunakan Konsol OSS.

  • Bucket OSS berada di wilayah yang sama dengan instans ApsaraDB for SelectDB. OSS dapat diakses melalui virtual private cloud (VPC).

Sintaks untuk mengimpor data

LOAD LABEL load_label
(
    data_desc1[, data_desc2, ...]
)
WITH S3
(
    "AWS_PROVIDER" = "OSS",
    "AWS_REGION" = "REGION",  
    "AWS_ENDPOINT" = "ENDPOINT",
    "AWS_ACCESS_KEY" = "ID AccessKey",
    "AWS_SECRET_KEY"="Rahasia AccessKey"
)
PROPERTIES 
(
  "key1"="value1", ...
);
Catatan

ApsaraDB for SelectDB memungkinkan Anda mengimpor data dari semua sistem penyimpanan objek yang kompatibel dengan protokol Amazon Simple Storage Service (Amazon S3). Oleh karena itu, sintaks untuk mengimpor data menggunakan kata kunci seperti AWS dan S3.

Parameter

Parameter data_desc1 digunakan untuk menggambarkan sekelompok file yang akan diimpor. Contoh kode berikut memberikan definisi lengkap dari parameter tersebut.

[MERGE|APPEND|DELETE]
DATA INFILE
(
"file_path1"[, file_path2, ...]
)
[NEGATIVE]
INTO TABLE `table_name`
[PARTITION (p1, p2, ...)]
[COLUMNS TERMINATED BY "column_separator"]
[FORMAT AS "file_type"]
[(column_list)]
[COLUMNS FROM PATH AS (c1, c2, ...)]
[PRECEDING FILTER predicate]
[SET (column_mapping)]
[WHERE predicate]
[DELETE ON expr]
[ORDER BY source_sequence]
[PROPERTIES ("key1"="value1", ...)]

Parameter

Deskripsi

[MERGE|APPEND|DELETE]

Jenis penggabungan data. Secara default, parameter ini disetel ke APPEND, yang menambahkan data baru ke data yang ada. Anda dapat menyetel parameter ini ke MERGE atau DELETE hanya jika tabel dalam model Unique key digunakan. Jika Anda menyetel parameter ini ke MERGE, Anda harus menggunakan pernyataan DELETE ON untuk menambahkan kolom delete_flag. Jika Anda menyetel parameter ini ke DELETE, data yang ditentukan dalam pekerjaan impor ini akan dihapus.

DATA INFILE

Jalur file yang akan diimpor.

Anda dapat menentukan beberapa nilai untuk parameter ini. Wildcard didukung. Jalur yang Anda tentukan harus berupa jalur file. Jika jalur tersebut adalah jalur direktori, impor gagal.

NEGTIVE

Data batch ini diimpor dengan metode negatif. Metode ini hanya berlaku untuk tabel yang diagregasi menggunakan metode SUM dan berisi bilangan bulat. Dalam metode ini, bilangan bulat yang sesuai dengan kolom yang diagregasi dalam data yang diimpor menggunakan metode SUM dibalik untuk mengimbangi data kesalahan yang diimpor.

PARTITION(p1, p2, ...)

Partisi tabel yang akan diimpor. Data yang tidak berada di partisi yang ditentukan diabaikan.

COLUMNS TERMINATED BY

Pemisah kolom. Pemisah kolom hanya valid dalam file format CSV dan harus satu byte.

FORMAT AS

Format file yang akan diimpor. Nilai valid: CSV, PARQUET dan, ORC. Nilai default: CSV.

column list

Urutan kolom dalam file sumber. Untuk informasi lebih lanjut, lihat Mengonversi Data Sumber.

COLUMNS FROM PATH AS

Kolom yang diekstraksi dari file yang akan diimpor.

PRECEDING FILTER predicate

Kondisi preset untuk menyaring data. Data digabungkan ke dalam baris data sumber secara berurutan berdasarkan nilai parameter column list dan COLUMNS FROM PATH AS. Kemudian, data disaring berdasarkan kondisi preset untuk menyaring data. Untuk informasi lebih lanjut, lihat Mengonversi Data Sumber.

SET (column_mapping)

Fungsi yang digunakan untuk mengonversi kolom tertentu.

WHERE predicate

Kondisi berdasarkan mana data yang diimpor disaring. Untuk informasi lebih lanjut, lihat Mengonversi Data Sumber.

DELETE ON expr

Parameter ini harus digunakan bersama dengan jenis penggabungan data MEREGE dan hanya berlaku untuk tabel dalam model Unique key. Parameter ini menentukan kolom delete_flag dan hubungan perhitungan dalam data yang akan diimpor.

ORDER BY

Kolom sequence_col dalam data yang akan diimpor. Parameter ini hanya berlaku untuk tabel dalam model Unique key dan memastikan urutan data saat data diimpor.

PROPERTIES ("key1"="value1", ...)

Parameter yang menentukan format file yang akan diimpor. Jika file yang akan diimpor dalam format JSON, Anda dapat menentukan parameter seperti json_root, jsonpaths, dan fuzzy_parse.

Tabel berikut menjelaskan parameter yang digunakan untuk mengonfigurasi layanan penyimpanan cloud.

Parameter

Deskripsi

AWS_PROVIDER

Penyedia layanan penyimpanan objek, yang tetap pada OSS.

AWS_REGION

Wilayah tempat data OSS yang akan diakses berada.

AWS_ENDPOINT

Merupakan titik akhir yang digunakan untuk mengakses data OSS. Untuk informasi selengkapnya tentang cara mendapatkan titik akhir, lihat Wilayah dan titik akhir.

Penting

Pastikan bahwa Bucket OSS dan instans ApsaraDB for SelectDB Anda berada di wilayah yang sama.

AWS_ACCESS_KEY

ID AccessKey yang digunakan untuk mengakses data OSS.

AWS_SECRET_KEY

Rahasia AccessKey yang digunakan untuk mengakses data OSS.

Tabel berikut menjelaskan bidang dari PROPERTIES.

Bidang

Deskripsi

timeout

Periode timeout untuk pekerjaan impor. Unit: detik. Nilai default: 14400, yang berarti 4 jam.

max_filter_ratio

Rasio maksimum data yang dapat disaring. Misalnya, data disaring karena tidak sesuai dengan standar. Nilai default: 0. Nilai valid: 0 hingga 1.

exec_mem_limit

Ukuran maksimum memori yang tersedia untuk pekerjaan impor. Unit: byte. Nilai default: 2147483648, yang berarti 2 GiB.

strict_mode

Menentukan apakah akan mengaktifkan mode ketat untuk pekerjaan impor. Nilai default: false.

timezone

Zona waktu untuk fungsi terkait zona waktu, seperti strftime, alignment_timestamp, dan from_unixtime. Untuk informasi lebih lanjut, lihat Daftar semua zona waktu. Nilai default: Asia/Shanghai.

load_parallelism

Jumlah maksimum pekerjaan impor yang dapat berjalan secara bersamaan pada satu waktu. Nilai default: 1. Anda dapat menyetel parameter ini ke nilai yang lebih besar untuk menjalankan beberapa pekerjaan impor pada saat yang sama guna mempercepat impor data.

send_batch_parallelism

Jumlah maksimum pekerjaan konkuren untuk mengirim data untuk diproses dalam batch. Jika nilai parameter ini lebih besar dari nilai parameter max_send_batch_parallelism_per_job dalam konfigurasi BE, BE akan menggunakan nilai parameter max_send_batch_parallelism_per_job.

load_to_single_tablet

Menentukan apakah akan mengimpor data hanya ke satu tablet dari partisi yang sesuai. Nilai default: false. Parameter ini tersedia hanya jika Anda mengimpor data ke tabel yang berisi partisi acak dalam model Duplicate key.

Contoh

  1. Buat tabel tempat Anda ingin mengimpor data di instans ApsaraDB for SelectDB. Contoh kode:

    CREATE TABLE test_table
    (
        id int,
        name varchar(50),
        age int,
        address varchar(50),
        url varchar(500)
    )
    DISTRIBUTED BY HASH(id) BUCKETS 4
    PROPERTIES("replication_num" = "1");
  2. Buat file yang akan diimpor, bernama test_file.txt. Contoh kode:

    1,yang,32,shanghai,http://example.com
    2,wang,22,beijing,http://example.com
    3,xiao,23,shenzhen,http://example.com
    4,jess,45,hangzhou,http://example.com
    5,jack,14,shanghai,http://example.com
    6,tomy,25,hangzhou,http://example.com
    7,lucy,45,shanghai,http://example.com
    8,tengyin,26,shanghai,http://example.com
    9,wangli,27,shenzhen,http://example.com
    10,xiaohua,37,shanghai,http://example.com
  3. Impor data menggunakan OSS Load. Contoh kode:

    LOAD LABEL test_db.test_label_1
    (
        DATA INFILE("s3://your_bucket_name/test_file.txt")
        INTO TABLE test_table
        COLUMNS TERMINATED BY ","
    )
    WITH S3
    (
        "AWS_PROVIDER" = "OSS",
        "AWS_REGION" = "oss-cn-beijing",  
        "AWS_ENDPOINT" = "oss-cn-beijing-internal.aliyuncs.com",
        "AWS_ACCESS_KEY" = "<your_access_key>",
        "AWS_SECRET_KEY"="<your_secret_key>"
    )
    PROPERTIES
    (
        "timeout" = "3600"
    );
    
    Catatan

    Jalur Bucket OSS harus dimulai dengan s3://.

Batalkan pekerjaan OSS Load

Jika pekerjaan OSS Load tidak dalam status CANCELLED atau FINISHED, Anda dapat membatalkan pekerjaan tersebut secara manual. Anda harus menentukan label dari pekerjaan impor yang akan dibatalkan. Setelah pekerjaan impor dibatalkan, data yang telah ditulis dalam pekerjaan tersebut dikembalikan dan tidak berlaku.

Sintaks

CANCEL LOAD
[FROM db_name]
WHERE [LABEL = "load_label" | LABEL like "label_pattern"];

Parameter

Parameter

Deskripsi

db_name

Nama database. Secara default, jika Anda tidak menentukan parameter ini, database saat ini digunakan.

load_label

label dari pekerjaan impor. Pencocokan tepat didukung. Jika Anda menggunakan pernyataan LABEL LIKE, pekerjaan impor yang labels-nya mengandung label_pattern akan cocok.

Contoh

  • Batalkan pekerjaan impor yang label-nya adalah example_db_test_load_label dari database example_db.

    CANCEL LOAD
    FROM example_db
    WHERE LABEL = "example_db_test_load_label";
  • Batalkan pekerjaan impor yang label-nya mengandung example_ dari database example_db.

    CANCEL LOAD
    FROM example_db
    WHERE LABEL like "example_";

Lihat pekerjaan impor data import

OSS Load adalah metode impor data asinkron. Jika pernyataan impor data berhasil dieksekusi, pekerjaan OSS Load berhasil dikomit tetapi data mungkin belum diimpor. Untuk menanyakan status pekerjaan Broker Load, Anda dapat mengeksekusi pernyataan SHOW LOAD.

Sintaks

SHOW LOAD
[FROM db_name]
[
   WHERE
   [LABEL [ = "your_label" | LIKE "label_matcher"]]
   [STATE = ["PENDING"|"ETL"|"LOADING"|"FINISHED"|"CANCELLED"|]]
]
[ORDER BY ...]
[LIMIT limit][OFFSET offset];

Parameter

Parameter

Deskripsi

db_name

Nama database. Secara default, jika Anda tidak menentukan parameter ini, database saat ini digunakan.

your_label

label dari pekerjaan impor. Pencocokan tepat didukung. Jika Anda menggunakan pernyataan LABEL LIKE, pekerjaan impor yang labels-nya mengandung label_matcher akan cocok.

STATE

Status pekerjaan impor. Anda hanya dapat melihat pekerjaan impor yang berada dalam status tertentu.

ORDER BY

Urutan pengurutan catatan data yang dikembalikan.

LIMIT

limit menentukan batas jumlah catatan data yang ditampilkan. Jika Anda tidak menentukan parameter ini, semua catatan data akan ditampilkan.

OFFSET

Jumlah catatan awal yang dilewati sebelum hasil kueri mulai ditampilkan. Nilai default: 0.

Contoh

  • Tanyakan pekerjaan impor yang label-nya mengandung 2014_01_02 di database example_db, dan tampilkan 10 pekerjaan impor yang disimpan paling lama.

    SHOW LOAD FROM example_db WHERE LABEL LIKE "2014_01_02" LIMIT 10;
  • Tanyakan pekerjaan impor yang label-nya adalah load_example_db_20140102 di database example_db dan urutkan pekerjaan ini berdasarkan LoadStartTime secara menurun.

    SHOW LOAD FROM example_db WHERE LABEL = "load_example_db_20140102" ORDER BY LoadStartTime DESC;
  • Tanyakan pekerjaan impor yang dalam status loading dan label-nya adalah load_example_db_20140102 di database example_db.

    SHOW LOAD FROM example_db WHERE LABEL = "load_example_db_20140102" AND STATE = "loading";
  • Tanyakan pekerjaan impor di database example_db dan urutkan pekerjaan ini berdasarkan LoadStartTime secara menurun. Lewati lima hasil kueri awal dan tampilkan sepuluh hasil kueri berikutnya.

    SHOW LOAD FROM example_db ORDER BY LoadStartTime DESC limit 5,10;
    SHOW LOAD FROM example_db ORDER BY LoadStartTime DESC limit 10 offset 5;