优化 Amazon Neptune 批量加载 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

优化 Amazon Neptune 批量加载

使用以下策略将 Neptune 批量加载的加载时间保持在最低限度:

  • 清理你的数据:

    • 一定要将数据转换为支持的数据格式在加载之前。

    • 删除任何重复项或已知错误。

    • 尽可能减少唯一谓词(例如边缘和顶点的属性)的数量。

  • 优化你的文件:

    • 如果您从 Amazon S3 存储桶加载大型文件(如 CSV 文件),加载器可以分解大型文件并为您管理并发性。

    • 如果您从 Amazon S3 文件夹加载多个文件,加载器会先自动加载顶点文件,然后自动加载边缘文件。

    • 将非常大的文件分解成几个较小的文件可以让加载器并行处理它们。

    • 压缩文件可减少传输时间。加载器支持gzip压缩源文件。

  • 检查你的加载器设置:

    • 在加载过程中,如果您不需要执行任何其他操作,请使用OVERSUBSCRIBEparallelism参数。此参数设置会导致批量加载程序运行时使用所有可用的 CPU 资源。通常需要 60%-70% 的 CPU 容量才能在 I/O 限制允许的情况下保持操作的运行速度。

      注意

      何时parallelism设置为OVERSUBSCRIBE要么HIGH(默认设置),加载 OpenPher 数据时存在线程可能遇到竞争条件和死锁的风险,从而导致LOAD_DATA_DEADLOCK错误消息。在这种情况下,请设置parallelism改为较低的设置然后重试加载。

    • 如果加载作业将包含多个加载请求,请使用queueRequest参数。设置queueRequestTRUE让 Neptune 排队你的请求,这样你就不必等待一个完成后再发出另一个请求。

    • 如果您的加载请求正在排队,则可以使用dependencies参数,以便一个作业的失败会导致依赖作业失败。这可以防止加载的数据出现不一致。

    • 如果加载作业要涉及更新之前加载的值,请务必设置updateSingleCardinalityProperties到的参数TRUE. 如果不这样做,加载器会将尝试更新现有单基数值视为错误。对于 Gremlin 数据,基数也在属性列标题中指定(请参阅属性列标题)。

    • 您可以使用failOnError参数来确定在遇到错误时批量加载操作是失败还是继续。另外,你可以使用mode参数,以确保加载作业从上一个作业失败的位置恢复加载,而不是重新加载已加载的数据。

  • 纵向扩展— 在批量加载之前,将数据库集群的写入器实例设置为最大大小。请注意,如果执行此操作,则必须扩展数据库集群中的任何只读副本实例,或者将其删除,直到完成加载数据。

    批量加载完成后,请务必再次向下缩放写入器实例。

请参阅请求参数有关设置加载器请求参数的更多详细信息