Hive 如何在EMR配置单元中映射动态dynamoDB列

Hive 如何在EMR配置单元中映射动态dynamoDB列,hive,amazon-dynamodb,amazon-emr,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 jo

我在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
使用配置单元外部表,我可以映射dynamoDB中的username和products列,但是我无法映射动态列。有没有一种方法可以扩展或修改org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler,以便在hive接收到从dynamo检索到的数据之前对其进行解释和构造?或者,是否有其他解决方案将dynamo数据转换为第一范式


我的一个关键要求是保持dynamodb.throughput.read.percent设置提供的节流功能,以便不影响表的操作使用。

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


类似()的功能。

您也应该将此发布在官方DynamoDB论坛()上。亚马逊的员工对那里的大部分帖子都有回复。@pw done hi@stjohnroe,你有什么解决办法吗?我关注这个问题。如果您找到了任何解决方案,请告诉我。不幸的是,DynamoDB SerDe不允许我获取底层json表示,并且不支持列名的wilcarding。