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



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

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

其中 Products 属性是属于用户的产品列表,过期 n 属性与列表中的产品相关,产品列表是动态的,并且有很多。我需要以这样的格式将此数据传输到 S3

joe bloggs|1|01/01/2013
joe bloggs|2|01/02/2013

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

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

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

类似于爆炸(来源)所做的。

最新更新