Vladimir Ozerov created IGNITE-4517:
---------------------------------------
Summary: Add ability to execute SQL queries on certain partition(s)
Key: IGNITE-4517
URL: https://issues.apache.org/jira/browse/IGNITE-4517
Project: Ignite
Issue Type: Task
Components: SQL
Reporter: Vladimir Ozerov
Fix For: 2.0
*Motivation*
This could be useful for certain cases:
1) Simple queries where partition can be determined easily in advance, either
automatically (IGNITE-4509, IGNITE-4510), or manually.
2) Spark data frame integration (IGNITE-3084)
*Proposed API*
class Query {
int[] partitions();
void partitions(int...);
}
Important points:
1) Partitions are defined in the very base {{Query}} class because we already
has this feature for {{ScanQuery}} and potentially any query type can benefit
from it. If query doesn't support partitions, exception should be thrown.
2) User should be able to specify multiple partitions, not only one. This will
make our API more flexible for 3-rd party integrations like Spark. Also it will
help users with fine-grained tuning. E.g. if user has a query {{... WHERE
attribute IN (?, ?, ...)}}, he can determine partitions for {{IN}} arguments in
advance.
Probably this feature should not be supported for distributed joins. On the
other hand - why not? Query is always created from some cache, so the first map
step can be executed only against target partitions, and the rest execution
flow can go through all partitions of other caches.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)