gora-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alfonso Nishikawa (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GORA-195) [gora-hbase] Allow mapping of an array to a single column
Date Fri, 04 Jan 2013 12:30:12 GMT

    [ https://issues.apache.org/jira/browse/GORA-195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13543840#comment-13543840
] 

Alfonso Nishikawa commented on GORA-195:
----------------------------------------

At this time is forced to being mapped to a family.
In HBaseStore.java, both newInstance() and put() check schema type of the field being read/written.
In case of being map/array, they only take into account family and ignore column. They should
serialize the field when there is a column name defined in the schema.
                
> [gora-hbase] Allow mapping of an array to a single column
> ---------------------------------------------------------
>
>                 Key: GORA-195
>                 URL: https://issues.apache.org/jira/browse/GORA-195
>             Project: Apache Gora
>          Issue Type: Improvement
>          Components: storage-hbase
>    Affects Versions: 0.2.1
>         Environment: HBase 0.90.4 backend, Hadoop 1.0.1
>            Reporter: Alfonso Nishikawa
>            Priority: Trivial
>
> At this time, defining a mapping in HBase for an array field to a family:column like
this:
> {code}
> {"name": "A",
>  "fields": [
>         {"name": "field",  "type": {"type": "array", "values": "string"}}
>    ]
> }
> <class name="A" ...>
>   <field name="field" family="r" qualifier="c"/>
> </class>
> {code}
> in HBase is discouraging since gets to an unexpected behavior loading parts of the rest
of the record.
> So: by now only is allowed mappings of arrays(and maps) to families.
> Workaround: enclose the array inside an inner optional record like this:
> {code}
> {"name": "A",
>  "fields": [
>         {"name":"holder", "type:" ["null", {
>                     "name":"holderRecord",
>                     "type":"record",
>                     "fields": [
>                          {"name": "field",  "type": {"type": "array", "values": "string"}}
>                      ]
>         }}
>    ]
> }
> {code}
> The necessity comes partially if you don't want to create a family for each array in
you HBase database (advised not to do), or if you just want to map to a column when your array
is read-only.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message