Skip to content

Quadstore dump

This script provides a solution to export the entire content of a Virtuoso quadstore using the official Virtuoso dump_nquads stored procedure. This procedure is specifically designed for N-Quads export and is documented in the official OpenLink Virtuoso VOS documentation.

  • Official Virtuoso procedure: Uses the optimized dump_nquads stored procedure specifically designed for N-Quads export with Named Graph information preservation
  • N-Quads format: Outputs data in N-Quads format, which preserves Named Graph IRI information and provides significant value for data partitioning applications
  • Automatic procedure installation: The script automatically installs the required dump_nquads stored procedure in Virtuoso before performing the dump
  • Automatic graph filtering: The procedure automatically excludes internal virtrdf: graphs while including all user data graphs
  • Automatic compression: Output files are automatically compressed as .nq.gz files for space efficiency (can be disabled)
  • Configurable file size limits: Control the maximum size of individual dump files to prevent excessively large files
  • Sequential file numbering: Files are numbered sequentially (output000001.nq.gz, output000002.nq.gz, etc.)
  • Docker integration: Full support for Docker-based Virtuoso instances
  • File permissions: When using Docker, ensure the output directory is properly mounted and accessible inside the container
Terminal window
# With pipx (global installation)
virtuoso-dump \
--password <your_virtuoso_password> \
--output-dir ./virtuoso_dump
# With uv (development)
uv run python virtuoso_utilities/dump_quadstore.py \
--password <your_virtuoso_password> \
--output-dir ./virtuoso_dump

Export with custom file size limits (50MB per file)

Section titled “Export with custom file size limits (50MB per file)”
Terminal window
virtuoso-dump \
--password <your_virtuoso_password> \
--output-dir ./virtuoso_dump \
--file-length-limit 50000000
Terminal window
virtuoso-dump \
--password <your_virtuoso_password> \
--output-dir ./virtuoso_dump \
--no-compression
Terminal window
# Example: First launch Virtuoso
virtuoso-launch \
--name my-virtuoso-dump \
--isql-port 1112 \
--data-dir ./virtuoso-data \
--mount-volume ./dump_output:/dumps
# Then dump the quadstore
virtuoso-dump \
--password <your_virtuoso_password> \
--port 1112 \
--docker-container my-virtuoso-dump \
--output-dir /dumps

Use virtuoso-dump --help to see all available options:

ArgumentDescriptionDefault
-H, --hostVirtuoso server hostlocalhost
-P, --portVirtuoso server ISQL port. Use the host port if mapped via Docker1111
-u, --userVirtuoso usernamedba
-k, --passwordRequired. Virtuoso passworddba
ArgumentDescriptionDefault
-o, --output-dirOutput directory for N-Quads files./virtuoso_dump
--file-length-limitMaximum length of dump files in bytes100000000 (100MB)
--no-compressionDisable gzip compression (files will be .nq instead of .nq.gz)false
ArgumentDescription
--docker-containerName or ID of the running Virtuoso Docker container

The script outputs data in N-Quads (.nq) format, which is the native format used by Virtuoso’s dump_nquads procedure. Files are automatically compressed to .nq.gz format unless --no-compression is specified.

Naming pattern:

  • output000001.nq.gz, output000002.nq.gz, etc. for compressed files
  • output000001.nq, output000002.nq, etc. for uncompressed files