[ 
https://issues.apache.org/jira/browse/HBASE-5548?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13230853#comment-13230853
 ] 

Jesse Yates commented on HBASE-5548:
------------------------------------

Oh, and for completeness, here is what the output now looks like:
{code}
1.9.2-p290 :002 > list
TABLE                                                                           
                                 
0 row(s) in 0.0300 seconds

1.9.2-p290 :003 > t = create 't', 'f'
0 row(s) in 1.0970 seconds

 => #<Hbase::Table:0x6601879b 
@table=#<Java::OrgApacheHadoopHbaseClient::HTable:0x5b489c06>, 
@shell=#<Shell::Shell:0x3bba1894 
@formatter=#<Shell::Formatter::Console:0x36a3bb2e @out=Kernel, @row_count=0, 
@max_width=113>, @hbase_admin=#<Hbase::Admin:0x3755e508 
@zk_wrapper=#<#<Class:0x682f8c99>:0x45ed957d>, 
@zk_main=#<Java::OrgApacheZookeeper::ZooKeeperMain:0x385715>, 
@formatter=#<Shell::Formatter::Console:0x36a3bb2e @out=Kernel, @row_count=0, 
@max_width=113>, @conf=#<Java::OrgApacheHadoopConf::Configuration:0x73c28517>, 
@admin=#<Java::OrgApacheHadoopHbaseClient::HBaseAdmin:0x2a717ef5>>, 
@hbase=#<Hbase::Hbase:0x21ff3fcf 
@configuration=#<Java::OrgApacheHadoopConf::Configuration:0x73c28517>>>> 
1.9.2-p290 :004 > t.put 'r', 'f', 'v'
1.9.2-p290 :005 > t.scan
ROW                           COLUMN+CELL                                       
                                 
 r                            column=f:, timestamp=1331865816290, value=v       
                                 
1 row(s) in 0.0520 seconds
1.9.2-p290 :006 > t.help 'scan'
Scan a table; pass table name and optionally a dictionary of scanner
specifications.  Scanner specifications may include one or more of:
TIMERANGE, FILTER, LIMIT, STARTROW, STOPROW, TIMESTAMP, MAXLENGTH,
or COLUMNS.

If no columns are specified, all columns will be scanned.
To scan all members of a column family, leave the qualifier empty as in
'col_family:'.

The filter can be specified in two ways:
1. Using a filterString - more information on this is available in the
Filter Language document attached to the HBASE-4176 JIRA
2. Using the entire package name of the filter.

Some examples:

  hbase> scan '.META.'
  hbase> scan '.META.', {COLUMNS => 'info:regioninfo'}
  hbase> scan 't1', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}
  hbase> scan 't1', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]}
  hbase> scan 't1', {FILTER => "(PrefixFilter ('row2') AND (QualifierFilter 
(>=, 'binary:xyz'))) AND (TimestampsFilter ( 123, 456))"}
  hbase> scan 't1', {FILTER => 
org.apache.hadoop.hbase.filter.ColumnPaginationFilter.new(1, 0)}

For experts, there is an additional option -- CACHE_BLOCKS -- which
switches block caching for the scanner on (true) or off (false).  By
default it is enabled.  Examples:

  hbase> scan 't1', {COLUMNS => ['c1', 'c2'], CACHE_BLOCKS => false}

Also for experts, there is an advanced option -- RAW -- which instructs the
scanner to return all cells (including delete markers and uncollected deleted
cells). This option cannot be combined with requesting specific COLUMNS.
Disabled by default.  Example:

  hbase> scan 't1', {RAW => true, VERSIONS => 10}

Scan can also be used directly from a table, by first getting a reference to a 
table, like such:

  hbase> t = get_table 't'
  hbase> t.scan

Note in the above situation, you can still provide all the filtering, columns, 
options, etc as
described above.
1.9.2-p290 :007 >
{code}
                
> Add ability to get a table in the shell
> ---------------------------------------
>
>                 Key: HBASE-5548
>                 URL: https://issues.apache.org/jira/browse/HBASE-5548
>             Project: HBase
>          Issue Type: Improvement
>          Components: shell
>            Reporter: Jesse Yates
>            Assignee: Jesse Yates
>             Fix For: 0.96.0
>
>         Attachments: ruby_HBASE-5528-v0.patch, ruby_HBASE-5548-v1.patch, 
> ruby_HBASE-5548-v2.patch
>
>
> Currently, all the commands that operate on a table in the shell first have 
> to take the table as name as input. 
> There are two main considerations:
> * It is annoying to have to write the table name every time, when you should 
> just be able to get a reference to a table
> * the current implementation is very wasteful - it creates a new HTable for 
> each call (but reuses the connection since it uses the same configuration)
> We should be able to get a handle to a single HTable and then operate on that.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to