Tüm Ürünler
Search
Belge Merkezi

ApsaraDB for SelectDB:Veri aktarmak için OSS Load kullanın

Son Güncelleme:Oct 08, 2026

OSS Load, Object Storage Service (OSS) üzerindeki yüzlerce gigabaytlık veriyi dahili ağ üzerinden ApsaraDB for SelectDB örneğinize aktarmanızı sağlar. Aktarma işlemi eşzamansızdır; işi gönderdikten sonra SelectDB dosyaları arka planda işlerken siz çalışmaya devam edebilirsiniz.

OSS Load ne zaman kullanılır?

Aşağıdaki durumlarda OSS Load tercih edilmelidir:

  • Büyük dosya yığınlarını (onlarca veya yüzlerce gigabayt) aktarmanız gerektiğinde

  • Dosyalarınız, SelectDB örneğinizle aynı bölgede bulunan bir OSS paketinde depolandığında

  • CSV, PARQUET veya ORC formatındaki dosyaları yüklemeniz gerektiğinde

OSS Load dahili olarak S3 protokolünü kullandığından sözdizimi AWS ve S3 anahtar kelimelerini içerir. Bu beklenen bir durumdur; ApsaraDB for SelectDB, S3 uyumlu tüm nesne depolama hizmetlerini destekler ve OSS, S3 uyumlu uç nokta üzerinden erişilir.

Ön koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

Söz dizimi

LOAD LABEL <load_label>
(
    data_desc1[, data_desc2, ...]
)
WITH S3
(
    "AWS_PROVIDER" = "OSS",
    "AWS_REGION" = "<region>",
    "AWS_ENDPOINT" = "<endpoint>",
    "AWS_ACCESS_KEY" = "<AccessKey ID>",
    "AWS_SECRET_KEY" = "<AccessKey secret>"
)
PROPERTIES
(
    "key1" = "value1", ...
);
Not

OSS paket yolu s3:// ile başlamalıdır.

Parametreler

Veri açıklaması (data_desc)

Her data_desc bloğu, aktarılacak bir dosya grubunu tanımlar. Tam söz dizimi şöyledir:

[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", ...)]
Parametre Açıklama
MERGE|APPEND|DELETE Veri birleştirme türü. Varsayılan: APPEND. MERGE ve DELETE yalnızca Unique Key modelindeki tablolar için geçerlidir. MERGE olarak ayarlandığında, silme_flag sütununu belirtmek için DELETE ON kullanın. DELETE olarak ayarlandığında, aktarılan veri satırları tablodan silinir.
DATA INFILE Aktarılacak dosya(lar)ın yolu. Joker karakterler desteklenir. Bir dizin yolu değil, dosya yolu olmalıdır.
NEGATIVE Verileri negatif yöntemle aktarır; bu yöntem, daha önce aktarılan hatalı verileri telafi etmek amacıyla SUM toplamlı sütunlardaki tamsayı değerlerini tersine çevirir. Yalnızca tamsayı sütunlarla SUM toplamı kullanan tablolar için geçerlidir.
PARTITION (p1, p2, ...) Verilerin aktarılacağı bölümler. Belirtilen bölümlerin dışındaki veriler yok sayılır.
COLUMNS TERMINATED BY Sütun ayırıcı. Yalnızca CSV dosyaları için geçerlidir. Tek bayt olmalıdır.
FORMAT AS Dosya formatı. Geçerli değerler: CSV, PARQUET, ORC. Varsayılan: CSV.
column_list Kaynak dosyadaki sütun sırası. Bkz. Kaynak verileri dönüştürme.
COLUMNS FROM PATH AS Dosya yolundan çıkarılacak sütunlar.
PRECEDING FILTER predicate Verileri filtrelemek için ön ayarlanan koşullar. Veriler, column list ve COLUMNS FROM PATH AS parametrelerinin değerlerine göre sırayla kaynak veri satırlarıyla birleştirilir. Ardından veriler, ön ayarlanan filtreleme koşullarına göre süzülür.
SET (column_mapping) Kaynak verilere uygulanan sütun dönüşüm işlevleri.
WHERE predicate Aktarılan verilerin filtreleneceği koşullar.
DELETE ON expr Yalnızca MERGE türüyle birlikte kullanılır. Silme_flag sütununu ve koşulunu belirtir. Yalnızca Unique Key modelindeki tablolar için geçerlidir.
ORDER BY Aktarma için sıra sütunu. Yalnızca Unique Key modelindeki tablolar için geçerlidir ve aktarma sırasında veri sırasını sağlar.
PROPERTIES Ek format parametreleri. JSON dosyaları için json_root, jsonpaths ve fuzzy_parse ayarlayabilirsiniz.

OSS bağlantı parametreleri (WITH S3)

Parametre Açıklama
AWS_PROVIDER Nesne depolama sağlayıcısı. OSS olarak ayarlayın.
AWS_REGION OSS paketinin bulunduğu bölge.
AWS_ENDPOINT OSS verilerine erişmek için kullanılan uç nokta. Bkz. Bölgeler ve uç noktalar. OSS paketi ve SelectDB örneği aynı bölgede olmalıdır.
AWS_ACCESS_KEY OSS'e erişmek için kullanılan AccessKey ID.
AWS_SECRET_KEY OSS'e erişmek için kullanılan AccessKey gizli anahtarı.

İş özellikleri (PROPERTIES)

Parametre Varsayılan Açıklama
timeout 14400 (4 saat) Aktarma işi için zaman aşımı süresi (saniye cinsinden).
max_filter_ratio 0 Veri kalitesi sorunları nedeniyle filtrelenebilecek satırların maksimum oranı. Geçerli değerler: 0 ile 1 arasında.
exec_mem_limit 2147483648 (2 GiB) Aktarma işi için kullanılabilir maksimum bellek (bayt cinsinden).
strict_mode false Aktarma işi için katı modun etkinleştirilip etkinleştirilmeyeceği.
timezone Asia/Shanghai strftime, alignment_timestamp ve from_unixtime gibi zamanla ilgili işlevler için saat dilimi. Bkz. Tüm saat dilimlerinin listesi.
load_parallelism 1 Eşzamanlı aktarma görevlerinin sayısı. Büyük aktarmaları hızlandırmak için bu değeri artırın.
send_batch_parallelism — Verileri toplu halde göndermek için eşzamanlı görevlerin sayısı. BE yapılandırması max_send_batch_parallelism_per_job ile sınırlıdır.
load_to_single_tablet false Tüm verilerin bölüm başına tek bir tablete aktarılıp aktarılmayacağı. Yalnızca rastgele bölümlemeli Duplicate Key modelindeki tablolar için geçerlidir.

OSS'ten veri aktarma

Bu örnekte bir tablo oluşturulur, OSS'te örnek bir CSV dosyası hazırlanır ve OSS Load kullanılarak yüklenir.

Adım 1: Hedef tabloyu oluşturun.

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");

Adım 2: Veri dosyanızı OSS'e yükleyin.

test_file.txt adlı bir CSV dosyasını OSS paketinize yükleyin. Dosya içeriği şu şekilde olmalıdır:

1,yang,32,shanghai,http://example.com
2,wang,22,beijing,http://example.com
3,xiao,23,shenzhen,http://example.com

Adım 3: Aktarma işini gönderin.

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"
);

LOAD ifadesi dört bölümden oluşur:

  • LABEL: Bu aktarma işi için benzersiz bir tanımlayıcı; durumunu sorgulamak ve gerekirse iptal etmek için kullanılır.

  • Veri bildirimi: Kaynak dosya yolu, formatı ve hedef tablo.

  • WITH S3: OSS bağlantı kimlik bilgileri ve uç noktası.

  • PROPERTIES: Zaman aşımı gibi iş düzeyindeki ayarlar.

Aktarma işlerini izleme ve yönetme

İş durumunu kontrol etme

OSS Load eşzamansızdır. İşi gönderdikten sonra ilerlemeyi takip etmek için SHOW LOAD komutunu kullanın.

SHOW LOAD
[FROM <db_name>]
[
   WHERE
   [LABEL [ = "your_label" | LIKE "label_matcher"]]
   [STATE = ["PENDING"|"ETL"|"LOADING"|"FINISHED"|"CANCELLED"]]
]
[ORDER BY ...]
[LIMIT limit][OFFSET offset];
Parametre Varsayılan Açıklama
db_name Geçerli veritabanı Sorgulanacak veritabanı.
LABEL — Etikete göre filtreleme. Tam eşleşme (=) ve desen eşleşmesi (LIKE) desteklenir.
STATE — İş durumuna göre filtreleme.
ORDER BY — Sonuçları sıralama.
LIMIT Tüm kayıtlar Döndürülecek maksimum kayıt sayısı.
OFFSET 0 Atlanacak kayıt sayısı.

Örnekler:

example_db veritabanında etiketleri 2014_01_02 ile eşleşen işleri sorgulayın ve en eski 10 tanesini döndürün:

SHOW LOAD FROM example_db WHERE LABEL LIKE "2014_01_02" LIMIT 10;

Belirli bir işi sorgulayın ve başlangıç zamanına göre sıralayın:

SHOW LOAD FROM example_db WHERE LABEL = "load_example_db_20140102" ORDER BY LoadStartTime DESC;

Şu anda LOADING durumunda olan işleri sorgulayın:

SHOW LOAD FROM example_db WHERE LABEL = "load_example_db_20140102" AND STATE = "LOADING";

Sayfalama ile sorgulama yapın (ilk 5 kaydı atlayın, sonraki 10 kaydı döndürün):

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;

Aktarma işini iptal etme

Henüz FINISHED veya CANCELLED durumunda olmayan bir işi iptal edin. İptal işleminin ardından, iş tarafından yazılan tüm veriler geri alınır.

CANCEL LOAD
[FROM <db_name>]
WHERE [LABEL = "<load_label>" | LABEL LIKE "<label_pattern>"];
Parametre Varsayılan Açıklama
db_name Geçerli veritabanı Aktarma işini içeren veritabanı.
load_label — İptal edilecek işin etiketi. Tam eşleşme ve LABEL LIKE desen eşleşmesi desteklenir.

Örnekler:

Belirli bir işi iptal edin:

CANCEL LOAD
FROM example_db
WHERE LABEL = "example_db_test_load_label";

Etiketleri example_ ile başlayan tüm işleri iptal edin:

CANCEL LOAD
FROM example_db
WHERE LABEL LIKE "example_";

Sorun giderme

Aktarma zaman aşımına uğruyor

Varsayılan zaman aşımı süresi 4 saattir (14400 saniye). Bir iş bu sınırı aşarsa, zaman aşımını basitçe artırmaktan kaçının; bir iş geç aşamada başarısız olursa uzun yeniden denemeler maliyetli olur.

Bunun yerine, büyük dosyaları daha küçük parçalara bölün ve birden fazla işle aktarın.

Veri hacminiz uygun aralıkta olmasına rağmen iş hala zaman aşımına uğruyorsa, daha fazla görevi eşzamanlı çalıştırmak için load_parallelism değerini artırın ve ardından timeout değerini buna göre ayarlayın.