Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
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 den Treiber und seine Abhängigkeiten enthält. Fügen Sie die .jar Treiberdatei und alle anderen .jar Dateien im runtime-dependencies Verzeichnis zum Java-Klassenpfad Ihrer benutzerdefinierten Anwendung hinzu. Lassen Sie eine .jar Datei nur weg, wenn Ihre Anwendung bereits eine kompatible Version dieser Abhängigkeit bereitstellt. Die AthenaStreamingJavaClient-2.0.jar Datei stellt die software.amazon.awssdk.services.athenastreaming.AthenaStreamingAsyncClient Klasse bereit. Schließen Sie diese Datei ein, sofern Ihre Anwendung diese Klasse nicht bereits bereitstellt.
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 ein Semikolon am Ende jedes name/parameter Parameter-Wertepaars, und lassen Sie nach dem Semikolon kein Leerzeichen frei, 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 beginnen, jdbc:awsathena:// wenn Version 2 (oder ein anderer Treiber, der Verbindungszeichenfolgen akzeptiert, die mit beginnenjdbc:awsathena://) bei der Klasse registriert wurde. DriverManager
Metadaten der Zeichenkettenspalte
Mit dem JDBC 3.x-Treiber können Sie den JDBC StringColumnLength 2.x-Verbindungsparameter nicht mehr verwenden. Stattdessen können Sie über JDBC Standard-Metadatenmethoden wie und auf die Genauigkeit zugreifen, die Athena bereitstellt. ResultSetMetaData.getPrecision ResultSetMetaData.getColumnDisplaySize Da der string Athena-Typ unbegrenzt ist, kann die angegebene Genauigkeit unterschiedlich sein. 2147483647
Wenn Ihre Anwendung Puffer fester Größe aus JDBC Metadaten zuweist, konfigurieren Sie sie so, dass Puffer mit variabler Größe verwendet werden. Wenn Ihre Anwendung begrenzte Spaltenmetadaten benötigt, wandeln Sie die Spalte in die Abfrage um, oder stellen Sie die Umwandlung varchar( in einer Ansicht zur Verfügung. Wählen Sie einen Wertn)n, bei dem alle erwarteten Daten erhalten bleiben, da bei der Umwandlung in eine kleinere Größe die Werte gekürzt werden können.
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, damit die AwsCredentialsProvider
Das PropertiesFileCredentialsProvider wird im JDBC-Treiber 3.x nicht unterstützt. Der Anbieter wurde im JDBC 2.x-Treiber verwendet, gehört aber zur vorherigen Version des AWS SDK für Java, deren Unterstützung bald ausläuft. Verwenden Sie stattdessen den AWS Anmeldeinformationen für das Konfigurationsprofil-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.