View a markdown version of this page

Inizia con il driver JDBC 3.x - Amazon Athena

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Inizia con il driver JDBC 3.x

Usa le informazioni in questa sezione per iniziare a usare il driver JDBC 3.x di Amazon Athena.

Istruzioni di installazione

È possibile utilizzare il driver JDBC 3.x in un'applicazione personalizzata o da un client SQL di terze parti.

In un'applicazione personalizzata

Scarica il .zip file che contiene il driver e le relative dipendenze. Aggiungete il .jar file del driver e tutti gli altri .jar file della runtime-dependencies directory al percorso di classe Java dell'applicazione personalizzata. Ometti un .jar file solo se l'applicazione fornisce già una versione compatibile di tale dipendenza. Il AthenaStreamingJavaClient-2.0.jar file fornisce la classe. software.amazon.awssdk.services.athenastreaming.AthenaStreamingAsyncClient Includi questo file a meno che l'applicazione non fornisca già quella classe.

In un client SQL di terze parti

Scarica il file jar uber del driver e aggiungilo al client SQL di terze parti seguendo le istruzioni per quel client.

Esecuzione del driver

Per eseguire il driver, puoi utilizzare un'applicazione personalizzata o un client SQL di terze parti.

In un'applicazione personalizzata

Utilizza l'interfaccia JDBC per interagire con il driver JDBC da un programma. Il codice riportato di seguito mostra un'applicazione Java personalizzata di esempio.

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 un client SQL di terze parti

Consulta la documentazione del client SQL che stai utilizzando. In genere, si utilizza l'interfaccia utente grafica del client SQL per immettere e inviare la query e i risultati della query vengono visualizzati nella stessa interfaccia.

Configurazione del driver

Puoi utilizzare i parametri di connessione per configurare il driver JDBC di Amazon Athena. Per i parametri di connessione supportati, consulta Parametri di connessione JDBC 3.x di Amazon Athena.

In un'applicazione personalizzata

Per impostare i parametri di connessione per il driver JDBC in un'applicazione personalizzata, completa una delle seguenti operazioni:

  • Aggiungi i nomi dei parametri e i relativi valori a un oggetto Properties. Quando chiami Connection#connect, passa quell'oggetto insieme all'URL. Per un esempio, consulta l'applicazione Java di esempio in Esecuzione del driver.

  • Nella stringa di connessione (l'URL), utilizza il seguente formato per aggiungere i nomi dei parametri e i relativi valori direttamente dopo il prefisso del protocollo.

    <parameterName>=<parameterValue>;

    Utilizzate un punto e virgola alla fine di ogni coppia di name/parameter valori dei parametri e non lasciate spazi bianchi dopo il punto e virgola, come nell'esempio seguente.

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

    Se viene specificato un parametro sia nella stringa di connessione che nell'oggetto Properties, il valore nella stringa di connessione ha la precedenza. Non è consigliabile specificare lo stesso parametro in entrambe le posizioni.

  • Aggiungi i valori dei parametri come argomenti ai metodi di AthenaDataSource, come nell'esempio seguente.

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

In un client SQL di terze parti

Segui le istruzioni del client SQL che stai utilizzando. In genere, il client fornisce un'interfaccia utente grafica per inserire i nomi dei parametri e i relativi valori.

Aggiornamento dal driver JDBC v2 di Athena

La maggior parte dei parametri di connessione JDBC versione 3 sono retrocompatibili con il driver JDBC versione 2 (Simba). Ciò significa che una stringa di connessione della versione 2 può essere riutilizzata con la versione 3 del driver. Tuttavia, alcuni parametri di connessione sono cambiati. Queste modifiche sono descritte qui. Quando esegui l’aggiornamento al driver JDBC versione 3, aggiorna la configurazione esistente.

Classe del driver

Alcuni strumenti di BI richiedono di fornire la classe del driver dal file .jar del driver JDBC. La maggior parte degli strumenti trova questa classe automaticamente. Il nome completo della classe nel driver della versione 3 è com.amazon.athena.jdbc.AthenaDriver. Nel driver della versione 2, la classe era com.simba.athena.jdbc.Driver.

Stringa di connessione

Il driver della versione 3 utilizza jdbc:athena:// per il protocollo all’inizio della stringa di connessione JDBC. Il driver della versione 3 supporta anche il protocollo della versione 2jdbc:awsathena://, ma l’utilizzo del protocollo della versione 2 è obsoleto. Per evitare comportamenti indefiniti, la versione 3 non accetta stringhe di connessione che iniziano con jdbc:awsathena:// se la versione 2 (o qualsiasi altro driver che accetta stringhe di connessione che iniziano conjdbc:awsathena://) è stata registrata nella classe. DriverManager

Metadati della colonna String

Con il driver JDBC 3.x, non è più possibile utilizzare il parametro di connessione JDBC StringColumnLength 2.x. È invece possibile accedere alla precisione fornita da Athena tramite metodi di JDBC metadati standard, tra cui e. ResultSetMetaData.getPrecision ResultSetMetaData.getColumnDisplaySize Poiché il string tipo Athena è illimitato, la precisione riportata può esserlo. 2147483647

Se l'applicazione alloca buffer a dimensione fissa dai JDBC metadati, configurala per utilizzare buffer a dimensione variabile. Se l'applicazione richiede metadati di colonne limitate, esegui il cast della colonna nella query o esponi il cast tramite una vista. varchar(n) Scegliete un valore n che preservi tutti i dati previsti, poiché il casting a una dimensione inferiore può troncare i valori.

Provider di credenziali

Il driver della versione 2 utilizza nomi completi per identificare diversi provider di credenziali, ad esempio com.simba.athena.amazonaws.auth.DefaultAWSCredentialsProviderChain. Il driver della versione 3 utilizza nomi più brevi, ad esempio, DefaultChain. I nuovi nomi sono descritti nelle sezioni corrispondenti per ogni provider di credenziali.

I provider di credenziali personalizzati scritti per il driver della versione 2 devono essere modificati affinché il driver della versione 3 implementi l'AwsCredentialsProviderinterfaccia dalla nuova AWS SDK per Java invece dell'AWSCredentialsProviderinterfaccia precedente. AWS SDK per Java

Il PropertiesFileCredentialsProvider non è supportato nel driver JDBC 3.x. Il provider è stato utilizzato nel driver JDBC 2.x ma appartiene alla versione precedente dell' AWS SDK per Java che si avvicina alla fine del supporto. Per ottenere le stesse funzionalità nel driver JDBC 3.x, utilizzate invece il provider. AWS credenziali del profilo di configurazione

Livello di log

La tabella seguente mostra le differenze nei parametri LogLevel nei driver JDBC versione 2 e versione 3.

Versione driver JDBC Nome del parametro Tipo parametro Valore predefinito Valori possibili Esempio stringa connessione
  v2 LogLevel Facoltativo 0 0-6 LogLevel=6;
v3 LogLevel Facoltativo TRACE OFF, ERROR, WARN, INFO, DEBUG, TRACE LogLevel=INFO;

Recupero dell'ID query

Nel driver della versione 2, si spacchetta un'istanza Statement in com.interfaces.core.IStatementQueryInfoProvider, un'interfaccia con due metodi, #getPReparedQueryId e #getQueryId. È possibile utilizzare questi metodi per ottenere l'ID di esecuzione di una query che è stata eseguita.

Nel driver della versione 3, si spacchettano le istanze Statement, PreparedStatement e ResultSet sull'interfaccia com.amazon.athena.jdbc.AthenaResultSet. L'interfaccia ha un metodo: #getQueryExecutionId.