我有一个很大的csv文件,其中包含纬度和经度列。我正在使用Timescale的timescaledb-parallel-copy工具将数据移动到带有timescale数据库的postgis中,该数据库并行运行批处理复制命令。然后,我调用update my_table set geom=st_SetSrid(st_MakePoint(longitude, latitude), 4326);
用点填充geom列。但是,这比我想要的要慢。
我尝试创建一个for each row
触发器并在那里运行更新,但是这确实很慢。我还尝试将update my_table set geom=st_SetSrid(st_MakePoint(longitude, latitude), 4326) where geom is NULL;
放在timescaledb-parallel-copy`工具中,在该工具中调用copy命令,希望它可以通过并行化加快速度。这也很慢,因为我不认为它实际上是并行化的,而是每次复制一批时都扫描整个表,因为更新扫描了我认为的整个表?如果有一种方法可以仅更新刚复制的批次,那么我相信这将是最快的方法。
我想知道是否有一种方法可以通过我拥有的设置来加快此更新的速度。似乎我应该能够在摄取时将Lat长时间转换为Point,而不是在所有摄取之后调用update,因为我确实在CSV中拥有lat和long可用。