Erste Schritte mit dem JDBC 3.x-Treiber - Amazon Athena

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 3.x-Treiber

Verwenden Sie die Informationen in diesem Abschnitt, um mit dem Amazon Athena JDBC 3.x-Treiber zu beginnen.

Installationsanleitungen

Sie können den JDBC 3.x-Treiber in einer benutzerdefinierten Anwendung oder von einem Drittanbieter-Client aus verwenden. SQL

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 Drittanbieter-Client SQL

Laden Sie die Treiber-Uber-JAR-Datei herunter und fügen Sie sie dem SQL Drittanbieter-Client hinzu, indem Sie den Anweisungen für diesen Client folgen.

Ausführen des Treibers

Um den Treiber auszuführen, können Sie eine benutzerdefinierte Anwendung oder einen SQL Drittanbieter-Client verwenden.

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 Drittanbieter-Client

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 auf derselben Oberfläche angezeigt.

Konfigurieren des Treibers

Sie können Verbindungsparameter verwenden, um den Amazon Athena JDBC Athena-Treiber zu konfigurieren. Informationen zu unterstützten Verbindungsparametern finden Sie unter Amazon-Athena-JDBC-3.x-Verbindungsparameter.

In einer benutzerdefinierten Anwendung

Gehen Sie wie folgt vor, 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 Sie aufrufenConnection#connect, übergeben Sie dieses Objekt zusammen mit demURL. Ein Beispiel dafür finden Sie in der Java-Beispielanwendung in Ausführen des Treibers.

  • Verwenden Sie in der Verbindungszeichenfolge (theURL) 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 AthenaDataSource hinzu, wie im folgenden Beispiel.

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

In einem SQL Drittanbieter-Client

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 der JDBC Version 3 sind abwärtskompatibel mit dem Treiber der Version 2 (Simba). JDBC 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 .jar Treiberdatei 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 VerbindungszeichenfolgeURL. Der Version 3-Treiber unterstützt auch das Version 2-Protokolljdbc:awsathena://, aber die Verwendung des Version 2-Protokolls ist veraltet. Um undefiniertes Verhalten zu vermeiden, akzeptiert Version 3 keine Verbindungszeichenfolgen, die damit beginnen, jdbc:awsathena:// ob Version 2 (oder ein anderer Treiber, der Verbindungszeichenfolgen akzeptiert, die mit beginnenjdbc:awsathena://) bei der Klasse registriert wurde. 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 geändert werden, damit der Treiber der Version 3 die AwsCredentialsProviderSchnittstelle aus der neuen Version AWS SDK for Java anstelle der AWSCredentialsProviderSchnittstelle aus der vorherigen AWS SDK for Java implementiert.

Der PropertiesFileCredentialsProvider wird im JDBC 3.x-Treiber nicht unterstützt. Der Anbieter wurde im JDBC 2.x-Treiber verwendet, gehört aber zur Vorgängerversion von AWS SDK für Java, deren Support sich dem Ende nähert. Verwenden Sie stattdessen den AWS -Anmeldeinformationen eines Konfigurationsprofils Anbieter, um dieselbe Funktionalität im JDBC 3.x-Treiber zu erreichen.

Protokollebene

Die folgende Tabelle zeigt die Unterschiede in den LogLevel Parametern der Treiber der JDBC Versionen 2 und 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.