首页 > 解决方案 > Vertica:无法为 COPY 语句分配足够的内存(请求 536870912,允许 268435456)

问题描述

我在尝试运行复制表命令来加载 JSON 时遇到此错误。我还尝试创建具有更高 MAXQUERYMEMORYSIZE、QUERY_BUDGET_KB 和 MEMORY SIZE 值的资源池,但仍然出现相同的错误。如何确保查询是在特定的内存池上运行的?

下面是命令:

copy_user=> copy test_load from local '/home/dbadmin/test.json' PARSER fjsonparser() rejected data as table test_load_rejected;
ERROR 2344:  Cannot allocate sufficient memory for COPY statement (536870912 requested, 268435456 permitted)
HINT:  This can happen if you have very wide rows, or if you have specified an incorrect record terminator.
       (Check your escaping -- for example, "'\t'" is not a tab; you must use "E'\t'".)
       It can also happen if you are reading from a corrupted compressed file

dbadmin=> SELECT query_budget_kb FROM resource_pool_status WHERE node_name ilike '%0001%' ORDER BY query_budget_kb desc;

 pool_name | memory_size_kb | max_memory_size_kb | planned_concurrency | max_concurrency | query_budget_kb 
-----------+----------------+--------------------+---------------------+-----------------+-----------------
 copy_pool |              0 |          173225413 |                   1 |                 |       164564128

标签: databasevertica

解决方案


推荐阅读