https://issues.apache.org/jira/browse/PHOENIX-2306

Alok

[email protected]

On Sat, Oct 3, 2015 at 12:37 PM, Alok Singh <[email protected]> wrote:

> Thanks James.
>
> I will create a jira ticket for exposing the APIs in a standard way.
>
> Alok
>
> Alok
>
> [email protected]
>
> On Fri, Oct 2, 2015 at 6:20 PM, James Taylor <[email protected]>
> wrote:
>
>> Hi Alok,
>> Yes, you could calculate an estimate for this information, but it isn't
>> currently exposed through JDBC or through the explain plan (which would be
>> a good place for it to live). You'd need to dip down to the implementation
>> to get it. Something like this:
>>
>> PhoenixStatement statement =
>> connection.createStatement().unwrap(PhoenixStatement.class);
>> ResultSet rs = statement.executeQuery("EXPLAIN SELECT ...");
>> QueryPlan plan = statement.getQueryPlan();
>> List<KeyRange> ranges = plan.getSplits();
>>
>> Each KeyRange in ranges will be going over a configurable amount of bytes
>> (determined by phoenix.stats.guidepost.width
>> and/or phoenix.stats.guidepost.per.region), so a simple worst case estimate
>> would be to multiply the ranges.size() by this config value (using a
>> default of QueryServicesOptions.DEFAULT_STATS_GUIDEPOST_WIDTH_BYTES or
>> 300MB). If the query is a point lookup (which you can check with
>> plan.getContext().getScanRanges().isPointLookup()), then the cost would be
>> ranges.size() * average_row_size.
>>
>> Since these aren't exposed APIs, they're subject to change. Please file a
>> JIRA if you're interested in helping figure out what the "official" APIs
>> for this should be.
>>
>> HTH. Thanks,
>>
>>     James
>>
>> On Fri, Oct 2, 2015 at 5:35 PM, Alok Singh <[email protected]> wrote:
>>
>>> Is there a way to figure out how many rows/cells were scanned in
>>> hbase perform a phoenix query? I tried using the explain command, but, it
>>> is not clear how to estimate the number of rows touched by looking at the
>>> explain plan. Essentially, I want to be able to report back to users the
>>> "cost" of performing a phoenix query, where "cost" is some function of
>>> rows/cells scanned.
>>>
>>> Alok
>>>
>>> [email protected]
>>>
>>
>>
>

Reply via email to