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à.
Utilizzo di S3 Select con Hive per migliorare le prestazioni
Con la EMR versione 5.18.0 e successive di Amazon, puoi usare S3 Select
S3 Select è supportato con tabelle Hive basate su JSON file CSV and e impostando la variabile di configurazione su durante la s3select.filter
sessione Hive. true
Per maggiori informazioni ed esempi, consulta Specifica di S3 Select nel codice.
S3 Select è adatto alla mia applicazione?
È consigliabile eseguire analisi comparative delle applicazioni con e senza S3 Select per vedere se l'utilizzo di tale caratteristica può risultare idoneo per l'applicazione.
Per determinare se l'applicazione è idonea per l'uso di S3 Select, utilizza le seguenti linee guida:
-
La query filtra più di metà del set di dati originale.
-
I predicati del filtro della query utilizzano colonne che dispongono di un tipo di dati supportato da Amazon S3 Select. Per ulteriori informazioni, consulta Tipi di dati nella Guida per l'utente di Amazon Simple Storage Service.
-
La tua connessione di rete tra Amazon S3 e il EMR cluster Amazon ha una buona velocità di trasferimento e larghezza di banda disponibile. Amazon S3 non comprime HTTP le risposte, quindi è probabile che la dimensione della risposta aumenti per i file di input compressi.
Considerazioni e limitazioni
-
La crittografia lato server di Amazon S3 con chiavi di crittografia fornite dal cliente (SSE-C) e la crittografia lato client non sono supportate.
-
La proprietà
AllowQuotedRecordDelimiters
non è supportata. Se questa proprietà è specificata, la query ha esito negativo. -
Sono supportati solo i file CSV in formato -8. JSON UTF Multilinea CSVs e non JSON sono supportati.
-
Sono supportati solo i file non compressi, gzip o bzip2.
-
I caratteri di commento nell'ultima riga non sono supportati.
-
Le righe vuote alla fine di un file non vengono elaborate.
-
Hive on Amazon EMR supporta i tipi di dati primitivi supportati da S3 Select. Per ulteriori informazioni, consulta Tipi di dati nella Guida per l'utente di Amazon Simple Storage Service.
Specifica di S3 Select nel codice
Per utilizzare S3 Select nella tabella Hive, crea la tabella specificando com.amazonaws.emr.s3select.hive.S3SelectableTextInputFormat
come nome della classe INPUTFORMAT
e specifica un valore per la proprietà s3select.format
utilizzando la clausola TBLPROPERTIES
.
Per impostazione predefinita, S3 Select è disabilitato quando si eseguono query. Abilita S3 Select impostando s3select.filter
su true
nella sessione Hive, come indicato di seguito. Gli esempi seguenti mostrano come specificare S3 Select quando si crea una tabella da JSON file sottostanti CSV e quindi si esegue una query sulla tabella utilizzando una semplice istruzione select.
Esempio CREATETABLEdichiarazione per una tabella basata CSV
CREATE TABLE mys3selecttable ( col1 string, col2 int, col3 boolean ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS INPUTFORMAT 'com.amazonaws.emr.s3select.hive.S3SelectableTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://path/to/mycsvfile/' TBLPROPERTIES ( "s3select.format" = "csv", "s3select.headerInfo" = "ignore" );
Esempio CREATETABLEdichiarazione per tabella JSON basata
CREATE TABLE mys3selecttable ( col1 string, col2 int, col3 boolean ) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' STORED AS INPUTFORMAT 'com.amazonaws.emr.s3select.hive.S3SelectableTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://path/to/json/' TBLPROPERTIES ( "s3select.format" = "json" );
Esempio SELECTTABLEdichiarazione
SET s3select.filter=true; SELECT * FROM mys3selecttable WHERE col2 > 10;