You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by thanaphol <th...@mindterra.com> on 2014/07/30 05:13:44 UTC

Split rowkey in HBASE to composite key in phoenix

I import data from sql database (has 2 primary key in this case I assume B
and C) to hbase: 

 

bin/sqoop-import --connect jdbc:mysql://sqlserver:3306/dbname --username
user --password pass --query 'SELECT A, B, C FROM table WHERE $CONDITIONS'
--hbase-create-table --hbase-table table --hbase-row-key B,C --column-family
info --num-mappers 1

when I scan data in hbase I got

Row           column:cell

dataB_dataC       Column=info:A, timestamp=bla bla, value dataA

 

I want to query data in my hbase by using phoenix and I use command to
create view like this:

create view "table" (A VARCHAR(16), B VARCHAR(11), C VARCHAR(12) CONSTRAINT
pk PRIMARY KEY (B,C))default_column_family='info';

But when I use "select * from "table"; I got result like this

   A     |         B         | C

dataA | dataB_dataC | null

My question is how can I split row key to column B and C in phoenix table
with _ is separator.

I expected Result like this

   A     |  B      | C

dataA | dataB | dataC

 


Re: Split rowkey in HBASE to composite key in phoenix

Posted by Ravi Kiran <ma...@gmail.com>.
Hi Thanapool,

   Though its easy to do a import of a sql table to hbase tables backed by
phoenix using Sqoop, we do notice issues when the row key of the hbase
table is a set of composite columns. This is because the delimiter used by
Phoenix is different from what Sqoop uses by default.
   We are working on having a smoother integration in place as part of
https://issues.apache.org/jira/browse/PHOENIX-763 .  Until then, you can
try exporting the Database data to a csv and use the bulk load to import
into Hbase.  http://phoenix.apache.org/bulk_dataload.html .
   My two cents.

HTH

Regards
Ravi


On Tue, Jul 29, 2014 at 8:13 PM, thanaphol <th...@mindterra.com>
wrote:

> I import data from sql database (has 2 primary key in this case I assume B
> and C) to hbase:
>
>
>
> bin/sqoop-import --connect jdbc:mysql://sqlserver:3306/dbname --username
> user --password pass --query 'SELECT A, B, C FROM table WHERE $CONDITIONS'
> --hbase-create-table --hbase-table table --hbase-row-key B,C --column-family
> info --num-mappers 1
>
> when I scan data in hbase I got
>
> Row           column:cell
>
> dataB_dataC       Column=info:A, timestamp=bla bla, value dataA
>
>
>
> I want to query data in my hbase by using phoenix and I use command to
> create view like this:
>
> create view "table" (A VARCHAR(16), B VARCHAR(11), C VARCHAR(12)
> CONSTRAINT pk PRIMARY KEY (B,C))default_column_family='info';
>
> But when I use "select * from "table"; I got result like this
>
>    A     |         B         | C
>
> dataA | dataB_dataC | null
>
> *My question is* how can I split row key to column B and C in phoenix
> table with _ is separator.
>
> I expected Result like this
>
>    A     |  B      | C
>
> dataA | dataB | dataC
>
>
>