2015-06-24 52 views
0

HBase表加载Json数据的模式是什么?我有JSON数据如下Hbase加载Json数据的模式

{ 
     "id": 1, 
     "firstname": "Katerina", 
     "languages": [ 
       { "lang":"en" , "knowledge":"proficient" }, 
       { "lang":"fr" , "knowledge":"advanced" }, 
     ] 
     "job":{ 
       "site":"www.javacodegeeks.com", 
       "name":"Java Code Geeks", 
     } 
     religions":{"catholic":[10,20],"protestant":[40,50]} 
} 

而且我已经创建HBase的表列的家庭,但我不是能够加载JSON数据

create 'test_json','id','firstname','languages','job','religions' 
+0

HBase允许您存储和检索字节。没有任何其他数据类型的支持。要存储json文件,请将其序列化为字节并存储它们。如果您需要将json字段存储在不同的列中,请考虑在客户端实施此操作。或者,您可能希望将Avro看作序列化对象的一种方式,以减少存储的数据量。 –

回答

1

您可以将JSON转换成字符串,然后保存为字节。但请记住,在适应任何类型的查询选项之前,您必须解开数据,因此您不适合搜索。当您坚持使用键值类型数据并且每行有动态或未知或不规则的列时,HBase的效果最佳。如果您尝试将嵌套实体存储在同一行中,上述存储方式可以。这取决于您希望检索日期的方式