如何在EMR Hive中映射动态dynamoDB列

时间:2012-04-11 11:36:08

标签: hive amazon-dynamodb amazon-emr

我在Amazon dynamoDB中有一个表,其记录结构如

{"username" : "joe bloggs" , "products" : ["1","2"] , "expires1" : "01/01/2013" , "expires2" : "01/02/2013"} 

其中products属性是属于用户的产品列表,expires n 属性与列表中的产品相关,产品列表是动态的,有很多。我需要以

之类的格式将此数据传输到S3
joe bloggs|1|01/01/2013
joe bloggs|2|01/02/2013

使用hive外部表我可以映射dynamoDB中的用户名和产品列,但是我无法映射动态列。有没有办法可以扩展或改编org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler,以便在hive摄取之前解释和构造从发电机检索到的数据?或者是否存在将发电机数据转换为第一范式的替代解决方案?

我的一个关键要求是我维护dynamodb.throughput.read.percent设置提供的限制,这样我就不会影响表的操作使用。

1 个答案:

答案 0 :(得分:1)

您可以为该案例构建特定的UDTF(用户定义的表生成函数)。 我不确定Hive如何处理星号(可能是你的情况)作为函数的参数。

类似于Explodesource)所做的事。