Requête de Python vers Amazon Athena (à l'aide du profil nommé)

introduction

Vous pourrez peut-être vous connecter à Athena avec l'AWS CLI sur la ligne de commande Windows, En tous cas Je voulais obtenir le résultat de la requête et dessiner le graphique, alors j'ai pensé que je le ferais avec python. Il y avait une impasse dans la partie de profil nommée, alors organisez-la

Méthode décrite dans le manuel (profil nommé non utilisé)

Comment faire avec la ligne de commande Windows

aws athena start-query-execution
  --query-string "select * from table_name"
  --result-configuration "s3://path/to/query/bucket/"

Documentation AWS: https://docs.aws.amazon.com/cli/latest/reference/athena/start-query-execution.html

Méthode en python


athena = boto3.client('athena')

#Exécution de la requête
exec_run = athena.start_query_execution(
    QueryString="select * from table_name",
    QueryExecutionContext={'Database': 'database_name'},
    ResultConfiguration={'OutputLocation': 's3://path/to/query/bucket/'})

Documentation AWS: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/athena.html

Ce que je veux faire cette fois

Je souhaite exécuter une requête en utilisant les informations du profil nommé.

Comment configurer un profil nommé J'ai perdu mon temps sans remarquer la différence entre "ligne de commande windows" et "python".

Comment configurer un profil nommé ligne de commande Windows: définie comme paramètre de la commande aws python: définir les informations de profil à l'aide de la classe boto3.session

Méthode avec ligne de commande Windows (en utilisant le profil nommé)

aws athena start-query-execution
  --query-string "select * from table_name"
  --result-configuration "s3://path/to/query/bucket/"
 --profile "NRP"

Documentation AWS: https://docs.aws.amazon.com/cli/latest/reference/athena/start-query-execution.html https://docs.aws.amazon.com/cli/latest/reference/athena/start-query-execution.html

Méthode en python (en utilisant le profil nommé)


session = boto3.Session(profile_name='NRP')
athena = session.client('athena')

#Exécution du traitement
exec_run = athena.start_query_execution(
    QueryString="select * from table_name",
    QueryExecutionContext={'Database': 'database_name'},
    ResultConfiguration={'OutputLocation': 's3://path/to/query/bucket/'})

Documentation AWS: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/athena.html https://boto3.amazonaws.com/v1/documentation/api/latest/guide/session.html Article sur la connexion S3: Utiliser un profil autre que le profil par défaut avec boto3

finalement

Il était difficile d'accéder à boto3.session. Ce n'était pas bon de le rechercher sur la base d'une déclaration d'erreur. C'était écrit fermement dans le manuel Une fois sur place, j'ai réalisé à nouveau que je comprendrais diverses choses.

Cependant, cette fois, il y a de nombreux problèmes tels que ne pas avoir tous les résultats d'acquisition.

c'est tout.

Informations de référence

Décrit à chaque endroit

Recommended Posts

Requête de Python vers Amazon Athena (à l'aide du profil nommé)
Interroger Athena depuis Lambda Python
Essayez d'utiliser Amazon DynamoDB à partir de Python
De Python à l'utilisation de MeCab (et CaboCha)
Je souhaite envoyer un e-mail depuis Gmail en utilisant Python.
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Notification PUSH de Python vers Android à l'aide de l'API de Google
Méthodes MessagePack-Call Python (ou Python vers Ruby) à partir de Ruby à l'aide de RPC
Copier les fichiers S3 de Python vers GCS à l'aide de GSUtil
Aplatir à l'aide du rendement Python de
Publier de Python vers Slack
Flirter de PHP à Python
Publier sur Twitter en utilisant Python
Commencez à Selenium en utilisant python
Passer de python2.7 à python3.6 (centos7)
Connectez-vous à sqlite depuis python
Conversion de Pandas DataFrame en System.Data.DataTable à l'aide de Python pour .NET
Comment installer Python à l'aide d'Anaconda
Utilisation de Rstan de Python avec PypeR
Remarques sur l'utilisation de MeCab depuis Python
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
[Lambda] [Python] Publier sur Twitter depuis Lambda!
Connectez-vous à la base de données utf8mb4 à partir de python
Utiliser Cloud Storage depuis Python3 (Introduction)
Python (de la première fois à l'exécution)
Publier une image de Python sur Tumblr
Association de terminal du côté serveur à Amazon SNS (python + boto3)
Comment accéder à wikipedia depuis python
Python pour passer d'une autre langue
Exécutez Ansible à partir de Python à l'aide de l'API
Précautions lors de l'utilisation de phantomjs de python
Accéder aux feuilles de calcul à partir de Python à l'aide d'OAuth 2.0
N'a pas changé de Python 2 à 3
Mettre à jour Mac Python de 2 à 3
De la préparation à l'analyse morphologique avec python en utilisant polyglotte au marquage des mots partiels
Comment gérer l'erreur OAuth2 lors de l'utilisation des API Google à partir de Python
Créez un outil qui secoue automatiquement furigana avec html en utilisant Mecab de Python3
Intégration de données depuis l'application Python sur Linux vers Amazon Redshift avec ODBC
Essayez d'utiliser le framework web de Python Django (1) - De l'installation au démarrage du serveur
Comment obtenir la valeur du magasin de paramètres dans lambda (en utilisant python)
Intégration de données depuis l'application Python sur Windows vers Amazon Redshift avec ODBC
Copier des données d'Amazon S3 vers Google Cloud Storage avec Python (boto)
[Python] Simulation de fluide: de linéaire à non linéaire
Introduction à la simulation d'événements discrets à l'aide de Python # 1
Comment mettre à jour Google Sheets à partir de Python
Je veux utiliser jar de python
Connectez-vous à Slack à l'aide de requêtes en Python
Connexion de python à MySQL sur CentOS 6.4
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
Essayez d'utiliser Excel en utilisant Python (Xlwings)
Comment accéder à RDS depuis Lambda (python)
Python> Numéros de sortie de 1 à 100, 501 à 600> Pour csv
Introduction à la simulation d'événements discrets à l'aide de Python # 2
Convertir de Markdown en HTML en Python
Explication API pour toucher mastodonte de python
Connectez-vous à l'API Websocket de Coincheck depuis Python
J'ai essayé d'exécuter du code Python à partir de .Net en utilisant Pythonnet (édition Hallo World)
Envoyer un message de Slack à un serveur Python