You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Krystal (JIRA)" <ji...@apache.org> on 2014/10/02 00:13:34 UTC
[jira] [Commented] (DRILL-1403) HBase predicate pushdown filters
are not getting applied
[ https://issues.apache.org/jira/browse/DRILL-1403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14155654#comment-14155654 ]
Krystal commented on DRILL-1403:
--------------------------------
git.commit.id.abbrev=5c220e3
I ran the following query and looks like the filter is not being pushed down:
0: jdbc:drill:schema=hbase> explain plan for select cast(student.onecf.name as varchar(30)) from student where row_key < '30' and row_key > '10';
+------------+------------+
| text | json |
+------------+------------+
| 00-00 Screen
00-01 Project(EXPR$0=[CAST($1):VARCHAR(30) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary"])
00-02 SelectionVectorRemover
00-03 Filter(condition=[AND(<($0, '30'), >($0, '10'))])
00-04 Project(row_key=[$0], ITEM=[ITEM($1, 'name')])
00-05 Scan(groupscan=[HBaseGroupScan [HBaseScanSpec=HBaseScanSpec [tableName=student, startRow=null, stopRow=null, filter=null], columns=[SchemaPath [`row_key`], SchemaPath [`onecf`.`name`]]]])
| {
"head" : {
"version" : 1,
"generator" : {
"type" : "ExplainHandler",
"info" : ""
},
"type" : "APACHE_DRILL_PHYSICAL",
"options" : [ ],
"queue" : 0,
"resultMode" : "EXEC"
},
"graph" : [ {
"pop" : "hbase-scan",
"@id" : 5,
"hbaseScanSpec" : {
"tableName" : "student",
"startRow" : "",
"stopRow" : "",
"serializedFilter" : null
},
"storage" : {
"type" : "hbase",
"config" : {
"hbase.zookeeper.quorum" : "10.10.100.113,10.10.100.114,10.10.100.115",
"hbase.zookeeper.property.clientPort" : "5181"
},
If I use a "*" in the select instead of specifying a column, then the filter got pushed down. For example,
0: jdbc:drill:schema=hbase> explain plan for select * from student where row_key < '30' and row_key > '10';
+------------+------------+
| text | json |
+------------+------------+
| 00-00 Screen
00-01 Project(row_key=[$0], fivecf=[$1], fourcf=[$2], onecf=[$3], threecf=[$4], twocf=[$5])
00-02 Scan(groupscan=[HBaseGroupScan [HBaseScanSpec=HBaseScanSpec [tableName=student, startRow=10\x00, stopRow=30, filter=FilterList AND (2/2): [RowFilter (LESS, 30), RowFilter (GREATER, 10)]], columns=[SchemaPath [`*`]]]])
| {
"head" : {
"version" : 1,
"generator" : {
"type" : "ExplainHandler",
"info" : ""
},
"type" : "APACHE_DRILL_PHYSICAL",
"options" : [ ],
"queue" : 0,
"resultMode" : "EXEC"
},
"graph" : [ {
"pop" : "hbase-scan",
"@id" : 2,
"hbaseScanSpec" : {
"tableName" : "student",
"startRow" : "MTAA",
"stopRow" : "MzA=",
"serializedFilter" : "DgApb3JnLmFwYWNoZS5oYWRvb3AuaGJhc2UuZmlsdGVyLkZpbHRlckxpc3QAAAAAAg4yAARMRVNTNi8CMzAOMgAHR1JFQVRFUjYvAjEw"
},
> HBase predicate pushdown filters are not getting applied
> --------------------------------------------------------
>
> Key: DRILL-1403
> URL: https://issues.apache.org/jira/browse/DRILL-1403
> Project: Apache Drill
> Issue Type: Bug
> Components: Functions - Drill
> Reporter: B Anil Kumar
> Assignee: Aditya Kishore
> Labels: patch
> Fix For: 0.6.0
>
> Attachments: 0001-DRILL-1403.patch, DRILL-1403-HBase-predicate-pushdown-filters-are-not-.patch
>
>
> It seems, due to latest changes HBase predicate pushdown is not getting applied.
> In below snippet, "le.accept(this, null)" returning null.
> {noformat}
> public HBaseScanSpec parseTree() {
> HBaseScanSpec parsedSpec = le.accept(this, null);
> if (parsedSpec != null) {
> parsedSpec = mergeScanSpecs("booleanAnd", this.groupScan.getHBaseScanSpec(), parsedSpec);
> /*
> * If RowFilter is THE filter attached to the scan specification,
> * remove it since its effect is also achieved through startRow and stopRow.
> */
> if (parsedSpec.filter instanceof RowFilter) {
> parsedSpec.filter = null;
> }
> }
> return parsedSpec;
> }
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)