blob: 4369795e8741db856a3092aae51ff8c3450098d0 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<title>Apache Jena - TDB2 - Command Line Tools</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="/css/bootstrap-icons.css" rel="stylesheet" media="screen"><link rel="stylesheet" type="text/css" href="https://jena.apache.org/sass/jena.1b17c39a117e22b46db4c66f6395dc27c134a60377d87d2d5745b8600eb69722.css" integrity="sha256-GxfDmhF&#43;IrRttMZvY5XcJ8E0pgN32H0tV0W4YA62lyI=">
<link rel="shortcut icon" href="/images/favicon.ico" />
</head>
<body>
<nav class="navbar navbar-expand-lg bg-body-tertiary" role="navigation">
<div class="container">
<div class="navbar-header">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="/index.html">
<img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
</div>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li id="homepage" class="nav-item"><a class="nav-link" href="/index.html"><span class="bi-house"></span> Home</a></li>
<li id="download" class="nav-item"><a class="nav-link" href="/download/index.cgi"><span class="bi-download"></span> Download</a></li>
<li class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal"></span> Learn <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="dropdown-header">Tutorials</li>
<li><a class="dropdown-item" href="/tutorials/index.html">Overview</a></li>
<li><a class="dropdown-item" href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
<li><a class="dropdown-item" href="/documentation/notes/index.html">How-To's</a></li>
<li><a class="dropdown-item" href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
<li><a class="dropdown-item" href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
<li><a class="dropdown-item" href="/tutorials/sparql.html">SPARQL tutorial</a></li>
<li><a class="dropdown-item" href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
<li class="dropdown-divider"></li>
<li class="dropdown-header">References</li>
<li><a class="dropdown-item" href="/documentation/index.html">Overview</a></li>
<li><a class="dropdown-item" href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
<li><a class="dropdown-item" href="/documentation/io/">RDF I/O</a></li>
<li><a class="dropdown-item" href="/documentation/assembler/index.html">Assembler</a></li>
<li><a class="dropdown-item" href="/documentation/tools/index.html">Command-line tools</a></li>
<li><a class="dropdown-item" href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
<li><a class="dropdown-item" href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
<li><a class="dropdown-item" href="/documentation/inference/index.html">Inference API</a></li>
<li><a class="dropdown-item" href="/documentation/ontology/">Ontology API</a></li>
<li><a class="dropdown-item" href="/documentation/permissions/index.html">Permissions</a></li>
<li><a class="dropdown-item" href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
<li><a class="dropdown-item" href="/documentation/rdf/index.html">RDF API</a></li>
<li><a class="dropdown-item" href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
<li><a class="dropdown-item" href="/documentation/rdfstar/index.html">RDF-star</a></li>
<li><a class="dropdown-item" href="/documentation/shacl/index.html">SHACL</a></li>
<li><a class="dropdown-item" href="/documentation/shex/index.html">ShEx</a></li>
<li><a class="dropdown-item" href="/documentation/tdb/index.html">TDB</a></li>
<li><a class="dropdown-item" href="/documentation/tdb2/index.html">TDB2</a></li>
<li><a class="dropdown-item" href="/documentation/query/text-query.html">Text Search</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal-code"></span> Javadoc <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/documentation/javadoc.html">All Javadoc</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/arq/">ARQ</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/jena/">Jena Core</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/permissions/">Permissions</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/shacl/">SHACL</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/tdb/">TDB</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/text/">Text Search</a></li>
</ul>
</li>
</ul>
<form class="d-flex" role="search" action="/search" method="GET">
<div class="input-group">
<input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search" style="width: 10rem;">
<button class="btn btn-outline-secondary border-start-0 border" type="submit">
<i class="bi-search"></i>
</button>
</div>
</form>
<ul class="navbar-nav">
<li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html" title="Ask"><span class="bi-patch-question"></span><span class="text-body d-none d-xxl-inline"> Ask</span></a></li>
<li class="nav-item dropdown">
<a href="#" title="Get involved" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-megaphone"></span><span class="text-body d-none d-xxl-inline"> Get involved </span><b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/getting_involved/index.html">Contribute</a></li>
<li><a class="dropdown-item" href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
<li class="dropdown-divider"></li>
<li class="dropdown-header">Project</li>
<li><a class="dropdown-item" href="/about_jena/about.html">About Jena</a></li>
<li><a class="dropdown-item" href="/about_jena/architecture.html">Architecture</a></li>
<li><a class="dropdown-item" href="/about_jena/citing.html">Citing</a></li>
<li><a class="dropdown-item" href="/about_jena/team.html">Project team</a></li>
<li><a class="dropdown-item" href="/about_jena/contributions.html">Related projects</a></li>
<li><a class="dropdown-item" href="/about_jena/roadmap.html">Roadmap</a></li>
<li><a class="dropdown-item" href="/about_jena/security-advisories.html">Security Advisories</a></li>
<li class="dropdown-divider"></li>
<li class="dropdown-header">ASF</li>
<li><a class="dropdown-item" href="https://www.apache.org/">Apache Software Foundation</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
</ul>
</li>
<li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/tdb2/tdb2_cmds.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span><span class="text-body d-none d-xxl-inline"> Edit this page</span></a></li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="col-md-12">
<div id="breadcrumbs">
<ol class="breadcrumb mt-4 p-2 bg-body-tertiary">
<li class="breadcrumb-item"><a href='/documentation'>DOCUMENTATION</a></li>
<li class="breadcrumb-item"><a href='/documentation/tdb2'>TDB2</a></li>
<li class="breadcrumb-item active">TDB2 CMDS</li>
</ol>
</div>
<h1 class="title">TDB2 - Command Line Tools</h1>
<main class="d-flex flex-xl-row flex-column">
<aside class="text-muted align-self-start mb-3 p-0 d-xl-none d-block">
<h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
<nav id="TableOfContents">
<ul>
<li><a href="#tdb2tdbloader"><code>tdb2.tdbloader</code></a>
<ul>
<li><a href="#loader-options">Loader options</a></li>
</ul>
</li>
<li><a href="#tdb2tdbstats"><code>tdb2.tdbstats</code></a></li>
</ul>
</nav>
</aside>
<article class="flex-column me-lg-4">
<p><em>TDB2 is not compatible with TDB1</em></p>
<p>Do not run TDB1 tools on a TDB2 database, nor run TDB2 tools on a TDB1 database.</p>
<p>These scripts are available jena binary distribution.</p>
<ul>
<li><code>tdb2.tdbbackup</code></li>
<li><code>tdb2.tdbdump</code></li>
<li><code>tdb2.tdbcompact</code></li>
<li><code>tdb2.tdbloader</code></li>
<li><code>tdb2.tdbquery</code></li>
<li><code>tdb2.tdbupdate</code></li>
<li><code>tdb2.tdbstats</code></li>
</ul>
<p>On MS Windows, these commands are called <code>tdb2_tdbquery</code> etc.</p>
<p>Example usage:</p>
<pre tabindex="0"><code>tdb2.tdbloader --loc &lt;DB location&gt; file1 file2 ...
</code></pre><p>Note:</p>
<p><code>tdbloader2</code> is a TDB1 command tool.</p>
<h2 id="tdb2tdbloader"><code>tdb2.tdbloader</code></h2>
<p>Basic usage: load files into a database at location &ldquo;DB&rdquo;:</p>
<pre><code>tdb2.tdbloader --loc DB file1 file2 ....
</code></pre>
<p>To load the data into a named graph, use the <code>--graph=IRI</code> argument:</p>
<pre><code>tdb2.tdbloader --loc DB --graph=https://example.org/graph#name file1
</code></pre>
<p>For the complete syntax and list of all arguments use <code>--help</code>:</p>
<pre><code>tdb2.tdbloader --help
</code></pre>
<p>All TDB2 loaders can update datasets and do not have to work on an empty
dataset. However, only the basic and sequential loader are fully
transactional in the presence of crashes. The other loaders, while
faster, work by manipulating the low-level datastructures, and are tuned
for large changes of data. They do not provide perfect transaction
isolation in case a load goes wrong for some reason. The multiphase
loading operations use partial transactions which can leave the database
in a strange state.</p>
<p>When working with large data to load, it is advisable to check it
completely first with <code>riot --validate</code>. Parse errors during loading can
lead to inconsistent indexing. Fixing bad data, even if legal RDF, such
as bad lexical forms of literals or bad URIs, is much easier before the
data is in the database.</p>
<p>Because loading in hardware dependent, the right choice for any
situation can only be found by trying each loader to see what works best
and the notes below are only initial guidance. The default choice is
a reasonable starting point. Closing all applications to release their
memory and not use CPU improves the loading process performance.</p>
<p>Loading very large datasets (like Wikidata) with tdb2.tdbloader may
sometimes on linux configurations fail with errors like:</p>
<pre><code>Native memory allocation (mmap) failed to map 65536 bytes for
committing reserved memory.
</code></pre>
<p>This can be avoided by adding a larger value to the <code>vm.max_map_count</code>
option. The command <code>sudo sysctl -w vm.max_map_count=262144</code> updates
the value for your current session, or you can persist the change by
editing the value in <code>/etc/sysctl.conf</code> or in <code>/etc/sysctl.d/*</code> override
files if available.</p>
<h3 id="loader-options">Loader options</h3>
<p>The choice of loader is given by the optional <code>--loader</code> argument.</p>
<p><code>--loader=basic</code></p>
<p>The basic loader loads data as a single transaction into the dataset on
a single thread. It is suitable for small data and also for
incrementally adding to a dataset safely, A machine crash while running
this loader will not invalidate the database; the load simply will not happen.</p>
<p><code>--loader=sequential</code></p>
<p>The sequential loader is a single threaded loader that loads the primary
index then each of the other indexes. It is suitable only for low resource
hardware, especially in a low I/O bandwidth situation.</p>
<p><code>--loader=phased</code> (default)</p>
<p>The phased loader, the default if no <code>--loader</code> argument is provided,
is balance between performance and hardware demands.</p>
<p>It used multiple threads for both the initial loading (3 worker threads)
and then 2 threads in parallel for building the other indexes.</p>
<p><code>--loader=parallel</code></p>
<p>The parallel loader runs all operations at once. It can deliver the best
performance providing enough RAM is available and the persistent storage
is SSD. It can consume all hardware resources, greatly impacting
any other applications running.</p>
<h2 id="tdb2tdbstats"><code>tdb2.tdbstats</code></h2>
<p>Produce statistics for the dataset, which can be used for optimization rules. See the
<a href="../tdb/optimizer.html#statistics-rule-file">TDB Optimizer description.</a>.</p>
<p>For TDB2 the statistic files is read and placed in the <code>Data-NNNN</code> directory (<code>Data-0001/stats.opt</code>).</p>
</article>
<aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
<h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
<nav id="TableOfContents">
<ul>
<li><a href="#tdb2tdbloader"><code>tdb2.tdbloader</code></a>
<ul>
<li><a href="#loader-options">Loader options</a></li>
</ul>
</li>
<li><a href="#tdb2tdbstats"><code>tdb2.tdbstats</code></a></li>
</ul>
</nav>
</aside>
</main>
</div>
</div>
</div>
<footer class="bd-footer py-4 py-md-5 mt-4 mt-lg-5 bg-body-tertiary">
<div class="container" style="font-size:80%" >
<p>
Copyright &copy; 2011&ndash;2024 The Apache Software Foundation, Licensed under the
<a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
</p>
<p>
Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
The Apache Software Foundation.
<br/>
<a href="https://privacy.apache.org/policies/privacy-policy-public.html"
>Apache Software Foundation Privacy Policy</a>.
</p>
</div>
</footer>
<script src="/js/popper.min.js.js" type="text/javascript"></script>
<script src="/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/js/improve.js" type="text/javascript"></script>
<script type="text/javascript">
(function() {
'use strict'
const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
if (links !== undefined && links !== null) {
for (const link of links) {
link.classList.add('active')
let parentElement = link.parentElement
let count = 0
const levelsLimit = 4
while (['UL', 'LI'].includes(parentElement.tagName) && count <= levelsLimit) {
if (parentElement.tagName === 'LI') {
parentElement.querySelector('a:first-child').classList.add('active')
}
parentElement = parentElement.parentElement
count++
}
}
}
})()
</script>
</body>
</html>