Erste Schritte mit dem JDBC-Treiber 3.x
Verwenden Sie die Informationen in diesem Abschnitt, um mit dem JDBC-3.x-Treiber von Amazon Athena zu beginnen.
Themen
Installationsanleitungen
Sie können den JDBC-3.x-Treiber in einer benutzerdefinierten Anwendung oder in einem SQL-Client eines Drittanbieters verwenden.
In einer benutzerdefinierten Anwendung
Laden Sie die .zip-Datei herunter, die die Treiber-jar und ihre Abhängigkeiten enthält. Jede Abhängigkeit hat ihre eigene .jar-Datei. Fügen Sie in Ihrer benutzerdefinierten Anwendung die Treiber-jar als Abhängigkeit hinzu. Fügen Sie die Abhängigkeiten der Treiber-jar selektiv hinzu, je nachdem, ob Sie diese Abhängigkeiten bereits aus einer anderen Quelle zu Ihrer Anwendung hinzugefügt haben.
In einem SQL-Client eines Drittanbieters
Laden Sie die Treiber-uber-jar herunter und fügen Sie sie dem SQL-Client eines Drittanbieters hinzu, indem Sie den Anweisungen für diesen Client folgen.
Ausführen des Treibers
Verwenden Sie zum Ausführen des Treibers eine benutzerdefinierte Anwendung oder einen SQL-Client eines Drittanbieters.
In einer benutzerdefinierten Anwendung
Verwenden Sie die JDBC-Schnittstelle, um von einem Programm aus mit dem JDBC-Treiber zu interagieren. Der folgende Code zeigt eine benutzerdefinierte Java-Beispielanwendung.
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 }
In einem SQL-Client eines Drittanbieters
Folgen Sie der Dokumentation für den SQL-Client, den Sie verwenden. In der Regel verwenden Sie die grafische Benutzeroberfläche des SQL-Clients, um die Abfrage einzugeben und zu senden, und die Abfrageergebnisse werden in derselben Oberfläche angezeigt.
Konfigurieren des Treibers
Sie können Verbindungsparameter verwenden, um den Amazon-Athena-JDBC-Treiber zu konfigurieren. Informationen zu unterstützten Verbindungsparametern finden Sie unter Amazon-Athena-JDBC-3.x-Verbindungsparameter.
In einer benutzerdefinierten Anwendung
Führen Sie einen der folgenden Schritte aus, um die Verbindungsparameter für den JDBC-Treiber in einer benutzerdefinierten Anwendung festzulegen:
-
Fügen Sie die Parameternamen und ihre Werte zu einem
Properties-Objekt hinzu. Wenn SieConnection#connectaufrufen, übergeben Sie dieses Objekt zusammen mit der URL. Ein Beispiel dafür finden Sie in der Java-Beispielanwendung in Ausführen des Treibers. -
Verwenden Sie in der Verbindungszeichenfolge (der URL) das folgende Format, um die Parameternamen und ihre Werte direkt nach dem Protokollpräfix hinzuzufügen.
<parameterName>=<parameterValue>;Verwenden Sie am Ende jedes Paars aus Parameternamen und Parameterwerten ein Semikolon und setzen Sie nach dem Semikolon kein Leerzeichen, wie im folgenden Beispiel.
String url = "jdbc:athena://WorkGroup=primary;Region=us-east-1;...;";AthenaDriver driver = new AthenaDriver();Connection connection = driver.connect(url, null);Anmerkung
Wenn ein Parameter sowohl in der Verbindungszeichenfolge als auch im
Properties-Objekt angegeben ist, hat der Wert in der Verbindungszeichenfolge Vorrang. Es wird nicht empfohlen, an beiden Stellen denselben Parameter anzugeben. -
Fügen Sie die Parameterwerte als Argumente zu den Methoden von
AthenaDataSourcehinzu, wie im folgenden Beispiel.AthenaDataSource dataSource = new AthenaDataSource(); dataSource.setWorkGroup("primary"); dataSource.setRegion("us-east-2"); ... Connection connection = dataSource.getConnection(); ...
In einem SQL-Client eines Drittanbieters
Folgen Sie den Anweisungen des SQL-Clients, den Sie verwenden. In der Regel bietet der Client eine grafische Benutzeroberfläche zur Eingabe der Parameternamen und ihrer Werte.
Upgrade vom Athena-JDBC-v2-Treiber
Die meisten Verbindungsparameter von JDBC Version 3 sind abwärtskompatibel mit dem JDBC-Treiber der Version 2 (Simba). Das bedeutet, dass eine Verbindungszeichenfolge der Version 2 mit Version 3 des Treibers wiederverwendet werden kann. Einige Verbindungsparameter haben sich jedoch geändert. Diese Änderungen werden hier beschrieben. Wenn Sie auf den JDBC-Treiber der Version 3 aktualisieren, aktualisieren Sie gegebenenfalls Ihre bestehende Konfiguration.
Treiberklasse
Bei einigen BI-Tools werden Sie aufgefordert, die Treiberklasse aus der JDBC-Treiber-.jar-Datei anzugeben. Die meisten Tools finden diese Klasse automatisch. Der vollständig qualifizierte Name der Klasse im Treiber der Version 3 lautet com.amazon.athena.jdbc.AthenaDriver. Im Treiber der Version 2 war die Klasse com.simba.athena.jdbc.Driver.
Verbindungszeichenfolge
Der Treiber der Version 3 verwendet jdbc:athena:// für das Protokoll am Anfang der JDBC-Verbindungszeichenfolgen-URL. Der Treiber der Version 3 unterstützt auch das Protokoll jdbc:awsathena:// der Version 2, aber die Verwendung des Protokolls der Version 2 ist veraltet. Um undefiniertes Verhalten zu vermeiden, akzeptiert Version 3 keine Verbindungszeichenfolgen, die mit jdbc:awsathena:// beginnen, wenn Version 2 (oder ein anderer Treiber, der Verbindungszeichenfolgen akzeptiert, die mit jdbc:awsathena:// beginnen) mit der DriverManager
Anmeldeinformationsanbieter
Der Treiber der Version 2 verwendet vollqualifizierte Namen, um verschiedene Anbieter von Anmeldeinformationen zu identifizieren, z. B. com.simba.athena.amazonaws.auth.DefaultAWSCredentialsProviderChain. Der Treiber der Version 3 verwendet kürzere Namen, z. B. DefaultChain. Die neuen Namen werden in den entsprechenden Abschnitten für jeden Anbieter von Anmeldeinformationen beschrieben.
Anbieter für benutzerdefinierte Anmeldeinformationen, die für den Treiber der Version 2 geschrieben wurden, müssen für den Treiber der Version 3 geändert werden, um die AwsCredentialsProvider
Das PropertiesFileCredentialsProvider wird im JDBC-Treiber 3.x nicht unterstützt. Der Anbieter wurde im JDBC-Treiber 2.x verwendet, gehört aber zur Vorgängerversion des AWS SDK für Java, dessen Support bald ausläuft. Verwenden Sie stattdessen den AWS-Anmeldeinformationen eines Konfigurationsprofils-Anbieter, um dieselbe Funktionalität im JDBC-Treiber 3.x zu erhalten.
Protokollebene
Die folgende Tabelle zeigt die Unterschiede in den LogLevel-Parametern in den JDBC-Treibern Version 2 und Version 3.
| JDBC-Treiberversion | Parametername | Parametertyp | Standardwert | Mögliche Werte | Beispiel für Verbindungszeichenfolgen |
|---|---|---|---|---|---|
| v2 | LogLevel |
Optional | 0 | 0-6 | LogLevel=6; |
| v3 | LogLevel |
Optional | TRACE | OFF, ERROR, WARN, INFO, DEBUG, TRACE | LogLevel=INFO; |
Abrufen der Abfrage-ID
Im Treiber der Version 2 entpacken Sie eine Statement-Instance nach com.interfaces.core.IStatementQueryInfoProvider, eine Schnittstelle, die über zwei Methoden verfügt: #getPReparedQueryId und #getQueryId. Sie können diese Methoden verwenden, um die Abfrageausführungs-ID einer Abfrage abzurufen, die ausgeführt wurde.
Im Treiber der Version 3 entpacken Sie die Instances Statement, PreparedStatement, und ResultSet in die Schnittstelle com.amazon.athena.jdbc.AthenaResultSet. Die Schnittstelle hat eine Methode: #getQueryExecutionId.