[
https://issues.apache.org/jira/browse/HADOOP-1608?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12517069
]
stack commented on HADOOP-1608:
-------------------------------
The basic SQL operators are as I see it foundational Lets move the SQL-like
data manipulatilon and data creation syntax closer to 'standard' SQL. It'll
make it easier on folks getting started with HBase. This we can do as a
separate issue. Someone else (perhaps I) can work on this.
Regards a mix of SQL and other operator types -- relational and linear algebra
types -- all in a single shell, this can work as long each of the operators is
coherent and it is clear to which domain each belongs. The danger to avoid is
that the shell becomes cluttered with the user unable to figure which operators
belong together.
I do not follow your proposal above? Are you suggesting that the shell prompt
change as we move between domains (from 'basic' to 'mdx' to 'matlab'?).
Regards your last patch, v07, here are some comments Edward:
+ In general, the patch needs much more javadoc and commentary. What does the
StoreCommand that is different from BasicCommand. It runs a mapreduce job to
what end? What does the CompoundRestrictionMap do? Why a CommandPool? Also,
most of your data members are default access. Private would be better (unless
you have reason for them being otherwise accessible; e.g. access is needed unit
testing. See 'Coding' section from
http://wiki.apache.org/lucene-hadoop/CodeReviewChecklist where it says ' class
& member access - as restricted as it can be (subject to testing
requirements)').
+ TestRelationMap should be in the org.apache.hadoop.hbase.shell.batch.relation
sub-package. The setup method from this class seems to be replicating much
from MiniHBaseCluster. Take a look at TestScanner2. When test runs, root and
meta tables have been added. In other words, you do not need to them
explicitly yourself as you do in the setup. Then all your setup would have to
do is startup the mini MR cluster (Should we add a MRTestCase and
MRClusterTestCase in hbase tests?).
+ JobAnalysis javadoc and commentary is stunted. Is it to generate a
configuration for a mapreduce job (After digging, this looks to be the case)?
Why is the null key special from CommandPool iteration in constructor (Is this
iteration safe? Can't CommandPool be updated concurrently?)?
+ CommandPool should have a private constructor so it can't be instantiated
(This class as a Singleton might be a little more orthodox). Javadoc on why it
exists would help.
+ The LOG class is wrong in RestrictionMap. Why suppress 'deprecation' in
initJob? I'd suggest exposing the warning so it will get fixed. How about
using the new filters that have been added to hbase to do your in-map
filtering? At least for your examples in BinaryOperationFilter, it looks like
they'd work? BinaryOperationFilter would parse the passsed strings and
generate appropriate set of new filters. Why create the BinaryOperationFilter
everytime the map is called?
+ ReturnMsg needs a toString or a getMessage method. Should type be named
resultCode or errCode instead?.
+ Where do you discuss difference between 'basic', 'oltp', 'relation' and
'matrix'?
+ Seems odd to me that the LinearAlgebra can return a RelationalAlgebra (and
vice-versa). Would having RelationAlgebra and LinearAlgebra marker interfaces
rather than have JobConfGenerator have get*Algebra be cleaner? Why is
CopyTable a RelationalAlgebra job (I understand why Projection is)?
+ Which of my previous review comments have your implemented (or put aside
because you thought better)? What about variable names of more than one
character? Entering a variable name, is its value emitted? Has the NPE been
fixed? What about the issue I raise regards splitting on ' OR '? This latter
for sure has not been addressed (Thanks for adding some unit tests)
> [HbaseShell] Relational Algrebra Operators
> ------------------------------------------
>
> Key: HADOOP-1608
> URL: https://issues.apache.org/jira/browse/HADOOP-1608
> Project: Hadoop
> Issue Type: Improvement
> Components: contrib/hbase
> Environment: All environments
> Reporter: edward yoon
> Priority: Minor
> Fix For: 0.14.0
>
> Attachments: shell_r_operators_v01.patch, shell_v02.patch,
> shell_v03.patch, shell_v04.patch, shell_v05.patch, shell_v06.patch,
> shell_v07.patch
>
>
> Development of relational algebra operators has begun.
> * Projection
> * Selection
> * Product
> * Rename
> * Group
> * Sort
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.