monetdb-dumper
Export tables from a MonetDB database for backups or exchanges
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.5%) to scientific vocabulary
Keywords
Repository
Export tables from a MonetDB database for backups or exchanges
Basic Info
- Host: GitHub
- Owner: grip-on-software
- License: apache-2.0
- Language: Java
- Default Branch: master
- Homepage: https://gros.liacs.nl
- Size: 6.01 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
MonetDB dumper
This repository contains a Java application which can interact with a MonetDB database containing a Grip on Software database in order to export a CSV representation of a table that can be imported again using scripts in the monetdb-import repository.
The application is mostly useful for exchange of encrypted data (it can filter out unencrypted data from the table before exporting) or for backups.
Installation: Requirements and configuration
The dumper application has been tested with Semeru OpenJDK 21. In order to
build the application, we use Ant 1.10.14+ with the JDK (a package with
javac). Make sure your JAVA_HOME environment variable points to the correct
JDK directory if you have multiple possible installations.
Before building, ensure you have create a file in the path
nbproject/private/config.properties, possibly by copying the
config.properties.example file to there and editing it, containing the
following properties:
databasedumper.url=jdbc:monetdb://MONETDB_HOST/gros
databasedumper.user=MONETDB_USER
databasedumper.password=MONETDB_PASSWORD
databasedumper.schema=gros
Replace the values to properly connect to the MonetDB database. Take care to
use a proper JDBC-MonetDB URL for the databasedumper.url property, including
the correct port to connect to the database and the name of the database
(gros by default).
Now run the following command in order to build the MonetDB dumper application:
ant -buildfile build.xml -propertyfile nbproject/private/config.properties
The application is then made available in dist/databasedumper.jar.
Running
Run the application as follows:
java -Ddatabasedumper.encrypted=true -jar dist/databasedumper.jar TABLE OUTPUT
Skip the -D define if you want to export unencrypted personal data as well.
It is also possible to override some of the properties defined in the
config.properties file included during the build using defines
(databasedumper.url, databasedumper.user and databasedumper.password).
Replace the TABLE and OUTPUT with the table name and output file path,
respectively. The output file will be a CSV file compressed with GZip, so
typically the extension of the file is .csv.gz.
Testing
Tests can be performed during the build using:
ant -buildfile build.xml -propertyfile nbproject/private/config.properties test
Note that the tests are essentially integration tests, which requires a database to be set up beforehand, otherwise it will skip or fail tests.
- A MonetDB database instance should be running on
localhoston the default port (50000). - A database with the name
gros_testshould be created on the instance. - The database should have a
grosschema and a table calledtestwith two rows and columns of various types in it, specifically as can be imported from thecreate-test-data.sqlfile.
Test output should indicate the successful, failed and skipped tests. Once the
test is complete, test result and coverage information is made available in
build/test, with JUnit XML files in junit/junit.xml in that directory and
JaCoCo coverage XML in jacoco.xml and HTML reports in jacoco/index.html.
GitHub Actions is used to run the unit tests and report on coverage on commits and pull requests. This includes quality gate scans tracked by SonarCloud and Coveralls for coverage history.
License
The MonetDB importer is licensed under the Apache 2.0 License. Dependency libraries are included in object form (some libraries are only used in tests) and have the following licenses:
- CopyLibs: Part of NetBeans, distributed under Apache 2.0 License
- commons-lang: Apache 2.0 License
- monetdb-jdbc: MPL v2.0, available from MonetDB Java Download Area
- opencsv: Apache 2.0 License
Test libraries:
- apiguardian: Apache 2.0 License
- jacoco (agent and ant task): EPL v2.0
- junit5: EPL v2.0
- opentest4j: Apache 2.0 License
Owner
- Name: Grip on Software
- Login: grip-on-software
- Kind: organization
- Location: Netherlands
- Website: https://gros.liacs.nl
- Repositories: 1
- Profile: https://github.com/grip-on-software
Large-scale data-driven analysis of Scrum software development practices
Citation (CITATION.cff)
cff-version: 1.2.0
title: >-
Export tables from a MonetDB database for backups or exchanges
message: Please cite this software as follows.
type: software
authors:
- given-names: Leon
family-names: Helwerda
email: l.s.helwerda@liacs.leidenuniv.nl
affiliation: Leiden University
orcid: 'https://orcid.org/0000-0002-4299-466X'
repository-code: 'https://github.com/grip-on-software/monetdb-dumper'
url: 'https://gros.liacs.nl/'
keywords:
- monetdb
- database-dumper
license: Apache-2.0
version: 0.0.3