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.
Key features
Section titled “Key features”- Official Virtuoso procedure: Uses the optimized
dump_nquadsstored 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_nquadsstored 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.gzfiles 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
Important prerequisites
Section titled “Important prerequisites”- File permissions: When using Docker, ensure the output directory is properly mounted and accessible inside the container
Basic usage (local Virtuoso)
Section titled “Basic usage (local Virtuoso)”# 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_dumpExport with custom file size limits (50MB per file)
Section titled “Export with custom file size limits (50MB per file)”virtuoso-dump \ --password <your_virtuoso_password> \ --output-dir ./virtuoso_dump \ --file-length-limit 50000000Export uncompressed files
Section titled “Export uncompressed files”virtuoso-dump \ --password <your_virtuoso_password> \ --output-dir ./virtuoso_dump \ --no-compressionUsage with Docker
Section titled “Usage with Docker”# Example: First launch Virtuosovirtuoso-launch \ --name my-virtuoso-dump \ --isql-port 1112 \ --data-dir ./virtuoso-data \ --mount-volume ./dump_output:/dumps
# Then dump the quadstorevirtuoso-dump \ --password <your_virtuoso_password> \ --port 1112 \ --docker-container my-virtuoso-dump \ --output-dir /dumpsArguments
Section titled “Arguments”Use virtuoso-dump --help to see all available options:
Connection parameters
Section titled “Connection parameters”| Argument | Description | Default |
|---|---|---|
-H, --host | Virtuoso server host | localhost |
-P, --port | Virtuoso server ISQL port. Use the host port if mapped via Docker | 1111 |
-u, --user | Virtuoso username | dba |
-k, --password | Required. Virtuoso password | dba |
Output parameters
Section titled “Output parameters”| Argument | Description | Default |
|---|---|---|
-o, --output-dir | Output directory for N-Quads files | ./virtuoso_dump |
--file-length-limit | Maximum length of dump files in bytes | 100000000 (100MB) |
--no-compression | Disable gzip compression (files will be .nq instead of .nq.gz) | false |
Docker parameters
Section titled “Docker parameters”| Argument | Description |
|---|---|
--docker-container | Name or ID of the running Virtuoso Docker container |
Output format
Section titled “Output format”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 filesoutput000001.nq,output000002.nq, etc. for uncompressed files