Topik ini menjelaskan cara menggunakan pernyataan LOAD DATA untuk mengimpor data lokal ke AnalyticDB for MySQL Data Warehouse Edition.
Sintaksis
LOAD DATA LOCAL
INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE table_name
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
]
[LINES
[TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[(column_name_or_user_var
[, column_name_or_user_var] ...)] Parameter
Parameter | Deskripsi |
| Mengimpor data dari file lokal. Semua file teks didukung. Catatan
|
| Path file lokal. Path terdiri dari direktori dan nama file. Catatan Jika path yang ditentukan oleh parameter |
| Nama tabel AnalyticDB for MySQL. |
| Menimpa data yang ada dengan data yang ingin diimpor saat kunci primer duplikat digunakan. |
| Mengabaikan baris yang gagal diimpor saat kunci primer duplikat digunakan atau terjadi kesalahan data. Baris tertentu mungkin gagal diimpor. |
| Pemisah yang digunakan untuk memisahkan kolom data. Nilai defaultnya adalah |
| Karakter yang digunakan untuk mengapit data setiap kolom. Sebagai contoh, jika data kolom adalah |
| Pemisah yang digunakan untuk memisahkan baris data. Nilai defaultnya adalah |
| Jumlah baris dari awal yang ingin Anda abaikan saat mengimpor data. Sebagai contoh, |
| Kolom yang ingin Anda impor. Jika Anda tidak menentukan parameter ini, data diimpor berdasarkan urutan kolom.
|
Catatan Penggunaan
Anda harus mengaktifkan fitur
local-infilepada klien.Sebagai contoh, tambahkan konfigurasi berikut ke file
my.cnfuntuk mengaktifkan fiturlocal-infilepada klien MySQL:cat ~/.my.cnf [mysqld] local-infile [mysql] local-infileUntuk informasi lebih lanjut tentang file
my.cnf, lihat dokumentasi resmi MySQL.Impor data tidak menjamin atomicitas operasi.
Dalam mode
IGNORE, baris data yang gagal diimpor akan diabaikan.Dalam mode
REPLACE, operasiINSERTberikutnya dihentikan jika baris data gagal diimpor, sehingga baris tertentu mungkin tidak diimpor.
Anda dapat mengeksekusi pernyataan
SHOW WARNINGSuntuk memeriksa pesan kesalahan baris yang gagal.
Contoh
Pada contoh ini, data dari file lokal bernama out.bak diimpor ke tabel AnalyticDB for MySQL bernama test. File out.bak berisi 5.000 baris data. Pemisah kolom adalah \t, dan pemisah baris adalah \n. Baris kedelapan data tidak valid, seperti ditunjukkan dalam entri data berikut:
1 bb
2 bb
3 bb
4 bb
5 bb
6 bb
7 bb
bb 8
9 bb
... Hubungkan ke kluster AnalyticDB for MySQL yang ingin Anda kelola. Eksekusi pernyataan CREATE DATABASE dan CREATE TABLE untuk membuat tabel bernama
testdalam database bernamaadb_demountuk menyimpan data yang ingin Anda impor dari file lokal.CREATE TABLE test ( a int NOT NULL DEFAULT '0', b varchar NOT NULL, PRIMARY KEY (a) ) DISTRIBUTED by HASH(a);Eksekusi pernyataan LOAD DATA pada klien MySQL untuk mengimpor data dari file lokal bernama
out.bakke tabel AnalyticDB for MySQL bernamatest.Eksekusi pernyataan LOAD DATA dalam mode
IGNORE. Dalam mode ini, baris tertentu mungkin gagal diimpor. Contoh pernyataan:LOAD DATA LOCAL INFILE '~/out.bak' IGNORE INTO TABLE test FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' ;Eksekusi pernyataan berikut untuk memeriksa hasil impor:
SELECT COUNT(1) FROM test;+----------+ | count(1) | +----------+ | 4999 | +----------+ 1 row in set (0.14 sec)Eksekusi pernyataan LOAD DATA dalam mode
REPLACE. Dalam mode ini, operasi impor berikutnya segera dihentikan jika baris gagal diimpor. Contoh pernyataan:LOAD DATA LOCAL INFILE '~/out.bak' REPLACE INTO TABLE test FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' ;Contoh hasil:
ERROR 1064 (42000): [13000, 2019061210070703000511314203303000266] syntax error :syntax error => IDENTIFIER is not value type pos:34 row: 0 and ceil:0Eksekusi pernyataan LOAD DATA untuk melewati 10 baris pertama data saat mengimpor. Contoh pernyataan:
LOAD DATA LOCAL INFILE '~/out.bak' REPLACE INTO TABLE test FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' IGNORE 10 LINES;Contoh hasil:
Query OK, 4990 rows affected (0.37 sec)