【问题标题】:aws neptune bulk load parallelizationaws neptune 批量加载并行化
【发布时间】:2022-01-17 21:15:46
【问题描述】:

我正在尝试插入 624,118,983 条记录,分为 1000 个文件,需要 35 小时才能全部加载到海王星中,这非常慢。 我已经为 db.r5.large 实例配置了 2 个实例。 我有 1000 个文件存储在 S3 存储桶中。 我有一个加载请求指向包含 1000 个文件的 S3 存储桶文件夹。 当我得到负载状态时,我得到以下响应。

{
    "status" : "200 OK",
    "payload" : {
        "feedCount" : [
            {
                "LOAD_NOT_STARTED" : 640
            },
            {
                "LOAD_IN_PROGRESS" : 1
            },
            {
                "LOAD_COMPLETED" : 358
            },
            {
                "LOAD_FAILED" : 1
            }
        ],
        "overallStatus" : {
            "fullUri" : "s3://myntriplesfiles/ntriple-folder/",
            "runNumber" : 1,
            "retryNumber" : 0,
            "status" : "LOAD_IN_PROGRESS",
            "totalTimeSpent" : 26870,
            "startTime" : 1639289761,
            "totalRecords" : 224444549,
            "totalDuplicates" : 17295821,
            "parsingErrors" : 1,
            "datatypeMismatchErrors" : 0,
            "insertErrors" : 0
        }
    }

我在这里看到的是 LOAD_IN_PROGRESS 始终为 1。这意味着 neptune 不会尝试并行加载多个文件。 我如何告诉海王星在某些并行化中加载 1000 个文件,例如并行化因子为 10。 我是否缺少任何配置?

这就是我使用批量加载 api 的方式。

curl -X POST -H 'Content-Type: application/json' https://neptune-hostname:8182/loader -d '
{
"source" : "s3://myntriplesfiles/ntriple-folder/",
"format" : "nquads",
"iamRoleArn" : "my aws arn values goes here",
"region" : "us-east-2",
"failOnError" : "FALSE",
"parallelism" : "HIGH",
"updateSingleCardinalityProperties" : "FALSE",
"queueRequest" : "FALSE"
}'

请指教。

【问题讨论】:

    标签: amazon-neptune aws-neptune


    【解决方案1】:

    Amazon Neptune 批量加载程序不会并行加载多个文件,而是将每个文件的内容分配给写入器实例上的可用工作线程数(受限于您在加载命令)。如果您在加载期间没有其他待处理的写入,您可以将该字段设置为OVERSUBSCRIBE,这将使用所有可用的工作线程。其次,较大的文件比较小的文件更好,因为这使工作线程可以并行执行更多操作。第三,仅在加载期间使用更大的写入器实例将提供更多可以承担加载任务的工作线程。一个实例中可用的工作线程数大约是该实例具有的 vCPU 数的两倍。很多时候,人们会使用 db-r5-12xl 之类的东西来处理大容量负载(用于大负载),然后将其缩回到更小的东西来处理常规查询工作负载。

    【讨论】:

    • 感谢您的回答,如果我提交多个批量加载请求并指向文件而不是提交一个指向存储桶的请求。它会帮助更快地加载数据吗?比如一次提交10个文件,等待完成再提交10个文件。
    • Neptune 将尝试加载顶点,然后加载边,但始终一次加载一个文件,因此这无关紧要。如果您有想要首先加载的文件,您可以选择按特定顺序对它们进行排队。
    • 我没有具体的订单,我正在加载 ntriples。
    猜你喜欢
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    相关资源
    最近更新 更多