注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
Foundry 的 Ontology 将对象存储在 Ontology 索引中,这是一种为快速访问而优化的存储格式。Foundry 数据集中的数据可以是任意大小或格式,这意味着需要进行数据变换以准备数据集数据以存储在 Ontology 索引中。这个过程称为Ontology 索引,可以应用于任意大小的数据集和对象。Ontology 索引的处理成本以计算秒来衡量。本文件描述了 Ontology 索引如何使用计算资源以及如何管理计算使用。
Ontology 索引使用并行化的 Spark 后端读取任意大小的数据集并将其转变为 Ontology 格式。运行索引任务所使用的计算量基于计算资源(驱动程序和执行器)的数量以及索引任务本身的总墙钟时间。
有关 Spark 使用如何转换为计算秒的更多信息,请参阅主要使用类型文档。您可以在下面找到Ontology 索引使用的计算秒计算示例。
Ontology 索引任务在 Foundry 的搭建应用中展示,并附加到正在索引的对象上。Ontology 索引任务是 Spark 任务,因此被分类为并行化批处理计算;因此,Ontology 索引任务可以像同一后端上的其他任务一样进行测量,例如代码库变换和 Contour 查询。
索引任务可以根据其触发方式进行分类。
Ontology 索引任务必须读取所有需要索引的数据并将其转变为 Ontology 后端可以快速存储、搜索和编辑的格式。
读取和索引数据时的计算使用由以下因素驱动:
索引频率在 Ontology 更新所使用的计算量中也起着重要作用。上游数据集上设置的计划将触发对象的自动重索引。在检查保持对象最新的使用影响时,请考虑该对象及其上游数据集的更新计划。
可以通过优化 Ontology 索引任务来减少计算使用。第一个也是最简单的优化方法是减少索引输入数据的大小,这会减少完成任务所需的工作量。这包括在可能的情况下执行以下操作:
另一种优化方法是配置 Ontology 索引任务以使用变更日志策略进行索引。通过在执行之前将任务与现有对象进行比较,变更日志索引显著减少了每个索引任务需要创建或更新的对象数量。变更日志索引需要更多的配置和更新策略的遵循,但可以带来数量级的性能和效率提升。
索引任务以并行化 Spark 任务的形式出现,可以在搭建应用中看到。请参阅以下索引任务示例。请注意,Ontology 索引任务将根据任务的大小自动选择索引任务的驱动程序和执行器的大小。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Driver: num_vcpu: 1 GiB_RAM: 6 Executors: num_vcpu: 1 GiB_RAM: 4 num_executors: 2 Total Runtime: 10 seconds Calculation: driver_compute_seconds = max(num_vcpu, GiB_RAM / 7.5) * runtime_in_seconds = max(1vcpu, 6GiB / 7.5) * 10sec = 1 * 10 = 10 compute-seconds # 驱动器计算秒数 = max(虚拟CPU数量, 内存大小/7.5) * 运行时间(秒) # = max(1虚拟CPU, 6GiB / 7.5) * 10秒 # = 1 * 10 = 10 计算秒数 executor_compute_seconds = max(num_vcpu, GiB_RAM / 7.5) * num_executors * runtime_in_seconds = max(1vcpu, 4GiB / 7.5) * 2executors * 10sec = 1 * 2 * 10 = 20 compute-seconds # 执行器计算秒数 = max(虚拟CPU数量, 内存大小/7.5) * 执行器数量 * 运行时间(秒) # = max(1虚拟CPU, 4GiB / 7.5) * 2执行器 * 10秒 # = 1 * 2 * 10 = 20 计算秒数 total_compute_seconds = driver_compute_seconds + executor_compute_seconds = 10 compute-seconds + 20 compute-seconds = 30 compute-seconds # 总计算秒数 = 驱动器计算秒数 + 执行器计算秒数 # = 10 计算秒数 + 20 计算秒数 # = 30 计算秒数