“批量加载”是啥意思?

Posted

技术标签:

【中文标题】“批量加载”是啥意思?【英文标题】:What does "bulk load" mean?“批量加载”是什么意思? 【发布时间】:2011-05-26 14:43:05 【问题描述】:

从一篇文章跳到另一篇文章,我到处都可以看到“批量加载”的表达。

它真正(技术上)是什么意思?

这意味着什么?

欢迎根据用例进行解释。

【问题讨论】:

【参考方案1】:

要记住的一点是,批量加载意味着从源到目标的数据内容是相同的,但这仅在源系统被默认的情况下才是正确的。对于任何数据源,尤其是大数据,源数据在被读取并且数据传输发生后可能会发生变化。传统上,如果需要与源匹配的精确时间点捕获,则在线系统要么必须离线,要么暂停更新。

【讨论】:

【参考方案2】:

批量加载用于导入/导出大量数据。通常不会记录批量操作,并且事务完整性可能无法按预期工作。批量操作通常会绕过触发器和完整性检查,例如约束。对于大量数据,这会显着提高性能。

【讨论】:

【参考方案3】:

批量加载是一种以“大块”形式加载数据(通常加载到数据库中)的方法。您可能一次将客户或采购订单或有关库存物品的信息输入到系统中,批量加载会获取此类信息的文件并在短时间内加载数百/数千/数百万条记录.

如果您从一种 DBMS 转换为另一种,您希望不要将所有信息从旧 DB 输入到新 DB。相反,您可以将旧数据库中的信息以新数据库可以轻松读取的格式转储到文件中,然后将该数据导入新数据库。

这就是批量装载所需要的(无论如何,在 35K 英尺的高度)

【讨论】:

【参考方案4】:

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

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

【讨论】:

以上是关于“批量加载”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

批量加载延迟加载的 Hibernate 属性

预加载是啥意思啊,和下载的区别是啥

使用 Apache Beam 的 Dataflow 批量加载的性能问题

使用 Apache Beam 的 Dataflow 批量加载的性能问题

VisualVM 中的“总加载”是啥意思?

HBase表中批量加载的详细步骤