calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Julian Hyde <jh...@apache.org>
Subject Re: Using secondary indexes for accessing tables
Date Mon, 13 May 2019 22:36:55 GMT
See [1], a talk I gave with Maryann Xue about optimizing queries for Phoenix for secondary
indexes. We modeled them as materialized views that are sorted projects.

Julian

[1] https://www.slideshare.net/julianhyde/costbased-query-optimization-in-apache-phoenix-using-apache-calcite
<https://www.slideshare.net/julianhyde/costbased-query-optimization-in-apache-phoenix-using-apache-calcite>



> On May 12, 2019, at 7:02 PM, Yuzhao Chen <yuzhao.cyz@gmail.com> wrote:
> 
> Roman Kondakov, I didn’t look into your use case details, but the secondary indexes
may be used mainly for 2 scenarios:
> 
> 1. Table index scan
> 2. The dim table join (key look up)
> 
> Calcite does not support secondary indexes metadata yet, or even (indexes). But I think
you can extend it with the MetadataHandler API [1]. Then you can query the indexing info in
your planner rules for some special promotion[2], or use the Programs [3] directly.
> 
> [1] https://github.com/apache/calcite/blob/6afa38bae794462e6e250237a1b60cc4220b2885/core/src/main/java/org/apache/calcite/rel/metadata/BuiltInMetadata.java#L40
> [2] https://github.com/apache/calcite/blob/6afa38bae794462e6e250237a1b60cc4220b2885/core/src/main/java/org/apache/calcite/plan/RelOptRule.java#L41
> [3] https://github.com/apache/calcite/blob/6afa38bae794462e6e250237a1b60cc4220b2885/core/src/main/java/org/apache/calcite/tools/Program.java#L36
> 
> Best,
> Danny Chan
> 在 2019年5月12日 +0800 AM5:16,Roman Kondakov <kondakov87@mail.ru.invalid>,写道:
>> Hi,
>> 
>> I am investigating the possibility of using Apache Calcite as a
>> cost-based optimizer for Apache Ignite project [1]. Apache Calcite looks
>> a very powerful and versatile tool for the such kind of tasks. I've
>> started this investigation a couple days ago - read docs, played with
>> examples, explored some existing integrations (i.e. hive, drill,
>> phoenix, etc.)
>> 
>> As I understand [2] Calcite doesn't support secondary indexes, isn't it?
>> If so, is there any workarounds to handle it or integrations where this
>> feature is implemented? Apache Ignite allows users to create B+tree
>> based indexes over the tables but lacks of a good query optimizer. It
>> would be great if the execution plan generated by Calcite contains not
>> only full table scans but also index scans when appropriate.
>> 
>> Thank you in advance!
>> 
>> [1] https://ignite.apache.org/
>> [2]http://mail-archives.apache.org/mod_mbox/calcite-dev/201505.mbox/%3CCAAqfHNoQnr%2BeUVoH9nFxhB7FEDwdYAjV_Smq%3DY75fxsqGs66Yw%40mail.gmail.com%3E
>> --
>> Kind Regards
>> Roman Kondakov
>> 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message