Impala是什么
Cloudera Impala是一个分布式的海量关系型数据查询引擎,有以下特点:
- 低延时,非常适合交互式查询的场景。我们和Hive on Tez, Azure SQL Data Warehouse做过查询性能对比,Impala的性能优势非常明显。
- Impala和Hive共享元数据和存储数据,使得Hive和SparkSQL生成的数据可以在Impala里刷新后直接查询,这一点非常重要,因为目前业内广泛采用Hive和SparkSQL做数据的ETL,ETL后数据只要简单刷新就可以在Impala里做交互式查询,为网站,APP等客户端直接提供及时的数据服务。
- 构建在Hive和HDFS的基础之上,由于Hive和HDFS都是业内久经考验的成熟技术,基本不会出现数据丢失或者集群彻底挂掉的情况。Hive和HDFS网上信息非常多,很多Impala问题可以从Hive和HDFS的角度来解决,降低了排查和解决问题的成本。
- 可扩展性强,扩展成本低:其他分布式数据库例如GreenPlum在可扩展性上有很多问题,根据 https://gpdb.docs.pivotal.io/500/admin_guide/expand/expand-redistribute.html GreenPlum在加节点后需要手动Redistributing来把老数据搬运到新节点上,在Redistributing期间对集群整体性能有较大影响,而且正在Redistributing的Table或者分区会被锁上无法访问。而Impala只要加HDFS和Impala节点就可以完成扩容,HDFS Balancer会负责数据缓慢迁移,而扩容期间查询性能几乎不会受任何影响。
为什么国双采用Impala
作为国内第一家在纳斯达克上市的大数据公司,国双每天处理和查询的数据量级非常大,所以我们采用了业界比较通用的Spark和Hive进行数据ETL,每天无论是国双的咨询师还是外部客户都需要在海量数据中第一时间得到有用的信息,而Cloudera Impala提供了这一能力。