web-dev-qa-db-fra.com

Comment décharger des données de Redshift vers S3?

J'ai essayé de décharger certaines données de Redshift vers le compartiment S3. Sauf que j'ai eu l'erreur suivante:

Amazon Invalid operation: impossible de supprimer le portail actif; [SQL State = XX000, DB Errorcode = 500310]

Pour noter que Redshift et S3 sont dans 2 compartiments différents, j'ai donc spécifié la région dans le déchargement.

J'ai essayé de le chercher, il mentionne que je ne peux pas laisser tomber la table.

J'ai donc créé une table "test" dont je suis certain à 100% qu'elle n'est connectée à aucune vue ou autre mais j'obtiens toujours la même erreur.

J'ai également essayé de dépanner AWSQuickSolutions: la table Redshift ne peut pas être supprimée ou la table se bloque sauf que je n'ai pas accès à svv_table_info.

Existe-t-il un moyen de faire le déchargement?

7
ivb1

OK, j'ai donc rencontré le même problème. Aucune des solutions connues ne s'applique à mon problème car:

1) Le cluster était dans la même région que le compartiment S3 que j'ai créé

2) J'ai essayé d'exécuter la commande UNLOAD via python, cli et redshift avec les mêmes résultats.

3) J'ai essayé d'ajouter une stratégie de compartiment pour le rôle redshift

4) J'ai essayé d'exécuter la commande de déchargement en utilisant pour arns (le rôle redshift et le rôle s3)

Enfin, je l'ai fait fonctionner. Qu'est ce qui a changé? J'étais maintenant directement sur le réseau de mon entreprise au lieu d'utiliser un VPN, c'est à ce moment que j'ai rencontré ce problème.

Ce qui a finalement fonctionné pour moi:

UNLOAD ('SELECT * FROM table where EXTRACT(YEAR FROM order_datetime_utc )=2019')   
              to 's3://bucket/' 
              REGION 'us-east-1'
                iam_role 'arn:aws:iam::0000000000:role/RedshiftCopyUnload,arn:aws:iam::0000000000:role/S3Access'
              parallel off
              delimiter as '\t' 
gzip;
1
Ernie Castruita

signaler la réponse de @nofinator car cela a fonctionné pour moi et peut également être utile pour quelqu'un d'autre:

En exécutant UNLOAD à partir d'une autre application, dans mon cas, l'éditeur de requête dans la console Redshift, a résolu l'exception Amazon Invalid operation: cannot drop active portal

1
Vzzarr

Je ne sais pas exactement ce qui a causé cette erreur mais je l'obtenais après un échec de déchargement.

Je me déconnecte puis reconnecte mon client sql et le fais fonctionner. pas super pratique mais mieux que de redémarrer le cluster.

0
Mazen AB

J'ai eu le même problème hier. Au moins dans mon incident, il y avait un sev-2 dans Data-Warehouse. J'utilise Amazon DWP utilisé par Amazon Retail, donc je ne sais pas si c'est le même service utilisé par AWS.

tldr; Il est possible que ce soit un problème de serveur chez le fournisseur du redshift.

0
user7865286

J'ai eu ce problème après avoir modifié les autorisations IAM sur le rôle. Malheureusement, j'ai dû redémarrer le cluster, puis ma commande UNLOAD a fonctionné.

0
norpcom