Comment copier le fichier de données csv sur Amazon RedShift?
Je suis en train de migrer quelques tables MySQL Amazon Redshift, mais a rencontré quelques problèmes.
Les étapes sont simples:
1. Vidage de la table MySQL vers un fichier csv
2. Télécharger le fichier csv pour S3
3. Copiez le fichier de données de RedShift
Erreur se produit dans l'étape 3:
La commande SQL est:
copie TABLE_A de " s3://ciphor/TABLE_A.csv' informations d'IDENTIFICATION
'aws_access_key_id=xxxx;aws_secret_access_key=xxxx' délimiteur ',' csv;
L'erreur info:
Une erreur s'est produite lors de l'exécution de la commande SQL: copie TABLE_A de
"s3://ciphor/TABLE_A.csv' informations d'IDENTIFICATION
'aws_access_key_id=xxxx;aws_secret_access_key=xxxx ERREUR: COPIE CSV est
pas pris en charge [État SQL=0A000] temps d'Exécution: 0.53 s 1 déclaration(s)
a échoué.
Je ne sais pas si il y a des limitations sur le format du fichier csv, disent les séparateurs et les citations, je ne le trouve pas dans les documents.
Un peut m'aider?
source d'informationauteur ciphor
Vous devez vous connecter pour publier un commentaire.
Le problème est finalement résolu à l'aide de:
Plus d'informations peuvent être trouvées ici http://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html
Maintenant, Amazon Redshift prend en charge CSV option pour la commande de COPIE. Il est préférable d'utiliser cette option pour importer des données au format CSV correctement. Le format est indiqué ci-dessous.
COPY [table-name] from 's3://[bucket-name]/[file-path or prefix]' CREDENTIALS 'aws_access_key_id=xxxx;aws_secret_access_key=xxxx' CSV;
Le délimiteur par défaut est ( , ) et la valeur par défaut des guillemets ( " ). Vous pouvez également importer des données au format TSV CSV et DÉLIMITEUR option de ce genre.
COPY [table-name] from 's3://[bucket-name]/[file-path or prefix]' CREDENTIALS 'aws_access_key_id=xxxx;aws_secret_access_key=xxxx' CSV DELIMITER '\t';
Il y a quelques inconvénients à utiliser l'ancienne méthode(DÉLIMITEUR et REMOVEQUOTES) que REMOVEQUOTES ne supporte pas d'avoir une nouvelle ligne ou un caractère délimiteur dans une enceinte de dépôt. Si les données peuvent inclure ce genre de personnages, vous devez utiliser CSV option.
Voir le lien suivant pour plus de détails.
http://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html
Si vous souhaitez enregistrer votre auto un peu de code/vous avez une base de cas d'utilisation, vous pouvez utiliser Amazon Pipeline de Données.
il stats d'un spot d'instance et d'effectuer la transformation au sein d'amazon réseau et c'est vraiment un outil intuitif (mais très simple de sorte que vous ne pouvez pas faire des choses complexes avec elle)
Vous pouvez essayer avec ce
copie TABLE_A de " s3://ciphor/TABLE_A.csv' POUVOIRS 'aws_access_key_id=xxxx;aws_secret_access_key=xxxx" csv;
CSV elle est à même de valeurs séparées par des virgules, pas besoin de fournir délimiteur avec cette. Veuillez consulter le lien.
[http://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-format.html#copy-format%5D
Il semble que vous essayez de charger fichier local dans le REDSHIFT de la table.
Le fichier CSV doit être sur S3 pour la commande de COPIE de travail.
Si vous pouvez extraire des données à partir de la table de fichier CSV que vous avez plus d'un script option. Vous pouvez utiliser Python/boto/psycopg2 combo pour le script de votre CSV charge d'Amazon Redshift.
Dans mon MySQL_To_Redshift_Loader je ne les suivants:
Extraire des données de MySQL dans le fichier temp.
Compresser et de charger des données à S3 en utilisant boto module Python et de téléchargement en plusieurs parties.
Utilisation psycopg2 commande de COPIE d'ajouter des données à Redshift table.
Étant donné que la résolution a déjà été fourni, je ne vais pas répéter ce qui est évident.
Toutefois, dans le cas où vous recevoir davantage d'erreur que vous n'êtes pas en mesure de comprendre, il suffit d'exécuter sur votre établi, alors que vous êtes connecté à l'une des Redshift comptes:
stl_load_errors contient tous les Amazon RS erreurs de chargement dans l'histoire de la mode, où un utilisateur normal peut afficher les détails correspondant à son propre compte, mais un super-utilisateur peut avoir accès.
Les détails sont capturés minutieusement à :
Amazon STL Erreurs de Chargement de la Documentation
Peu tard pour commenter, mais il peut être utile:-
Vous pouvez utiliser un projet open source à copier des tableaux directement à partir de mysql pour redshift - sqlshift.
Il nécessite seulement l'étincelle et si vous avez des fils, puis il peut aussi être utilisé.
Avantages:- Il décide automatiquement distkey et entrelacés sortkey à l'aide de la clé primaire.