Connettore Amazon Athena TPC Benchmark DS (TPC-DS)
Il connettore TPC-DS per Amazon Athena consente ad Amazon Athena di comunicare con un'origine di dati TPC Benchmark DS generati casualmente per l'utilizzo nel benchmarking e nei test funzionali di Athena Federation. Il connettore TPC-DS Athena genera un database compatibile con TPC-DS in corrispondenza di uno dei quattro fattori di scala. Non consigliamo di utilizzare questo connettore in alternativa ai test sulle prestazioni dei data lake basati su Amazon S3.
Questo connettore può essere registrato nel Catalogo dati Glue come catalogo federato. Supporta i controlli di accesso ai dati definiti in Lake Formation a livello di catalogo, database, tabella, colonna, riga e tag. Questo connettore utilizza connessioni Glue per centralizzare le proprietà di configurazione in Glue.
Prerequisiti
Implementa il connettore sul tuo Account AWS utilizzando la console Athena o AWS Serverless Application Repository. Per ulteriori informazioni, consulta Crea una connessione di un'origine dati o Utilizzare AWS Serverless Application Repository per distribuire un connettore origine dati.
Parametri
Utilizzare i parametri illustrati in questa sezione per configurare il connettore TPC-DS.
Nota
I connettori di origine dati Athena creati il 3 dicembre 2024 e versioni successive utilizzano connessioni AWS Glue.
I nomi e le definizioni dei parametri elencati di seguito si riferiscono ai connettori di origine dati Athena creati prima del 3 dicembre 2024. Questi possono differire dalle rispettive proprietà diconnessione AWS Glue. A partire dal 3 dicembre 2024, utilizzare i parametri seguenti solo quando distribuisci manualmente una versione precedente di un connettore di origine dati Athena.
Si consiglia di configurare un connettore TPC-DS utilizzando un oggetto di connessioni Glue. Per fare ciò, impostare la variabile di ambiente glue_connection del connettore TPC-DS Lambda sul nome della connessione Glue da utilizzare.
Proprietà delle connessioni Glue
Utilizzare il seguente comando per ottenere lo schema di un oggetto di connessione Glue. Questo schema contiene tutti i parametri che possono essere utilizzati per controllare la connessione.
aws glue describe-connection-type --connection-type TPCDS
Proprietà dell'ambiente Lambda
-
glue_connection: specifica il nome della connessione Glue associata al connettore federato.
Nota
-
Tutti i connettori che utilizzano le connessioni Glue devono utilizzare Gestione dei segreti AWS per memorizzare le credenziali.
-
Il connettore TPC-DS creato utilizzando le connessioni Glue non supporta l'uso di un gestore multiplexing.
-
Il connettore TPC-DS creato utilizzando le connessioni Glue supporta solo 2
ConnectionSchemaVersion.
-
spill_bucket: specifica il bucket Amazon S3 per i dati che superano i limiti della funzione Lambda.
-
spill_prefix: (facoltativo) per impostazione predefinita, viene utilizzata una sottocartella nello
spill_bucketspecificato chiamataathena-federation-spill. Ti consigliamo di configurare un ciclo di vita dell'archiviazione di Amazon S3 in questa posizione per eliminare gli spill più vecchi di un numero predeterminato di giorni o ore. -
spill_put_request_headers: (facoltativo) una mappa codificata in JSON delle intestazioni e dei valori della richiesta per la richiesta
putObjectdi Amazon S3 utilizzata per lo spill (ad esempio,{"x-amz-server-side-encryption" : "AES256"}). Per altre possibili intestazioni, consulta l'argomento relativo a PutObject nella Documentazione di riferimento dell'API di Amazon Simple Storage Service. -
kms_key_id: (facoltativo) per impostazione predefinita, tutti i dati riversati in Amazon S3 vengono crittografati utilizzando la modalità di crittografia autenticata AES-GCM e una chiave generata casualmente. Per fare in modo che la tua funzione Lambda utilizzi chiavi di crittografia più potenti generate da KMS come
a7e63k4b-8loc-40db-a2a1-4d0en2cd8331, puoi specificare l'ID della chiave KMS. -
disable_spill_encryption: (facoltativo) se impostato su
True, disabilita la crittografia dello spill. L'impostazione predefinita èFalse: in questo modo, i dati riversati su S3 vengono crittografati utilizzando AES-GCM tramite una chiave generata casualmente o una chiave generata mediante KMS. La disabilitazione della crittografia dello spill può migliorare le prestazioni, soprattutto se la posizione dello spill utilizza la crittografia lato server.
Esecuzione di test su database e tabelle
Il connettore TPC-DS per Athena genera un database compatibile con TPC-DS in uno dei quattro fattori di scala tpcds1, tpcds10, tpcds100, tpcds250 o tpcds1000.
Riepilogo delle tabelle
Per un elenco completo delle tabelle e delle colonne dei dati del test, esegui le query SHOW
TABLES o DESCRIBE TABLE. Per comodità, viene fornito il seguente riepilogo delle tabelle.
-
call_center
-
catalog_page
-
catalog_returns
-
catalog_sales
-
customer
-
customer_address
-
customer_demographics
-
date_dim
-
dbgen_version
-
household_demographics
-
income_band
-
Inventory
-
elemento
-
promotion
-
motivo
-
ship_mode
-
memorizzazione
-
store_returns
-
store_sales
-
time_dim
-
warehouse
-
web_page
-
web_returns
-
web_sales
-
web_site
Per le query TPC-DS compatibili con questo schema e i dati generati, consulta la directory athena-tpcds/src/main/resources/queries
Query di esempio
La query SELECT di esempio seguente interroga il catalogo tpcds in merito ai dati demografici dei clienti in contee specifiche.
SELECT cd_gender, cd_marital_status, cd_education_status, count(*) cnt1, cd_purchase_estimate, count(*) cnt2, cd_credit_rating, count(*) cnt3, cd_dep_count, count(*) cnt4, cd_dep_employed_count, count(*) cnt5, cd_dep_college_count, count(*) cnt6 FROM "lambda:tpcds".tpcds1.customer c, "lambda:tpcds".tpcds1.customer_address ca, "lambda:tpcds".tpcds1.customer_demographics WHERE c.c_current_addr_sk = ca.ca_address_sk AND ca_county IN ('Rush County', 'Toole County', 'Jefferson County', 'Dona Ana County', 'La Porte County') AND cd_demo_sk = c.c_current_cdemo_sk AND exists(SELECT * FROM "lambda:tpcds".tpcds1.store_sales, "lambda:tpcds".tpcds1.date_dim WHERE c.c_customer_sk = ss_customer_sk AND ss_sold_date_sk = d_date_sk AND d_year = 2002 AND d_moy BETWEEN 1 AND 1 + 3) AND (exists(SELECT * FROM "lambda:tpcds".tpcds1.web_sales, "lambda:tpcds".tpcds1.date_dim WHERE c.c_customer_sk = ws_bill_customer_sk AND ws_sold_date_sk = d_date_sk AND d_year = 2002 AND d_moy BETWEEN 1 AND 1 + 3) OR exists(SELECT * FROM "lambda:tpcds".tpcds1.catalog_sales, "lambda:tpcds".tpcds1.date_dim WHERE c.c_customer_sk = cs_ship_customer_sk AND cs_sold_date_sk = d_date_sk AND d_year = 2002 AND d_moy BETWEEN 1 AND 1 + 3)) GROUP BY cd_gender, cd_marital_status, cd_education_status, cd_purchase_estimate, cd_credit_rating, cd_dep_count, cd_dep_employed_count, cd_dep_college_count ORDER BY cd_gender, cd_marital_status, cd_education_status, cd_purchase_estimate, cd_credit_rating, cd_dep_count, cd_dep_employed_count, cd_dep_college_count LIMIT 100
Autorizzazioni richieste
Consulta la sezione Policies del file athena-tpcds.yaml
-
Accesso in scrittura ad Amazon S3: per trasferire i risultati di query di grandi dimensioni, il connettore richiede l'accesso in scrittura a una posizione in Amazon S3.
-
Athena GetQueryExecution: il connettore utilizza questa autorizzazione per interrompersi rapidamente con esito negativo quando la query a monte di Athena è terminata.
Prestazioni
Il connettore TPC-DS per Athena tenta di condurre le query in parallelo in base al fattore di scala scelto. Il pushdown dei predicati viene eseguito all'interno della funzione Lambda.
Informazioni sulla licenza
Il progetto del connettore TPC-DS per Amazon Athena è concesso in licenza ai sensi della Licenza Apache-2.0
Risorse aggiuntive
Per ulteriori informazioni su questo connettore, visita il sito corrispondente