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à.
Convertire il formato dei dati di input in Amazon Data Firehose
Amazon Data Firehose è in grado di convertire il formato dei dati di input in Apache Parquet o Apache
Puoi convertire il formato dei tuoi dati anche se aggreghi i tuoi record prima di inviarli ad Amazon Data Firehose.
Amazon Data Firehose richiede i seguenti tre elementi per convertire il formato dei dati dei record:
Deserializer
Amazon Data Firehose richiede un deserializzatore per leggere i JSON dati di input. Puoi scegliere uno dei seguenti due tipi di deserializzatore.
Quando combini più JSON documenti nello stesso record, assicurati che l'input sia comunque presentato nel formato supportato. JSON Una serie di JSON documenti non è un input valido.
Ad esempio, questo è l'input corretto: {"a":1}{"a":2}
E questo è l'input errato: [{"a":1}, {"a":2}]
Scegliete OpenX JSON SerDe
-
yyyyyy-MM-dd'T'HH:mm:ss[.S]'Z', dove la frazione può avere fino a 9 cifre, ad esempio,
2017-02-07T15:13:01.39256Z
. -
yyyy-[M]M-[d]d HH:mm:ss[.S], dove la frazione può avere fino a 9 cifre, ad esempio,
2017-02-07 15:13:01.14
. -
Secondi epoch: ad esempio,
1518033528
. -
Millisecondi epoch: ad esempio,
1518033528123
. -
Secondi epoch a virgola mobile: ad esempio,
1518033528.123
.
OpenX JSON SerDe può convertire i punti (.
) in caratteri di sottolineatura (). _
Può anche convertire JSON le chiavi in lettere minuscole prima di deserializzarle. Per ulteriori informazioni sulle opzioni disponibili con questo deserializzatore tramite Amazon Data Firehose, consulta O. penXJson SerDe
Se non sei sicuro di quale deserializzatore scegliere, usa OpenX JSON SerDe, a meno che tu non abbia timestamp che non supporta.
Se hai timestamp in formati diversi da quelli elencati in precedenza, usa Apache Hive. JSON SerDeDateTimeFormat
Joda-Time. Per ulteriori informazioni, consulta Class. DateTimeFormat
Puoi anche utilizzare il valore speciale millis
per analizzare timestamp in millisecondi Unix epoch. Se non specifichi un formato, Amazon Data Firehose lo utilizza java.sql.Timestamp::valueOf
per impostazione predefinita.
The Hive JSON SerDe non consente quanto segue:
-
Punti (
.
) nei nomi di colonna. -
Campi il cui tipo è
uniontype
. -
Campi che hanno tipi numerici nello schema, ma che sono stringhe in. JSON Ad esempio, se lo schema è (un int) e lo JSON è
{"a":"123"}
, Hive SerDe restituisce un errore.
L'Hive SerDe non converte i file annidati JSON in stringhe. Ad esempio, se hai {"a":{"inner":1}}
, non tratta {"inner":1}
come stringa.
Schema
Amazon Data Firehose richiede uno schema per determinare come interpretare tali dati. Utilizzare AWS Glue per creare uno schema nel AWS Glue Data Catalog. Amazon Data Firehose fa quindi riferimento a tale schema e lo utilizza per interpretare i dati di input. Puoi utilizzare lo stesso schema per configurare sia Amazon Data Firehose che il tuo software di analisi. Per ulteriori informazioni, consulta Population the AWS Glue Data Catalog nel AWS Glue Guida per gli sviluppatori.
Nota
Lo schema creato in AWS Glue Il catalogo dati deve corrispondere alla struttura dei dati di input. In caso contrario, i dati convertiti non conterranno attributi non specificati nello schema. Se utilizzi nestedJSON, usa un STRUCT tipo nello schema che rispecchi la struttura dei tuoi JSON dati. Vedi questo esempio per sapere come gestire il nidificato JSON con un tipo. STRUCT
Importante
Per i tipi di dati che non specificano un limite di dimensione, esiste un limite pratico di 32 MBs per tutti i dati in una singola riga.
Se si specifica length per CHAR
oVARCHAR
, Firehose tronca le stringhe alla lunghezza specificata quando legge i dati di input. Se la stringa di dati sottostante è più lunga, rimane invariata.
Serializer
Firehose richiede un serializzatore per convertire i dati nel formato di archiviazione colonnare di destinazione (Parquet oORC): è possibile scegliere uno dei due tipi di serializzatori seguenti.
Il serializzatore scelto dipende dalle esigenze aziendali. Per ulteriori informazioni sulle due opzioni di serializzazione, consulta e Parquet. ORC SerDe