Ecco i passi per il processo in corso:come spostare in modo efficiente i dati da Kafka a un tavolo Impala?
- Flafka scrive registri in un 'zona di atterraggio' su HDFS.
- Un lavoro, pianificato da Oozie, copia i file completi dalla zona di atterraggio a un'area di gestione temporanea.
- I dati di staging sono 'schema-ified' da una tabella Hive che utilizza l'area di staging come posizione.
- I record dalla tabella di staging vengono aggiunti a una tabella Hive permanente (ad esempio
insert into permanent_table select * from staging_table
). - I dati, dalla tabella Hive, sono disponibili in Impala eseguendo
refresh permanent_table
in Impala.
guardo il processo ho costruito e "odori" cattivo: ci sono troppi passaggi intermedi che compromettono il flusso di dati.
Circa 20 mesi fa, ho visto una demo in cui i dati venivano trasmessi da una pipe Amazon Kinesis ed era interrogabile, quasi in tempo reale, da Impala. Non credo che abbiano fatto qualcosa di così brutto/contorto. Esiste un modo più efficiente di trasmettere i dati da Kafka a Impala (probabilmente un consumatore di Kafka che può serializzare su Parquet)?
Immagino che "lo streaming di dati su SQL a bassa latenza" debba essere un caso d'uso abbastanza comune, quindi sono interessato a sapere in che modo altre persone hanno risolto questo problema.
[qui] (http://www.svds.com/flexible-data-architecture-with-spark-cassandra- e-impala /) è un'architettura alternativa che sembra avere meno luppolo e potrebbe essere relativamente più veloce – vmachan
Questo aiuto? https://blog.cloudera.com/blog/2015/11/how-to-ingest-and-query-fast-data-with-impala-without-kudu/ –