问题标签 [batch-query]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
603 浏览

java - DynamoDB:给定一组哈希键,批量查询具有最高范围键的项目

我有一个表Book,其中bookIdlastBorrowed分别作为哈希键和范围键。假设每次借书时,都会创建一个新行。

(是的,这还不够,我可以添加一个列来跟踪计数和更新lastBorrowed日期。但假设我坚持这个设计,我无能为力。)

给定一组bookIds(或hashKeys),我希望能够查询每本书最后一次被借阅的时间。

我试图使用QueryRequest,但不断得到com.amazonaws.AmazonServiceException: Attempted conditional constraint is not an indexable operation

我也尝试过使用BatchGetItemRequest,但也没有用:

任何建议将不胜感激!或者,如果有人可以告诉我这目前根本不支持,那么我想我会继续前进!

0 投票
3 回答
1279 浏览

mysql - 在具有单独更新列的重复键更新批次上插入

我有一种情况,我有一个表(col1 (pk), col2, col3, col4)和一组记录,我需要将它们插入到表中并在重复键上更新它们。我想做一个批处理查询来加快速度。但是,col4没有NOT NULL约束。当我想用记录更新时出现问题(val1, val2, val3, None), (val4, val5, val6, val7)。对于第一条记录,我不希望更新第 4 列(如果(val1, val2, val3, val8)存在于 DB 中,我不想覆盖 val8,因为 None 表示缺少值,而不是显式设置为 Null)。但是,对于第二条记录,我想更新col4,因为传递了一个显式值。这对于我只需将更新列设置为col2, col3,而不是的一条记录就可以了col4,但我想批量处理这个查询并且需要col4为它传递值时更新,当我没有值时不更新。我在逻辑上需要下面给出的东西。

显然,这可以通过使其成为一系列单独的语句来完成,但我想找到一种方法来批处理它。有什么方法可以在 sql 中完成此操作或其他方法吗?

0 投票
1 回答
161 浏览

physics - 什么替代了 nvidia physx 3.4 中已弃用的批处理场景查询?

显然,“PhysX 3.4 版中已弃用批处理查询功能”。有谁知道什么会取代未来的批量查询?

0 投票
1 回答
288 浏览

ruby-on-rails - 订购批次清液

给定 ruby​​/rails 中的以下代码,省略了块代码。

如果你运行它,你会得到一个警告。

Scoped order and limit are ignored, it's forced to be batch order and batch size

当然我们可以使用一些自定义样板代码来实现这一点,但我想知道是否有rails-way?

我发现了这一点,但我看不到改变它的可能性是行为。如果我不需要 asc 但我需要 desc 怎么办?

0 投票
2 回答
162 浏览

sap-cloud-sdk - 如何让 SAP CloudSdk BatchRequest 不忽略批处理查询中的过滤器参数?

我们目前正在与 Batch Query 作斗争,这似乎忽略了由于错误的 URL 编码导致的 S4 端的过滤器表达式。

使用返回的实体列表执行查询FluentHelperRead.execute(HttpClient) 包含只有一个实体的预期结果。


以批处理查询的形式执行查询,控制台中记录了以下请求:

从所有批处理结果部分收集的列表包含所有实体。


看起来,查询 URL 的编码方式错误
,并且 S4 在以这种方式编码时忽略了过滤器表达式。
eg被 S4 忽略的$filter编码。%24filter

这似乎是BatchRequestImpl.getRequest(ODataQueryImpl)方法中的一个错误,
其中第二次对已编码的 URL 部分进行 URL 编码。

systemQuery = URLEncoder.encode(systemQuery, "UTF-8");位于
  BatchRequestImpl(1.38.0) - 第 295 行
  BatchRequestImpl(1.42.2) - 第 307 行的代码行
再次对 systemQuery 字符串进行编码(也包括 FilterExpression 的已编码部分)。

在调试器中撤消此代码行的更改并将 scapces 替换为 %20 或 '+' 时,批处理查询看起来像这样

它返回预期的结果(正好是 1 个实体)。


使用这些库版本时出现此错误编码:
sdk-bom: 3.16.1
连接性:1.38.0

此问题也出现在最新的 SDK 版本中:
sdk-bom: 3.21.0
连接性:1.39.0

这个问题也出现在最新版本的连接 JAR 中:
sdk-bom: 3.21.0
connectivity: 1.40.2

与 ABAP/S4 同事一起调试发现
,S4 仅应用过滤器表达式,如果$filter在请求中找到关键字,
%24filter%3D则会被忽略(我们让所有实体运行 Batch Query 的原因)。

我解决它的建议是

我的代码,我如何调用batchRequest:

我认为,这是 Cloud SDK 中的普遍问题。
是否有可能在下一个 Cloud SDK 版本中修复此问题?

0 投票
0 回答
121 浏览

java - Cassandra 中的顺序批量查询

我有两个查询,我希望作为批处理来执行以保持原子性。第一个查询是删除查询,第二个查询是插入查询,两者都在同一张表上操作。虽然确保原子性对我来说很重要,但保持查询的顺序也很重要(因为如果两个查询同时执行并且顺序混乱,我不想删除最近插入的行)。因此,我使用USING TIMESTAMP关键字来定义客户端提供的时间戳以实现特定顺序。

我的问题是,当我尝试执行包含USING TIMESTAMP提供执行顺序的批处理查询时,我的一些测试失败了,而其他测试通过了。另一方面,当我完全删除批处理语句并尝试顺序执行两个查询时,它们都通过了。因此,我相信即使在使用该TIMESTAMP值之后也不会保持查询执行的严格顺序。

我尝试用两种方法在 Java 中执行我的查询。

方式#1

方式#2

两次执行的输出相同。当我执行这两个查询时,相同的测试失败,因为它们在表中找不到预期的数据(而使用相同方法的其他测试通过)。我想知道是否有一种方法可以在执行批处理查询时实现严格的顺序性,如果这是确保这一点的唯一方法,我在执行过程中是否可能遗漏了什么。

0 投票
1 回答
16 浏览

cassandra - 在 cqlengine 中插入多行

我坚持通过 cqlengine 插入/更新多行/大约 800 行/到 cassandra 表。我不想在 python 中使用循环。我搜索并找到批量查询。但不能使用它。

请帮助我进行批量查询或提供其他有效方式在 cassandra 中插入多行。

谢谢你。

https://cqlengine.readthedocs.io/en/latest/topics/queryset.html#batch-queries