1. HBase
  2. HBASE-487

Replace hql w/ a hbase-friendly jirb or jython shell


    • Type: Wish Wish
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.2.0
    • Component/s: None
    • Labels:


      The hbase shell is a useful admin and debugging tool but it has a couple of downsides. To extend, a fragile parser definition needs tinkering-with and new java classes must be added. The current test suite for hql is lacking coverage and the current code could do with a rewrite having evolved piecemeal. Another downside is that the presence of an HQL interpreter gives the mis-impression that hbase is like a SQL database.

      This 'wish' issue suggests that we jettison HQL and instead offer users a jirb or jython command line. We'd ship with some scripts and jruby/jython classes that we'd source on startup to do things like import base client classes – so folks wouldn't have to remember all the packages stuff sat in – and added a pretty-print for scanners and getters outputting text, xhtml or binary. They would also make it easy to do HQL-things in jruby/python script.

      Advantages: Already-written parser with no need of extension probing deeper into hbase: i.e. better for debugging than HQL could ever be. Easy extension adding scripts/modules rather than java code. Less likely hbase could be confused for a SQL db.

      Downsides: Probably more verbose. Requires ruby or python knowledge ("Everyone knows some sql"). Big? (jruby lib is 24M).

      I was going to write security as downside but HQL suffers this at the moment too – though it has been possible to sort the updates from the selects in the UI to prevent modification of the db from the UI, something that would be hard to do in a jruby/jython parser.

      What do others think?

      1. rb.patch
        2 kB
      2. module_in_bin.patch
        1 kB
      3. jruby.patch
        1 kB
      4. groovy-2.patch
        34 kB
      5. groovy.patch
        3 kB
      6. better-hirb.patch
        3 kB
        Bryan Duxbury
      7. 487-added-formatter.patch
        4 kB

        Issue Links


          stack created issue -
          stack made changes -
          Field Original Value New Value
          Assignee stack [ stack ]
          stack made changes -
          Attachment groovy.patch [ 12379205 ]
          stack made changes -
          Attachment groovy-2.patch [ 12380246 ]
          stack made changes -
          Attachment jruby.patch [ 12380430 ]
          stack made changes -
          Fix Version/s 0.2.0 [ 12312955 ]
          Bryan Duxbury made changes -
          Link This issue blocks HBASE-570 [ HBASE-570 ]
          stack made changes -
          Attachment rb.patch [ 12382703 ]
          stack made changes -
          Attachment module_in_bin.patch [ 12382710 ]
          Bryan Duxbury made changes -
          Attachment better-hirb.patch [ 12383181 ]
          stack made changes -
          Attachment 487-added-formatter.patch [ 12383617 ]
          stack made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Jim Kellerman made changes -
          Status Resolved [ 5 ] Closed [ 6 ]


            • Assignee:
            • Votes:
              0 Vote for this issue
              2 Start watching this issue


              • Created: