Erste Schritte mit dem JDBC-Treiber 3.x - 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-Treiber 3.x

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

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 Sie Connection#connect aufrufen, ü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 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-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-Klasse registriert wurde.

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-Schnittstelle aus der neuen AWS SDK für Java anstelle der AwsCredentialsProvider-Schnittstelle aus der vorherigen AWS SDK für Java zu implementieren.

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.