Usa la proiezione delle partizioni con Amazon Athena - 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à.

Usa la proiezione delle partizioni con Amazon Athena

È possibile utilizzare la proiezione delle partizioni in Athena per velocizzare l'elaborazione delle query di tabelle altamente partizionate e automatizzare la gestione delle partizioni.

Durante la proiezione delle partizioni, Athena calcola i valori e le posizioni delle partizioni utilizzando le proprietà della tabella configurate direttamente sulla tabella in AWS Glue. Le proprietà della tabella consentono ad Athena di "proiettare", o determinare, le informazioni sulla partizione necessarie anziché eseguire in AWS Glue Data Catalog una ricerca di metadati più dispendiosa in termini di tempo. Poiché le operazioni in memoria sono spesso più veloci delle operazioni remote, la proiezione delle partizioni può ridurre il runtime delle query su tabelle altamente partizionate. A seconda delle caratteristiche specifiche della query e dei dati sottostanti, la proiezione delle partizioni può ridurre significativamente il runtime delle query vincolate al recupero dei metadati delle partizioni.

Comprendi l'eliminazione delle partizioni rispetto alla proiezione delle partizioni

Il pruning delle partizioni raccoglie i metadati e li assegna solo alle partizioni che si applicano alla query. Questo spesso accelera le query. Athena utilizza il pruning delle partizioni per tutte le tabelle con colonne di partizione, incluse quelle configurate per la proiezione delle partizioni.

Normalmente, durante l'elaborazione delle interrogazioni, Athena effettua GetPartitions una chiamata a prima di eseguire AWS Glue Data Catalog l'eliminazione delle partizioni. Se una tabella ha un numero elevato di partizioni, l'utilizzo di GetPartitions può influire negativamente sulle prestazioni. Per evitare ciò, è possibile utilizzare la proiezione delle partizioni. La proiezione delle partizioni permette ad Athena di evitare di chiamare GetPartitions perché la configurazione della proiezione delle partizioni fornisce ad Athena tutte le informazioni necessarie per costruire le partizioni stesse.

Come usare la proiezione delle partizioni

Per utilizzare la proiezione delle partizioni, specificate gli intervalli di valori di partizione e i tipi di proiezione per ogni colonna di partizione nelle proprietà della tabella nel metastore Hive esterno o nel metastore Hive esterno. AWS Glue Data Catalog Queste proprietà personalizzate nella tabella permettono ad Athena di sapere quali modelli di partizione aspettarsi quando viene eseguita una query sulla tabella. Durante l'esecuzione delle query, Athena utilizza queste informazioni per proiettare i valori delle partizioni invece di recuperarli dal metastore Hive o esterno. AWS Glue Data Catalog Questo non solo riduce i tempi di esecuzione delle query, ma automatizza anche la gestione delle partizioni perché elimina la necessità di creare manualmente partizioni in Athena, AWS Glue o nel metastore Hive esterno.

Importante

L'abilitazione della proiezione delle partizioni su una tabella fa sì che Athena ignori tutti i metadati di partizione registrati nella tabella nel metastore o Hive. AWS Glue Data Catalog

Alcuni casi d'uso

Gli scenari in cui la proiezione delle partizioni è utile sono i seguenti:

  • Le query su una tabella altamente partizionata non vengono completate rapidamente come si desidera.

  • È possibile aggiungere regolarmente partizioni alle tabelle quando vengono create nuove partizioni di data o ora nei dati. Con la proiezione delle partizioni, è possibile configurare intervalli di date relativi che possono essere utilizzati all'arrivo di nuovi dati.

  • Si dispone di dati altamente partizionati in Amazon S3. Non è pratico modellare i dati nel tuo metastore AWS Glue Data Catalog o in Hive e le tue query ne leggono solo piccole parti.

Strutture di partizioni proiettabili

La proiezione delle partizioni è configurata più facilmente quando le partizioni seguono un modello prevedibile come, a titolo esemplificativo, il seguente:

  • Interi: qualsiasi sequenza continua di numeri interi come [1, 2, 3, 4, ..., 1000] o [0500, 0550, 0600, ..., 2500].

  • Date: qualsiasi sequenza continua di date o date e orari, ad esempio [20200101, 20200102, ..., 20201231] o [1-1-2020 00:00:00, 1-1-2020 01:00:00, ..., 12-31-2020 23:00:00].

  • Valori enumerati: un insieme finito di valori enumerati come codici aeroportuali o. Regioni AWS

  • Servizio AWS logs: i Servizio AWS log hanno in genere una struttura nota il cui schema di partizione è possibile specificare e AWS Glue che Athena può quindi utilizzare per la proiezione delle partizioni.

Come personalizzare il modello del percorso di partizione

Per impostazione predefinita, Athena crea le posizioni delle partizioni utilizzando il modulo s3://amzn-s3-demo-bucket/<table-root>/partition-col-1=<partition-col-1-val>/partition-col-2=<partition-col-2-val>/, ma se i dati sono organizzati in modo diverso, Athena offre un meccanismo per personalizzare questo modello di percorso. Per le fasi, consulta Come specificare posizioni di archiviazione S3 personalizzate.

Considerazioni e limitazioni

Tieni presente le seguenti considerazioni:

  • La proiezione delle partizioni elimina la necessità di specificare manualmente le partizioni AWS Glue o un metastore Hive esterno.

  • Quando abilitate la proiezione delle partizioni su una tabella, Athena ignora tutti i metadati di partizione nel metastore Hive esterno AWS Glue Data Catalog o nel metastore Hive per quella tabella.

  • Se una partizione proiettata non esiste in Amazon S3, Athena continuerà a proiettare la partizione. Athena non genera un errore, ma non viene restituito alcun dato. Tuttavia, se troppe partizioni sono vuote, le prestazioni possono essere inferiori rispetto alle partizioni tradizionali. AWS Glue Se più della metà delle partizioni proiettate sono vuote, si consiglia di utilizzare partizioni tradizionali.

  • Le query per valori che superano i limiti di intervallo definiti per la proiezione della partizione non restituiscono un errore. La query invece viene eseguita, ma restituisce zero righe. Ad esempio, se si dispone di dati relativi al tempo che iniziano nel 2020 e sono definiti come 'projection.timestamp.range'='2020/01/01,NOW', una query come SELECT * FROM table-name WHERE timestamp = '2019/02/02' verrà completata correttamente, ma restituirà zero righe.

  • La proiezione delle partizioni è utilizzabile solo quando la tabella viene interrogata tramite Athena. Se la stessa tabella viene letta tramite un altro servizio come Amazon Redshift Spectrum, Athena for Spark o EMR Amazon, vengono utilizzati i metadati della partizione standard.

  • Poiché la proiezione delle partizioni è una funzionalità DML esclusiva, SHOW PARTITIONS non elenca le partizioni proiettate da Athena ma non registrate nel catalogo o nel metastore Hive esterno. AWS Glue

  • Athena non utilizza le proprietà della tabella delle viste come configurazione per la proiezione delle partizioni. Per aggirare questa limitazione, configurare e abilitare la proiezione della partizione nelle proprietà della tabella per le tabelle a cui fanno riferimento le viste.

  • I filtri dati di Lake Formation non possono essere utilizzati con la proiezione delle partizioni nella versione 2 del motore Athena.

Video

Il video seguente mostra come utilizzare la proiezione delle partizioni per migliorare le prestazioni delle vostre query in Athena.