I have not looked at your Jason object but the rest sound good to me. You might want to implement a test class Wichita creates a Jason, put it in the table, retrieve it and compare it with the original one...
JM Le 27 déc. 2012 01:07, <varaprasad.bh...@polarisft.com> a écrit : > 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 <donta...@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.naraya...@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-m...@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.naraya...@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 <donta...@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.naraya...@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 < > donta...@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.naraya...@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 >