Prise en main du pilote JDBC 3.x - Amazon Athena

Prise en main du pilote JDBC 3.x

Utilisez les informations de cette section pour commencer à utiliser le pilote JDBC 3.x Amazon Athena.

Instructions d'installation

Vous pouvez utiliser le pilote JDBC 3.x dans une application personnalisée ou d'un client SQL tiers.

Dans une application personnalisée

Téléchargez le fichier .zip contenant le fichier jar du pilote et ses dépendances. Chaque dépendance possède son propre fichier .jar. Ajoutez le pilote jar en tant que dépendance dans votre application personnalisée. Ajoutez de manière sélective les dépendances du fichier jar du pilote selon que vous les avez déjà ajoutées ou non à votre application à partir d'une autre source.

Dans un client SQL tiers

Téléchargez le fichier uber jar du pilote et ajoutez-le au client SQL tiers en suivant les instructions pour ce client.

Exécution du pilote

Pour exécuter le pilote, vous pouvez utiliser une application personnalisée ou un client SQL tiers.

Dans une application personnalisée

Utilisez l'interface JDBC pour interagir avec le pilote JDBC à partir d'un programme. Le code suivant montre un exemple d'application Java personnalisée.

public static void main(String args[]) throws SQLException { Properties connectionParameters = new Properties(); connectionParameters.setProperty("Workgroup", "primary"); connectionParameters.setProperty("Region", "us-east-2"); connectionParameters.setProperty("Catalog", "AwsDataCatalog"); connectionParameters.setProperty("Database","sampledatabase"); connectionParameters.setProperty("OutputLocation","s3://amzn-s3-demo-bucket"); connectionParameters.setProperty("CredentialsProvider","DefaultChain"); String url = "jdbc:athena://"; AthenaDriver driver = new AthenaDriver(); Connection connection = driver.connect(url, connectionParameters); Statement statement = connection.createStatement(); String query = "SELECT * from sample_table LIMIT 10"; ResultSet resultSet = statement.executeQuery(query); printResults(resultSet); // A custom-defined method for iterating over a // result set and printing its contents }

Dans un client SQL tiers

Suivez la documentation du client SQL que vous utilisez. Généralement, vous utilisez l'interface utilisateur graphique du client SQL pour saisir et envoyer la requête, et les résultats de la requête sont affichés dans la même interface.

Configuration du pilote

Vous pouvez utiliser les paramètres de connexion pour configurer le pilote Amazon Athena JDBC. Pour les paramètres de connexion pris en charge, veuillez consulter Paramètres de connexion JDBC 3.x Amazon Athena.

Dans une application personnalisée

Pour définir les paramètres de connexion du pilote JDBC d'une application personnalisée, effectuez l'une des actions suivantes :

  • Ajoutez les noms des paramètres et leurs valeurs à un objet Properties. Lorsque vous appelez Connection#connect, transmettez cet objet avec l'URL. Pour un exemple, veuillez consulter l'exemple d'application Java dans Exécution du pilote.

  • Dans la chaîne de connexion (l'URL), utilisez le format suivant pour ajouter les noms des paramètres et leurs valeurs directement après le préfixe du protocole.

    <parameterName>=<parameterValue>;

    Utilisez un point-virgule à la fin de chaque paire nom de paramètre/valeur de paramètre, et ne laissez aucun espace après le point-virgule, comme dans l'exemple suivant.

    String url = "jdbc:athena://WorkGroup=primary;Region=us-east-1;...;";AthenaDriver driver = new AthenaDriver();Connection connection = driver.connect(url, null);
    Note

    Si un paramètre est spécifié à la fois dans la chaîne de connexion et dans l'objet Properties, la valeur de la chaîne de connexion est prioritaire. Il n'est pas recommandé de spécifier le même paramètre aux deux endroits.

  • Ajoutez les valeurs des paramètres en tant qu'arguments aux méthodes de AthenaDataSource, comme dans l'exemple suivant.

    AthenaDataSource dataSource = new AthenaDataSource(); dataSource.setWorkGroup("primary"); dataSource.setRegion("us-east-2"); ... Connection connection = dataSource.getConnection(); ...

Dans un client SQL tiers

Suivez les instructions du client SQL que vous utilisez. Généralement, le client fournit une interface utilisateur graphique pour saisir les noms des paramètres et leurs valeurs.

Mise à niveau depuis le pilote Athena JDBC v2

La plupart des paramètres de connexion de JDBC version 3 sont rétrocompatibles avec la version 2 (Simba). Cela signifie qu'une chaîne de connexion version 2 peut être réutilisée avec la version 3 du pilote. Certains paramètres de connexion ont toutefois changé. Ces modifications sont décrites ici. Lorsque vous effectuez une mise à niveau vers le pilote JDBC version 3, mettez à jour votre configuration existante si nécessaire.

Classe de pilote

Certains outils de BI vous demandent de fournir la classe de pilote à partir du fichier .jar du pilote JDBC. La plupart des outils trouvent automatiquement cette classe. Le nom entièrement qualifié de la classe dans le pilote de la version 3 est com.amazon.athena.jdbc.AthenaDriver. Dans le pilote version 2, la classe était com.simba.athena.jdbc.Driver.

Chaîne de connexion

Le pilote version 3 utilise jdbc:athena:// pour le protocole au début de la chaîne de connexion JDBC. Il prend également en charge le protocole jdbc:awsathena:// version 2, mais celui-ci est obsolète. Pour éviter des comportements inattendus, la version 3 n’accepte pas les chaînes de connexion commençant par jdbc:awsathena:// si la version 2 (ou tout autre pilote acceptant les chaînes de connexion qui commencent par jdbc:awsathena://) a été enregistrée dans la classe DriverManager.

Fournisseurs d'informations d'identification

Le pilote version 2 utilise des noms complets pour identifier les différents fournisseurs d'informations d'identification (par exemple com.simba.athena.amazonaws.auth.DefaultAWSCredentialsProviderChain). Le pilote version 3 utilise des noms plus courts (par exemple DefaultChain). Les nouveaux noms sont décrits dans les sections correspondantes pour chaque fournisseur d'informations d'identification.

Les fournisseurs d’informations d’identification personnalisées écrits pour le pilote version 2 doivent être modifiés pour que le pilote version 3 mette en œuvre l’interface AwsCredentialsProvider depuis le nouveau AWS SDK pour Java plutôt que l’interface AWSCredentialsProvider depuis l’ancien AWS SDK pour Java.

Le fournisseur PropertiesFileCredentialsProvider n’est pas pris en charge dans le pilote JDBC 3.x. Il était utilisé dans le pilote JDBC 2.x, mais il appartient à la version précédente du SDK AWS pour Java qui ne sera prochainement plus prise en charge. Pour bénéficier des mêmes fonctionnalités dans le pilote JDBC 3.x, utilisez plutôt le fournisseur Informations d'identification du profil de configuration AWS.

Niveau de journalisation

Le tableau suivant montre les différences entre les paramètres LogLevel des pilotes JDBC version 2 et version 3.

Version du pilote JDBC Nom du paramètre Type de paramètre Valeur par défaut Valeurs possibles Exemple de chaîne de connexion
v2 LogLevel Facultatif 0 0-6 LogLevel=6;
v3 LogLevel Facultatif TRACE OFF, ERROR, WARN, INFO, DEBUG, TRACE LogLevel=INFO;

Récupération de l'ID de requête

Dans le pilote version 2, vous décompressez une instance Statement dans com.interfaces.core.IStatementQueryInfoProvider, une interface dotée de deux méthodes : #getPReparedQueryId et #getQueryId. Vous pouvez utiliser ces méthodes pour obtenir l'ID d'exécution d'une requête déjà exécutée.

Dans le pilote version 3, vous décompressez les instances Statement, PreparedStatement et ResultSet de l'interface com.amazon.athena.jdbc.AthenaResultSet. L'interface dispose d'une seule méthode : #getQueryExecutionId.