Cette rubrique décrit les problèmes courants et leurs solutions lors de l'importation et de l'exportation de données dans AnalyticDB for MySQL.
Sauf indication contraire concernant une ligne de produit spécifique, le problème s'applique uniquement à AnalyticDB for MySQL (édition Data Warehouse et édition Enterprise).
FAQ
Annuler une tâche d'importation ou d'exportation asynchrone
Connectez-vous à la console AnalyticDB for MySQL. Sur la page Diagnostics and Optimization, cliquez sur l'onglet Import/Export Jobs. Localisez la tâche cible et copiez son Asynchronous Job Name. Ensuite, exécutez la commande CANCEL JOB "${asynchronous job name}" pour annuler la tâche. Pour plus d'informations, consultez la section soumettre des tâches d'importation asynchrones.
Afficher les tâches d'importation en cours d'exécution
Exécutez la requête suivante :
SELECT * FROM INFORMATION_SCHEMA.kepler_meta_async_jobs where status = "RUNNING"
Faibles performances de l'importation de données JDBC
Vérifiez que la source de données génère des données à un débit suffisant. Si les données sont lues depuis d'autres systèmes ou fichiers, recherchez les goulots d'étranglement de sortie sur le client.
Assurez-vous que le traitement des données est efficace et suit le rythme de génération des données. Cela permet de maintenir une file d'attente suffisante de données prêtes à être importées dans AnalyticDB for MySQL.
Vérifiez que la machine cliente dispose de ressources système suffisantes. Examinez les métriques telles que l'utilisation du CPU et les E/S disque pour identifier les goulots d'étranglement potentiels.
Frais de liaison pour l'ingestion de données (APS)
Non. La fonctionnalité d'ingestion de données (APS) elle-même est gratuite. Cependant, les tâches APS s'exécutent sur un groupe de ressources de votre cluster et consomment des ressources facturables.
Adresse interne ou publique pour les tables externes OSS
Utilisez une adresse interne lors de la création d'une table externe OSS. Les nœuds backend dans AnalyticDB for MySQL accèdent à OSS via le réseau interne, et non via le réseau public.
Erreur 'Endpoint unreachable' pour les tables externes MaxCompute
Cause : L'erreur « endpoint unreachable » se produit lorsque l'endpoint spécifié pour une table externe MaxCompute est inaccessible.
Solution : Activez le réseau ENI, remplacez l'endpoint dans l'instruction CREATE TABLE par l'endpoint VPC de la région de l'instance, puis réexécutez l'instruction.
L'activation ou la désactivation du réseau ENI interrompt la connectivité de la base de données pendant environ deux minutes, période durant laquelle les opérations de lecture et d'écriture sont indisponibles. Évaluez soigneusement l'impact potentiel avant d'activer ou de désactiver le réseau ENI.
Connectez-vous à la console AnalyticDB for MySQL . Accédez à . Dans la section Network Information , activez l'interrupteur du réseau ENI.
Erreur 'Odps external table endpoint should not contain special character'
Cause : L'endpoint est configuré incorrectement.
Solution : Remplacez l'endpoint dans l'instruction CREATE TABLE par l'endpoint VPC de la région de l'instance, puis réexécutez l'instruction.
Erreur « Project not found - 'xxx' »
-
Cause : Le projet spécifié n'existe pas dans MaxCompute, ou le nom du projet contient une faute de frappe.
Solution : Corrigez le nom du projet dans votre instruction de création de table et essayez de créer à nouveau la table externe.
-
Cause : Le projet existe dans MaxCompute mais ne se trouve pas dans la même région que votre cluster AnalyticDB for MySQL.
Solution : Assurez-vous que votre cluster AnalyticDB for MySQL et le projet MaxCompute se trouvent dans la même région, puis essayez de créer à nouveau la table externe.
Erreur lors de l'importation de données MaxCompute : « Rollback this write and commit one row at a time »
Cause : Cette erreur se produit lors de l'importation de données avec DataX en raison d'une limitation de la couche de connexion AnalyticDB for MySQL.
Solution : Ajoutez le paramètre rewriteBatchedStatements=false à votre chaîne de connexion JDBC et relancez l'importation.
Erreur « Query Exceeded Maximum Time Limit »
Cause : Cette erreur survient car l'importation de données depuis une grande table MaxCompute dépasse le délai d'expiration d'une opération INSERT dans AnalyticDB for MySQL.
Solution : Modifiez le paramètre INSERT_SELECT_TIMEOUT et relancez l'importation. Pour plus de détails, consultez la section paramètres config et hint.
Erreur : « can't submit job: job queue is full »
Cause : Le nombre de tâches asynchrones simultanées sur votre cluster AnalyticDB for MySQL a dépassé la limite. Vous pouvez soumettre un ticket pour vérifier la limite de simultanéité de votre cluster.
Solution :
Attendez que les tâches asynchrones soumises soient terminées, puis resoumettez la tâche d'importation asynchrone. Pour vérifier l'état d'une tâche asynchrone, consultez la section soumettre des tâches d'importation asynchrones.
Vous pouvez soumettre un ticket pour demander une limite de simultanéité plus élevée pour votre cluster.
« Query execution error: odps partition num: 192 > 191, specific odps partitions » lors de l'importation de données depuis MaxCompute
Cause : Le nombre de partitions dans une seule opération d'importation dépasse la limite d'un cluster AnalyticDB for MySQL.
Solution : En fonction du nombre spécifique de partitions dans la table MaxCompute, ajoutez un Hint avant l'instruction SQL /*RC_INSERT_ODPS_MAX_PARTITION_NUM=<value>*/ pour ajuster la limite du nombre de partitions.
La fonction max_pt() nécessite une table partitionnée
Cause : Cette erreur se produit lorsque vous appliquez la fonction MAX_PT() à une table externe MaxCompute non partitionnée.
Solution : Assurez-vous que la table MaxCompute est une table partitionnée et possède au moins une partition . Ensuite, recréez la table externe MaxCompute et interrogez-la à l'aide de la fonction MAX_PT().
Erreur ErrorCode=NoSuchPartition lors de l'interrogation des données MaxCompute
Cause : La table externe MaxCompute ne comporte aucune partition.
Solution : Assurez-vous que la table MaxCompute contient au moins une partition Opérations sur les partitions. Ensuite, recréez la table externe et interrogez les données.
Erreur Code 500 lors de l'interrogation des données MaxCompute
Cause : AnalyticDB for MySQL utilise le moteur natif pour exécuter les instructions SQL, mais ce dernier ne prend pas en charge les tables externes MaxCompute.
Solution : Ajoutez l'indicateur /*native_engine_task_enabled=false*/ au début de l'instruction SQL afin de désactiver le moteur natif et d'exécuter la requête via le moteur Java.
Erreur d'exécution de requête lors de l'interrogation des données MaxCompute
-
Cause 1 : La clé AccessKey ne peut pas lire la table MaxCompute en raison de paramètres d'autorisation incorrects dans MaxCompute.
Solution : Mettez à jour les autorisations de lecture et d'écriture dans MaxCompute, puis relancez la requête.
-
Cause 2 : Le schéma ou les noms de colonnes de la table AnalyticDB for MySQL ne correspondent pas à ceux de la table MaxCompute.
Solution : Dans AnalyticDB for MySQL, recréez la table externe pour qu'elle corresponde au schéma et aux noms de colonnes de la table MaxCompute. Relancez ensuite la requête.
-
Cause 3 : La partition MaxCompute spécifiée n'existe pas.
Solution : Corrigez la partition MaxCompute indiquée dans votre requête, puis relancez celle-ci.
-
Cause 4 : La table MaxCompute contient un trop grand nombre de petits fichiers.
Solution : Fusionnez les petits fichiers dans MaxCompute, puis relancez la requête. Utilisez l'instruction d'exemple ci-dessous. Pour plus de détails, consultez Fusionner les petits fichiers.
ALTER TABLE tablename [PARTITION] MERGE SMALLFILES;
Importer array<string> depuis MaxCompute vers AnalyticDB for MySQL
Cause : Vous ne pouvez pas importer directement des données de type array<string> vers AnalyticDB for MySQL, car les tables externes MaxCompute ne prennent pas en charge les types imbriqués.
Solution : Exportez les données depuis MaxCompute vers OSS au format Parquet, puis utilisez AnalyticDB for MySQL pour lire les données Parquet depuis OSS.
Optimiser la vitesse d'importation des données depuis MaxCompute
-
Si la charge sur les nœuds de stockage est faible, ajustez la valeur de
SQL_OUTPUT_BATCH_SIZEet réimportez les données à l'aide de l'instruction suivante :set adb_config SQL_OUTPUT_BATCH_SIZE = 6000; -
Si la table MaxCompute comporte trop de partitions, définissez
ENABLE_ODPS_MULTI_PARTITION_PART_MATCHsur false et réimportez les données à l'aide de l'instruction suivante :set adb_config ENABLE_ODPS_MULTI_PARTITION_PART_MATCH=false;
Si le problème persiste, soumettez un ticket au support technique d'Alibaba Cloud.
Échec de l'écrasement des données pour les tables externes MaxCompute
Les tables externes MaxCompute ne prennent pas en charge l'écrasement des données.
Erreur « Slot Quota Exceeded » pour INSERT INTO SELECT MaxCompute
Cause : Les slots requis pour l'opération d'écriture dépassent le quota de slots alloué.
Solution : Appliquez l'une des méthodes suivantes.
Vous pouvez utiliser un groupe de ressources exclusif pour l'intégration de données. Celui-ci offre un quota de slots supérieur à celui d'un groupe de ressources public pour l'intégration de données.
La concurrence par défaut pour une tâche
INSERT INTO SELECTest de 16. Réduisez la concurrence en ajoutant l'indicateur/*TASK_WRITER_COUNT=<value>*/au début de l'instruction SQL. La valeurvaluedoit être un entier supérieur à 0.
Erreur de contrôle de flux lors de l'écriture dans des tables externes MaxCompute
Cause : Lorsque vous écrivez des données dans une table externe MaxCompute, si l'opération crée de nouvelles partitions, MaxCompute appelle l'opération createPartition . Une création trop fréquente de partitions déclenche le mécanisme de limitation de débit (throttling) de MaxCompute, ce qui provoque cette erreur.
Solution : Vérifiez si votre tâche INSERT INTO SELECT écrit des données dans plusieurs partitions simultanément. Si c'est le cas, ajoutez l'indicateur /*TASK_WRITER_COUNT=<value>*/ à votre instruction SQL pour réduire la concurrence. La valeur doit être un entier supérieur à 0. Si cela ne résout pas le problème, soumettez un ticket.
Incohérence du nombre d'enregistrements
Cause : AnalyticDB for MySQL supprime automatiquement les enregistrements comportant des clés primaires en double.
Solution : Vérifiez la présence de clés primaires en double dans vos données source MaxCompute.
Gestion des types de données non pris en charge
Si une base de données source contient des types de données non pris en charge par AnalyticDB for MySQL, tels que les types de données géospatiales, AnalyticDB for MySQL ignore les colonnes correspondantes lors de l'initialisation du schéma.
Pour obtenir la liste des types de données pris en charge, consultez Types de données de base et Types de données complexes.
Modifier les types de données pendant la synchronisation
Lors de la synchronisation des données, vous pouvez modifier les types de données des colonnes d'une table source. Cette fonctionnalité prend uniquement en charge les modifications entre types de données entiers ou entre types de données à virgule flottante. Vous ne pouvez modifier un type de données que vers un autre offrant une plage plus large, par exemple passer de la simple précision à la double précision.
Types de données entiers : Vous pouvez passer d'un type plus petit à un type plus grand parmi
Tinyint,Smallint,IntetBigint. Par exemple, le passage deTinyintàBigintest pris en charge, mais l'inverse ne l'est pas.Types de données à virgule flottante : Vous pouvez passer de
FloatàDouble, mais pas deDoubleàFloat.
Synchronisation de données DTS vers un cluster AnalyticDB for MySQL : Erreurs liées aux modifications de type de données
Erreurs :
-
‘id' is LONG type, Can't change column type to DECIMAL -
modify precision is not supported, col=id, type decimal, old=11, new=21
Cause : Cette erreur survient car DTS ne prend pas en charge cette opération DDL lorsque vous modifiez le type de données d'une table source pendant la synchronisation. Pour plus d'informations, consultez DTS prend-il en charge la modification du type de données d'une table source lors de la synchronisation des données vers un cluster AnalyticDB for MySQL ?
Solution :
Synchronisation d'objets spécifiques : Resynchronisez la table. Pour ce faire, retirez la table des objets de synchronisation, supprimez-la de la base de données cible, puis rajoutez-la. DTS effectue alors une nouvelle synchronisation complète et une migration de schéma, contournant ainsi l'opération DDL non prise en charge.
Synchronisation complète de la base de données : Dans AnalyticDB for MySQL, créez une nouvelle table avec un nom différent mais ayant la même structure que la table source. Utilisez
INSERT INTO SELECTpour copier les données de la table d'origine vers la nouvelle table. Supprimez ensuite la table d'origine qui présente l'erreur, renommez la nouvelle table avec le nom d'origine et redémarrez la tâche DTS.
DTS vers AnalyticDB for MySQL : résoudre les erreurs de valeur de date non valide
Message d'erreur :
Cannot parse "2013-05-00 00:00:00": Value 0 for dayOfMonth must be in the range [1,31]]
Cause : AnalyticDB for MySQL ne prend pas en charge l'écriture de valeurs de date non valides.
Solution :
Si la tâche de synchronisation est en phase d'initialisation complète, corrigez la valeur dans la table source. Par exemple, remplacez '2013-05-00 00:00:00' par '2013-05-01 00:00:00'.
Si la tâche de synchronisation est en phase de synchronisation incrémentielle, retirez la table de l'objet de synchronisation, corrigez la valeur non valide dans la table source, rajoutez la table à l'objet de synchronisation et redémarrez la tâche de synchronisation.
Si la tâche de synchronisation est en phase de synchronisation incrémentielle d'une synchronisation complète de base de données, contactez le support technique d'Alibaba Cloud pour activer une option permettant d'écrire les valeurs de date non valides sous forme de null.
DTS vers AnalyticDB for MySQL : Erreur de synchronisation des tables sans clé primaire
Message d'erreur :
DTS-077004: Record Replicator error. cause by [[17003,2020051513063717201600100703453067067] table not exist => xxx_table]
Cause : AnalyticDB for MySQL ne prend pas en charge la synchronisation des tables dépourvues de clés primaires.
Solution : Pour résoudre cette erreur, créez manuellement la table avec une clé primaire dans la base de données cible, puis redémarrez la tâche DTS.
Synchronisation DTS : erreur « Default value is too long »
Message d'erreur :
default value is too long
Solution : Soumettez un ticket pour demander au support technique d'Alibaba Cloud de mettre à niveau votre cluster AnalyticDB for MySQL vers la dernière version.
Synchronisation DTS vers AnalyticDB for MySQL : Résoudre l'erreur de taille d'enregistrement (>16 Mo)
Erreur :
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (120468711 > 33554432). You can change this value on the server by setting the max_allowed_packet' variable.
Solution : Soumettez un ticket pour demander au support technique d'Alibaba Cloud de mettre à niveau votre cluster AnalyticDB for MySQL vers la dernière version.
DTS vers AnalyticDB for MySQL : Erreur d'espace disque insuffisant
Message d'erreur :
disk is over flow
Solution : Supprimez les données inutiles pour libérer de l'espace disque ou contactez le support technique d'Alibaba Cloud pour augmenter la capacité du cluster AnalyticDB for MySQL. Une fois que l'espace disque disponible est suffisant, redémarrez la tâche DTS.
Résoudre les erreurs DTS : Tables ou colonnes manquantes
Message d'erreur :
table not exist => t1
Solution : Dans la configuration DTS, assurez-vous que l'option de synchronisation de toutes les instructions DDL est sélectionnée.
Valeurs manquantes lors de la fusion de plusieurs tables
Erreur :
No value present
Cause : Lors d'une fusion de plusieurs tables, cette erreur se produit si une modification de schéma est apportée à une table source, comme l'ajout d'un nouveau champ. Ce changement crée une incompatibilité de schéma entre les tables sources, empêchant DTS d'écrire les données dans la table cible.
Solution : Veuillez soumettre un ticket au support technique DTS.
Traits d'union dans les noms de bases de données, de tables ou de colonnes
AnalyticDB for MySQL n'autorise pas les traits d'union (-) dans les noms de bases de données, de tables ou de colonnes. Pour garantir le succès de la synchronisation des données, DTS remplace automatiquement les traits d'union (-) par des underscores (_).
Si la synchronisation des données échoue en raison d'autres problèmes liés aux noms de bases de données, de tables ou de colonnes, tels que la présence d'espaces ou de caractères chinois, contactez le support technique d'Alibaba Cloud.
Pour plus d'informations sur les limites d'utilisation de AnalyticDB for MySQL, consultez les limites d'utilisation.
Dépanner la latence des données lors de la synchronisation DTS
Le lien de synchronisation DTS utilise par défaut la spécification
medium. Si la base de données source subit une charge d'écriture élevée, vous devrez peut-être mettre à niveau la configuration de l'instance pour obtenir des performances maximales.Pour une table sans clé primaire, la colonne sélectionnée pour servir de clé peut provoquer des mises à jour de « lignes chaudes » (hot row), qui sont très lentes. Pour résoudre ce problème, soumettez un ticket à AnalyticDB for MySQL.
Lorsque les performances d'écriture d'un cluster AnalyticDB for MySQL atteignent un goulot d'étranglement, vous devez mettre à niveau les spécifications de AnalyticDB for MySQL.
Faible TPS d'écriture lors de l'importation de données DataWorks
Une charge client insuffisante peut entraîner une faible utilisation du processeur, une faible utilisation des E/S disque et un temps de réponse d'écriture réduit sur le cluster. Bien que le serveur de base de données puisse consommer rapidement les données entrantes, le faible volume de données se traduit par un TPS d'écriture inférieur aux attentes. Pour améliorer les performances, augmentez la taille du lot et le Maximum Concurrency pour la tâche d'importation. Les performances d'importation des données évoluent généralement de manière linéaire avec la charge côté client.
Biais de données dans AnalyticDB for MySQL lors de l'importation depuis DataWorks
Lorsqu'un biais de données se produit dans une table cible, certains nœuds du cluster deviennent surchargés, ce qui dégrade les performances d'importation. Dans cette situation, l'utilisation du processeur et des E/S disque du cluster est faible, mais le temps de réponse en écriture est élevé. Vous pouvez identifier la table présentant un biais sur la page Diagnostics and Optimization > Data Modeling Diagnostics . Pour résoudre ce problème, reconcevez la structure de la table, puis réimportez les données. Pour plus d'informations, consultez Conception de la structure de table.
Identifier les goulots d'étranglement clients pour adb-import.sh
Un goulot d'étranglement côté client vous empêche de maximiser la charge de la base de données. Utilisez les méthodes suivantes pour identifier les goulots d'étranglement sur le client ou son serveur hôte :
Connectez-vous à la console AnalyticDB for MySQL . Dans le volet de navigation de gauche, cliquez sur Monitoring Information et Diagnostics and Optimization pour examiner les métriques de performance et détecter d'éventuels goulots d'étranglement.
Exécutez les commandes suivantes sur le client ou son serveur hôte pour identifier les goulots d'étranglement.
|
Commande |
Description |
|
top |
Afficher l'utilisation du processeur. |
|
free |
Afficher l'utilisation de la mémoire. |
|
vmstat 1 1000 |
Afficher la charge globale. |
|
dstat -all --disk-util ou iostat 1 1000 |
Afficher la bande passante et l'utilisation du disque en lecture. |
|
jstat -gc <pid> 1000 |
Afficher les détails du garbage collection (GC) pour le processus Java de l'outil d'importation. Si le GC est fréquent, augmentez la taille de la mémoire heap dans le paramètre |
Paramétrer le script adb-import.sh
Si vos fichiers d'importation utilisent des délimiteurs de lignes et de colonnes cohérents, vous pouvez modifier le script pour qu'il accepte les paramètres tableName et dataPath. Cette approche vous permet d'utiliser un seul script pour importer des données dans plusieurs tables en passant différents noms de tables et chemins de fichiers en tant qu'arguments.
tableName=$1
dataPath=$2
Exécutez l'importation avec les paramètres :
# sh adb-import.sh table_name001 /path/table_001
# sh adb-import.sh table_name002 /path/table_002
# sh adb-import.sh table_name003 /path/table_003
Exécuter adb-import.sh en arrière-plan
Pour exécuter le programme d'importation en arrière-plan, utilisez la commande suivante :
# nohup sh adb-import.sh &
Une fois le programme démarré, consultez le journal en exécutant la commande ci-dessous. Si le journal contient une pile d'exceptions, cela indique une erreur que vous devez résoudre.
# tail -f nohup.out
Pour vérifier que le processus d'importation est toujours en cours d'exécution, utilisez la commande suivante :
# ps -ef|grep import
Ignorer les lignes d'erreur avec adb-import.sh
Les lignes d'erreur générées par l'outil d'importation se répartissent en deux catégories :
-
Erreurs d'exécution SQL.
Pour ce type d'erreur, vous pouvez ignorer la ligne problématique en définissant le paramètre
ignoreErrors=true. Dans ce cas, le résultat d'exécution affichera le fichier d'erreur détaillé, le numéro de ligne de départ (car le paramètrebatchSizeest défini, la ligne d'erreur se situe dans un intervalle debatchSizelignes après le numéro de ligne de départ) ainsi que l'instruction SQL qui a échoué. -
Incohérence du nombre de colonnes.
Si un fichier contient un nombre inattendu de colonnes, l'outil d'importation arrête immédiatement son traitement et affiche un message d'erreur. Comme cette erreur indique que le fichier est mal formé, elle ne peut pas être ignorée. Vous devez inspecter et corriger manuellement le fichier. L'outil affiche un message d'erreur similaire au suivant :
[ERROR] 2021-03-22 00:46:40,444 [producer- /test2/data/lineitem.csv.split00.100-41] analyticdb.tool.ImportTool (ImportTool.java:591) -bad line found and stop import! 16, file = /test2/data/tpch100g/lineitem.csv.split00.100, rowCount = 7, current row = 3|123|179698|145|73200.15|0.06|0.00|R|F|1994-02-02|1994-01-04|1994-02- 23|NONE|AIR|ongside of the furiously brave acco|
Dépannage des échecs d'importation avec adb-import.sh
Pour identifier rapidement la cause d'un échec d'importation, utilisez les méthodes suivantes afin de réduire le périmètre de dépannage :
-
Lorsqu'une importation échoue, l'outil d'importation AnalyticDB for MySQL génère un journal d'erreurs détaillant la cause de l'échec. Par défaut, l'instruction SQL contenue dans le journal est tronquée à 1 000 caractères. Pour afficher l'instruction complète, augmentez la valeur du paramètre
failureSqlPrintLengthLimit. Par exemple, vous pouvez la définir sur 1 500 :printErrorSql=true failureSqlPrintLengthLimit=1500; -
L'outil d'importation traite les instructions SQL par lots. Un seul lot, contrôlé par le paramètre
batchSize, peut contenir des milliers de lignes. Il est alors difficile d'identifier la ligne à l'origine de l'erreur. Pour isoler la ligne problématique, réduisez la valeur du paramètrebatchSize. Par exemple, vous pouvez la définir sur 10 :batchSize=10; -
Si vous avez identifié quel fragment de fichier contient une erreur, vous pouvez reproduire celle-ci en important uniquement ce fichier. Pour ce faire, modifiez le paramètre
dataPathpour qu'il pointe directement vers le fichier problématique :dataPath=/u01/this/is/the/directory/where/product_info/stores/file007;
Exécuter l'outil d'importation sous Windows
Aucun script batch n'est encore disponible pour Windows. Pour exécuter l'outil d'importation, appelez directement le fichier JAR :
usage: java -jar adb-import-tool.jar [-a <arg>] [-b <arg>] [-B <arg>] [-c <arg>]
[-D <arg>] [-d <arg>] [-E <arg>] [-f <arg>] [-h <arg>] [-I <arg>]
[-k <arg>] [-l <arg>] [-m <arg>] [-n <arg>] [-N <arg>] [-O <arg>]
[-o <arg>] [-p <arg>] [-P <arg>] [-Q <arg>] [-s <arg>] [-S <arg>]
[-t <arg>] [-T <arg>] [-u <arg>] [-w <arg>][-x <arg>] [-y <arg>] [-z <arg>]
|
Paramètre |
Obligatoire |
Description |
|
|
Oui |
Adresse de connexion du cluster AnalyticDB for MySQL. |
|
|
Compte de base de données du cluster AnalyticDB for MySQL. |
|
|
|
Mot de passe du compte de base de données AnalyticDB for MySQL. |
|
|
|
Numéro de port du cluster AnalyticDB for MySQL. |
|
|
|
Nom de la base de données du cluster AnalyticDB for MySQL. |
|
|
|
Chemin absolu du fichier ou du dossier source. Les scénarios suivants sont pris en charge :
|
|
|
|
Nom de la table de destination. |
|
|
|
Non |
Génère un fichier indicateur une fois l'importation terminée. La valeur par défaut est une chaîne vide, ce qui signifie qu'aucun fichier n'est généré. Pour générer un fichier indicateur, spécifiez son nom. Par exemple, |
|
|
Nombre de tuples de valeurs par instruction d'écriture par lot, telle que Remarque
Pour des performances optimales lors de l'écriture par lots, définissez cette valeur entre 1 024 et 4 096. |
|
|
|
Active le chiffrement du mot de passe. Valeur par défaut : false. |
|
|
|
Affiche le nombre réel de lignes de la table cible après l'importation de chaque fichier. Valeur par défaut : false. |
|
|
|
Ignore la ligne d'en-tête d'un fichier. Valeur par défaut : false. |
|
|
|
Échappe les caractères barre oblique inverse ( Remarque
L'échappement des caractères affecte les performances d'analyse côté client. Si vos fichiers sources ne contiennent pas ces caractères, définissez ce paramètre sur false. |
|
|
|
Ignore les lots ayant échoué lors de l'importation des données. Valeur par défaut : false. |
|
|
|
Nombre de lignes à ignorer au début du fichier. Cela équivaut à |
|
|
|
Délimiteur de colonne. AnalyticDB for MySQL utilise par défaut le caractère visible |
|
|
|
Nombre maximal de fichiers à lire en parallèle lors de l'importation depuis un dossier. Valeur par défaut : |
|
|
|
Indique s'il faut définir |
|
|
|
Affiche l'instruction SQL à l'origine de l'erreur. Valeur par défaut : true. |
|
|
|
Taille du pool de connexions à la base de données AnalyticDB for MySQL. Valeur par défaut : 2. |
|
|
|
Encodage du fichier. Valeurs valides : GBK, UTF-8. Valeur par défaut : UTF-8. |
|
|
|
Affiche les instructions INSERT sans les exécuter. Valeur par défaut : false (les instructions sont exécutées). |
|
|
|
Séparateur de ligne. AnalyticDB for MySQL utilise par défaut le caractère visible |
|
|
|
Affiche la pile d'appels lorsqu'une erreur se produit et que |
|
|
|
Nombre de buffers pour les commandes SQL INSERT. Cela permet la mise en pipeline et la séparation des E/S et du calcul lors de l'envoi des commandes SQL INSERT à AnalyticDB for MySQL, ce qui améliore les performances du client. Valeur par défaut : 128. |
|
|
|
Inclut les noms de colonnes dans l'instruction |
|
|
|
Longueur maximale d'une instruction SQL ayant échoué à afficher. Valeur par défaut : 1 000. |
|
|
|
Paramètres de connexion à la base de données supplémentaires. Valeur par défaut : Exemple : |
Exemples :
-
Exemple 1 : Importer un fichier unique en utilisant les paramètres par défaut :
java -Xmx8G -Xms8G -jar adb-import-tool.jar -hyourhost.ads.aliyuncs.com -uadbuser -ppassword -P3306 -Dtest --dataFile /data/lineitem.sample --tableName LINEITEM -
Exemple 2 : Importer tous les fichiers d'un dossier, optimisé pour un débit maximal :
java -Xmx16G -Xms16G -jar adb-import-tool.jar -hyourhost.ads.aliyuncs.com -uadbuser -ppassword -P3306 -Dtest --dataFile /data/tpch100g --tableName LINEITEM --concurrency 64 --batchSize 2048
Comment importer un fichier de sauvegarde SQL d'une instance RDS source supprimée dans AnalyticDB for MySQL ?
AnalyticDB for MySQL ne prend pas en charge l'exécution directe des fichiers de vidage SQL via le client en ligne de commande mysql, car les instructions DDL contenues dans le vidage peuvent être syntaxiquement incompatibles. Si votre instance RDS source a été supprimée et qu'il ne reste que le fichier de sauvegarde SQL, effectuez l'importation des données en suivant ces deux documents dans l'ordre :
Étape 1 : Restaurer le fichier SQL dans une base de données MySQL autogérée. Sur une instance ECS ou dans un environnement local, configurez une instance MySQL et utilisez le client en ligne de commande mysql pour importer le fichier SQL dans la base de données MySQL autogérée. Pour plus d'informations, consultez Restaurer les données RDS dans une base de données autogérée à partir d'un fichier CSV ou SQL.
Étape 2 : Importer les données de la base de données MySQL autogérée dans AnalyticDB for MySQL. Une fois les données restaurées dans la base de données MySQL autogérée, utilisez des tables externes pour importer les données dans le cluster AnalyticDB for MySQL. Pour plus d'informations, consultez Importer des données depuis une base de données MySQL autogérée.