Abfrage von Python an Amazon Athena (unter Verwendung des benannten Profils)

Einführung

Möglicherweise können Sie über die AWS-CLI in der Windows-Befehlszeile eine Verbindung zu Athena herstellen. Wie auch immer Ich wollte das Abfrageergebnis erhalten und das Diagramm zeichnen, also dachte ich, ich würde es mit Python machen. Es gab eine Sackgasse im benannten Profilteil, also organisieren Sie es

Im Handbuch beschriebene Methode (benanntes Profil nicht verwendet)

Vorgehensweise mit der Windows-Befehlszeile

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

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

Methode in Python


athena = boto3.client('athena')

#Abfrageausführung
exec_run = athena.start_query_execution(
    QueryString="select * from table_name",
    QueryExecutionContext={'Database': 'database_name'},
    ResultConfiguration={'OutputLocation': 's3://path/to/query/bucket/'})

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

Was ich diesmal machen möchte

Ich möchte eine Abfrage unter Verwendung der Informationen des benannten Profils ausführen.

So richten Sie ein benanntes Profil ein Ich habe meine Zeit verschwendet, ohne den Unterschied zwischen "Windows-Befehlszeile" und "Python" zu bemerken.

So richten Sie ein benanntes Profil ein Windows-Befehlszeile: Wird als Parameter des Befehls aws festgelegt Python: Legen Sie Profilinformationen mit der Klasse boto3.session fest

Methode mit Windows-Befehlszeile (unter Verwendung des benannten Profils)

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

AWS-Dokumentation: 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

Methode in Python (unter Verwendung des benannten Profils)


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

#Ausführung verarbeiten
exec_run = athena.start_query_execution(
    QueryString="select * from table_name",
    QueryExecutionContext={'Database': 'database_name'},
    ResultConfiguration={'OutputLocation': 's3://path/to/query/bucket/'})

AWS-Dokumentation: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/athena.html https://boto3.amazonaws.com/v1/documentation/api/latest/guide/session.html Artikel über S3-Verbindung: Verwenden Sie ein anderes als das Standardprofil mit boto3

Schließlich

Es war schwer, zu boto3.session zu gelangen. Es war nicht gut, es auf der Basis von Fehleraussagen nachzuschlagen. Es wurde fest in das Handbuch geschrieben Als ich dort ankam, wurde mir wieder klar, dass ich verschiedene Dinge verstehen würde.

Diesmal gibt es jedoch viele Probleme, z. B. dass nicht alle Akquisitionsergebnisse vorliegen.

das ist alles.

Referenzinformationen

An jedem Ort beschrieben

Recommended Posts

Abfrage von Python an Amazon Athena (unter Verwendung des benannten Profils)
Fragen Sie Athena von Lambda Python ab
Versuchen Sie es mit Amazon DynamoDB von Python
Von Python bis zur Verwendung von MeCab (und CaboCha)
Ich möchte mit Python eine E-Mail von Google Mail senden.
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
PUSH-Benachrichtigung von Python an Android mithilfe der Google-API
MessagePack-Aufruf von Ruby to Python-Methoden (oder Python to Ruby-Methoden) mithilfe von RPC
Kopieren Sie S3-Dateien mit GSUtil von Python nach GCS
Mit Python abflachen
Post von Python nach Slack
Flirte von PHP nach Python
Mit Python auf Twitter posten
Starten Sie mit Python zu Selen
Wechseln Sie von Python2.7 zu Python3.6 (centos7)
Stellen Sie von Python aus eine Verbindung zu SQLite her
Konvertieren Sie mit Python für .NET von Pandas DataFrame in System.Data.DataTable
So installieren Sie Python mit Anaconda
Verwenden von Rstan aus Python mit PypeR
Hinweise zur Verwendung von MeCab aus Python
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
[Lambda] [Python] Von Lambda auf Twitter posten!
Stellen Sie von Python aus eine Verbindung zur utf8mb4-Datenbank her
Verwenden von Cloud-Speicher aus Python3 (Einführung)
Python (vom ersten Mal bis zur Ausführung)
Poste ein Bild von Python auf Tumblr
Terminalzuordnung von der Serverseite zu Amazon SNS (Python + Boto3)
So greifen Sie über Python auf Wikipedia zu
Python, um von einer anderen Sprache zu wechseln
Führen Sie Ansible über Python mithilfe der API aus
Vorsichtsmaßnahmen bei der Verwendung von Phantomjs aus Python
Greifen Sie mit OAuth 2.0 von Python aus auf Tabellenkalkulationen zu
Hat sich nicht von Python 2 auf 3 geändert
Aktualisieren Sie Mac Python von 2 auf 3
Von der Vorbereitung der morphologischen Analyse mit Python unter Verwendung von Polyglot bis zur Teilwortmarkierung
Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python
Erstellen Sie mit Mecab aus Python3 ein Tool, das Furigana automatisch mit HTML schüttelt
Datenintegration von der Python-App unter Linux zu Amazon Redshift mit ODBC
Versuchen Sie es mit Pythons Webframework Django (1) - Von der Installation bis zum Serverstart
So erhalten Sie den Wert aus dem Parameterspeicher in Lambda (mit Python)
Datenintegration von der Python-App unter Windows zu Amazon Redshift mit ODBC
Kopieren Sie Daten von Amazon S3 mit Python (boto) in Google Cloud Storage.
[Python] Fluidsimulation: Von linear zu nichtlinear
Einführung in die diskrete Ereignissimulation mit Python # 1
So aktualisieren Sie Google Sheets von Python
Ich möchte ein Glas aus Python verwenden
Melden Sie sich mit Anforderungen in Python bei Slack an
Herstellen einer Verbindung von Python zu MySQL unter CentOS 6.4
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Versuchen Sie, Excel mit Python (Xlwings) zu betreiben.
Zugriff auf RDS von Lambda (Python)
Python> Ausgaben von 1 bis 100, 501 bis 600> Für CSV
Einführung in die diskrete Ereignissimulation mit Python # 2
In Python von Markdown in HTML konvertieren
API-Erklärung zum Berühren von Mastodon aus Python
Stellen Sie von Python aus eine Verbindung zur Websocket-API von coincheck her
Ich habe versucht, Python-Code aus .Net mit Pythonnet auszuführen (Hallo World Edition)
Senden Sie eine Nachricht von Slack an einen Python-Server