问题标签 [amazon-qldb]
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.
sql - QLDB 中的行数有限
从QLDB获取数据时,我需要有限的行数。不幸的是,QLDB 在其查询中不支持限制功能。但是,MySQL支持表中行数有限的特性。
但是,我在 QLDB中看到了保留词。这是链接:https ://docs.aws.amazon.com/qldb/latest/developerguide/ql-reference.reserved.html 在本文档中,这些保留字可以用在带双引号的带引号的标识符中(例如,“用户”)。
我的问题是:SELECT * FROM Balance "LIMIT" 3
仍然无法正常工作。请提供一些建议以从 QLDB 表中获取有限数量的行以用于分页目的。
node.js - 使用 Nodejs ( lambda ) 获取 AWS QLDB 的 X-Ray 交互
我尝试过这种方式,但我希望在 QLDB X 射线交互中获得更详细的请求。
让我知道除了我提到的上述选项之外,是否有人以不同的方式尝试过。
如果你知道在这里分享你的代码片段。(X-Ray 与 QLDB 的交互)
node.js - 如何在 Node js 中模拟 AWS QLDB
我想在 QLDB 上做 Jest 测试用例,以尽可能多地覆盖我的代码行。
有什么方法可以在我们的代码覆盖的情况下进行 QLDB 模拟(Jest)
amazon-web-services - 如何使用 Amazon QLDB 进行 CRUD 选项
Flutter 有QLDB api 插件,但插件有明确的例子来开发应用程序
domain-driven-design - QLDB 域驱动程序设计存储库和工作单元模式
鉴于 QLDB 公开的有限driver
接口,如何将存储库 + 工作单元模式与 QLDB 一起使用?我正在使用pyqldb
图书馆。遵循我从( https://www.cosmicpython.com/book/preface.html,他们使用)学习模式的宇宙 Python 书SQLAlchemy
,这是我迄今为止提出的:
在上面的代码中,Thing
是聚合的聚合根。聚合中还有其他对象。
所以具体的问题是:
- 回购应该
tx_executor
作为依赖还是driver
?如果是前者,我如何给它一个执行人? - 应该
QldbRepo.add
实际执行该INSERT
语句,或者 repo 是否应该维护一个简单的内存数据结构(例如Thing
s 列表)并将新的添加thing
到该结构中,然后commit
将弄清楚如何进行插入? - 应该如何
get
实施?如果我这样做driver.execute_lambda(...)
,则意味着inget
和以下add
inadd_thing
不再在单个事务中,因此我不会获得事务保证并且可能会遇到并发问题,对吗? - 应该如何
UnitOfWork.commit
实施?具体来说,如何将所有内容包装到 lambda 函数中并将其传递给commit
?
任何帮助将不胜感激。谢谢!
更新:
我刚刚想到的一种潜在解决方案可以解决以下问题add
:
QldbRepo
维护一个名为 的 lambda 列表instructions
,每个 lambda 对应于 repo 的调用者调用的命令 - 在这种情况下,每次QldbRepo.add
调用时,我们都会执行 `instructions.append(lambda executor: executor.execute_statement("INSERT INTO ...”))。- 在
UnitofWork.commit()
中,读取 repo 维护的 lambda 列表,并一一执行。请参阅下面的代码。
这有意义吗?还是不知道怎么处理get
。也许它必须在一个单独的事务中,我们会通过version_number
在模型上添加一个变量来解决并发问题Thing
?
amazon-qldb - QLDB 事务隔离
我在这里查看示例代码:https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started.python.step-5.html,并注意到这三个函数get_document_id_by_gov_id
,is_secondary_owner_for_vehicle
并add_secondary_owner_for_vin
分别执行在三个driver.execute_lambda
电话中。因此,如果有两个并发请求试图添加第二个所有者,这会触发其中一个请求的序列化冲突吗?
我问的原因是我最初认为我们必须在同一个execute_lambda
调用中运行所有三个函数才能发生序列化冲突,因为每个execute_lambda
调用都使用一个会话,而会话又使用一个事务。如果它们在三个execute_lambda
调用中运行,那么它们将分散到三个事务中,并且 QLDB 将无法检测到冲突。但似乎我的假设不正确,批处理函数调用的唯一好处就是更好的性能?
amazon-web-services - Amazon QLDB 提高文档交易限制或对其进行反制
我创建了一个正在生产中的应用程序,它有一个功能可以进行大量计算并将数据存储在 QLDB 中。这个函数工作正常,但是我们的用户增加了,现在每当我们调用这个函数时它都会说document transaction limit: More than 40 documents were modified
。显然,我不知道这个限制,我在没有记住这一点的情况下创建了这个函数,现在我被卡住了,因为这个函数正在处理很多东西,而且它正在生产中。
所以我想知道是否有办法增加这个限制或者我该如何对抗它。
amazon-qldb - QLDB 表中的外部约束
有没有办法在 QLDB 表中添加外部约束?
假设我有两个打开的表,一个有一个没有,一个主键。我可以添加引用具有主键的外键约束吗?
索引也一样吗?如果我没有任何主键,而只有表上的索引,我可以添加引用这些索引的外键吗?
amazon-qldb - 如何检索 QLDB 上所有表的最小事务/更新时间
在doc中,我们可以按日期检索历史记录,但是如何检索该分类帐上所有表的最短日期?
我试过这个:
但它给出了错误:<UNKNOWN>: at line <UNKNOWN>, column <UNKNOWN>: <UNKNOWN>; Expected number: 2021-08-04T12:24:07.921Z
似乎MIN
函数只能接收数字但没有办法将时间戳转换为纪元/unix时间戳?
还
<UNKNOWN>: at line <UNKNOWN>, column <UNKNOWN>: <UNKNOWN>; Expected number: "20210804122407.921"
(尝试过 postgresql 演员风格::float
也没有奏效)
编辑:没关系,有CAST
这个可行,但希望浮点数足够准确以表示时间戳。
回到问题,如何从所有表中检索?
json - ion.Timestamp 到 json 时间
我看到如果我存储 QLDB ion.Timestamp
,它不能直接转换为 json 时间字符串(YYYY-MM-DDThh:mm:ss.sssZ
)。
例如:
编组时如何强制ion.Timestamp
进入 json 字符串或 int64 unix/epoch?或者我必须递归地检查地图是否是 ion.Timestamp,然后将地图覆盖为 json 字符串?
当前的解决方法(尚未递归)