Imposta la proiezione delle partizioni - 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à.

Imposta la proiezione delle partizioni

L'impostazione della proiezione delle partizioni nelle proprietà di una tabella è un processo in due fasi:

  1. Specificare gli intervalli di dati e i modelli pertinenti per ogni colonna di partizione oppure utilizzare un modello personalizzato.

  2. Attivare la proiezione delle partizioni per la tabella.

Nota

Prima di aggiungere le proprietà di proiezione delle partizioni a una tabella esistente, la colonna di partizione per la quale stai impostando tali proprietà deve già esistere nello schema della tabella. Se la colonna di partizione non esiste ancora, è necessario aggiungere manualmente una colonna di partizione alla tabella esistente. AWS Glue non esegue questo passaggio automaticamente.

Questa sezione mostra come impostare le proprietà della tabella per AWS Glue. Per impostarli, puoi utilizzare la AWS Glue console, le CREATE TABLE query Athena o le operazioni. AWS Glue API La procedura seguente mostra come impostare le proprietà nella AWS Glue console.

Per configurare e abilitare la proiezione delle partizioni utilizzando la console AWS Glue
  1. Accedi a AWS Management Console e apri la AWS Glue console all'indirizzo. https://console.aws.amazon.com/glue/

  2. Scegliere la scheda Tabelle.

    Nella scheda Tabelle è possibile modificare le tabelle esistenti oppure scegliere Aggiungi tabelle per crearne di nuove. Per informazioni sull'aggiunta manuale di tabelle o con un crawler, consulta Utilizzo delle tabelle nella console AWS Glue nella Guida per gli sviluppatori di AWS Glue .

  3. Nell'elenco delle tabelle scegliere il collegamento per la tabella che si desidera modificare.

    Nella AWS Glue console, scegli una tabella da modificare.
  4. Scegli Actions (Operazioni), Edit (Modifica).

  5. Nella pagina Edit table (Modifica tabella), nella sezione Table properties (Proprietà della tabella), per ogni colonna partizionata, aggiungi la seguente coppia chiave-valore:

    1. Per Chiave, aggiungere projection.columnName.type.

    2. Per Valore, aggiungere uno dei tipi supportati: enum, integer, date o injected. Per ulteriori informazioni, consulta Tipi supportati per la proiezione delle partizioni.

  6. Seguendo le indicazioni fornite in Tipi supportati per la proiezione delle partizioni, aggiungere ulteriori coppie chiave-valore in base ai requisiti di configurazione.

    La configurazione della tabella di esempio seguente configura la colonna year per la proiezione delle partizioni, limitando i valori che possono essere restituiti a un intervallo compreso tra il 2010 e il 2016.

    Configurazione della proiezione delle partizioni per una colonna di partizione nelle proprietà della tabella della console AWS Glue .
  7. Aggiungere una coppia chiave-valore per abilitare la proiezione delle partizioni. Per Chiave, immettere projection.enabled, e per il relativo valore, immettere true.

    Nota

    È possibile disattivare la proiezione delle partizioni su questa tabella in qualsiasi momento impostando projection.enabled su false.

  8. Quando hai terminato, seleziona Save (Salva).

  9. Nell'editor di query Athena, eseguire una query sulle colonne configurate per la tabella.

    La query di esempio seguente utilizza SELECT DISTINCT per restituire i valori univoci della colonna year. Il database contiene dati dal 1987 al 2016, ma la proprietà projection.year.range limita i valori restituiti agli anni dal 2010 al 2016.

    Esecuzione di query su una colonna che utilizza la proiezione delle partizioni.
    Nota

    Se si imposta su projection.enabled su true ma non si riesce a configurare una o più colonne di partizione, viene visualizzato un messaggio di errore analogo al seguente:

    HIVE_METASTORE_ERROR: Table database_name.table_name is configured for partition projection, but the following partition columns are missing projection configuration: [column_name] (table database_name.table_name).

Come specificare posizioni di archiviazione S3 personalizzate

Quando modifichi le proprietà della tabella in AWS Glue, puoi anche specificare un modello di percorso Amazon S3 personalizzato per le partizioni proiettate. Un modello personalizzato consente ad Athena di mappare correttamente i valori delle partizioni alle posizioni dei file Amazon S3 personalizzate che non seguono un modello .../column=value/... tipico.

L'utilizzo di un modello personalizzato è facoltativo. Tuttavia, se si utilizza un modello personalizzato, il modello deve contenere un segnaposto per ogni colonna di partizione. Le posizioni basate su modelli devono terminare con una barra in avanti in modo che i file di dati partizionati risiedano in una "cartella" per partizione.

Per specificare un modello di posizione della partizione personalizzato
  1. Seguendo i passaggi per configurare e abilitare la proiezione delle partizioni utilizzando la AWS Glue console, aggiungi un'ulteriore coppia chiave-valore che specifica un modello personalizzato come segue:

    1. In Chiave, inserire storage.location.template.

    2. In Valore, specificare una posizione che includa un segnaposto per ogni colonna di partizione. Assicurarsi che ogni segnaposto (e il percorso S3 stesso) sia terminato da una singola barra in avanti.

      I valori del modello di esempio seguenti presuppongono una tabella con colonne di partizione a, b e c.

      s3://amzn-s3-demo-bucket/table_root/a=${a}/${b}/some_static_subdirectory/${c}/
      s3://amzn-s3-demo-bucket/table_root/c=${c}/${b}/some_static_subdirectory/${a}/${b}/${c}/${c}/

      Per la stessa tabella, il valore del modello di esempio seguente non è valido perché non contiene segnaposto per la colonna c.

      s3://amzn-s3-demo-bucket/table_root/a=${a}/${b}/some_static_subdirectory/
  2. Scegli Applica.