【问题标题】:How to map dynamic dynamoDB columns in EMR Hive如何在 EMR Hive 中映射动态 dynamoDB 列
【发布时间】:2023-04-06 22:10:01
【问题描述】:

我在 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 摄取之前解释和构造从 dynamo 检索到的数据?或者是否有其他解决方案可以将发电机数据转换为第一范式?

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

【问题讨论】:

标签: hive amazon-dynamodb amazon-emr


【解决方案1】:

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

类似于Explode (source) 所做的事情。

【讨论】:

  • 不幸的是,DynamoDB SerDe 不允许我获取底层的 json 表示,并且不支持列名的通配符。
猜你喜欢
  • 2013-09-09
  • 2020-12-12
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多