Mysql memuat data infile lokal beberapa file

Selama impor data yang disimpan di salah satu file ini, Anda dapat secara opsional menerapkan operasi ke data sebagai berikut

  • Gunakan klausa

    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    6 untuk melakukan pemfilteran pada data yang masuk. Hanya baris yang memenuhi ekspresi dalam klausa
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    6 yang akan dimuat ke SingleStoreDB Cloud . Untuk contoh cara menggunakan klausa
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    6, lihat.

  • Gunakan klausa

    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    _9 untuk menyetel kolom menggunakan nilai atau ekspresi tertentu dengan variabel. Misalnya, jika file input Anda memiliki 9 kolom tetapi tabel memiliki kolom ke-10 yang disebut
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    00, Anda dapat menambahkan
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    01 atau
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    02. Perhatikan bahwa nama kolom hanya boleh digunakan di sisi kiri ekspresi
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    9

  • Gunakan klausa

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    04 untuk mengimpor file dengan kumpulan karakter apa pun yang didukung ke SingleStoreDB .

    Untuk informasi lebih lanjut, lihat

Lihat Matriks Izin untuk izin yang diperlukan

Penting

Jika kueri menggunakan

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
05 dalam pernyataan
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7, SingleStoreDB Cloud menafsirkannya sebagai referensi untuk penetapan
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 ke variabel, bukan sebagai .

Perilaku SingleStoreDB Cloud pada perintah

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 memiliki beberapa perbedaan fungsional dari perintah MySQL.

  • LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    7 akan memuat data ke SingleStoreDB Cloud secara paralel untuk memaksimalkan performa. Hal ini membuat
    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    7 di SingleStoreDB Cloud jauh lebih cepat pada mesin dengan jumlah prosesor yang lebih banyak.

  • LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    _7 mendukung pemuatan terkompresi. file gz

  • Satu-satunya charset_name yang didukung adalah utf8

Utilitas

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_12 juga dapat digunakan untuk mengimpor data ke SingleStoreDB Cloud .
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_12 menggunakan
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 secara internal.

SingleStoreDB Cloud menyimpan informasi tentang kesalahan yang ditemui selama setiap operasi

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7, tetapi jumlah kesalahan dibatasi hingga 1000 secara default. Ketika batas ini tercapai, beban gagal. Ini mencegah masalah kehabisan memori saat secara tidak sengaja memuat file besar dengan format yang salah atau pernyataan
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 yang salah. Gunakan
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_17 di akhir pernyataan untuk mengubah batas ini. Untuk menentukan tanpa batas, atur
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
17 hingga
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
19.

Menulis ke beberapa database dalam transaksi tidak didukung

DATA BEBAN CSV

Sintaksis

LOAD DATA [LOCAL] INFILE '<file_name>'
  [REPLACE | IGNORE | SKIP { ALL | CONSTRAINT | DUPLICATE KEY | PARSER } ERRORS]
  INTO TABLE <table_name>
  [CHARACTER SET <character_set_name>]
  [{FIELDS | COLUMNS}
  [TERMINATED BY '<string>']
      [[OPTIONALLY] ENCLOSED BY '<char>']
      [ESCAPED BY '<char>']
  ]
  [LINES
  [STARTING BY '<string>']
  [TERMINATED BY '<string>']
  ]
  [TRAILING NULLCOLS]
  [NULL DEFINED BY <string> [OPTIONALLY ENCLOSED]]
  [IGNORE <number> LINES]
  [ ({<column_name> | @<variable_name>}, ...) ]
  [SET <column_name> = <expression>,...]
  [WHERE <expression>,...]
  [MAX_ERRORS <number>]
  [ERRORS HANDLE <string>]

Catatan

  • Pencatatan kesalahan dan penanganan kesalahan dibahas di akhir topik ini

  • Untuk menentukan jenis kompresi file input, gunakan klausa

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    20. Lihat Menangani Kompresi Data untuk informasi selengkapnya

  • Jika file CSV tampaknya memiliki jumlah bidang yang salah di baris mana pun, Anda dapat menggunakan opsi

    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    1 untuk melewati baris tersebut.
    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    _7 melaporkan peringatan untuk setiap baris yang dilewati

    Penting

    Baris dalam file CSV mungkin tampak memiliki jumlah bidang yang salah jika klausa

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    23,
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    24, atau
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    25 salah dikonfigurasi. Jika
    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    _7 salah menemukan awal baris berikutnya dalam CSV setelah kesalahan parser, ini mungkin salah mengurai semua baris berikutnya. Karena alasan ini, selidiki input CSV dan setelan konfigurasi yang disebutkan di atas sebelum menggunakan
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    1

  • Opsi

    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    2 mencakup opsi
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    1,
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    5, dan
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    4, i. e. , menentukan opsi
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    _2 dalam kueri
    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    7 menerapkan perilaku dari tiga opsi lainnya

  • Klausa

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    34 memungkinkan Anda untuk menentukan pembatas bidang, kolom, dan garis sehingga data input ditafsirkan dan dibaca dengan benar. Misalnya, gunakan klausa
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    35 untuk memuat file CSV yang bidangnya dipisahkan dengan koma. Selain itu, gunakan klausa
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    _36 jika baris dalam file CSV diakhiri oleh carriage return/newline pairs

  • Klausa

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    37 atau setara
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    38 memungkinkan Anda menentukan string yang menyertakan nilai bidang. Misalnya, gunakan klausa
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    _39 untuk memuat file CSV yang bidangnya diapit dengan tanda kutip ganda. Perhatikan bahwa
    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    _7 masih akan memuat nilai bidang meskipun tidak tertutup

  • Klausa

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    25 memungkinkan Anda menentukan karakter pelarian. Misalnya, jika data input berisi karakter khusus, Anda mungkin perlu meng-escape karakter tersebut untuk menghindari salah tafsir. Selain itu, Anda mungkin perlu mendefinisikan ulang karakter escape default untuk memuat kumpulan data yang berisi karakter tersebut

  • Klausa

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    42 memungkinkan Anda memuat hanya baris data yang menyertakan string (atau awalan) tertentu. Saat memuat data, klausa
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    42 melompati awalan yang ditentukan dan apa pun sebelumnya. Itu juga melewatkan baris yang tidak mengandung awalan yang ditentukan

    Jika tidak ada klausa

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    44 atau
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    45 yang ditentukan, maka SingleStoreDB menggunakan default berikut.

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    _

  • Klausa

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    46 memungkinkan file input berisi baris yang memiliki lebih sedikit dari jumlah kolom dalam tabel. Kolom yang hilang ini harus berupa kolom di belakang baris; . Lihat

  • Klausa

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    49 menyisipkan
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    47 nilai bidang dalam tabel untuk bidang dalam file masukan yang memiliki nilai
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    51. Opsi
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    52 memastikan bahwa bidang yang dikutip juga diperlakukan sebagai
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    47, bukan string kosong

  • Klausa

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    54 mengabaikan baris yang ditentukan dari awal file input. Misalnya, gunakan
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    55 untuk melewati baris header yang berisi nama kolom

Contoh

Memuat Data saat Urutan Kolom di Tabel Tujuan dan File Sumber Berbeda

Jika urutan kolom dalam tabel berbeda dengan urutan dalam file sumber, Anda dapat menamainya secara eksplisit. Dalam contoh ini, kolom dimuat dalam urutan terbalik

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);

Melewatkan Kolom di File Sumber

Anda dapat melewatkan kolom di file sumber menggunakan @ sign. In this example only the first and fourth columns are imported into table foo:

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);

Menentukan Pembatas Kolom

Pembatas kolom default adalah tab ( t) character, ASCII code 09. You can specify a different delimiter, even multi-character delimiters, with the

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
56 clause:

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';

Dalam contoh berikut, pembatas bidang dan garis digunakan untuk membaca file yang berisi bidang yang dipisahkan oleh koma dan garis yang diakhiri oleh pasangan carriage return/newline

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';

File Sumber dengan Pemisah Kolom yang Tidak Biasa

Contoh berikut menunjukkan pemuatan file yang memiliki pemisah kolom yang tidak biasa (

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
57)

LOAD DATA INFILE 'foo.oddformat'
  INTO TABLE foo
  COLUMNS TERMINATED BY '|||';

Memuat Data dari Banyak File

Menggunakan globbing, Anda dapat memuat data dari banyak file dalam satu kueri

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7

Kueri berikut memuat data dari semua

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_59 file dengan nama yang dimulai dengan angka

LOAD DATA INFILE "[0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);

Kueri berikut memuat data dari semua

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_59 file dengan nama file yang memiliki empat karakter

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);

Kueri berikut memuat data dari semua

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_59 file dengan nama file tidak dimulai dengan angka

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);

Catatan

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_62 tidak mendukung globbing

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_63 mendukung globbing dalam nama file, tetapi tidak dalam nama direktori

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_64 berisi
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 klausa. Di sini,
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 mendukung globbing, baik dalam nama direktori maupun nama file

Menggunakan
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_46 Klausul

Contoh berikut menunjukkan cara menggunakan klausa

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
46 menggunakan file
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
69 , dengan konten berikut

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_0

Jalankan perintah berikut

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_1

Menggunakan
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_49 Klausul

Contoh berikut menunjukkan cara menggunakan klausa

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
49 menggunakan file
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
72

________4
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_4_______3

Kueri berikut menyisipkan bidang kosong yang tidak tertutup sebagai nilai

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
47 dan bidang kosong yang tertutup sebagai string kosong

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_4

Jika Anda menambahkan opsi

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
52 ke klausa
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
49 dalam kueri di atas, dan sebagai gantinya menjalankan kueri berikut, kedua bidang kosong akan disisipkan sebagai nilai
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
47

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_5

Menggunakan Klausul
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_77

Dalam contoh berikut, klausa

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
77 digunakan untuk melewati baris header yang berisi nama kolom di file sumber

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_6

Menggunakan Klausa
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_25

Contoh berikut menunjukkan cara memuat data ke dalam tabel

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
80 menggunakan klausa
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
25 dari file
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
82, yang isinya ditunjukkan di bawah ini

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
7
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
8

Jalankan kueri berikut

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_9

Dalam kueri ini, karakter

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
83 keluar dari koma (
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
84) di antara dua bidang pertama kontak. csv . (The
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_83 (backslash) adalah karakter escape default dalam kueri SQL. Oleh karena itu,
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_86 (garis miring terbalik ganda) digunakan untuk menghindari garis miring terbalik itu sendiri di dalam kueri. )

Peringatan

Jika Anda (secara tidak sengaja) keluar dari

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
34 karakter dalam file, kueri SQL dapat mengembalikan kesalahan. Misalnya, jika Anda menghapus kedua koma di salah satu baris kontak. csv file yang disebutkan di atas, sebagai.

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_0

dan kemudian jalankan kueri berikut

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_1

mengembalikan kesalahan berikut. ERROR 1261 (01000). Baris 1 tidak berisi data untuk semua kolom . Karena,

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_83 (garis miring terbalik) lolos dari koma dan
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 menganggap baris pertama sebagai satu kolom.

Menggunakan
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_42 Klausul

Contoh berikut menunjukkan cara melewatkan awalan

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
91 di file data
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
92 menggunakan klausa
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
42

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
2
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
3

Dalam contoh ini, klausa

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
42 melompati awalan
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_91 di baris pertama dan ketiga dan apa pun sebelumnya. Melompati baris kedua, karena tidak mengandung
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
91

Memfilter Baris dari File Sumber

Anda juga dapat memfilter baris yang tidak diinginkan menggunakan klausa

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
6. Dalam contoh ini, hanya baris dengan bar sama dengan 5 yang akan dimuat. Semua baris lainnya akan dibuang

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_4

Memfilter dan Mengubah Baris Dari File Sumber

Transformasi kompleks dapat dilakukan di SET and WHERE clauses. For example, if you have an input file with a

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
98 field and an
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
99 field:

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_5

Anda hanya ingin memuat baris dengan tanggal dalam waktu tiga bulan dari tanggal tertentu, 10/15/2016, misalnya. Ini dapat dicapai dengan yang berikut ini

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_6

Sementara nama kolom dan variabel dapat dirujuk dalam klausa

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
6 nama kolom hanya dapat ditetapkan dalam klausa
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
9. Cakupan klausul ini dibatasi pada baris saat ini dan oleh karena itu
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
02 pernyataan tidak dapat dievaluasi

Menggunakan
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_3

Contoh ini menggunakan tabel

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_04, yang didefinisikan sebagai tabel columnstore sebagai berikut

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_7

Asumsikan direktori

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_05 memiliki satu file
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
06, yang berisi data berikut

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_8

Buat pernyataan

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 dengan klausa
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
3

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_9

Saat

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 menyerap data dari
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
06 ke dalam tabel
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
04, ia menemukan catatan kelima dan keenam dalam file, yang berisi kunci duplikat
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
12 dan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
13. Rekaman kedua dan ketiga yang berisi kunci duplikat tersebut (yang telah diimpor ke
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
04), diganti dengan rekaman kelima dan kedua

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
0

Memuat File Panjang Tetap

Contoh ini menunjukkan cara memuat konten file

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
15, yang isinya ditunjukkan di bawah ini

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
1

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 menyisipkan setiap baris yang diekstraksi dari
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
15 ke dalam tabel
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
00. Tentukan tabel sebagai berikut

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
2

Jalankan pernyataan

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
3

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_20 mengekstrak substring dari string dan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
21 menghapus padding (spasi dalam kasus ini) dari awal dan akhir string. Misalnya, setelah pernyataan
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 mengekstrak baris
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
23 di
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
15, ia melakukan hal berikut untuk menyetel
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
25. * Ini mengekstrak, dari
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_23, substring mulai dari posisi 4 memiliki panjang 2. Substring yang dihasilkan adalah
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
27. * Ini menghilangkan spasi putih terkemuka dari
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
27 untuk menghasilkan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
27

Ambil data dari

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_00

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
4

Memuat Data menggunakan Hex Field Terminator Syntax

Memuat data ke dalam tabel melalui pipa dapat dilakukan menggunakan terminator bidang heksadesimal. Contoh di bawah ini menggunakan bucket AWS S3 untuk sumber datanya

Sintaksis

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
5

DATA BEBAN JSON

Sintaksis

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
6

Semantik

Pencatatan kesalahan dan penanganan kesalahan dibahas di akhir topik ini

Ekstrak subnilai yang ditentukan dari setiap nilai JSON di

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
31. Tetapkan mereka ke kolom tertentu dari baris baru di
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
32, atau ke variabel yang digunakan untuk penugasan kolom di klausa
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
9. Jika subnilai yang ditentukan tidak dapat ditemukan di input JSON, tetapkan literal klausa ________61______34 sebagai gantinya. Buang baris yang tidak cocok dengan klausa
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
6

Untuk menentukan jenis kompresi file input, gunakan klausa

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
20. Lihat Menangani Kompresi Data untuk informasi selengkapnya

File yang dinamai oleh

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
31 harus terdiri dari gabungan nilai JSON yang disandikan UTF-8, secara opsional dipisahkan oleh spasi putih. JSON yang dibatasi baris baru diterima, misalnya

Nilai JSON non-standar seperti

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
38,
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
39, dan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
40 tidak boleh muncul di
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
31

Jika

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_31 diakhiri dengan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
43 atau
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
44, itu akan didekompresi

JSON

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 mendukung subset opsi pemulihan kesalahan yang diizinkan oleh CSV
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7. Perilaku mereka seperti yang dijelaskan dalam CSV LOAD DATA

Seperti CSV

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7, JSON
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 memungkinkan Anda menggunakan globbing untuk memuat data dari banyak file. Lihat CSVnya

Menulis ke beberapa database dalam transaksi tidak didukung

Mengekstraksi Nilai JSON

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_49 menentukan subnilai mana yang diekstraksi dan kolom atau variabel yang masing-masing ditugaskan

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 menggunakan daftar kunci yang dipisahkan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
51 dalam
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
52 untuk melakukan pencarian kunci berurutan dalam objek JSON bersarang, seolah menerapkan operator SQL
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
51. Berbeda dengan operator
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
51,
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
52 tidak boleh digunakan untuk mengekstrak elemen array JSON. Jalur
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_56 mengacu pada seluruh nilai JSON yang sedang diproses. Leading
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
57 dapat dihilangkan dari jalur yang tidak kosong

Jika jalur tidak dapat ditemukan dalam nilai input JSON, maka jika elemen yang memuat

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
49 memiliki klausa
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
34,
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
60 akan ditetapkan;

Komponen jalur yang mengandung spasi putih atau tanda baca harus diapit oleh backtick. Misalnya, jalur

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_62 dan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
63 keduanya akan mengekstrak
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
64 dari objek input
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
65

Elemen array dapat diekstraksi secara tidak langsung dengan menerapkan

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
66 dalam klausa
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
9

Mengonversi Nilai JSON

Sebelum penugasan atau menetapkan evaluasi klausa, nilai JSON yang diekstraksi menurut

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
52 diubah menjadi string SQL collation biner yang nilainya bergantung pada jenis JSON yang diekstraksi sebagai berikut

Jenis JSON

Nilai yang Dikonversi

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_69

SQL

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_47

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
71/________61______72

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
73/________61______74

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_75

Kata demi kata, dari string yang diekstraksi

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_76

Semua urutan escape string JSON, termasuk dikonversi ke UTF-8. Kata demi kata sebaliknya

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_77

Kata demi kata, dari string yang diekstrak. Misalnya,

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_78

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_79

Kata demi kata, dari string yang diekstrak. Misalnya,

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_80

Konversi tidak bersifat rekursif. Jadi, misalnya,

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_71 tidak dikonversi menjadi
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
73 ketika itu adalah subnilai dari objek yang sedang diekstraksi secara keseluruhan

Contoh JSON LOAD DATA

Contoh 1

Jika

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_83 terdiri dari

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
7

Kemudian dapat dimuat sebagai berikut

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
8

Contoh 2

Jika

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_84 terdiri dari

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
_9

Kemudian kita dapat melakukan ________10______7 yang lebih rumit

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
0

Ada beberapa hal yang perlu diperhatikan dalam contoh di atas

  • LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    71 dikonversi menjadi
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    73 untuk kolom
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    25, tetapi tidak untuk kolom
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    89.
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    _73 selanjutnya dikonversi menjadi
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    91 nilai
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    64

  • LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    _93 dan
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    94 dikonversi menjadi UTF-8 untuk kolom
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    95, tetapi tidak untuk kolom
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    89. Perhatikan bahwa
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    _89 akan menjadi JSON yang tidak valid jika kami telah menerjemahkan
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    94

  • Baris kedua dibuang karena tidak cocok dengan klausa

    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    6

  • Tak satu pun dari jalur di

    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    _49 dapat ditemukan di baris ketiga, jadi
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (fourth, third, second, first);
    
    34 literal seperti
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (bar, @, @, baz);
    
    02 ditugaskan sebagai gantinya

  • Kami menetapkan

    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (bar, @, @, baz);
    
    _03 ke variabel perantara sehingga kami dapat mengekstraksi elemen array di klausa
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    9

  • Nilai JSON tingkat atas di . ________62______06 adalah nilai JSON objects.

    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (bar, @, @, baz);
    
    06 is a valid tingkat atas yang valid.

Avro BEBAN DATA

Sintaksis

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_1

Lihat repo GitHub terkait

Semantik

Pencatatan kesalahan dan penanganan kesalahan dibahas di akhir topik ini

Ekstrak subnilai yang ditentukan dari setiap nilai Avro di

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
31. Tetapkan mereka ke kolom tertentu dari baris baru di
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
32, atau ke variabel yang digunakan untuk penugasan kolom di klausa
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
9. Buang baris yang tidak cocok dengan klausa
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
6

Untuk menentukan jenis kompresi file input, gunakan klausa

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
20. Lihat Menangani Kompresi Data untuk informasi selengkapnya

Avro

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 mengharapkan data Avro dalam salah satu dari dua sub-format, depending on the
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
13 clause.

Jika tidak ada klausa

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
13 yang diberikan,
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
31 harus memberi nama Avro Object Container File seperti yang dijelaskan di versi 1. 8. 2 dari spesifikasi Avro. Selain itu, pembatasan berikut berlaku.

  • Codec kompresi file harus ________61______69

  • Nilai array dan map tidak boleh lebih dari 16384 elemen

  • Nama jenis

    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (bar, @, @, baz);
    
    17 tidak boleh digunakan dalam simbol referensi ke nama yang ditentukan sebelumnya in any of its fields. It may still be used in a symbolic reference outside the record definition, however.

    Misalnya, skema referensi mandiri seperti berikut ini ditolak oleh

    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    7

    LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    _2

Jika klausa ________62______13 disediakan, file harus berupa aliran mentah consisting of only the concatenated binary encodings of instances of

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
20.
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
20 must be a SQL string containing a JSON Avro schema. The restrictions on Object Container Files juga berlaku untuk aliran mentah files.

Peringatan

Merupakan kesalahan untuk memberikan klausa

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
13 saat memuat Object Container File karena berisi metadata bersama dengan nilai yang disandikan.

Semua atribut skema Avro opsional kecuali atribut

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
23 diabaikan. Khususnya,
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
_24 atribut diabaikan

Jika

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_31 diakhiri dengan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
43 atau
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
44, itu akan didekompresi

Avro

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 mendukung subset opsi pemulihan kesalahan yang diizinkan oleh CSV
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7. Perilaku mereka seperti yang dijelaskan dalam CSV LOAD DATA

Menulis ke beberapa database dalam transaksi tidak didukung

Opsi

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
_30 memungkinkan
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 untuk menarik skema dari registri skema. Untuk informasi lebih lanjut, lihat topik Avro Schema Evolution With Pipelines

Mengekstraksi Nilai Avro

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_49 menentukan subnilai mana yang diekstraksi dan kolom atau variabel yang masing-masing ditugaskan

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 menggunakan daftar nama yang dipisahkan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
51 dalam
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
52 untuk melakukan pencarian nama bidang berturut-turut atau nama jenis cabang serikat di catatan Avro bertumpuk atau serikat.
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_52 tidak boleh digunakan untuk mengekstrak elemen array atau peta Avro. Jalur
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_56 mengacu pada seluruh nilai Avro yang sedang diproses. Leading
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
57 dapat dihilangkan dari jalur yang tidak kosong

Jika jalur tidak dapat ditemukan dalam nilai input Avro, maka. * Jika awalan jalur cocok dengan catatan yang skemanya tidak memiliki bidang yang cocok dengan nama berikutnya di jalur, maka

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 akan diakhiri dengan kesalahan. * Jika awalan cocok dengan gabungan yang skemanya tidak memiliki cabang yang cocok dengan nama berikutnya, maka
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 akan diakhiri dengan kesalahan. * Jika awalan cocok dengan gabungan yang skemanya memiliki cabang yang cocok dengan nama berikutnya, tetapi cabang tersebut bukan cabang yang dipilih dalam contoh skema gabungan tersebut, maka Avro
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
69 akan diekstraksi sebagai gantinya dan
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 akan melanjutkan

Penamaan komponen jalur cabang gabungan harus menggunakan dua bagian dari tipe cabang jika tipe tersebut ada di namespace

Komponen jalur yang mengandung spasi putih atau tanda baca harus diapit oleh backtick

Elemen array dan peta dapat diekstraksi secara tidak langsung dengan menerapkan

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
66 dalam klausa
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
9

Misalnya, pertimbangkan dua catatan Avro dengan skema gabungan

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_3

Jalur

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
45 dan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
46 keduanya akan mengekstrak
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
64 dari instance skema ini yang pengkodean JSON-nya adalah
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
48

Mereka akan mengekstrak

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_69 dari instance yang penyandiannya adalah
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
50

Jalur

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
51 dan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
52 akan mengekstrak
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
53 dari instance kedua dan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
69 dari instance pertama

Konversi Nilai Avro

Sebelum penugasan atau menetapkan evaluasi klausa, nilai Avro yang diekstraksi menurut

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
52 diubah menjadi tipe SQL yang tidak ditentukan yang dapat dikonversi lebih lanjut secara eksplisit atau implisit seolah-olah dari string SQL yang nilainya adalah sebagai berikut

Tipe Avro

Nilai yang Dikonversi

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_69

SQL

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_47

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
58

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
73/________61______74

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
52

Representasi string dari nilai

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
62

Representasi string dari nilai

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
63

SQL

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_47 jika tidak terbatas. Jika tidak, string dapat dikonversi tanpa kehilangan presisi ke
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
65

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
66

SQL

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_47 jika tidak terbatas. Jika tidak, string dapat dikonversi tanpa kehilangan presisi ke
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
68

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
69

Representasi string dari enum

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
70

Verbatim, dari input byte

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_76

Verbatim, dari input byte

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
72

Verbatim, dari input byte

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
17

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
74

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_77

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
76

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
24 atribut diabaikan dan tidak berpengaruh pada konversi

Contoh LOAD DATA Avro

Contoh 1

Pertimbangkan Avro Object Container File

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
78 dengan skema berikut.

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_4

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
78 berisi tiga nilai Avro yang pengkodean JSON-nya

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
5

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
78 dapat dimuat sebagai berikut

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_6

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 dapat mengurai
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
78 karena Avro Object Container Files memiliki header yang berisi skemanya.

Contoh 2

Pertimbangkan file bernama

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
83, dengan nilai yang sama dengan
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
78 dari Contoh 1 tetapi dalam format aliran mentah. That is,
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
83 consists of the binary encoded values and nothing else. We add a
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
13 clause to tell
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 to expect a aliran mentah with the provided schema:

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_7

Contoh 3

Pertimbangkan Object Container File

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
88 dengan payload yang lebih rumit daripada Contoh 1. Kami mengilustrasikan penggalian nilai dari serikat dan catatan bersarang, dan juga secara tidak langsung mengekstraksi elemen peta dan larik bersarang.

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_8

Pengkodean JSON mentah dari isi file ini dapat dilihat pada kolom

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
89 setelah
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 berikut

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_9

Ada beberapa hal yang perlu diperhatikan

  • Kami mencoba mengekstraksi subnilai dari cabang

    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (bar, @, @, baz);
    
    91 dari bidang tipe gabungan
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (bar, @, @, baz);
    
    92. Karena itu bukan anggota serikat yang dipilih dalam catatan 1,
    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    7 menugaskan
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    47 ke
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (bar, @, @, baz);
    
    95 dan
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (bar, @, @, baz);
    
    96

  • Kami menetapkan pengkodean JSON dari

    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (bar, @, @, baz);
    
    97 ke
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (bar, @, @, baz);
    
    96 dan kemudian melakukan pencarian peta JSON dan array dalam klausa
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    9 untuk akhirnya mengekstrak
    LOAD DATA INFILE 'foo.tsv'
      INTO TABLE foo (bar, @, @, baz);
    
    53

  • LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    _01 dan
    LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    02 memiliki konten yang sama, tetapi kita dapat melihat bagaimana perbedaan tipe Avro mereka memengaruhi pengkodean JSON mereka dan berinteraksi dengan tipe SQL JSON

    • Pengkodean JSON dari nilai Avro

      LOAD DATA INFILE 'foo.tsv'
        INTO TABLE foo (fourth, third, second, first);
      
      76
      LOAD DATA INFILE 'foo.csv'
        INTO TABLE foo
        COLUMNS TERMINATED BY ',';
      
      01, seperti yang terlihat di
      LOAD DATA INFILE 'foo.tsv'
        INTO TABLE foo (bar, @, @, baz);
      
      89, mengkodekan karakter khusus seperti
      LOAD DATA INFILE 'foo.csv'
        INTO TABLE foo
        COLUMNS TERMINATED BY ',';
      
      06 sebagai escape sequence
      LOAD DATA INFILE 'foo.csv'
        INTO TABLE foo
        COLUMNS TERMINATED BY ',';
      
      07

    • Enkode JSON dari nilai Avro

      LOAD DATA INFILE 'foo.tsv'
        INTO TABLE foo (bar, @, @, baz);
      
      70
      LOAD DATA INFILE 'foo.csv'
        INTO TABLE foo
        COLUMNS TERMINATED BY ',';
      
      02, seperti yang terlihat di
      LOAD DATA INFILE 'foo.tsv'
        INTO TABLE foo (bar, @, @, baz);
      
      89, mengkodekan setiap byte dengan escape JSON.

    • Saat mengonversi pengkodean JSON dari record 2 ke tipe SQL JSON saat menetapkan ke

      LOAD DATA INFILE 'foo.csv'
        INTO TABLE foo
        COLUMNS TERMINATED BY ',';
      
      11,
      LOAD DATA INFILE "????.csv"
      INTO TABLE cust(ID,NAME,ORDERS);
      7 menormalkan kedua representasi urutan byte
      LOAD DATA INFILE 'foo.csv'
        INTO TABLE foo
        COLUMNS TERMINATED BY ',';
      
      13 ke
      LOAD DATA INFILE 'foo.csv'
        INTO TABLE foo
        COLUMNS TERMINATED BY ',';
      
      14

Memuat File Parket

Perintah

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 tidak mendukung memuat file Parket. Namun, Anda dapat menggunakan klausa
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 dalam CREATE PIPELINE. Pernyataan FORMAT PARQUET untuk membuat saluran pipa yang memuat file Parquet

Menangani Kompresi Data

Klausul

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
20 menentukan bagaimana
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 menangani kompresi file masukan

Sintaksis

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
0

Argumen

  • LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    _19. Ini adalah pengaturan default, ini memberi tahu
    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    7 untuk mengidentifikasi jenis kompresi dari ekstensi file input

  • LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    _21. Menentukan bahwa file input tidak terkompresi

  • LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    _22. Menentukan bahwa file masukan dikompresi dengan
    LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    22 algoritma kompresi

  • LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    _24. Menentukan bahwa file masukan dikompresi dengan
    LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    24 algoritma kompresi

Catatan

  • Jika

    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    _20 diatur ke
    LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    21,
    LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    22, atau
    LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    24,
    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    7 tidak akan menggunakan ekstensi file input untuk menentukan jenis kompresi. Misalnya, jika Anda memuat file
    LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    _31 dan menentukan
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY ''
    ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    STARTING BY ''
    20 sebagai
    LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    21, maka
    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    7 akan menangani
    LOAD DATA INFILE 'foo.csv'
      INTO TABLE foo
      COLUMNS TERMINATED BY ',';
    
    31 sebagai file yang tidak terkompresi

LOKAL

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
8 memengaruhi lokasi file yang diharapkan, perilaku pencarian untuk nama jalur relatif, dan perilaku penanganan kesalahan

Saat Anda menentukan

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_8, klien membaca
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
31 dan mengirimkannya ke server. Lokasi file yang diharapkan ada di dalam direktori klien. Jika
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
_31 adalah jalur relatif, itu relatif terhadap direktori kerja klien saat ini

Ketika

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_8 tidak ditentukan, file dibaca oleh server, dan harus ditempatkan di host server terkait. Jika nama jalur file relatif ditentukan, itu dicari sebagai relatif terhadap direktori data server, atau relatif terhadap direktori database default dalam kasus di mana tidak ada komponen utama yang diberikan

Karena file harus dikirim dari klien ke server, menentukan

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
8 bisa lebih lambat. Namun, itu memang memiliki keunggulan keamanan karena pengguna klien harus dapat membaca file yang sedang dimuat. Jika
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_8 tidak ditentukan, server memerlukan akses ke direktori data lengkap, artinya setiap pengguna yang memiliki izin untuk
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 atau
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
64 dapat membaca direktori. Ini karena izin tersebut mencakup
LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
45 Matriks Izin

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_8 tidak mendukung globbing (seperti menggunakan wildcard di direktori atau nama file)

Contoh penggunaan

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_8 berikut

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
1

Pencatatan Kesalahan

Saat Anda menjalankan perintah

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 dan menggunakan klausa
LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
49,
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 mencatat kesalahan ke tabel
LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
51. Kesalahan yang dicatat adalah baris yang salah yang
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 temui saat memproses file input. Tabel berikut menjelaskan
LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_51

Nama kolom

Keterangan

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_54

Nama database yang terkait dengan kesalahan

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_55

Nilai string yang ditentukan dalam pernyataan

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_56 yang menyebabkan kesalahan

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_57

Waktu kejadian kesalahan dalam format stempel waktu Unix

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_58

Menentukan jenis kesalahan apa yang terjadi.

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_59 digunakan ketika
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 mengembalikan kesalahan ke aplikasi klien.
LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_61 digunakan ketika
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 tidak mengembalikan kesalahan ke aplikasi klien dan malah melewatkan atau mengabaikan kesalahan. Catatan. Jika
LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_63 mengembalikan kesalahan kunci duplikat ke aplikasi klien, kesalahan tidak dicatat ke
LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
51

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_65

Kode kesalahan untuk kesalahan

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_66

Pesan yang terkait dengan kesalahan. Nilai ini berisi informasi kontekstual tentang kesalahan yang dapat digunakan untuk tujuan debug

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_67

Baris yang salah dalam file masukan yang

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 tidak dapat diproses. Galat pemuatan biasanya disebabkan oleh data yang salah format atau mencoba menulis jenis skema yang tidak valid ke dalam kolom, seperti nilai
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
47 ke dalam kolom yang tidak dapat dibatalkan

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_70

Nomor baris file input menyebabkan kesalahan penguraian saat mencoba memuat data ke tabel tujuan. Nomor baris ini dapat dikorelasikan dengan nilai

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
67, yang berisi teks baris yang tidak valid

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_72

Nama host atau alamat IP host dari node yang memproses baris yang salah dari file input

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_73

Nomor port node yang memproses baris yang salah dari file input

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_74

Menentukan ID partisi pada node daun yang memproses baris yang salah dari file input. Nilai ini adalah

FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
_47 jika agregator memproses baris tersebut

Lihat bagian berikutnya untuk contoh data yang

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_63 diisi dalam tabel
LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
51

Gunakan perintah HAPUS BEBAN KESALAHAN untuk menghapus kesalahan dari

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
51.

Penanganan Kesalahan

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 memiliki beberapa opsi untuk menangani kesalahan yang ditemui saat memproses file input. Saat Anda menulis pernyataan
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7, Anda dapat memutuskan opsi mana yang akan digunakan

  • Secara default,

    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    _7 mengembalikan kesalahan ke aplikasi klien. Kesalahan dikembalikan satu per satu

  • Untuk mengabaikan kesalahan kunci duplikat/nilai indeks dalam file input, gunakan klausa

    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    3 untuk mengganti baris yang ada dengan baris input. Klausa ini pertama-tama menghapus baris yang ada yang memiliki nilai yang sama untuk kunci utama atau indeks unik sebagai baris masukan, lalu menyisipkan baris baru

  • Untuk melewati kesalahan dalam file input, gunakan klausa ________64______83. Data di baris yang salah tidak akan dimasukkan ke tabel tujuan

  • Untuk mengabaikan kesalahan dalam file input, gunakan klausa

    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    0. Klausul ini menggantikan nilai yang tidak valid dengan defaultnya, membuang bidang ekstra, atau membuang baris yang salah sepenuhnya

  • Ketika

    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    _8 ditentukan, kunci duplikat dan kesalahan interpretasi data tidak menghentikan operasi. Ketika
    LOAD DATA INFILE "????.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    _8 tidak ditentukan, kunci duplikat dan interpretasi data menghentikan operasi

Peringatan

Dalam kebanyakan kasus, gunakan

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_83 alih-alih
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
0. Jika Anda menggunakan
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_0 tanpa memahami bagaimana perilakunya,
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 dapat menghasilkan hasil yang tidak terduga saat memasukkan data ke tabel tujuan

Keempat opsi penanganan kesalahan dibahas dalam topik berikut

Penanganan Kesalahan Default

Secara default,

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 mengembalikan kesalahan ke aplikasi klien. Kesalahan dikembalikan satu per satu. Jika mengembalikan kesalahan, tidak ada data yang akan dimasukkan ke tabel tujuan

Contoh Penanganan Kesalahan

Buat tabel baru dengan kolom

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_92

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
2

File CSV berikut akan dimuat ke dalam tabel ini sebagai

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
06. Perhatikan bahwa baris 2 memiliki kolom ekstra dan ada duplikat nilai kunci utama
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
53 di baris 4

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
3

Memuat data ke dalam tabel

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
4

Setelah menghapus kolom ekstra dari baris 2

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
5

Setelah menghapus entri kunci primer duplikat, pernyataan

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 berhasil dan file input dimuat ke dalam tabel

LOAD DATA INFILE "[!0-9]*.csv" INTO TABLE cust(ID,NAME,ORDERS);3 Penanganan Kesalahan

SingleStoreDB memungkinkan Anda mengganti baris yang ada dengan baris baru; . Jika terjadi kesalahan yang muncul karena nilai kunci duplikat, terlebih dahulu menghapus baris yang bertentangan di tujuan yang memiliki nilai kunci duplikat dan kemudian menyisipkan baris baru dari file sumber.

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_7 menyisipkan baris file sumber ke tabel tujuan sesuai urutan munculnya baris di file sumber. Ketika
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
3 ditentukan, file sumber yang berisi nilai duplikat unik atau kunci primer akan ditangani dengan cara berikut

  • Jika skema tabel tujuan menentukan kolom kunci unik atau primer, dan

  • File sumber berisi baris dengan nilai kunci utama atau unik yang sama dengan tabel tujuan

  • Baris di tabel tujuan yang memiliki nilai kunci unik atau primer yang sama dengan baris di file sumber akan dihapus dan baris baru dari file sumber yang cocok dengan nilai kunci utama akan disisipkan ke tabel tujuan

Catatan . Jika file sumber berisi beberapa baris dengan nilai kunci utama atau unik yang sama dengan tabel tujuan, maka hanya baris terakhir di file sumber dengan nilai kunci utama atau unik yang sama (sebagai tabel tujuan) yang menggantikan baris yang ada di tujuan .

Catatan .

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
3 tidak dapat digabungkan dengan
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
5. Perilaku default SingleStoreDB Cloud adalah melempar kesalahan untuk kunci duplikat. Namun, baik
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
3 dan
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
5 tidak menimbulkan kesalahan kunci duplikat; .

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
3 Contoh Penanganan Kesalahan

Buat tabel baru dengan kolom

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_92

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
6

Baris dengan kunci utama

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
_08 dimasukkan sebagai berikut

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
7

File CSV berikut dimuat ke dalam tabel sebagai

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
06. Catat nilai kunci primer duplikat dari
LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
08 di baris 2

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
8

Memuat data ke dalam tabel

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
_9

Baris 2 di file sumber berisi duplikat kunci utama

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
08. Penangan kesalahan
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
3 menghapus baris
LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
13 di tabel tujuan dan menggantinya dengan nilai
LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
14 dari file sumber

LOAD DATA INFILE 'foo.csv' INTO TABLE foo COLUMNS TERMINATED BY ','; _83 Penanganan Kesalahan

SingleStoreDB Cloud memungkinkan Anda menentukan skenario kesalahan yang, saat ditemui, membuang baris yang mengganggu. Tiga jenis skenario kesalahan dapat dilewati.

  • LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    5. Setiap baris dalam data sumber yang berisi duplikat kunci unik atau primer akan dibuang. Jika baris berisi data yang tidak valid selain kunci duplikat, kesalahan akan dihasilkan. Lihat SKIP DUPLICATE KEY ERROR di bawah ini

  • LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    _4. Termasuk
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    5. Jika sebuah baris melanggar batasan kolom
    LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
    20, atau baris berisi nilai JSON atau Geospasial yang tidak valid, baris tersebut akan dibuang. Jika baris berisi data yang tidak valid di luar cakupan batasan atau kesalahan nilai yang tidak valid, kesalahan akan dihasilkan. Lihat SKIP CONSTRAINT ERRORS di bawah ini

  • LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    _2. Termasuk
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    5 dan
    LOAD DATA INFILE "[!0-9]*.csv"
    INTO TABLE cust(ID,NAME,ORDERS);
    4. Juga sertakan kesalahan penguraian di baris yang disebabkan oleh masalah seperti jumlah bidang yang tidak valid. Lihat LEWATKAN SEMUA KESALAHAN di bawah ini

LEWATI KESALAHAN KUNCI GANDA

Ketika

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
5 ditentukan, file sumber yang berisi nilai duplikat unik atau kunci primer akan ditangani dengan cara berikut

  • Jika skema tabel tujuan menentukan kolom kunci unik atau primer, dan

  • File sumber berisi satu atau lebih baris dengan nilai kunci duplikat yang sudah ada di tabel tujuan atau ada di tempat lain di file sumber, lalu

  • Setiap baris duplikat di file sumber akan dibuang dan tidak akan dimasukkan ke dalam tabel tujuan

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
5 tidak dapat digabungkan dengan
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
3

SKIP DUPLICATE KEY ERRORS Contoh

Buat tabel baru dengan kolom

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_92

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
2

File CSV berikut akan dimuat ke dalam tabel ini sebagai

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
06. Catat nilai kunci utama duplikat dari
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
53 di baris 3

LOAD DATA INFILE 'foo.oddformat'
  INTO TABLE foo
  COLUMNS TERMINATED BY '|||';
1

Memuat data ke dalam tabel

LOAD DATA INFILE 'foo.oddformat'
  INTO TABLE foo
  COLUMNS TERMINATED BY '|||';
2

Perhatikan bahwa hanya 3 baris yang dimasukkan meskipun 4 baris ada di file sumber. Baris 3 di file sumber berisi kunci primer duplikat, dan Anda dapat memverifikasi bahwa itu tidak dimasukkan dengan menanyakan tabel

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
30

LOAD DATA INFILE 'foo.oddformat'
  INTO TABLE foo
  COLUMNS TERMINATED BY '|||';
3

SKIP CONSTRAINT ERROR

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
4 termasuk
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
5 jika
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
3 tidak ditentukan. Ini juga berlaku untuk baris yang melanggar batasan kolom
LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
20 dan kolom yang berisi nilai JSON atau Geospasial yang tidak valid, dan menangani baris yang melanggar dengan cara berikut

Batasan BUKAN NULL

  • Jika kolom di tabel tujuan menentukan batasan

    LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
    20, dan

  • File sumber berisi satu atau lebih baris dengan nilai nol untuk kolom kendala, lalu

  • Baris yang menyinggung akan dibuang dan tidak akan dimasukkan ke tabel tujuan

Data JSON atau Geospasial tidak valid

  • Jika kolom di tabel tujuan menentukan tipe data

    LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
    36, ________65______37, atau
    LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
    38, dan

  • File sumber berisi satu atau beberapa baris dengan nilai yang tidak valid untuk bidang jenis ini

  • Baris yang menyinggung akan dibuang dan tidak akan dimasukkan ke tabel tujuan

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
4 juga dapat digabungkan dengan klausa
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
3

SKIP CONSTRAINT ERROR Contoh

Buat tabel baru dengan tipe kolom

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
36 yang juga memiliki batasan
LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
20

LOAD DATA INFILE 'foo.oddformat'
  INTO TABLE foo
  COLUMNS TERMINATED BY '|||';
4

File CSV berikut akan dimuat ke dalam tabel ini sebagai

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
06. Perhatikan format JSON yang salah di baris 2, serta nilai null (
LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
44) untuk JSON di baris 4

LOAD DATA INFILE 'foo.oddformat'
  INTO TABLE foo
  COLUMNS TERMINATED BY '|||';
5

Memuat data ke dalam tabel

LOAD DATA INFILE 'foo.oddformat'
  INTO TABLE foo
  COLUMNS TERMINATED BY '|||';
6

Perhatikan bahwa hanya 2 baris yang dimasukkan meskipun 4 baris ada di file sumber. Baris 2 berisi JSON yang salah format, dan Baris 4 berisi nilai null yang tidak valid. Anda dapat memverifikasi bahwa kedua baris yang melanggar ini tidak disisipkan dengan menanyakan tabel

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
30

LOAD DATA INFILE 'foo.oddformat'
  INTO TABLE foo
  COLUMNS TERMINATED BY '|||';
7

LEWATKAN SEMUA KESALAHAN

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
2 termasuk
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
5 dan
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
4 selain kesalahan penguraian. Baris yang menyinggung ditangani dengan cara berikut

  • Jika satu atau lebih baris dalam file sumber menyebabkan kesalahan

    LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
    49 atau
    LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
    50, atau

  • Jika satu atau lebih baris dalam file sumber menyebabkan kesalahan penguraian seperti pembatas yang tidak valid atau jumlah bidang yang tidak valid,

  • Baris yang menyinggung akan dibuang dan tidak akan dimasukkan ke tabel tujuan

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
2 juga dapat digabungkan dengan
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
3

LEWATKAN SEMUA KESALAHAN Contoh

Buat tabel baru dengan tipe kolom

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
36 yang juga memiliki batasan
LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
20

LOAD DATA INFILE 'foo.oddformat'
  INTO TABLE foo
  COLUMNS TERMINATED BY '|||';
4

File CSV berikut akan dimuat ke dalam tabel ini sebagai

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
06. Ada tiga hal yang salah dengan file ini

  • Baris 2 hanya berisi 3 bidang

  • Baris 3 memiliki kunci primer duplikat

  • Baris 4 memiliki nilai nol untuk batasan ________65______20

LOAD DATA INFILE 'foo.oddformat'
  INTO TABLE foo
  COLUMNS TERMINATED BY '|||';
_9

Memuat data ke dalam tabel

LOAD DATA INFILE "[0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
0

Hanya 1 baris yang ditulis, meskipun file sumber berisi 4 baris. Baris 2 dihapus karena berisi sejumlah bidang yang tidak valid, Baris 3 dihapus karena berisi kunci primer duplikat, dan baris 4 dihapus karena berisi nilai null untuk batasan

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
20. Anda dapat memverifikasi bahwa baris yang menyinggung ini tidak disisipkan dengan menanyakan tabel ________65______30

LOAD DATA INFILE "[0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
1

LOAD DATA INFILE "[!0-9]*.csv" INTO TABLE cust(ID,NAME,ORDERS);0 Penanganan Kesalahan

SingleStoreDB Cloud Perilaku

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
0 identik dengan perilaku
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
0 MySQL, dan hanya ada untuk mendukung kompatibilitas mundur dengan aplikasi yang ditulis untuk MySQL.
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
0 membuang baris yang salah bentuk, membuang bidang ekstra, atau mengganti nilai yang tidak valid dengan nilai tipe data default. Selain itu, jika baris yang disisipkan menghasilkan kesalahan jika
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
0 tidak ditentukan, baris tersebut akan diubah menjadi peringatan.

Konsekuensi Menggunakan IGNORE Daripada SKIP ERRORS

Tidak seperti

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_83 yang membuang baris yang menyinggung,
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
0 dapat mengubah data baris yang disisipkan untuk memastikan bahwa itu mematuhi skema tabel. Perilaku ini dapat berdampak serius pada integritas data tabel tujuan

Dalam skenario kasus terbaik di mana baris yang cacat menggunakan pembatas yang tepat dan berisi jumlah bidang yang benar, baris tersebut dapat diselamatkan sebagian. Setiap nilai yang tidak valid diperbarui dengan nilai default, dan baris yang dimodifikasi ditulis ke tabel tujuan. Hasilnya adalah setidaknya beberapa data sumber ditulis ke tabel tujuan

Namun, skenario terburuk bisa parah. Misalnya, jika nilai baris dipisahkan oleh pembatas yang tidak valid, setiap bidang diperbarui dengan nilai default yang tidak berarti dan baris yang dimodifikasi ditulis ke tabel tujuan. Demi integritas data tabel, akan lebih baik jika baris yang menyinggung itu dibuang. Tapi baris dengan data yang tidak berarti dimasukkan sebagai gantinya

Karena potensi konsekuensi penggunaan

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
0, dalam banyak kasus
LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
83 adalah pilihan yang lebih baik. Untuk memahami perilaku
LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_0 untuk setiap skenario kesalahan, lanjutkan membaca bagian di bawah ini

  • Gandakan nilai kunci unik atau primer

  • Nilai dengan jenis yang tidak valid menurut skema tabel tujuan

  • Baris yang berisi jumlah bidang yang tidak valid

Gandakan Nilai Kunci Unik atau Utama

Ketika

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
0 ditentukan, file sumber yang berisi nilai duplikat unik atau kunci utama akan ditangani dengan cara berikut

  • Jika skema tabel tujuan menentukan kolom kunci unik atau primer, dan

  • File sumber berisi satu atau lebih baris dengan nilai kunci duplikat yang sudah ada di tabel tujuan atau ada di tempat lain di file sumber, lalu

  • Setiap baris duplikat di file sumber akan dibuang (diabaikan) dan tidak akan dimasukkan ke dalam tabel tujuan

Contoh Nilai Kunci Utama atau Unik Gandakan

Buat tabel baru dengan kolom

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_92

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
6

File CSV berikut akan dimuat ke dalam tabel ini sebagai

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
06. Catat nilai kunci utama duplikat dari
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (bar, @, @, baz);
53 di baris 3

LOAD DATA INFILE 'foo.oddformat'
  INTO TABLE foo
  COLUMNS TERMINATED BY '|||';
1

Memuat data ke dalam tabel

LOAD DATA INFILE "[0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
4

Perhatikan bahwa hanya 3 baris yang dimasukkan meskipun 4 baris ada di file sumber. Baris 3 di file sumber berisi kunci primer duplikat. Anda dapat memverifikasi bahwa baris yang menyinggung ini tidak disisipkan dengan menanyakan tabel ________65______30

LOAD DATA INFILE 'foo.oddformat'
  INTO TABLE foo
  COLUMNS TERMINATED BY '|||';
3

Baris 3 di file sumber berisi kunci primer duplikat dan dibuang karena baris 2 disisipkan terlebih dahulu

Nilai dengan Jenis yang Tidak Valid Menurut Skema Tabel Tujuan

Ketika

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
0 ditentukan, file sumber yang berisi baris dengan tipe tidak valid yang melanggar skema tabel tujuan akan ditangani dengan cara berikut

  • Jika file sumber berisi satu atau lebih baris dengan nilai yang tidak sesuai dengan skema tabel tujuan,

  • Setiap nilai dari tipe yang tidak valid dalam satu baris akan diganti dengan nilai default dari tipe yang sesuai, dan

  • Baris yang dimodifikasi akan dimasukkan ke tabel tujuan

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
0 berperilaku dengan cara yang berpotensi tidak terduga untuk kolom yang memiliki nilai
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
34 yang ditentukan. Ketika nilai yang tidak valid di baris yang disisipkan diganti dengan nilai default dari jenis kolom, nilai
LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
34 kolom diabaikan. Sebagai gantinya, nilai default untuk tipe data kolom digunakan

Contoh

Buat tabel baru dengan kolom

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_92

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
6

File CSV berikut akan dimuat ke dalam tabel ini sebagai

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
06. Baris 4 berisi nilai
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
47 untuk
LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
81, sedangkan skema tabel tidak mengizinkan
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
STARTING BY ''
47 nilai untuk bidang ini

LOAD DATA INFILE "[0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7

Memuat data ke dalam tabel

LOAD DATA INFILE "[0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
4

Perhatikan bahwa 4 baris dimasukkan meskipun faktanya baris 4 di file sumber berisi nilai nol untuk kolom

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
20. Anda dapat memverifikasi kesalahan dengan baris keempat dengan mengkueri tabel ________65______30

LOAD DATA INFILE "[0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_9

Untuk melihat apa yang dimasukkan dengan mengganti nilai

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
85 yang tidak valid dengan nilai default, kueri tabel

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_0

Dalam contoh ini, nilai null ________65______85 yang tidak valid diganti dengan nilai defaultnya.

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
_87

Baris yang Berisi Jumlah Bidang yang Tidak Valid

Ketika

LOAD DATA INFILE "[!0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
0 ditentukan, file sumber yang berisi baris dengan jumlah bidang yang tidak valid akan ditangani dengan salah satu dari dua cara

Bidang Terlalu Sedikit

  • Jika file sumber berisi satu atau lebih baris dengan terlalu sedikit bidang menurut skema tabel tujuan,

  • Kolom kosong setiap baris akan diperbarui dengan nilai default, dan

  • Baris tersebut akan dimasukkan ke dalam tabel tujuan

Terlalu Banyak Bidang

  • Jika file sumber berisi satu atau lebih baris dengan terlalu banyak kolom menurut skema tabel tujuan,

  • Setiap bidang ekstra di baris akan dibuang (diabaikan), dan

  • Baris tersebut akan dimasukkan ke dalam tabel tujuan

Contoh

Buat tabel baru dengan kolom

LOAD DATA INFILE 'foo.csv'
  INTO TABLE foo
  COLUMNS TERMINATED BY ',';
_92

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
6

File CSV berikut akan dimuat ke dalam tabel ini sebagai

LOAD DATA INFILE 'foo.tsv'
  INTO TABLE foo (fourth, third, second, first);
06. Ada dua hal yang salah dengan file ini

  • Baris 2 hanya berisi 3 kolom, bukan 4 dan tidak memiliki

    LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
    91

  • Baris 4 berisi bidang tambahan, dengan total 5

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_2

Memuat data ke dalam tabel

LOAD DATA INFILE "[0-9]*.csv"
INTO TABLE cust(ID,NAME,ORDERS);
4

Perhatikan bahwa 4 baris dimasukkan meskipun jumlah bidang tidak valid untuk dua baris. Anda dapat memverifikasi kesalahan dengan baris keempat dengan mengkueri tabel ________65______30

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_4

Perhatikan bahwa ada peringatan untuk nilai yang hilang di baris 2 dan nilai tambahan di baris 4. Untuk melihat bagaimana data disisipkan, kueri tabel

LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
_5

Baris 2 tidak memiliki nilai

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
_85, jadi nilai default untuk jenisnya dimasukkan sebagai gantinya. Nilai ekstra baris 4 dibuang, dan jika tidak, baris disisipkan dengan data yang diharapkan

Pertimbangan Kinerja

Kunci Pecahan

Memuat data ke dalam tabel dengan kunci beling memerlukan membaca kolom yang diperlukan pada agregator untuk menghitung kunci beling sebelum mengirimkan data ke daun. Untuk CSV LOAD DATA hanya , disarankan agar kolom yang disertakan dalam kunci beling muncul lebih awal di baris input, jika desain kunci beling atau format input . Urutan tidak berpengaruh signifikan terhadap performa Avro atau JSON LOAD DATA.

Pecahan Tanpa Kunci

Memuat data ke dalam tabel sharded tanpa kunci (tidak ada kunci shard yang dinyatakan, atau

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
94 ditentukan) akan menghasilkan kumpulan data yang dimuat ke dalam partisi yang berbeda, dengan cara round-robin. Lihat Shard Keys untuk informasi lebih lanjut

Ambil status pemuatan

Tabel

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
_95 melaporkan informasi tentang baris dan byte yang dibaca oleh kueri
LOAD DATA INFILE "????.csv"
INTO TABLE cust(ID,NAME,ORDERS);
7 yang sedang berlangsung

Itu juga melaporkan aktivitas dan nama database, yang bisa Anda gunakan untuk menemukan baris yang sesuai di tabel profil beban kerja. Lihat Referensi Tampilan Manajemen untuk detail lebih lanjut

Penting

Kumpulan hasil hanya akan dikembalikan jika

LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
97 dikueri pada agregator yang sama dengan kueri
LOAD DATA INFILE 'foo.csv'  INTO TABLE foo  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
98 yang sedang berlangsung

Bagaimana cara mengimpor banyak file CSV di MySQL?

Catatan. Jika Anda perlu mengekspor tabel terlebih dahulu, lihat artikel kami di Cara Mengekspor Tabel dari MySQL ke CSV. .
Langkah 1. Akses MySQL Shell. .
Langkah 2. Buat Tabel MySQL untuk Impor CSV. .
Langkah 3. Impor CSV ke Tabel MySQL

Bagaimana cara mengimpor data massal di MySQL?

Sintaks untuk memasukkan data massal di MySQL .
Ketikkan klausa INSERT INTO dan nama tabel tempat Anda ingin memasukkan data
Gunakan klausa NILAI lalu di dalam tanda kurung tulis data baris pertama, tutup tanda kurung, dan setelah tanda koma

Bagaimana cara memuat data infile lokal di MySQL?

Metode 2. Menggunakan Command-Line dan MySQL Workbench untuk Memuat Data dari File ke Tabel di MySQL .
Langkah 1. Buat tabel
Langkah 2. Mengimpor Data ke Tabel Anda
Langkah 3. Mengubah Data saat Mengimpor
Langkah 4. Mengimpor File dari Klien ke Server Database MySQL jarak jauh
Langkah 5. Mengimpor File CSV menggunakan MySQL Workbench

Apa perbedaan antara memuat data infile lokal dan memuat data infile?

LOAD DATA INFILE mendapatkan file dari sistem file lokal server database . File harus berada di direktori database atau memiliki izin baca dunia, dan nama pengguna klien harus memiliki hak istimewa FILE. LOAD DATA LOCAL INFILE membaca file di klien, dan mengirimkan isinya ke server.