hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From varaprasad.bh...@polarisFT.com
Subject Fw: Regarding Rowkey and Column Family
Date Thu, 27 Dec 2012 04:58:04 GMT
Hi,

For the below, may I insert into 'Customer' hbase table in the following way:

put 'Customer', 'rowkey', 'cf:json', 
'{"Customer": {"Customer Detail":[{"CustomerNumber": "10000000001","DOB": "01/01/01","Fname":
"Fname1","Mname":"Mname1","Lname": "Lname1","address": {"AddressType": "Home","AddressLine1"
:"1.1.Address Line1", 
"AddressLine2" :"1.1.Address Line2","AddressLine3" :"1.1.Address Line3","AddressLine4" :"1.1.Address
Line4","State" :"1.1.State","City" :"1.1.City","Country" :"1.1.Country"}},{ "CustomerNumber":
"10000000002","DOB": "01/02/01","Fname": "Fname2","Mname": "Mname2","Lname": "Lname2","address":
[{"AddressType": "Home","AddressLine1" :"2.1.Address Line1","AddressLine2" :"2.1.Address Line2","AddressLine3"
:"2.1.Address Line3","AddressLine4" :"2.1.Address Line4","State" :"2.1.State","City" :"2.1.City","Country"
:"2.1.Country"},{"AddressType": "Office","AddressLine1" :"2.2.Address Line1","AddressLine2"
:"2.2.Address Line2","AddressLine3" :"2.2.Address Line3",
"AddressLine4" :"2.2.Address Line4","State" :"2.2.State","City" :"2.2.City","Country" :"2.2.Country"}]},{"CustomerNumber":
"10000000003","DOB": "01/03/01","Fname": "Fname3","Mname": "Mname3","Lname": "Lname3","address":
[{"AddressType": "Home","AddressLine1" :"3.1.Address Line1","AddressLine2" :"3.1.Address Line2","AddressLine3"
:"3.1.Address Line3","AddressLine4" :"3.1.Address Line4","State" :"3.1.State","City" :"3.1.City","Country"
:"3.1.Country"},{"AddressType": "Office","AddressLine1" :"3.2.Address Line1","AddressLine2"
:"3.2.Address Line2","AddressLine3" :"3.2.Address Line3","AddressLine4" :"3.2.Address Line4","State"
:"3.2.State","City" :"3.2.City","Country" :"3.2.Country"},{"AddressType": "Others","AddressLine1"
:"3.3.Address Line1","AddressLine2" :"3.3.Address Line2","AddressLine3" :"3.3.Address Line3","AddressLine4"
:"3.3.Address Line4","State" :"3.3.State","City" :"3.3.City","Country" :"3.3.Country"}]},{"CustomerNumber":
"10000000004","DOB": "01/04/01","Fname": "Fname4","Mname": "Mname4","Lname": "Lname4","address":
[{"AddressType": "Home","AddressLine1" :"4.1.Address Line1","AddressLine2" :"4.1.Address Line2","AddressLine3"
:"4.1.Address Line3","AddressLine4" :"4.1.Address Line4","State" :"4.1.State","City" :"4.1.City","Country"
:"4.1.Country"},{"AddressType": "Office","AddressLine1" :"4.2.Address Line1","AddressLine2"
:"4.2.Address Line2","AddressLine3" :"4.2.Address Line3","AddressLine4" :"4.2.Address Line4","State"
:"4.2.State","City" :"4.2.City","Country" :"4.2.Country"},{"AddressType": "Office2","AddressLine1"
:"4.3.Address Line1","AddressLine2" :"4.3.Address Line2","AddressLine3" :"4.3.Address Line3","AddressLine4"
:"4.3.Address Line4","State" :"4.3.State","City" :"4.3.City","Country" :"4.3.Country"},{"AddressType":
"Others","AddressLine1" :"4.4.Address Line1","AddressLine2" :"4.4.Address Line2","AddressLine3"
:"4.4.Address Line3","AddressLine4" :"4.4.Address Line4","State" :"4.4.State","City" :"4.4.City","Country"
:"4.4.Country"}]}]}}'

The scan of Customer table gives:

hbase(main):009:0> scan 'Customer'
ROW                              COLUMN+CELL
 rowkey                          column=cf:json, timestamp=1356583865944, value={"Customer":
{"Customer Detail": [{"CustomerNumber": "10000000001","DOB": "01/01/01","Fname": "Fname1","Mname":"Mname1","Lname":
"Lname1"
                                 ,"address": {"AddressType": "Home","AddressLine1" :"1.1.Address
Line1", \x0A"AddressLine2" :
                                 "1.1.Address Line2","AddressLine3" :"1.1.Address Line3","AddressLine4"
:"1.1.Address Line4",
                                 "State" :"1.1.State","City" :"1.1.City","Country" :"1.1.Country"}},{
"CustomerNumber": "1000
                                0000002","DOB": "01/02/01","Fname": "Fname2","Mname": "Mname2","Lname":
"Lname2","address":[{"AddressType": "Home","AddressLine1" :"2.1.Address Line1","AddressLine2"
:"2.1.Address Lin
                                 e2","AddressLine3" :"2.1.Address Line3","AddressLine4" :"2.1.Address
Line4","State" :"2.1.St
                                 ate","City" :"2.1.City","Country" :"2.1.Country"},{"AddressType":
"Office","AddressLine1" :"
                                 2.2.Address Line1","AddressLine2" :"2.2.Address Line2","AddressLine3"
:"2.2.Address Line3",\
                                 x0A"AddressLine4" :"2.2.Address Line4","State" :"2.2.State","City"
:"2.2.City","Country" :"2
                                 .2.Country"}]},{"CustomerNumber": "10000000003","DOB": "01/03/01","Fname":
"Fname3","Mname":
                                  "Mname3","Lname": "Lname3","address": [{"AddressType": "Home","AddressLine1"
:"3.1.Address
                                 Line1","AddressLine2" :"3.1.Address Line2","AddressLine3"
:"3.1.Address Line3","AddressLine4
                                 " :"3.1.Address Line4","State" :"3.1.State","City" :"3.1.City","Country"
:"3.1.Country"},{"A
                                 ddressType": "Office","AddressLine1" :"3.2.Address Line1","AddressLine2"
:"3.2.Address Line2
                                 ","AddressLine3" :"3.2.Address Line3","AddressLine4" :"3.2.Address
Line4","State" :"3.2.Stat
                                 e","City" :"3.2.City","Country" :"3.2.Country"},{"AddressType":
"Others","AddressLine1" :"3.
                                 3.Address Line1","AddressLine2" :"3.3.Address Line2","AddressLine3"
:"3.3.Address Line3","Ad
                                 dressLine4" :"3.3.Address Line4","State" :"3.3.State","City"
:"3.3.City","Country" :"3.3.Cou
                                 ntry"}]},{"CustomerNumber": "10000000004","DOB": "01/04/01","Fname":
"Fname4","Mname": "Mnam
                                 e4","Lname": "Lname4","address": [{"AddressType": "Home","AddressLine1"
:"4.1.Address Line1"
                                 ,"AddressLine2" :"4.1.Address Line2","AddressLine3" :"4.1.Address
Line3","AddressLine4" :"4.
                                 1.Address Line4","State" :"4.1.State","City" :"4.1.City","Country"
:"4.1.Country"},{"Address
                                 Type": "Office","AddressLine1" :"4.2.Address Line1","AddressLine2"
:"4.2.Address Line2","Add
                                 ressLine3" :"4.2.Address Line3","AddressLine4" :"4.2.Address
Line4","State" :"4.2.State","Ci
                                 ty" :"4.2.City","Country" :"4.2.Country"},{"AddressType":
"Office2","AddressLine1" :"4.3.Add
                                 ress Line1","AddressLine2" :"4.3.Address Line2","AddressLine3"
:"4.3.Address Line3","Address
                                 Line4" :"4.3.Address Line4","State" :"4.3.State","City" :"4.3.City","Country"
:"4.3.Country"
                                 },{"AddressType": "Others","AddressLine1" :"4.4.Address Line1","AddressLine2"
:"4.4.Address
                                 Line2","AddressLine3" :"4.4.Address Line3","AddressLine4"
:"4.4.Address Line4","State" :"4.4
                                 .State","City" :"4.4.City","Country" :"4.4.Country"}]}]}}
1 row(s) in 0.0160 seconds


Is this the right way to insert the json script into a hbase table? Please suggest

Regards,
Varaprasad
---------- Forwarded message ----------
From: Mohammad Tariq <dontariq@gmail.com>
Date: Wed, Dec 26, 2012 at 9:09 PM
Subject: Re: Regarding Rowkey and Column Family
To: "user@hbase.apache.org" <user@hbase.apache.org>


I would rather serialize the JSON object into a byte array and then store
it into an HBase cell. Later whenever I need to pull out some value, I can
deserialize it and get the result.

If you know the column name in advance, you can use the QualifierFilter to
get the rows.


Best Regards,
Tariq
+91-9741563634
https://mtariq.jux.com/



On Wed, Dec 26, 2012 at 8:35 PM, Ramasubramanian Narayanan <

ramasubramanian.narayanan@gmail.com> wrote:

> Hi,
>
> Thanks a lot... Can you please help me a sample code how to insert & read
> Json object in HBase...
>
> Also how  to select the particular row from column (inserted thru Json
> sobject).
>
> Have given the script based on  google'ng we did... Please help in using
> this script how to use in HBase shell script also in Java..
>
>
> -----------------------------
> { "Customer": {
> "Customer Detail": [
> {"CustomerNumber": "10000000001",
>         "DOB": "01/01/01",
>         "Fname": "Fname1",
>         "Mname": "Mname1",
>         "Lname": "Lname1",
> "address": {
>         "AddressType": "Home",
>       "AddressLine1" :"1.1.Address Line1",
>     "AddressLine2" :"1.1.Address Line2",
>       "AddressLine3" :"1.1.Address Line3",
>       "AddressLine4" :"1.1.Address Line4",
>      "State" :"1.1.State",
>     "City" :"1.1.City",
>       "Country" :"1.1.Country"
>       }
> },
>     { "CustomerNumber": "10000000002",
>         "DOB": "01/02/01",
>         "Fname": "Fname2",
>         "Mname": "Mname2",
>         "Lname": "Lname2",
> "address": [{
>         "AddressType": "Home",
>       "AddressLine1" :"2.1.Address Line1",
>     "AddressLine2" :"2.1.Address Line2",
>       "AddressLine3" :"2.1.Address Line3",
>       "AddressLine4" :"2.1.Address Line4",
>      "State" :"2.1.State",
>     "City" :"2.1.City",
>       "Country" :"2.1.Country"
>       },
>   {
>         "AddressType": "Office",
>       "AddressLine1" :"2.2.Address Line1",
>     "AddressLine2" :"2.2.Address Line2",
>       "AddressLine3" :"2.2.Address Line3",
>       "AddressLine4" :"2.2.Address Line4",
>      "State" :"2.2.State",
>     "City" :"2.2.City",
>       "Country" :"2.2.Country"
>       }
> ]
>
>       },
>       { "CustomerNumber": "10000000003",
>         "DOB": "01/03/01",
>         "Fname": "Fname3",
>         "Mname": "Mname3",
>         "Lname": "Lname3",
> "address": [{
>         "AddressType": "Home",
>       "AddressLine1" :"3.1.Address Line1",
>     "AddressLine2" :"3.1.Address Line2",
>       "AddressLine3" :"3.1.Address Line3",
>       "AddressLine4" :"3.1.Address Line4",
>      "State" :"3.1.State",
>     "City" :"3.1.City",
>       "Country" :"3.1.Country"
>       },
>   {
>         "AddressType": "Office",
>       "AddressLine1" :"3.2.Address Line1",
>     "AddressLine2" :"3.2.Address Line2",
>       "AddressLine3" :"3.2.Address Line3",
>       "AddressLine4" :"3.2.Address Line4",
>      "State" :"3.2.State",
>     "City" :"3.2.City",
>       "Country" :"3.2.Country"
>       },
>   {
>         "AddressType": "Others",
>       "AddressLine1" :"3.3.Address Line1",
>     "AddressLine2" :"3.3.Address Line2",
>       "AddressLine3" :"3.3.Address Line3",
>       "AddressLine4" :"3.3.Address Line4",
>      "State" :"3.3.State",
>     "City" :"3.3.City",
>       "Country" :"3.3.Country"
>       }
> ]
>       },
>       { "CustomerNumber": "10000000004",
>         "DOB": "01/04/01",
>         "Fname": "Fname4",
>         "Mname": "Mname4",
>         "Lname": "Lname4",
> "address": [{
>         "AddressType": "Home",
>       "AddressLine1" :"4.1.Address Line1",
>     "AddressLine2" :"4.1.Address Line2",
>       "AddressLine3" :"4.1.Address Line3",
>       "AddressLine4" :"4.1.Address Line4",
>      "State" :"4.1.State",
>     "City" :"4.1.City",
>       "Country" :"4.1.Country"
>       },
>   {
>         "AddressType": "Office",
>       "AddressLine1" :"4.2.Address Line1",
>     "AddressLine2" :"4.2.Address Line2",
>       "AddressLine3" :"4.2.Address Line3",
>       "AddressLine4" :"4.2.Address Line4",
>      "State" :"4.2.State",
>     "City" :"4.2.City",
>       "Country" :"4.2.Country"
>       },
>             {
>         "AddressType": "Office2",
>       "AddressLine1" :"4.3.Address Line1",
>     "AddressLine2" :"4.3.Address Line2",
>       "AddressLine3" :"4.3.Address Line3",
>       "AddressLine4" :"4.3.Address Line4",
>      "State" :"4.3.State",
>     "City" :"4.3.City",
>       "Country" :"4.3.Country"
>       },
>             {
>         "AddressType": "Others",
>       "AddressLine1" :"4.4.Address Line1",
>     "AddressLine2" :"4.4.Address Line2",
>       "AddressLine3" :"4.4.Address Line3",
>       "AddressLine4" :"4.4.Address Line4",
>      "State" :"4.4.State",
>     "City" :"4.4.City",
>       "Country" :"4.4.Country"
>       }
> ]
> }]
> }}
>
> --------------------------------------------------------------
>
> regards,
> Rams
>
> On Mon, Dec 24, 2012 at 9:15 PM, Jean-Marc Spaggiari <
> jean-marc@spaggiari.org> wrote:
>
> > Hi Rams,
> >
> > Even if a customer can have multiple addresses, you can still simply
> > put them all on the same field...
> >
> > A ArrayList of address, converted in a JSon sting, in a single HBase
> > cell will still do it.
> >
> > You can have them on separated cells if you think you will access them
> > separatly. You can also have different columns identifiers for each
> > type of address you can have.
> >
> > Like you have CF1 for all you fields, C=Infos for the customer info,
> > C=PHY for Physical address, C=HOM for home address, C=OFF for office
> > address, and so on?
> >
> > The idea is to reduce the CFs if not required, and really think about
> > the way you access your data.
> >
> > If you access all the address at the same time, then simply put all of
> > them on the same cell, on a Array of Address converted in String with
> > JSon. So simple ;)
> >
> > JM
> >
> > 2012/12/24, Ramasubramanian <ramasubramanian.narayanan@gmail.com>:
> > > Hi,
> > >
> > > Let me explain the scenario.
> > >
> > > For address of the customer we have designed 3 tables (in relational
> way)
> > >
> > > 1. Address link table
> > >     Will have key columns like
> > >       Address type - physical or email /fax/phone/URL/ etc.,
> > >       Address category- (home/work)
> > >       Primary address indicator
> > >       Bad address indicator
> > >       Etc.,
> > > 2. Physical address
> > >     This will contain the actual physical address. A customer can have
> n
> > > Number of addresses.
> > >    Fields :
> > >        - address type (physical)
> > >        - address category (home/work/etc.,)
> > >         - address1
> > >         - address 2
> > >         .........
> > > 3. Electronic address
> > >     It will contain email/fax/phone/URL etc, and it's value
> > >      Fields :
> > >        - address type (email /fax/phone/URL/ etc.,)
> > >        - address category (home/work/etc.,)
> > >        - value ( actual value based on address type. Like actual phone
> > > number)
> > >
> > >
> > > Now in the above scenario, while designing in hbase, I am going to
> > eliminate
> > > link table and have those fields in both physical and electronic
> address.
> > >
> > > So both the tables has common fields like address type and address
> > category.
> > > Hence thought of having these two fields common for both the set of
> > fields.
> > > (In a single table)
> > >
> > > Regards,
> > > Rams
> > >
> > > On 24-Dec-2012, at 6:45 PM, Mohammad Tariq <dontariq@gmail.com> wrote:
> > >
> > >> it is. but why do you want  to do that? you will run into issues once
> > >> your
> > >> data starts growing. each cell, along with the actual value stores few
> > >> additional things, *row, column *and the *version. *as a result you
> will
> > >> loose space if you do that.
> > >>
> > >> Best Regards,
> > >> Tariq
> > >> +91-9741563634
> > >> https://mtariq.jux.com/
> > >>
> > >>
> > >> On Mon, Dec 24, 2012 at 5:00 PM, Ramasubramanian Narayanan <
> > >> ramasubramanian.narayanan@gmail.com> wrote:
> > >>
> > >>> Hi,
> > >>>
> > >>> Is it ok to have same column into different column familes?
> > >>>
> > >>> regards,
> > >>> Rams
> > >>>
> > >>> On Mon, Dec 24, 2012 at 4:06 PM, Mohammad Tariq <dontariq@gmail.com>
> > >>> wrote:
> > >>>
> > >>>> you are creating 2 different rows here. cf means how column are
> > clubbed
> > >>>> together as a single entity which is represented by that cf. but
> here
> > >>>> you
> > >>>> are creating 2 different rows having one cf each, CF1 and CF2
> > >>> respectively.
> > >>>> if you want to have 1 row with 2 cf, you have to do use same rowkey
> > for
> > >>>> both the cf.
> > >>>>
> > >>>>
> > >>>>
> > >>>> Best Regards,
> > >>>> Tariq
> > >>>> +91-9741563634
> > >>>> https://mtariq.jux.com/
> > >>>>
> > >>>>
> > >>>> On Mon, Dec 24, 2012 at 3:41 PM, Ramasubramanian Narayanan <
> > >>>> ramasubramanian.narayanan@gmail.com> wrote:
> > >>>>
> > >>>>> Hi,
> > >>>>>
> > >>>>> *Table Name : Customer*
> > >>>>> *
> > >>>>> *
> > >>>>> *Field Name         Column Family*
> > >>>>> Customer Number      CF1
> > >>>>> DOB                  CF1
> > >>>>> FName                CF1
> > >>>>> MName                CF1
> > >>>>> LName                CF1
> > >>>>> Address Type         CF2
> > >>>>> Address Line1        CF2
> > >>>>> Address Line2        CF2
> > >>>>> Address Line3        CF2
> > >>>>> Address Line4        CF2
> > >>>>> State                CF2
> > >>>>> City                 CF2
> > >>>>> Country              CF2
> > >>>>>
> > >>>>> Is it good to have rowkey as follows for the same table?
> > >>>>>
> > >>>>> Rowkey Design:
> > >>>>> --------------
> > >>>>> For CF1 : Customer Number + YYYYMMD (business date)
> > >>>>> For CF2 : Customer Number + Address Type
> > >>>>>
> > >>>>> Note :
> > >>>>> Address Type can be any of HOME/OFFICE/OTHERS
> > >>>>>
> > >>>>> regards,
> > >>>>> Rams
> > >>>
> > >
> >
>


This e-Mail may contain proprietary and confidential information and is sent for the intended
recipient(s) only.  If by an addressing or transmission error this mail has been misdirected
to you, you are requested to delete this mail immediately. You are also hereby notified that
any use, any form of reproduction, dissemination, copying, disclosure, modification, distribution
and/or publication of this e-mail message, contents or its attachment other than by its intended
recipient/s is strictly prohibited.

Visit us at http://www.polarisFT.com

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message