点燃SQL

点燃SQL,sql,apache-spark,ignite,Sql,Apache Spark,Ignite,我试图通过使用IgniteRDD将ignite引入缓存层来加速spark sql查询。从ignite文档的示例中,它从ignite缓存加载数据以构建RDD。但在我们的用例中,数据大小可能太大,无法放入ignite内存,实际上我们只是将数据放入hbase中,因此是否可以执行以下操作: 1、通过从hbase加载数据构建IgniteRDed 2、只需使用ignite缓存spark sql生成的共享rdd,即可加速spark sql。有两种可能的使用场景 第一种方法。如果您使用igniteRdd.SQL

我试图通过使用IgniteRDD将ignite引入缓存层来加速spark sql查询。从ignite文档的示例中,它从ignite缓存加载数据以构建RDD。但在我们的用例中,数据大小可能太大,无法放入ignite内存,实际上我们只是将数据放入hbase中,因此是否可以执行以下操作: 1、通过从hbase加载数据构建IgniteRDed
2、只需使用ignite缓存spark sql生成的共享rdd,即可加速spark sql。

有两种可能的使用场景

第一种方法。如果您使用igniteRdd.SQL从Spark运行Ignite SQL查询。。。方法,则所有数据必须存储在Ignite群集中。如果不是所有数据都缓存在内存中,Ignite SQL引擎无法查询底层第三方持久层。但是,如果启用并存储所有数据,而不是HBase,那么就可以缓存尽可能多的数据,并安全地运行SQL,因为Ignite可以查询自己的持久性

第二种方法是使用HBase作为实现您自己的版本的需要,因为没有现成的东西,所以使用Spark SQL查询而不是Ignite SQL,因为后者要求我们在不使用Ignite持久性的情况下将所有数据缓存在RAM中

第三种方法是尝试和改进。IGFS和加速器部署在HDFS之上。但是,在这里您不能使用IgniteRDDSAPI,因为所有操作都将通过这个管道Spark->HBase->IGFS+Accelerator+HDFS


如果我选择第一种方法。

除了上述三种方法之外,如果您可以灵活地添加另一个组件,请使用ApachePhoenix。它支持与Spark SQL的集成。你可以在他们的官方网站上查看。在这种情况下,您将不需要Apache Ignite。

非常感谢!这三种方法都支持嵌入式模式吗?@Jerometan,是的,绝对支持!但是,Ignite开发人员不鼓励使用嵌入式模式,除非Ignite节点是纯客户端: