Java “这是怎么回事?”;SQL";是否执行了部分NoSQL?

Java “这是怎么回事?”;SQL";是否执行了部分NoSQL?,java,sql-server,amazon-web-services,amazon-dynamodb,nosql,Java,Sql Server,Amazon Web Services,Amazon Dynamodb,Nosql,因此,我想深入研究一个更具SQL混合特性的NoSQL,但我不明白NoSQL的“SQL”部分是如何执行的。这更多的是为了学术目的,而不是我的最终目标是创建一个SQL翻译系统,将转换成这个 所以我有了我的查询表达式: Map<String, AttributeValue> map = new HashMap<String, AttributeValue>(); map.put(":val1", new AttributeValue().withS(partitionKey))

因此,我想深入研究一个更具SQL混合特性的NoSQL,但我不明白NoSQL的“SQL”部分是如何执行的。这更多的是为了学术目的,而不是我的最终目标是创建一个SQL翻译系统,将转换成这个

所以我有了我的查询表达式:

Map<String, AttributeValue> map = new HashMap<String, AttributeValue>();
map.put(":val1", new AttributeValue().withS(partitionKey));
map.put(":val2", new AttributeValue().withS(sortKey.toString()))

DynamoDBQueryExpression<Translate> queryExpression = new DynamoDBQueryExpression<Translate>()
.withKeyConditionExpression("lang = :val1 AND clang >= :val2")
.withExpressionAttributeValues(map);
Map Map=newhashmap();
put(“:val1”,新的AttributeValue().with(partitionKey));
map.put(“:val2”,新的AttributeValue().with(sortKey.toString())
DynamoDBQueryExpression queryExpression=新建DynamoDBQueryExpression()
.withKeyConditionExpression(“lang=:val1和铿锵>=:val2”)
.带有表达式属性值(地图);
所以我的问题是:

这个字符串
“lang=:val1和clang=:val2”
是如何工作的,我可以实际操作它多少,它是否直接进入SQL?
例如,为什么AWS强制使用put
:val1
而不是
“lang=“+val1
”。我试着搜索了几次源代码和文档,但似乎找不到确切解决这个问题的部分。

我相信您所指的SQL是传统RDBMS系统(如MySQL/Oracle/等)使用的ANSI/ISO标准

包括DynamoDB在内的大多数NoSQL数据库都不遵守该标准,也不尝试实现它(甚至不关闭)

您所指的DynamoDB“查询语言”更多地被认为是一种SDK操作,而不是一种语言。SDK将“语言”转换为DynamoDB中使用的特定API调用,只是为了更方便用户。该引擎不打算解析这些查询并创建查询执行计划