【问题标题】:Query condition missed key schema element: source_transaction_id in dynamoDB Scala查询条件缺少关键架构元素:dynamoDB Scala 中的 source_transaction_id
【发布时间】:2020-12-14 06:44:48
【问题描述】:

我正在尝试使用以下二级索引执行查询

val valMap = new ValueMap()
      .withString(":v_source_transaction_id", "843f45ad-cb1d-4f41-9ede-366c9304e447")
      //.withString(":source_transaction_trace_id","843f45ad-cb1d-4f41-9ede-366c9304e443")

println(valMap)
//search is defined then extract dates from search.. else continue with simple logic.
val keyConditionExpression =   """source_transaction_id =
                                 | :v_source_transaction_id""".stripMargin


val spec = new QuerySpec()
  .withProjectionExpression("source_transaction_id, transaction_date")
  .withKeyConditionExpression(keyConditionExpression)
  .withValueMap(valMap)
  .withMaxResultSize(2)


case class DataItems(transaction_date: String)
val itemList = new ListBuffer[DataItems]
val items = table.getIndex("gsi-settlement").query(spec)

println(table.getIndex("gsi-settlement"))

val iterator = items.iterator()
while (iterator.hasNext) {
  val next = iterator.next()
  itemList += DataItems(next.getString("transaction_date"))
}
itemList.foreach(println)

这里 gsi 结算是二级索引,源交易 id 是主键,我收到以下错误:

[AmazonDynamoDBException: Query condition missed key schema element:  source_transaction_id

【问题讨论】:

  • 你的意思是GSI by secondary Index 吗?
  • @AtulKumar 是的,它的二级索引

标签: amazon-web-services scala amazon-dynamodb dynamodb-queries aws-java-sdk


【解决方案1】:

试试这个:

val keyConditionExpression = """source_transaction_id = :v_source_transaction_id""".stripMargin

目前你的 keyConditionExpression 出现

source_transaction_id =
   :v_source_transaction_id

错误:AmazonDynamoDBException: Query condition missed key schema element: source_transaction_id 提示您在查询中缺少 GSI 键

【讨论】:

  • 这没有帮助。如果我尝试使用主索引及其分区键进行查询.. 一切正常
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-06
  • 2019-09-30
  • 2018-05-20
  • 2020-07-15
  • 1970-01-01
相关资源
最近更新 更多