Tous les produits
Search
Centre de documentation

AnalyticDB:Use LOAD DATA to import data to Data Warehouse Edition

Dernière mise à jour :Aug 10, 2026

LOAD DATA LOCAL INFILE charge directement les fichiers locaux dans une table AnalyticDB for MySQL Data Warehouse Edition via une connexion client MySQL. Tous les fichiers texte sont pris en charge. Les fichiers CSV le sont sur les clusters exécutant la version V3.1.10.2 ou ultérieure, ainsi que la version V3.2.0 ou ultérieure.

Prérequis

Avant de commencer, vérifiez que vous disposez des éléments suivants :

  • Un cluster AnalyticDB for MySQL Data Warehouse Edition

  • Un client MySQL avec l'option local-infile activée (voir Activer local-infile)

  • Une table cible dans le cluster

Syntaxe

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] ...)]

Paramètres

Emplacement du fichier

Paramètre Description
file_name Chemin d'accès au fichier local. Un chemin absolu ou relatif est accepté. Les chemins relatifs sont résolus par rapport au répertoire de travail du client.

Résolution des conflits

Paramètre Description
REPLACE Écrase les lignes existantes lorsqu'une clé primaire en double est détectée. En cas d'échec d'importation d'une ligne, l'opération s'arrête immédiatement et les lignes suivantes ne sont pas importées.
IGNORE Ignore les lignes présentant des clés primaires en double ou des erreurs de données et poursuit l'importation des lignes restantes.
Remarque

L'importation des données ne garantit pas l'atomicité. En mode IGNORE, les lignes ayant échoué sont ignorées sans notification. En mode REPLACE, l'importation s'interrompt dès le premier échec ; certaines lignes risquent donc de ne pas être importées. Exécutez SHOW WARNINGS après l'importation pour consulter les erreurs relatives aux lignes ayant échoué.

Format de fichier

Paramètre Valeur par défaut Description
TERMINATED BY 'string' (FIELDS) \t Délimiteur de colonne. Identique à la valeur par défaut de MySQL.
ENCLOSED BY 'char' (FIELDS) — Caractère entourant chaque valeur de colonne. Par exemple, ENCLOSED BY '"' supprime les guillemets doubles des valeurs avant l'importation.
TERMINATED BY 'string' (LINES) \n Délimiteur de ligne.

Filtrage des lignes et mappage des colonnes

Paramètre Description
IGNORE number LINES Ignore les n premières lignes. Utilisez cette option pour ignorer les lignes d'en-tête.
(column_name_or_user_var, ...) Mappe les colonnes du fichier aux colonnes de la table par nom. À défaut de spécification, le mappage suit l'ordre des colonnes. Si le fichier contient plus de colonnes que la table, les colonnes supplémentaires sont ignorées. S'il en contient moins, les colonnes de la table non correspondantes reçoivent leurs valeurs par défaut.

Activer local-infile

Avant d'exécuter LOAD DATA LOCAL INFILE, activez l'option local-infile sur votre client MySQL. Ajoutez les lignes suivantes au fichier ~/.my.cnf :

[mysqld]
local-infile

[mysql]
local-infile

Pour plus d'informations sur les fichiers d'options MySQL, consultez la documentation MySQL.

Prise en charge des fichiers CSV

Sur les clusters exécutant la version V3.1.10.2 ou ultérieure, ainsi que la version V3.2.0 ou ultérieure, les fichiers CSV sont pris en charge et suivent la norme OpenCSV par défaut. Vous pouvez configurer des délimiteurs de colonnes personnalisés, mais il est impossible de personnaliser les délimiteurs de lignes et les terminateurs de colonnes pour les fichiers CSV.

Pour désactiver l'analyse OpenCSV pour les fichiers CSV, exécutez :

SET adb_config LOAD_CSV_DATA_WITH_OPENCSV_FORMAT=false;

Importer des données

L'exemple suivant importe les données d'un fichier local nommé out.bak dans une table nommée test de la base de données adb_demo. Le fichier contient 5 000 lignes. Le délimiteur de colonne est \t et le délimiteur de ligne est \n. La ligne 8 contient des données non valides.

Étape 1 : Connectez-vous au cluster et créez la table cible.

Connectez-vous à votre cluster AnalyticDB for MySQL, puis exécutez CREATE DATABASE et CREATE TABLE pour configurer la destination :

CREATE TABLE test (
    a int NOT NULL DEFAULT '0',
    b varchar NOT NULL,
    PRIMARY KEY (a)
) DISTRIBUTED BY HASH(a);

Étape 2 : Exécutez LOAD DATA LOCAL INFILE.

Choisissez un mode de résolution des conflits selon la gestion souhaitée des lignes incorrectes :

  • Mode IGNORE : ignore les lignes invalides et continue. Privilégiez ce mode lorsque des importations partielles sont acceptables.

    LOAD DATA LOCAL INFILE '~/out.bak'
        IGNORE INTO TABLE test
        FIELDS TERMINATED BY '\t'
        LINES TERMINATED BY '\n';
  • Mode REPLACE : s'arrête à la première ligne invalide. Privilégiez ce mode pour détecter immédiatement les problèmes de données.

    LOAD DATA LOCAL INFILE '~/out.bak'
        REPLACE INTO TABLE test
        FIELDS TERMINATED BY '\t'
        LINES TERMINATED BY '\n';
  • Ignorer les lignes d'en-tête : utilisez IGNORE n LINES pour ignorer les n premières lignes (par exemple, une ligne d'en-tête).

    LOAD DATA LOCAL INFILE '~/out.bak'
        REPLACE INTO TABLE test
        FIELDS TERMINATED BY '\t'
        LINES TERMINATED BY '\n'
        IGNORE 10 LINES;

Étape 3 : Vérifiez le résultat.

Après l'importation, vérifiez le nombre de lignes :

SELECT COUNT(1) FROM test;

Mode IGNORE : la ligne 8 (non valide) est ignorée ; 4 999 lignes sont importées :

+----------+
| count(1) |
+----------+
|     4999 |
+----------+
1 row in set (0.14 sec)

Mode REPLACE : l'importation s'arrête à la ligne 8 (la première ligne non valide) et renvoie une erreur :

ERROR 1064 (42000): [13000, 2019061210070703000511314203303000266] syntax error :syntax error => IDENTIFIER is not value type pos:34 row: 0 and ceil:0

Ignorer 10 lignes : les 10 premières lignes sont ignorées ; 4 990 lignes sont importées :

Query OK, 4990 rows affected (0.37 sec)

Étape 4 : Consultez les erreurs pour les lignes ayant échoué.

Exécutez SHOW WARNINGS pour afficher les détails des erreurs pour toutes les lignes dont l'importation a échoué :

SHOW WARNINGS;

Étapes suivantes