“Bulk load”是什么意思?

22

在不同的文章中,我经常看到"bulk loading"这个表达。它在技术上意味着什么?

它有什么含义?

如果有使用案例的解释更好。

4个回答

25

索引通常针对逐个插入行进行优化。但是,当您一次性添加大量数据时,逐个插入行可能效率低下。例如,在使用B-Tree时,单个键的最佳插入方法是往空索引中添加一堆数据的非常糟糕的方法。

而是采用不同的策略来处理B-Tree。您可以预先对所有数据进行排序,并将其分组为块。然后,您可以通过将这些块转换为树节点来构建新的B-Tree。尽管这两种技术具有相同的渐近性能O(n log(n)),但批量加载操作具有更小的系数。


9
批量加载是一种以“大块”方式加载数据(通常是到数据库中)。与单个输入客户、采购订单或库存商品信息不同,批量加载将这些相同类型的信息文件加载数百/数千/数百万条记录,短时间内完成。如果您要从一种DBMS转换到另一种DBMS,则希望不必从旧DB中输入所有信息到新DB中。相反,您会将旧DB中的信息转储到一个文件中,该文件的格式可以轻松地被新DB读取,然后将该数据导入新DB。这就是批量加载的含义(至少在35K英尺的高度上)。

3

批量加载用于导入/导出大量数据。通常情况下,批量操作不会被记录,并且事务完整性可能无法按预期工作。通常,批量操作绕过触发器和完整性检查,如约束条件。这显著提高了处理大量数据的性能。


1
需要记住的一件事是,批量加载意味着从源到目标的数据内容相同,但只有在源系统被认可的情况下才是如此。对于任何数据源,特别是大型数据而言,源数据在读取后和数据传输过程中可能会发生变化。传统上,在需要匹配源的精确时间点捕获的情况下,在线系统要么必须离线,要么必须暂停更新。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接