Ted, Thanks for pointing out more details of HBase-14181. I am afraid I may still need to learn more before I can make very accurate and pointed comments.
As for filter push down, Astro has a powerful approach to basically break down arbitrarily complex logic expressions comprising of AND/OR/IN/NOT to generate partition-specific predicates to be pushed down to HBase. This may not be a significant performance improvement if the filter logic is simple and/or the processing is IO-bound, but could be so for online ad-hoc analysis. For UDFs, Astro supports it both in and out of HBase custom filter. For secondary index, Astro do not support it now. With the probable support by HBase in the future(thanks to Ted Yu’s comments a while ago), we could add this support along with its specific optimizations. For bulk load, Astro has a much faster way to load the tabular data, we believe. Right now, Astro’s filter pushdown is through HBase built-in filters and custom filter. As for HBase-14181, I see some overlaps with Astro. Both have dependences on Spark SQL, and both supports Spark Dataframe as an access interface, both supports predicate pushdown. Astro is not designed for MR (or Spark’s equivalent) access though. If HBase-14181 is shooting for access to HBase data through a subset of DataFrame functionalities like filter, projection, and other map-side ops, would it be feasible to decouple it from Spark? My understanding is that 14181 does not run Spark execution engine at all, but will make use of Spark Dataframe semantic and/or logic planning to pass a logic (sub-)plan to the HBase. If true, it might be desirable to directly support Dataframe in HBase. Thanks, From: Ted Malaska [mailto:ted.mala...@cloudera.com] Sent: Wednesday, August 12, 2015 7:28 AM To: Yan Zhou.sc Cc: user; dev@spark.apache.org; Bing Xiao (Bing); Ted Yu Subject: RE: 答复: 答复: Package Release Annoucement: Spark SQL on HBase "Astro" Hey Yan, I've been the one building out this spark functionality in hbase so maybe I can help clarify. The hbase-spark module is just focused on making spark integration with hbase easy and out of the box for both spark and spark streaming. I and I believe the hbase team has no desire to build a sql engine in hbase. This jira comes the closest to that line. The main thing here is filter push down logic for basic sql operation like =, > , and <. User define functions and secondary indexes are not in my scope. Another main goal of hbase-spark module is to be able to allow a user to do anything they did with MR/HBase now with Spark/Hbase. Things like bulk load. Let me know if u have any questions Ted Malaska On Aug 11, 2015 7:13 PM, "Yan Zhou.sc" <yan.zhou...@huawei.com<mailto:yan.zhou...@huawei.com>> wrote: We have not “formally” published any numbers yet. A good reference is a slide deck we posted for the meetup in March. , or better yet for interested parties to run performance comparisons by themselves for now. As for status quo of Astro, we have been focusing on fixing bugs (UDF-related bug in some coprocessor/custom filter combos), and add support of querying string columns in HBase as integers from Astro. Thanks, From: Ted Yu [mailto:yuzhih...@gmail.com<mailto:yuzhih...@gmail.com>] Sent: Wednesday, August 12, 2015 7:02 AM To: Yan Zhou.sc Cc: Bing Xiao (Bing); dev@spark.apache.org<mailto:dev@spark.apache.org>; u...@spark.apache.org<mailto:u...@spark.apache.org> Subject: Re: 答复: 答复: Package Release Annoucement: Spark SQL on HBase "Astro" Yan: Where can I find performance numbers for Astro (it's close to middle of August) ? Cheers On Tue, Aug 11, 2015 at 3:58 PM, Yan Zhou.sc <yan.zhou...@huawei.com<mailto:yan.zhou...@huawei.com>> wrote: Finally I can take a look at HBASE-14181 now. Unfortunately there is no design doc mentioned. Superficially it is very similar to Astro with a difference of this being part of HBase client library; while Astro works as a Spark package so will evolve and function more closely with Spark SQL/Dataframe instead of HBase. In terms of architecture, my take is loosely-coupled query engines on top of KV store vs. an array of query engines supported by, and packaged as part of, a KV store. Functionality-wise the two could be close but Astro also supports Python as a result of tight integration with Spark. It will be interesting to see performance comparisons when HBase-14181 is ready. Thanks, From: Ted Yu [mailto:yuzhih...@gmail.com<mailto:yuzhih...@gmail.com>] Sent: Tuesday, August 11, 2015 3:28 PM To: Yan Zhou.sc Cc: Bing Xiao (Bing); dev@spark.apache.org<mailto:dev@spark.apache.org>; u...@spark.apache.org<mailto:u...@spark.apache.org> Subject: Re: 答复: Package Release Annoucement: Spark SQL on HBase "Astro" HBase will not have query engine. It will provide better support to query engines. Cheers On Aug 10, 2015, at 11:11 PM, Yan Zhou.sc <yan.zhou...@huawei.com<mailto:yan.zhou...@huawei.com>> wrote: Ted, I’m in China now, and seem to experience difficulty to access Apache Jira. Anyways, it appears to me that HBASE-14181<https://issues.apache.org/jira/browse/HBASE-14181> attempts to support Spark DataFrame inside HBase. If true, one question to me is whether HBase is intended to have a built-in query engine or not. Or it will stick with the current way as a k-v store with some built-in processing capabilities in the forms of coprocessor, custom filter, …, etc., which allows for loosely-coupled query engines built on top of it. Thanks, 发件人: Ted Yu [mailto:yuzhih...@gmail.com] 发送时间: 2015年8月11日 8:54 收件人: Bing Xiao (Bing) 抄送: dev@spark.apache.org<mailto:dev@spark.apache.org>; u...@spark.apache.org<mailto:u...@spark.apache.org>; Yan Zhou.sc 主题: Re: Package Release Annoucement: Spark SQL on HBase "Astro" Yan / Bing: Mind taking a look at HBASE-14181<https://issues.apache.org/jira/browse/HBASE-14181> 'Add Spark DataFrame DataSource to HBase-Spark Module' ? Thanks On Wed, Jul 22, 2015 at 4:53 PM, Bing Xiao (Bing) <bing.x...@huawei.com<mailto:bing.x...@huawei.com>> wrote: We are happy to announce the availability of the Spark SQL on HBase 1.0.0 release. http://spark-packages.org/package/Huawei-Spark/Spark-SQL-on-HBase The main features in this package, dubbed “Astro”, include: • Systematic and powerful handling of data pruning and intelligent scan, based on partial evaluation technique • HBase pushdown capabilities like custom filters and coprocessor to support ultra low latency processing • SQL, Data Frame support • More SQL capabilities made possible (Secondary index, bloom filter, Primary Key, Bulk load, Update) • Joins with data from other sources • Python/Java/Scala support • Support latest Spark 1.4.0 release The tests by Huawei team and community contributors covered the areas: bulk load; projection pruning; partition pruning; partial evaluation; code generation; coprocessor; customer filtering; DML; complex filtering on keys and non-keys; Join/union with non-Hbase data; Data Frame; multi-column family test. We will post the test results including performance tests the middle of August. You are very welcomed to try out or deploy the package, and help improve the integration tests with various combinations of the settings, extensive Data Frame tests, complex join/union test and extensive performance tests. Please use the “Issues” “Pull Requests” links at this package homepage, if you want to report bugs, improvement or feature requests. Special thanks to project owner and technical leader Yan Zhou, Huawei global team, community contributors and Databricks. Databricks has been providing great assistance from the design to the release. “Astro”, the Spark SQL on HBase package will be useful for ultra low latency query and analytics of large scale data sets in vertical enterprises. We will continue to work with the community to develop new features and improve code base. Your comments and suggestions are greatly appreciated. Yan Zhou / Bing Xiao Huawei Big Data team