Thank you Thomas. That was helpful. So there are the elements, separator, end of non null array, offset array, offset position, length, version
'0' *0*\x00\x00\x00\x80\x01\x00\x00\x00\x04\x00\x00\x00\x01\x01 '0', '0' 0\x000\x00\x00\x00\x80\x01\x80\x03\x00\x00\x00\x06\x00\x00\x00\x02 \x01 '1', '1' 1\x001\x00\x00\x00\x80\x01\x80\x03\x00\x00\x00\x06\x00\x00\x00\x02 \x01 '1', '23' 1\x0023\x00\x00\x00\x80\x01\x80\x03\x00\x00\x00\x07\x00\x00\x00 \x02\x01 [''] \x00\x00\x80\x01\x00\x00\x00\x02\x00\x00\x00\x01\x01 ['', ''] \x00\x00\x80\x01\x80\x01\x00\x00\x00\x02\x00\x00\x00\x02\x01 On Fri, Oct 19, 2018 at 2:49 PM Thomas D'Silva <tdsi...@salesforce.com> wrote: > Take a look at PArrayDataTypeEncoder appendValue() and encode(). For > variable length data types we store the individual element's serialized > bytes with a separator and the the last part of the array contains the > offsets. > For fixed length data types we just store the individual elements. > > On Fri, Oct 19, 2018 at 2:40 PM, William Shen <wills...@marinsoftware.com> > wrote: > >> Hi, >> >> Sorry if this is too basic of a question. I tried to look through the >> documentation but could not find the information. How are Phoenix Arrays >> stored in HBase, and in particular, how are varchar array stored? >> >> I tried to upsert data in phoenix, and compare the HBase value: >> >> '0' *0*\x00\x00\x00\x80\x01\x00\x00\x00\x04\x00\x00\x00\x01\x01 >> '0', '0' 0\x000\x00\x00\x00\x80\x01\x80\x03\x00\x00\x00\x06\x00\x00\x00 >> \x02\x01 >> '1', '1' 1\x001\x00\x00\x00\x80\x01\x80\x03\x00\x00\x00\x06\x00\x00\x00 >> \x02\x01 >> '1', '23' 1\x0023\x00\x00\x00\x80\x01\x80\x03\x00\x00\x00\x07\x00\x00\x00 >> \x02\x01 >> [''] \x00\x00\x80\x01\x00\x00\x00\x02\x00\x00\x00\x01\x01 >> ['', ''] \x00\x00\x80\x01\x80\x01\x00\x00\x00\x02\x00\x00\x00\x02\x01 >> >> I was able to deduce that the varchar is stored with a zero byte >> terminator, and I think there is another part tracking how many items are >> in an array, but I could not quite figure out the array information in hex >> that follows... Can someone help me understand how the array is stored in >> HBase? >> >> Thank you! >> > >