Hier sind die Schritte, um den aktuellen Prozess:Wie kann man Daten effizient von Kafka in eine Impala-Tabelle verschieben?
- Flafka schreibt Protokolle in einer ‚Landezone‘ auf HDFS.
- Ein von Oozie geplanter Job kopiert komplette Dateien von der Landezone in einen Bereitstellungsbereich.
- Die Staging-Daten werden von einer Hive-Tabelle "schemaisiert", die den Staging-Bereich als Speicherort verwendet.
- Datensätze aus der Staging-Tabelle werden einer permanenten Hive-Tabelle hinzugefügt (z. B.
insert into permanent_table select * from staging_table
). - Die Daten aus der Hive-Tabelle sind in Impala verfügbar, indem
refresh permanent_table
in Impala ausgeführt wird.
ich auf den Prozess sehe ich gebaut habe und es „riecht“ schlecht: es gibt zu viele Zwischenschritte, die den Datenfluss beeinträchtigen.
Vor etwa 20 Monaten habe ich eine Demo gesehen, bei der Daten von einer Amazon Kinesis-Pipe gestreamt wurden und fast in Echtzeit von Impala abgefragt werden konnten. Ich nehme nicht an, dass sie etwas so Hässliches/Verbogenes getan haben. Gibt es eine effizientere Möglichkeit, Daten von Kafka zu Impala zu übertragen (möglicherweise ein Kafka-Konsument, der zu Parquet serialisieren kann)?
Ich stelle mir vor, dass "Streaming-Daten zu Low-Latency-SQL" ein ziemlich häufiger Anwendungsfall sein muss, und ich bin interessiert zu wissen, wie andere Leute dieses Problem gelöst haben.
[hier] (http://www.svds.com/flexible-data-architecture-with-spark-cassandra- and-impala /) ist eine alternative Architektur, die scheint weniger Hopfen und könnte relativ schneller sein – vmachan
Hilft das? https://blog.cloudera.com/blog/2015/11/how-to-invest-and-query-fast-data-with-impala-without-kudu/ –