Opzioni avanzate - Amazon Athena

Opzioni avanzate

Dimensioni di recupero

Numero massimo di risultati (righe) da restituire in questa richiesta. Per informazioni sul parametro, consulta GetQuery MaxResults. Per l'API di streaming, il valore massimo è pari a 10000000.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
RowsToFetchPerBlock Facoltativo

1000 per il non streaming

20000 per lo streaming

RowsToFetchPerBlock=20000;

Sistema di recupero (fetcher) dei risultati

Il fetcher dei risultati predefinito scarica i risultati delle query direttamente da Amazon S3 senza utilizzare le operazioni API Athena. Quando rileva situazioni in cui il download diretto di S3 non è possibile, torna automaticamente a utilizzare l'operazione API GetQueryResultsStream. Ad esempio, ciò accade quando i risultati delle query vengono crittografati con l'opzione CSE_KMS.

L'uso del fetcher auto è consigliato nella maggior parte delle situazioni. Tuttavia, se le policy IAM o le policy di bucket S3 utilizzano la condizione s3:CalledVia per limitare l'accesso agli oggetti S3 alle richieste di Athena, l'auto fetcher tenta prima di scaricare i risultati da S3 e poi torna a utilizzare GetQueryResultsStream. In questa situazione, si potrebbe voler impostare il ResultFetcher su GetQueryResultsStream per evitare una chiamata API aggiuntiva.

Nota

Il driver riconosce ancora i parametri Enable streaming API (UseResultsetStreaming=1;) e Enable S3 fetcher (EnableS3Fetcher=1;). Tuttavia, consigliamo di utilizzare il parametro ResultFetcher per una migliore esperienza.

Nome stringa connessione Tipo parametro Valore predefinito Valori possibili Esempio stringa connessione

ResultFetcher

Facoltativo auto auto, S3, GetQueryResults, GetQueryResultsStream ResultFetcher=auto

Come abilitare il riutilizzo dei risultati

Specifica se i risultati della query precedente possono essere riutilizzati quando la query viene eseguita. Per informazioni sul parametro, consulta ResultReuseByAgeConfiguration.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
EnableResultReuse Facoltativo 0 EnableResultReuse=1;

Età massima per il riutilizzo di risultati

Specifica, in minuti, l'età massima dei risultati di una query precedente che Athena debba considerare per il riutilizzo. Per informazioni sul parametro, consulta ResultReuseByAgeConfiguration.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
ReusedResultMaxAgeInMinutes Facoltativo 60 ReusedResultMaxAgeInMinutes=90;

Utilizzo di più thread S3

Recupera i dati da Amazon S3 utilizzando più thread. Quando questa opzione è abilitata, il file di risultati archiviato nel bucket Amazon S3 viene recuperato in parallelo utilizzando più thread.

Abilita questa opzione solo se disponi di una buona larghezza di banda della rete. Ad esempio, nelle nostre misurazioni su un'istanza EC2 c5.2xlarge, un client S3 a thread singolo ha raggiunto 1 Gbps, mentre i client S3 a thread multiplo hanno raggiunto 4 Gbps di velocità di trasmissione effettiva di rete.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione

UseMultipleS3Threads

Facoltativo 0 UseMultipleS3Threads=1;

Utilizzo di schema e catalogo singolo

Per impostazione predefinita, il driver ODBC esegue query su Athena per ottenere l'elenco dei cataloghi e degli schemi disponibili. Questa opzione prevede che il driver utilizzi il catalogo e lo schema specificati dalla finestra di dialogo di configurazione di ODBC Data Source Administrator o dai parametri di connessione.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
UseSingleCatalogAndSchema Facoltativo 0 UseSingleCatalogAndSchema=1;

Utilizzare query per elencare tabelle

Per i tipi di catalogo LAMBDA, consente al driver ODBC di inviare una query SHOW TABLES per ottenere un elenco di tabelle disponibili. Questa è l'impostazione di default. Se questo parametro è impostato su 0, per ottenere un elenco di tabelle disponibili il driver ODBC utilizza l'API di Athena ListTableMetadata. Si noti che, per i tipi di catalogo LAMBDA, l'utilizzo di ListTableMetadata porta alla regressione delle prestazioni.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
UseQueryToListTables Facoltativo 1 UseQueryToListTables=1;

Utilizzare WCHAR per i tipi di stringhe

Per impostazione predefinita, il driver ODBC utilizza SQL_CHAR e SQL_VARCHAR per Athena i tipi di dati stringa char, varchar, string, array, map<>, struct<>, e row. L'impostazione di questo parametro su 1 forza l'utilizzo da parte del driver di SQL_WCHAR e SQL_WVARCHAR per i tipi di dati a stringa. I tipi di caratteri wide e wide variable vengono utilizzati per garantire che i caratteri di diverse lingue possano essere archiviati e recuperati correttamente.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
UseWCharForStringTypes Facoltativo 0 UseWCharForStringTypes=1;

Esecuzione di query su cataloghi esterni

Specifica se il driver deve eseguire query sui cataloghi esterni ad Athena. Per ulteriori informazioni, consulta Migrare al driver ODBC 2.x.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
QueryExternalCatalogs Facoltativo 0 QueryExternalCatalogs=1;

Verifica di SSL

Controlla se verificare i certificati SSL quando utilizzi l'SDK di AWS. Questo valore viene passato al parametro ClientConfiguration.verifySSL. Per ulteriori informazioni, consulta Configurazione client AWS nella Guida per gli sviluppatori di AWS SDK per C++.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
VerifySSL Facoltativo 1 VerifySSL=0;

Dimensione del blocco dei risultati S3

Specifica, in byte, la dimensione del blocco da scaricare per una singola richiesta API GetObject di Amazon S3. Il valore predefinito è pari a 67108864 (64 MB). I valori minimo e massimo consentiti sono 10485760 (10 MB) e 2146435072 (circa 2 GB).

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
S3ResultBlockSize Facoltativo 67108864 S3ResultBlockSize=268435456;

Lunghezza della colonna di stringa

Speciifica la lunghezza delle colonne con il tipo di dati string. Poiché Athena utilizza il tipo di dati stringa Apache Hive, che non ha una precisione definita, la lunghezza predefinita riportata da Athena è 2147483647 (INT_MAX). Poiché gli strumenti di BI di solito preallocano la memoria per le colonne, ciò può comportare un elevato consumo di memoria. Per evitare ciò, il driver ODBC Athena limita la precisione riportata per le colonne del tipo di dati string ed espone il parametro di connessione StringColumnLength in modo che il valore predefinito possa essere modificato.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
StringColumnLength Facoltativo 255 StringColumnLength=65535;

Lunghezza della colonna di tipo complesso

Speciifica la lunghezza delle colonne con tipi di dati complessi come mapstruct, e array. Come StringColumnLength, Athena riporta una precisione pari a 0 per le colonne con tipi di dati complessi. Il driver ODBC Athena imposta la precisione predefinita per le colonne con tipi di dati complessi ed espone il parametro di connessione ComplexTypeColumnLength in modo che il valore predefinito possa essere modificato.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
ComplexTypeColumnLength Facoltativo 65535 ComplexTypeColumnLength=123456;

Certificato CA attendibile

Indica al client HTTP dove trovare l'archivio attendibile con i certificati SSL. Questo valore viene passato al parametro ClientConfiguration.caFile. Per ulteriori informazioni, consulta Configurazione client AWS nella Guida per gli sviluppatori di AWS SDK per C++.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
TrustedCerts Facoltativo %INSTALL_PATH%/bin TrustedCerts=C:\\Program Files\\Amazon Athena ODBC Driver\\bin\\cacert.pem;

Periodo minimo del polling

Specifica in millisecondi il valore minimo di attesa prima di eseguire il polling di Athena per verificare lo stato di esecuzione della query.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
MinQueryExecutionPollingInterval Facoltativo 100 MinQueryExecutionPollingInterval=200;

Periodo massimo del polling

Specifica in millisecondi il valore massimo di attesa prima di eseguire il polling di Athena per verificare lo stato di esecuzione della query.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
MaxQueryExecutionPollingInterval Facoltativo 60000 MaxQueryExecutionPollingInterval=1000;

Moltiplicatore polling

Specifica il fattore di incremento del periodo del polling. Per impostazione predefinita, il polling inizia con il valore del periodo minimo del polling e raddoppia con ogni polling fino a raggiungere il valore del periodo massimo di polling.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
QueryExecutionPollingIntervalMultiplier Facoltativo 2 QueryExecutionPollingIntervalMultiplier=2;

Durata massima del polling

Specifica il valore massimo in millisecondi entro cui un driver può eseguire il polling su Athena per verificare lo stato di esecuzione delle query.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
MaxPollDuration Facoltativo 1800000 MaxPollDuration=1800000;

Timeout di connessione

La quantità di tempo (in millisecondi) di attesa prima che venga stabilita una connessione HTTP. Questo valore è impostato per il client Athena ClientConfiguration.connectTimeoutMs. Se non è specificato, viene utilizzato il valore predefinito curl. Per informazioni sui parametri di connessione, consulta Configurazione client nella Guida per gli sviluppatori di AWS SDK per Java.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
ConnectionTimeout (Timeout disconnessione) Facoltativo 0 ConnectionTimeout=2000;

Timeout richiesta

Specifica il timeout di lettura dei socket per i client HTTP. Questo valore è impostato per il parametro ClientConfiguration.requestTimeoutMs del client Athena. Per informazioni, consulta Configurazione client nella Guida per gli sviluppatori di AWS SDK per Java.

Nome stringa connessione Tipo parametro Valore predefinito Esempio stringa connessione
RequestTimeout Facoltativo 10000 RequestTimeout=30000;