J'essaye de me connecter à Athena en utilisant pyathenajdbc.connect(). J'ai la configuration des informations d'identification AWS via l'authentification multifacteur. Lorsque je n'inclue pas le jeton AWS dans la chaîne de connexion, j'obtiens l'erreur suivante.Echec de l'interrogation d'AWS Athena à partir de Python 2.7, lors du passage du jeton de session AWS dans pyathenajdbc.connect()
athena_conn = connect(access_key=AWS_KEY_ID, secret_key=AWS_SECRET, s3_staging_dir='s3://abc-pqr-xyz/processed/athena-outputs/',region_name=REGION)
EROR: pyathenajdbc.error.DatabaseError: The security token included in the request is invalid. (Service: AmazonAthena; Status Code: 400; Error Code: UnrecognizedClientException; Request ID: 0d488c0b-1eed-11e7-bad8-711e54af6b73)
Quand je l'AWS inclus jeton dans la chaîne de connexion je rencontrer l'erreur suivante ->
athena_conn = connect(access_key=AWS_KEY_ID, secret_key=AWS_SECRET, token=AWS_SESSION_TOKEN, s3_staging_dir='s3://abc-pqr-xyz/processed/athena-outputs/',region_name=REGION)
ERROR: pyathenajdbc.error.DatabaseError: The security token included in the request is invalid. (Service: AmazonAthena; Status Code: 400; Error Code: UnrecognizedClientException; Request ID: 91751051-1eed-11e7-8347-153dfe3d84a6)
Est-ce que quelqu'un sait ce qui ne va pas ici ??
Voici l'intégralité de mon code.
from pyathenajdbc import connect
from pyathenajdbc.util import as_pandas
from boto3 import Session
import jpype
jvm_path = jpype.getDefaultJVMPath()
_current_credentials = Session().get_credentials()
AWS_KEY_ID = _current_credentials.access_key
AWS_SECRET = _current_credentials.secret_key
AWS_SESSION_TOKEN = _current_credentials.token
REGION = "us-east-2"
#athena_conn = connect(access_key=AWS_KEY_ID, secret_key=AWS_SECRET, s3_staging_dir='s3://abc-pqr-xyz/processed/athena-outputs/',region_name=REGION)
athena_conn = connect(access_key=AWS_KEY_ID, secret_key=AWS_SECRET, token=AWS_SESSION_TOKEN, s3_staging_dir='s3://abc-pqr-xyz/processed/athena-outputs/',region_name=REGION)
cursor = athena_conn.cursor();
query = 'SELECT * FROM xyz.ABC limit 1;'
cursor.execute(query)
df = as_pandas(cursor)
print(df)
Salut, Merci pour votre réponse. Voici la sortie -'jdbc: awsathena: // athena. {Région} .amazonaws.com: 443/hive/{schéma}/ com.amazonaws.athena.jdbc.AthenaDriver https://s3.amazonaws.com /athena-downloads/drivers/AthenaJDBC41-1.0.0.jar AthenaJDBC41-1.0.0.jar' – Guddi
Aussi, confirmé que les clés sont valides – Guddi
je vois. Je pense que cela a quelque chose à voir avec vos permissions sur AWS Athena. S'il vous plaît vérifiez si vous pouvez accéder à la console Athena en utilisant les mêmes informations d'identification –