[GRASS-dev] how to increase performance of v.out.ogr to geopackage ?

Moritz Lennert mlennert at club.worldonline.be
Fri Dec 21 00:46:58 PST 2018


On 20/12/18 20:10, Markus Metz wrote:
> 
> 
> On Thu, Dec 20, 2018 at 10:34 AM Markus Metz 
> <markus.metz.giswork at gmail.com <mailto:markus.metz.giswork at gmail.com>> 
> wrote:
>  >
>  >
>  >
>  > On Thu, Nov 29, 2018 at 3:43 PM Moritz Lennert 
> <mlennert at club.worldonline.be <mailto:mlennert at club.worldonline.be>> wrote:
>  > >
>  > > Hi,
>  > >
>  > > I have large amount of vector maps (~ 400) which each has hundreds of
>  > > thousands of areas and over 150 attribute columns. I'm looking for the
>  > > most efficient way to export these to a format I can share with
>  > > non-GRASS GIS users. My favourite would probably be Geopackage, amongst
>  > > others because the attribute column names are sometimes fairly long,
>  > > thus making export to a DBF based format not easily feasible.
>  > >
>  > > I've seen several sources of information about possible performance
>  > > increases, either in the SQLite world (as a Geopackage is based on
>  > > SQLite) or in the OGR SQLite driver page.
>  > >
>  > > For OGR [1], there is the -gt option to ogr2ogr which allows increasing
>  > > the number of features per transaction (or even running the entire
>  > > conversion in one single transaction).
> [...]
>  > > How about the
>  > > transaction option ?
>  >
>  > I'm afraid the transaction option (equivalent to ogr2ogr -gt) is out 
> of control of v.out.ogr because it is format-specific and v.out.ogr does 
> not use the output format drivers directly, instead it uses the generic 
> OGR interface. However, we could try 
> GDALDatasetStartTransaction()/GDALDatasetCommitTransaction() in v.out.ogr.
> 
> v.out.ogr already uses the OGR interface to start and commit 
> transactions when possible.
> 
> Another reason for slow export can be a buggy NFS implementation if you 
> export to a NFS mount: check if v.out.ogr is running at 100%. If not you 
> could export to a local temp dir and then copy the GeoPackages to the 
> final destination.

Thanks for all the hints. Using

OGR_SQLITE_CACHE=1024 OGR_SQLITE_SYNCHRONOUS=OFF v.out.ogr ...

should already help.

In this particular case export was happening to local disk, so NFS was 
not an issue.

Moritz


More information about the grass-dev mailing list