Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Come utilizzare prefissi personalizzati e partizionamento dinamico

Modalità Focus
Come utilizzare prefissi personalizzati e partizionamento dinamico - 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à.

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à.

Firehose può essere configurato con prefissi personalizzati e partizionamento dinamico. Grazie a queste funzionalità, è possibile configurare le chiavi Amazon S3 e impostare schemi di partizionamento che supportano meglio il proprio caso d'uso. È inoltre possibile utilizzare la proiezione delle partizioni con questi schemi di partizionamento e configurarli di conseguenza.

Ad esempio, è possibile utilizzare la funzione di prefisso personalizzato per ottenere chiavi Amazon S3 con date formattate in ISO anziché lo schema yyyy/MM/dd/HH di default.

È inoltre possibile combinare prefissi personalizzati con il partizionamento dinamico per estrarre una proprietà come dai messaggi customer_id Firehose, come nell'esempio seguente.

prefix/!{timestamp:yyyy}-!{timestamp:MM}-!{timestamp:dd}/!{partitionKeyFromQuery:customer_id}/

Con quel prefisso Amazon S3, il flusso di distribuzione di Firehose scriverebbe oggetti su chiavi come. s3://amzn-s3-demo-bucket/prefix/2021-11-01/customer-1234/file.extension Per una proprietà come customer_id dove i valori potrebbero non essere noti in anticipo, è possibile utilizzare il tipo di proiezione della partizione injected e usare un'istruzione CREATE TABLE come la seguente:

CREATE EXTERNAL TABLE my_ingested_data3 ( ... ) ... PARTITIONED BY ( day STRING, customer_id STRING ) LOCATION "s3://amzn-s3-demo-bucket/prefix/" TBLPROPERTIES ( "projection.enabled" = "true", "projection.day.type" = "date", "projection.day.format" = "yyyy-MM-dd", "projection.day.range" = "2021-01-01,NOW", "projection.day.interval" = "1", "projection.day.interval.unit" = "DAYS", "projection.customer_id.type" = "injected", "storage.location.template" = "s3://amzn-s3-demo-bucket/prefix/${day}/${customer_id}/" )

Quando si esegue una query su una tabella con una chiave di partizione di tipo injected, la query deve includere un valore per quella chiave di partizione. Una query per la tabella my_ingested_data3 potrebbe essere simile alla seguente:

SELECT * FROM my_ingested_data3 WHERE day BETWEEN '2021-11-01' AND '2021-11-30' AND customer_id = 'customer-1234'

Usa il tipo DATE per la chiave di partizione del giorno

Perché i valori per la chiave di partizione day sono formattati in ISO, è anche possibile utilizzare il tipo DATE per la chiave di partizione del giorno invece di STRING, come nel seguente esempio:

PARTITIONED BY (day DATE, customer_id STRING)

Quando si esegue una query, questa strategia consente di utilizzare le funzioni data sulla chiave di partizione senza analizzare o eseguire il casting, come nell'esempio seguente:

SELECT * FROM my_ingested_data3 WHERE day > CURRENT_DATE - INTERVAL '7' DAY AND customer_id = 'customer-1234'
Nota

La specificazione di una chiave di partizione di tipo DATE presuppone che per creare chiavi Amazon S3 con date in formato ISO sia stata utilizzata la funzionalità di prefisso personalizzato. Se si utilizza il formato Firehose predefinito diyyyy/MM/dd/HH, è necessario specificare la chiave di partizione come type string anche se la proprietà della tabella corrispondente è di tipodate, come nell'esempio seguente:

PARTITIONED BY ( `mydate` string) TBLPROPERTIES ( 'projection.enabled'='true', ... 'projection.mydate.type'='date', 'storage.location.template'='s3://amzn-s3-demo-bucket/prefix/${mydate}')

In questa pagina

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.