Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 雪花:在SQL过程中遇到内存错误_Python_Sql_Memory_Snowflake Cloud Data Platform - Fatal编程技术网

Python 雪花:在SQL过程中遇到内存错误

Python 雪花:在SQL过程中遇到内存错误,python,sql,memory,snowflake-cloud-data-platform,Python,Sql,Memory,Snowflake Cloud Data Platform,我不想解释为什么我们的仓库是这样设置的。但简而言之,由于我们正在进行的数据摄取中的一些更改,所以在所有表中都需要此操作 USE DATABASE WAREHOUSE; UPDATE WAREHOUSE.EVENTSOURCES_TEST SET etl_uuid = a.etl_uuid FROM (SELECT ltrim(split_part(_FILE, '/', 6), 's') as etl_uuid FROM WAREHOUSE.EVENTSOURCES_T

我不想解释为什么我们的仓库是这样设置的。但简而言之,由于我们正在进行的数据摄取中的一些更改,所以在所有表中都需要此操作

USE DATABASE WAREHOUSE;

UPDATE WAREHOUSE.EVENTSOURCES_TEST
SET etl_uuid = a.etl_uuid 
FROM  
    (SELECT ltrim(split_part(_FILE, '/', 6), 's') as etl_uuid
     FROM WAREHOUSE.EVENTSOURCES_TEST) a  
WHERE _FILE IS NOT NULL AND etl_uuid IS NULL;
使用中等大小或较大大小会导致此更新,这是所有表支持此更改所必需的,以返回有关Snowflake仓库大小的内存错误

SQL执行内部错误:处理因错误300005而中止:946296401


现在,Snowflake建议在更新期间增加仓库大小。这很好,但这已经发生在我们的一个较小的表上,有158M行。许多桌子上的数字是这个数字的十倍。理想情况下,我希望创建一个批处理类型的流程,该流程将更新大约100k行,然后一遍又一遍地进行更新,直到整个表被更新。但snowflake本身不支持这一点,因此我正在寻找如何处理这种情况的其他见解?

我相信我只需像下面这样重写查询并尝试一下,因为我认为您不需要内联视图:

UPDATE  warehouse.eventsources_test
SET     etl_uuid = LTRIM(SPLIT_PART(_file, '/', 6), 's')
WHERE   _file IS NOT NULL AND etl_uuid IS NULL;