测验:幂等性与重跑
幂等加载最重要的出发点是什么?
- 一次性减少批量大小
- 确定唯一标识每一行的自然键并对其施加唯一约束
- 提高事务隔离级别
- 增加失败时的重试次数
如果 IS DISTINCT FROM 条件未添加到 ON CONFLICT DO UPDATE 中,会发生什么情况?
- 具有相同键的重复行
- 冲突处理发生错误
- 由于消除了不必要的比较,加载性能加倍。
- 即使在内容没有更改的情况下重新运行,所有行的更新时间也会增加,从而无法跟踪更改。
为什么要有内容哈希?
- 通过隐藏原始值来保护安全
- 为了节省空间,仅使用哈希值而不是原始哈希值。
- 即使有很多列,通过一次比较来确定是否发生变化
- 加快哈希排序速度
当同一个单据在一个批次中包含两次时,为什么单独更新插入还不够?
- 这是因为如果您尝试在一个句子中两次更新相同的密钥,则会发生错误。
- 因为upsert不支持批处理
- 因为哈希计算是不可能的
- 因为事务被回滚了
如果记录每次运行的插入和更新次数,您会得到什么?
- 提前知道物品数量可以加快装载速度。
- 通过相互比较,重复记录会自动删除。
- 防止对源架构进行更改。
- 通过能够区分无更改执行和更改反映执行,可以及早检测到管道和源中的异常。
为什么我不能将外部 API 调用放入重试块内?
- 因为 API 很慢
- 因为每次重试都会重复副作用。
- 网络不能在交易中使用。
- 因为 API 响应会被缓存