Files
scylladb/stable/features/materialized-views.html
GitHub Action 0eb2ca3ec5 Publish docs
2026-04-19 09:28:28 +00:00

1059 lines
76 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html class="no-js" lang="en" style="visibility: hidden;">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width initial-scale=1" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>
ScyllaDB Materialized Views | ScyllaDB Docs
</title>
<meta name="description" content="ScyllaDB is an Apache Cassandra-compatible NoSQL data store that can handle 1 million transactions per second on a single server." />
<link rel="icon" href="../_static/img/favicon.ico" type="image/x-icon" />
<link rel="icon" href="../_static/img/favicon-32x32.png" sizes="32x32" />
<link rel="icon" href="../_static/img/favicon-228x228.png" sizes="192x192" />
<link rel="apple-touch-icon" href="../_static/img/favicon-228x228.png" />
<meta name="msapplication-TileImage" href="../_static/img/favicon-228x228.png" />
<link rel="canonical" href="https://opensource.docs.scylladb.com/stable/features/materialized-views.html"/>
<link rel="author" href="mailto:info@scylladb.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="preload" as="style"
href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;1,400&display=swap" />
<!-- async CSS -->
<link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');"
href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;1,400&display=swap" />
<!-- no-JS fallback -->
<noscript>
<link rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;1,400&display=swap" />
</noscript>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/biel-search@latest/dist/biel-search/biel-search.css">
<script type="module" src="https://cdn.jsdelivr.net/npm/biel-search@latest/dist/biel-search/biel-search.esm.js"></script>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=03e43079" />
<link rel="stylesheet" type="text/css" href="../_static/css/main.css?v=041c0933" />
<link rel="stylesheet" type="text/css" href="../_static/sphinx_collapse.css?v=226d88b4" />
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
<link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=5a6d8084" />
<meta name="robots" content="noindex">
<script type="text/javascript" src="../_static/js/runtime.bundle.js"></script>
<script type="text/javascript" src="../_static/js/main.bundle.js"></script>
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
<script src="../_static/copybutton.js?v=f281be69"></script>
<!-- Local meta tags -->
<!-- Google Tag Manager docs -->
<script>
(function (w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
"gtm.start": new Date().getTime(),
event: "gtm.js"
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != "dataLayer" ? "&l=" + l : "";
j.async = true;
j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, "script", "dataLayer", "GTM-54NWVS4");
</script>
<!-- End Google Tag Manager -->
<!-- Google Tag Manager global -->
<script>
(function (w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
"gtm.start": new Date().getTime(),
event: "gtm.js"
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != "dataLayer" ? "&l=" + l : "";
j.async = true;
j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, "script", "dataLayer", "GTM-T8P2JP");
</script>
<!-- End Google Tag Manager -->
<!-- Expertrec -->
<!-- End Expertrec -->
</head>
<body class="brand-open-source">
<section class="promo-banner promo-banner--hide" style="display: none;">
<div class="promo-banner-wrapper">
<div class="promo-banner__content">
<div class="promo-banner__title">ScyllaDB University LIVE, FREE Virtual Training Event | March 21</div>
<a class="promo-banner__button button button--reverse" href="https://lp.scylladb.com/university-live-2023-03-registration?siteplacement=docs"
target="_blank" rel="noopener noreferrer">Register for Free</a>
</div>
<button class="promo-banner__close">
<i class="icon-cancel"></i>
</button>
</div>
</section>
<header class="header">
<div class="header-logo">
<a class="header-logo__img" href="https://scylladb.com/">
<img src="../_static/img/scylladb-logo-horizontal.svg" alt="ScyllaDB Documentation Logo" />
</a>
<span class="header-logo__bar"></span>
<a class="header-logo__text" href="https://docs.scylladb.com/">
Documentation
</a>
</div>
<div class="header-navigation">
<ul class="dropdown menu scylla-dropdown scylla-dropdown--header" data-dropdown-menu>
<li class="scylla-dropdown__item">
<a href="#" class="scylla-dropdown__title">Deployments <i class="chevron icon-arrow-dropdown"></i></a>
<ul class="menu scylla-dropdown__content">
<li>
<a href="https://docs.scylladb.com/scylla-cloud/">
<i class="icon-docs-cloud"></i>Cloud</a>
</li>
<li>
<a href="https://docs.scylladb.com/manual/">
<i class="icon-server"></i>Server</a>
</li>
</ul>
</li>
<li class="scylla-dropdown__item">
<a href="#" class="scylla-dropdown__title">Tools <i class="chevron icon-arrow-dropdown"></i></a>
<ul class="menu scylla-dropdown__content">
<li>
<a href="https://manager.docs.scylladb.com/">
<i class="icon-docs-manager"></i>ScyllaDB Manager</a>
</li>
<li>
<a href="https://monitoring.docs.scylladb.com/">
<i class="icon-docs-monitoring"></i>ScyllaDB
Monitoring Stack</a>
</li>
<li>
<a href="https://operator.docs.scylladb.com/">
<i class="icon-docs-operator"></i>ScyllaDB Operator
</a>
</li>
</ul>
</li>
<li class="scylla-dropdown__item">
<a href="#" class="scylla-dropdown__title">Drivers <i class="chevron icon-arrow-dropdown"></i></a>
<ul class="menu scylla-dropdown__content">
<li>
<a href="https://docs.scylladb.com/stable/drivers/cql-drivers">
<i class="icon-docs-nsql-guides"></i>CQL Drivers
</a>
</li>
<li>
<a href="https://docs.scylladb.com/stable/drivers/dynamo-drivers">
<i class="icon-docs-alternator"></i>DynamoDB Drivers
</a>
<li>
<a href="https://docs.scylladb.com/stable/versioning/driver-support">
<i class="icon-docs-blog"></i>Supported Driver Versions
</a>
</li>
</li>
</ul>
</li>
<li class="scylla-dropdown__item">
<a href="#" class="scylla-dropdown__title">Resources
<i class="chevron icon-arrow-dropdown"></i></a>
<ul class="menu scylla-dropdown__content">
<li>
<a href="https://university.scylladb.com">
<i class="icon-university"></i>
ScyllaDB University
</a>
</li>
<li>
<a href="https://forum.scylladb.com">
<i class="icon-docs-community"></i>
Community Forum
</a>
</li>
<li>
<a href="https://docs.scylladb.com/stable/get-started/develop-with-scylladb/tutorials-example-projects.html">
<i class="icon-docs-training"></i>
Tutorials
</a>
</li>
</ul>
</li>
</ul>
<div class="header-button">
<a href="https://docs.scylladb.com/manual/stable/getting-started/install-scylla/index.html" class="button"><i class="icon-download me-2"></i> Install</a>
</div>
</div>
<div class="header-search-box">
<i class="dark-theme-toggler icon-theme"></i>
<biel-search-button
project="ddfdo8m94k"
button-style="rounded"
hide-filters="false"
header-title="ScyllaDB chatbot (beta)"
modal-position="top-center">
Search
</biel-search-button>
<biel-button class="header-ask-ai" project="ddfdo8m94k"
header-title="ScyllaDB chatbot (beta)"
button-position="default"
modal-position="sidebar-right"
button-style="dark">
Ask AI
</biel-button>
</div>
<div class="side-nav-toggle">
<i class="dark-theme-toggler icon-theme"></i>
<div class="side-nav-toggle__button" data-toggle="side-nav">
<i class="icon-menu"></i>
</div>
</div>
</header>
<div class="title"></div>
<section
class="layout layout--sidebar layout--has-secondary-sidebar ">
<div class="content large-order-2">
<div class="pre-content">
<div class="breadcrumbs">
<span class="bread__item">
<a href="https://docs.scylladb.com"
class="bread__highlight">
<i class="icon-home"></i> ScyllaDB Docs
</a>
</span>
<span class="bread__item">
<a href="../index.html"
class="bread__highlight">
ScyllaDB Open Source
</a>
</span>
<span class="bread__item">
<a href="index.html" class="bread__highlight">
Features
</a>
</span>
<span class="bread__item bread__item--last">ScyllaDB Materialized Views</span>
</div>
</div>
<div class="sidebar-right-layout">
<div class="body-container">
<div class="content-body"
data-view-source-url="https://github.com/scylladb/scylladb/blob/master/docs/features/materialized-views.rst"
>
<div class="admonition caution">
<p class="admonition-title">Caution</p>
<p>
You're viewing documentation for a previous version.
<a href="https://docs.scylladb.com/manual/">Switch to the latest stable version.</a>
</p>
</div>
<section id="scylladb-materialized-views">
<h1>ScyllaDB Materialized Views<a class="headerlink" href="#scylladb-materialized-views" title="Link to this heading"></a></h1>
<p>Occasionally, the same information record needs to be queried based on more than one key. For example, when:</p>
<ul class="simple">
<li><p>user data includes <code class="docutils literal notranslate"><span class="pre">name</span></code> and <code class="docutils literal notranslate"><span class="pre">ID</span></code> fields, and needs to be queried once by <code class="docutils literal notranslate"><span class="pre">name</span></code> and once by <code class="docutils literal notranslate"><span class="pre">ID</span></code>;</p></li>
<li><p>you need to determine scores, and select the aggregated top scores from within different time ranges.</p></li>
</ul>
<p>In ScyllaDB, data is divided into partitions which can be looked up via a partition key. Sometimes the application needs to find a partition or partitions by the value of another column. Doing this efficiently requires indexing. You may also need to index an alternative clustering key.</p>
<p>Prior to the introduction of materialized views, the only way to implement this was using denormalization - creating two entirely separate tables and synchronizing them from within an application. However, ensuring any level of consistency between the data in two or more views this way can require duplicated code along with complex and slow application logic.</p>
<p>ScyllaDBs materialized views feature, moves this complexity out of the application and into the servers. With fewer round trips to the applications, this implementation is faster and more reliable.</p>
<p>With materialized views, ScyllaDB automates the process of maintaining separate tables to support different queries of the same data, and allows for fast lookups of data in each view using the standard read path.</p>
<p>A <strong>materialized view</strong> is a global index. It is effectively a new table, populated by a query running against the base table. You cannot update a materialized view directly; to update it, you must update the base table.</p>
<p>Each materialized view is a set of rows which corresponds to rows which are present in the underlying, or base, table specified in the materialized views <code class="docutils literal notranslate"><span class="pre">SELECT</span></code> statement.</p>
<section id="configuration-example">
<h2>Configuration Example<a class="headerlink" href="#configuration-example" title="Link to this heading"></a></h2>
<p>Given the following base table:</p>
<div class="highlight-cql notranslate"><div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">buildings</span> <span class="p">(</span>
<span class="n">name</span> <span class="nb">text</span><span class="p">,</span>
<span class="n">city</span> <span class="nb">text</span><span class="p">,</span>
<span class="n">built</span> <span class="nb">int</span><span class="p">,</span>
<span class="n">meters</span> <span class="nb">int</span><span class="p">,</span>
<span class="k">PRIMARY</span> <span class="k">KEY</span> <span class="p">(</span><span class="n">name</span><span class="p">)</span>
<span class="p">);</span>
</pre></div>
</div>
<p>ScyllaDB can automatically maintain a materialized view table. In the following example, we want to search by city, but show all fields in the original table.</p>
<p><code class="docutils literal notranslate"><span class="pre">city</span></code> is the partition key, but since there can be more than one building in each city, we must add <code class="docutils literal notranslate"><span class="pre">name</span></code> as the clustering key, so that <code class="docutils literal notranslate"><span class="pre">(city,</span> <span class="pre">name)</span></code> becomes the primary key:</p>
<div class="highlight-cql notranslate"><div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">MATERIALIZED</span> <span class="k">VIEW</span> <span class="n">building_by_city</span> <span class="k">AS</span>
<span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="n">buildings</span>
<span class="k">WHERE</span> <span class="n">city</span> <span class="k">IS</span> <span class="k">NOT</span> <span class="k">NULL</span>
<span class="k">PRIMARY</span> <span class="k">KEY</span><span class="p">(</span><span class="n">city</span><span class="p">,</span> <span class="n">name</span><span class="p">);</span>
</pre></div>
</div>
<p>A materialized view may itself be queried just like any other table:</p>
<div class="highlight-cql notranslate"><div class="highlight"><pre><span></span><span class="k">SELECT</span> <span class="o">*</span> <span class="k">from</span> <span class="n">building_by_city</span><span class="p">;</span>
</pre></div>
</div>
<p>or</p>
<div class="highlight-cql notranslate"><div class="highlight"><pre><span></span><span class="k">SELECT</span> <span class="n">name</span><span class="p">,</span> <span class="n">built</span><span class="p">,</span> <span class="n">meters</span> <span class="k">from</span> <span class="n">building_by_city</span> <span class="k">LIMIT</span> <span class="mf">1</span><span class="p">;</span>
</pre></div>
</div>
<p>A second materialized view can be made by selecting only the primary key and <code class="docutils literal notranslate"><span class="pre">meters</span></code> field from the base table:</p>
<div class="highlight-cql notranslate"><div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">MATERIALIZED</span> <span class="k">VIEW</span> <span class="n">building_by_city2</span> <span class="k">AS</span>
<span class="k">SELECT</span> <span class="n">meters</span> <span class="k">FROM</span> <span class="n">buildings</span>
<span class="k">WHERE</span> <span class="n">city</span> <span class="k">IS</span> <span class="k">NOT</span> <span class="k">NULL</span>
<span class="k">PRIMARY</span> <span class="k">KEY</span><span class="p">(</span><span class="n">city</span><span class="p">,</span> <span class="n">name</span><span class="p">);</span>
</pre></div>
</div>
<p>Note that, although each materialized view is a separate table, a user cannot modify a view directly:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>cqlsh:mykeyspace&gt;<span class="w"> </span>DELETE<span class="w"> </span>FROM<span class="w"> </span>building_by_city<span class="w"> </span>WHERE<span class="w"> </span><span class="nv">city</span><span class="o">=</span><span class="s1">&#39;Taipei&#39;</span><span class="p">;</span>
InvalidRequest:<span class="w"> </span><span class="nv">code</span><span class="o">=</span><span class="m">2200</span><span class="w"> </span><span class="o">[</span>Invalid<span class="w"> </span>query<span class="o">]</span><span class="w"> </span><span class="nv">message</span><span class="o">=</span><span class="s2">&quot;Cannot directly modify a materialized view&quot;</span>
</pre></div>
</div>
<p>To modify views, remember that you must instead modify the base table associated with the view.</p>
<p>See the <a class="reference internal" href="../cql/mv.html"><span class="doc">CQL Reference for Materialized Views</span></a> for more examples.</p>
</section>
<section id="compaction-strategies-with-materialized-views">
<h2>Compaction Strategies with Materialized Views<a class="headerlink" href="#compaction-strategies-with-materialized-views" title="Link to this heading"></a></h2>
<p>Materialized views, just like regular tables, use one of the available <a class="reference internal" href="../architecture/compaction/compaction-strategies.html"><span class="doc">compaction strategies</span></a>.
When a materialized view is created, it does not inherit its base table compaction strategy settings, because the data model
of a view does not necessarily have the same characteristics as the one from its base table.
Instead, the default compaction strategy (SizeTieredCompactionStrategy) is used.</p>
<p>A compaction strategy for a new materialized view can be explicitly set during its creation, using the following command:</p>
<div class="highlight-cql notranslate"><div class="highlight"><pre><span></span><span class="k">CREATE</span> <span class="k">MATERIALIZED</span> <span class="k">VIEW</span> <span class="n">ks</span><span class="mf">.</span><span class="n">mv</span> <span class="k">AS</span> <span class="k">SELECT</span> <span class="n">a</span><span class="p">,</span><span class="n">b</span> <span class="k">FROM</span> <span class="n">ks</span><span class="mf">.</span><span class="n">t</span> <span class="k">WHERE</span>
<span class="n">a</span> <span class="k">IS</span> <span class="k">NOT</span> <span class="k">NULL</span>
<span class="k">AND</span> <span class="n">b</span> <span class="k">IS</span> <span class="k">NOT</span> <span class="k">NULL</span>
<span class="k">PRIMARY</span> <span class="k">KEY</span> <span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">)</span>
<span class="k">WITH</span> <span class="n">COMPACTION</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;class&#39;</span><span class="p">:</span> <span class="s1">&#39;LeveledCompactionStrategy&#39;</span><span class="p">};</span>
</pre></div>
</div>
<p>You can also change the compaction strategy of an already existing materialized view, using an ALTER MATERIALIZED VIEW statement.</p>
<p>For example:</p>
<div class="highlight-cql notranslate"><div class="highlight"><pre><span></span><span class="k">ALTER</span> <span class="k">MATERIALIZED</span> <span class="k">VIEW</span> <span class="n">ks</span><span class="mf">.</span><span class="n">mv</span>
<span class="k">WITH</span> <span class="n">COMPACTION</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;class&#39;</span><span class="p">:</span> <span class="s1">&#39;LeveledCompactionStrategy&#39;</span><span class="p">}</span> <span class="p">;</span>
</pre></div>
</div>
<section id="more-information">
<h3>More information<a class="headerlink" href="#more-information" title="Link to this heading"></a></h3>
<ul class="simple">
<li><p><a class="reference internal" href="../cql/mv.html"><span class="doc">CQL Reference for Materialized Views</span></a></p></li>
<li><p>Learn more about Materialized Views with ScyllaDB University (Free, registration required)</p>
<ul>
<li><p><a class="reference external" href="https://university.scylladb.com/courses/data-modeling/lessons/materialized-views-secondary-indexes-and-filtering/">Materialized Views, Secondary Indexes, and Filtering Lesson</a></p></li>
<li><p><a class="reference external" href="https://university.scylladb.com/courses/data-modeling/lessons/materialized-views-secondary-indexes-and-filtering/topic/materialized-views-and-indexes-hands-on-lab-1/">Hands-on Lab Part 1</a></p></li>
<li><p><a class="reference external" href="https://university.scylladb.com/courses/data-modeling/lessons/materialized-views-secondary-indexes-and-filtering/topic/materialized-views-and-secondary-indexes-hands-on-updated/">Hands-on Lab Part 2</a></p></li>
</ul>
</li>
</ul>
</section>
</section>
</section>
</div>
<div class="post-content">
<div class="feedback-container">
<p class="feedback-container__title">Was this page helpful?</p>
<span data-tooltip tabindex="1" title="Yes" data-position="top">
<button class="feedback-container__button" id="feedback-positive">
<i class="feedback-container__icon icon-docs-thumbs-up"></i>
</button>
</span>
<span data-tooltip tabindex="1" title="No" data-position="top">
<button class="feedback-container__button" id="feedback-negative">
<i class="feedback-container__icon icon-docs-thumbs-down"></i>
</button>
</span>
<div class="feedback-container__message" id="feedback-message"></div>
</div>
<script>
function resetFeedbackButtonActive() {
const feedbackButtons = document.getElementsByClassName('feedback-container__button');
for (let i = 0; i < feedbackButtons.length; i++) {
feedbackButtons[i].classList.remove('active');
}
}
function showMessage(liked) {
const feedbackMessage = document.getElementById('feedback-message');
const themeGithubRepository = true;
let message = 'Great! Thanks for your feedback.';
if (themeGithubRepository && !liked) {
message = "Thanks for your feedback! Please don't hesitate to <a href='https://github.com/scylladb/scylladb/issues/new?title=docs:%20Issue on page ScyllaDB Materialized Views&&body=I%20would%20like%20to%20report%20an%20issue%20on%20page%20https://opensource.docs.scylladb.com/branch-6.2/features/materialized-views%0A%0A%23%23%23%20Problem%0A%0A%23%23%23%20%20Suggest%20a%20fix&labels=documentation'>create an issue</a> if you have any suggestions on how we can improve.";
}
feedbackMessage.innerHTML = message;
}
function sendGaEvent(liked) {
const event_label = liked ? "positive" : "negative";
const event = "feedback_" + event_label;
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': event,
});
}
const positiveFeebackButton = document.getElementById('feedback-positive');
const negativeFeedbackButton = document.getElementById('feedback-negative');
positiveFeebackButton.addEventListener('click', function() {
resetFeedbackButtonActive();
sendGaEvent(true);
showMessage(true);
positiveFeebackButton.classList.add('active');
});
negativeFeedbackButton.addEventListener('click', function() {
resetFeedbackButtonActive();
sendGaEvent(false);
showMessage(false);
negativeFeedbackButton.classList.add('active');
});
</script>
<div class="content-navigation">
<div class="navigation navigation--prev">
<a class="navigation__link" href="local-secondary-indexes.html">
<button class="navigation__button">
<i class="icon-chevron-left"></i>
</button>
<div class="navigation__title">
<span class="colored">PREVIOUS</span> <br />Local Secondary Indexes
</div>
</a>
</div>
<div class="navigation navigation--next">
<a class="navigation__link" href="counters.html">
<div class="navigation__title">
<span class="colored">NEXT</span> <br />ScyllaDB Counters
</div>
<button class="navigation__button">
<i class="icon-chevron-right"></i>
</button>
</a>
</div>
</div>
<!-- Post content text -->
</div>
</div>
<div class="sidebar-right large-order-3">
<div class="secondary-side-nav custom-scroll-bar">
<ul class="contribute">
<li class="contribute__item">
<a class="button button-sm" href="https://github.com/scylladb/scylladb/issues/new?title=docs:%20Issue on page ScyllaDB Materialized Views&&body=I%20would%20like%20to%20report%20an%20issue%20on%20page%20https://opensource.docs.scylladb.com/branch-6.2/features/materialized-views%0A%0A%23%23%23%20Problem%0A%0A%23%23%23%20%20Suggest%20a%20fix&labels=documentation"
target="_blank">
<i class="icon-github" aria-hidden="true"></i>Create an issue
</a>
</li>
<li class="contribute__item">
<a class="button button-sm" href="https://github.com/scylladb/scylladb/edit/master/docs/features/materialized-views.rst"
target="_blank">
<i class="icon-edit" aria-hidden="true"></i>Edit this page
</a>
</li>
</ul>
<div class="secondary-side-nav__content">
<p class="topic-title">On this page</p>
<ul>
<li><a class="reference internal" href="#">ScyllaDB Materialized Views</a><ul>
<li><a class="reference internal" href="#configuration-example">Configuration Example</a></li>
<li><a class="reference internal" href="#compaction-strategies-with-materialized-views">Compaction Strategies with Materialized Views</a><ul>
<li><a class="reference internal" href="#more-information">More information</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="sidebar-left large-order-1">
<div id="side-nav" class="side-nav custom-scroll-bar" data-closable data-toggler=".show">
<button class="collapsible-button">
<i class="icon-docs-menu-collapse"></i>
</button>
<div class="side-nav-content custom-scroll-bar">
<div class="side-nav__title">
<a href="../index.html">ScyllaDB Open Source</a>
</div>
<div class="side-nav__search">
<biel-search-button
project="ddfdo8m94k"
button-style="rounded"
hide-filters="false"
hide-ctrl-k="true"
header-title="ScyllaDB chatbot (beta)"
modal-position="top-center">
Search
</biel-search-button>
<biel-button class="side-nav__ask-ai" project="ddfdo8m94k"
header-title="ScyllaDB chatbot (beta)"
button-position="default"
modal-position="sidebar-right"
button-style="dark">
Ask AI
</biel-button>
</div>
<div class="side-nav__versions"><ul class="dropdown menu scylla-dropdown scylla-dropdown--versions" data-dropdown-menu>
<li class="scylla-dropdown__item">
<a class="scylla-dropdown__title" href="#">
6.2
<i class="chevron icon-docs-chevron-right"></i>
</a>
<ul class="menu scylla-dropdown__content">
<li>
<a href="materialized-views.html">6.2</a>
</li>
<li>
<a href="../../branch-6.1/index.html">6.1</a>
</li>
<li>
<a href="../../branch-6.0/index.html">6.0</a>
</li>
<li>
<a href="../../branch-5.4/index.html">5.4</a>
</li>
<li>
<a href="../../branch-5.2/index.html">5.2</a>
</li>
<li>
<a href="../../branch-5.1/index.html">5.1</a>
</li>
</ul>
</li>
</ul></div>
<div class="side-nav__content">
<ul class="current">
<li class="toctree-l1 has-children"><a class="reference internal" href="../getting-started/index.html">Getting Started</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l2 has-children"><a class="reference internal" href="../getting-started/install-scylla/index.html">Install ScyllaDB</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/install-scylla/launch-on-aws.html">Launch ScyllaDB on AWS</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/install-scylla/launch-on-gcp.html">Launch ScyllaDB on GCP</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/install-scylla/launch-on-azure.html">Launch ScyllaDB on Azure</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/installation-common/scylla-web-installer.html">ScyllaDB Web Installer for Linux</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/install-scylla/install-on-linux.html">Install ScyllaDB Linux Packages</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/install-scylla/install-jmx.html">Install scylla-jmx Package</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/install-scylla/run-in-docker.html">Run ScyllaDB in Docker</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/installation-common/unified-installer.html">Install ScyllaDB Without root Privileges</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/installation-common/air-gapped-install.html">Air-gapped Server Installation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/installation-common/disable-housekeeping.html">ScyllaDB Housekeeping and how to disable it</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/installation-common/dev-mod.html">ScyllaDB Developer Mode</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../getting-started/configure.html">Configure ScyllaDB</a></li>
<li class="toctree-l2"><a class="reference internal" href="../getting-started/config-commands.html">ScyllaDB Configuration Reference</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../getting-started/requirements.html">ScyllaDB Requirements</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/system-requirements.html">System Requirements</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/os-support.html">OS Support by Linux Distributions and Version</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/cloud-instance-recommendations.html">Cloud Instance Recommendations</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/scylla-in-a-shared-environment.html">ScyllaDB in a Shared Environment</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../using-scylla/migrate-scylla.html">Migrate to ScyllaDB</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/procedures/cassandra-to-scylla-migration-process.html">Migration Process from Cassandra to ScyllaDB</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/cassandra-compatibility.html">ScyllaDB and Apache Cassandra Compatibility</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/mig-tool-review.html">Migration Tools Overview</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../using-scylla/integrations/index.html">Integration Solutions</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-spark.html">Integrate ScyllaDB with Spark</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-kairos.html">Integrate ScyllaDB with KairosDB</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-presto.html">Integrate ScyllaDB with Presto</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-elasticsearch.html">Integrate ScyllaDB with Elasticsearch</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-k8.html">Integrate ScyllaDB with Kubernetes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-janus.html">Integrate ScyllaDB with the JanusGraph Graph Data System</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-datadog.html">Integrate ScyllaDB with DataDog</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-kafka.html">Integrate ScyllaDB with Kafka</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-iota.html">Integrate ScyllaDB with IOTA Chronicle</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-spring.html">Integrate ScyllaDB with Spring</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/sink-kafka-connector.html">Shard-Aware Kafka Connector for ScyllaDB</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-ansible.html">Install ScyllaDB with Ansible</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-databricks.html">Integrate ScyllaDB with Databricks</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-jaeger.html">Integrate ScyllaDB with Jaeger Server</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/integrations/integration-mindsdb.html">Integrate ScyllaDB with MindsDB</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../getting-started/tutorials.html">Tutorials</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../operating-scylla/index.html">ScyllaDB for Administrators</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l2"><a class="reference internal" href="../operating-scylla/admin.html">Administration Guide</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../operating-scylla/procedures/index.html">Procedures</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/procedures/cluster-management/index.html">Cluster Management</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/procedures/backup-restore/index.html">Backup &amp; Restore</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/procedures/config-change/index.html">Change Configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/procedures/maintenance/index.html">Maintenance</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/procedures/tips/index.html">Best Practices</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/benchmarking-scylla.html">Benchmarking ScyllaDB</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/procedures/cassandra-to-scylla-migration-process.html">Migrate from Cassandra to ScyllaDB</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/installation-common/disable-housekeeping.html">Disable Housekeeping</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../operating-scylla/security/index.html">Security</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/security-checklist.html">ScyllaDB Security Checklist</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/authentication.html">Enable Authentication</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/runtime-authentication.html">Enable and Disable Authentication Without Downtime</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/create-superuser.html">Creating a Custom Superuser</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/gen-cqlsh-file.html">Generate a cqlshrc File</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/password-reset.html">Reset Authenticator Password</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/enable-authorization.html">Enable Authorization</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/authorization.html">Grant Authorization CQL Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/certificate-authentication.html">Certificate-based Authentication</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/rbac-usecase.html">Role Based Access Control (RBAC)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/client-node-encryption.html">Encryption: Data in Transit Client to Node</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/node-node-encryption.html">Encryption: Data in Transit Node to Node</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/generate-certificate.html">Generating a self-signed Certificate Chain Using openssl</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/security/saslauthd.html">Configure SaslauthdAuthenticator</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../operating-scylla/admin-tools/index.html">Admin Tools</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/nodetool.html">Nodetool Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cql/cqlsh.html">CQLSh</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/rest.html">Admin REST API</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/tracing.html">Tracing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin-tools/scylla-sstable.html">ScyllaDB SStable</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin-tools/scylla-types.html">ScyllaDB Types</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin-tools/sstableloader.html">SSTableLoader</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin-tools/cassandra-stress.html">cassandra-stress</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin-tools/sstabledump.html">SSTabledump</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin-tools/sstablemetadata.html">SSTableMetadata</a></li>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/logging.html">ScyllaDB Logs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin-tools/perftune.html">Seastar Perftune</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin-tools/virtual-tables.html">Virtual Tables</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin-tools/select-from-mutation-fragments.html">Reading mutation fragments</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin-tools/maintenance-socket.html">Maintenance socket</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin-tools/maintenance-mode.html">Maintenance mode</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin-tools/task-manager.html">Task manager</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference external" href="https://monitoring.docs.scylladb.com/">ScyllaDB Monitoring Stack</a></li>
<li class="toctree-l2"><a class="reference external" href="https://operator.docs.scylladb.com/">ScyllaDB Operator</a></li>
<li class="toctree-l2"><a class="reference external" href="https://manager.docs.scylladb.com/">ScyllaDB Manager</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../upgrade/index.html">Upgrade Procedures</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../upgrade/scylladb-versioning.html">ScyllaDB Versioning</a></li>
<li class="toctree-l3"><a class="reference internal" href="../upgrade/upgrade-opensource/index.html">ScyllaDB Open Source Upgrade</a></li>
<li class="toctree-l3"><a class="reference internal" href="../upgrade/upgrade-to-enterprise/index.html">ScyllaDB Open Source to ScyllaDB Enterprise Upgrade</a></li>
<li class="toctree-l3"><a class="reference internal" href="../upgrade/ami-upgrade.html">ScyllaDB Image</a></li>
<li class="toctree-l3"><a class="reference external" href="https://enterprise.docs.scylladb.com/stable/upgrade/upgrade-enterprise/index.html">ScyllaDB Enterprise</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../operating-scylla/system-configuration/index.html">System Configuration</a><input class="toctree-checkbox" id="toctree-checkbox-11" name="toctree-checkbox-11" type="checkbox"/><label for="toctree-checkbox-11"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../getting-started/system-configuration.html">System Configuration Guide</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/admin.html">scylla.yaml</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/system-configuration/snitch.html">ScyllaDB Snitches</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../operating-scylla/benchmarking-scylla.html">Benchmarking ScyllaDB</a></li>
<li class="toctree-l2"><a class="reference internal" href="../operating-scylla/diagnostics.html">ScyllaDB Diagnostic Tools</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../using-scylla/index.html">ScyllaDB for Developers</a><input class="toctree-checkbox" id="toctree-checkbox-12" name="toctree-checkbox-12" type="checkbox"/><label for="toctree-checkbox-12"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l2"><a class="reference external" href="https://docs.scylladb.com/stable/get-started/develop-with-scylladb/index.html">Develop with ScyllaDB</a></li>
<li class="toctree-l2"><a class="reference external" href="https://docs.scylladb.com/stable/get-started/develop-with-scylladb/tutorials-example-projects.html">Tutorials and Example Projects</a></li>
<li class="toctree-l2"><a class="reference external" href="https://docs.scylladb.com/stable/get-started/learn-resources/index.html">Learn to Use ScyllaDB</a></li>
<li class="toctree-l2"><a class="reference internal" href="../using-scylla/alternator/index.html">ScyllaDB Alternator</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../using-scylla/drivers/index.html">ScyllaDB Drivers</a><input class="toctree-checkbox" id="toctree-checkbox-13" name="toctree-checkbox-13" type="checkbox"/><label for="toctree-checkbox-13"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/drivers/cql-drivers/index.html">ScyllaDB CQL Drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../using-scylla/drivers/dynamo-drivers/index.html">ScyllaDB DynamoDB Drivers</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../cql/index.html">CQL Reference</a><input class="toctree-checkbox" id="toctree-checkbox-14" name="toctree-checkbox-14" type="checkbox"/><label for="toctree-checkbox-14"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l2"><a class="reference internal" href="../cql/cqlsh.html">CQLSh: the CQL shell</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/appendices.html">Appendices</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/compaction.html">Compaction</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/consistency.html">Consistency Levels</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/consistency-calculator.html">Consistency Level Calculator</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/ddl.html">Data Definition</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../cql/dml.html">Data Manipulation</a><input class="toctree-checkbox" id="toctree-checkbox-15" name="toctree-checkbox-15" type="checkbox"/><label for="toctree-checkbox-15"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../cql/dml/select.html">SELECT</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cql/dml/insert.html">INSERT</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cql/dml/update.html">UPDATE</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cql/dml/delete.html">DELETE</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cql/dml/batch.html">BATCH</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../cql/types.html">Data Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/definitions.html">Definitions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/secondary-indexes.html">Global Secondary Indexes</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/time-to-live.html">Expiring Data with Time to Live (TTL)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/functions.html">Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/wasm.html">Wasm support for user-defined functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/json.html">JSON Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/mv.html">Materialized Views</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/non-reserved-keywords.html">Non-Reserved CQL Keywords</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/reserved-keywords.html">Reserved CQL Keywords</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/service-levels.html">Service Levels</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cql/cql-extensions.html">ScyllaDB CQL Extensions</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../alternator/alternator.html">Alternator: DynamoDB API in Scylla</a><input class="toctree-checkbox" id="toctree-checkbox-16" name="toctree-checkbox-16" type="checkbox"/><label for="toctree-checkbox-16"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l2"><a class="reference internal" href="../alternator/getting-started.html">Getting Started With ScyllaDB Alternator</a></li>
<li class="toctree-l2"><a class="reference internal" href="../alternator/compatibility.html">ScyllaDB Alternator for DynamoDB users</a></li>
</ul>
</li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">Features</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-17" name="toctree-checkbox-17" type="checkbox"/><label for="toctree-checkbox-17"><i class="icon-chevron-right"></i></label><div class="break"></div><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="lwt.html">Lightweight Transactions</a></li>
<li class="toctree-l2"><a class="reference internal" href="secondary-indexes.html">Global Secondary Indexes</a></li>
<li class="toctree-l2"><a class="reference internal" href="local-secondary-indexes.html">Local Secondary Indexes</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Materialized Views</a></li>
<li class="toctree-l2"><a class="reference internal" href="counters.html">Counters</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="cdc/index.html">Change Data Capture</a><input class="toctree-checkbox" id="toctree-checkbox-18" name="toctree-checkbox-18" type="checkbox"/><label for="toctree-checkbox-18"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="cdc/cdc-intro.html">CDC Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="cdc/cdc-log-table.html">The CDC Log Table</a></li>
<li class="toctree-l3"><a class="reference internal" href="cdc/cdc-basic-operations.html">Basic operations in CDC</a></li>
<li class="toctree-l3"><a class="reference internal" href="cdc/cdc-streams.html">CDC Streams</a></li>
<li class="toctree-l3"><a class="reference internal" href="cdc/cdc-stream-generations.html">CDC Stream Generations</a></li>
<li class="toctree-l3"><a class="reference internal" href="cdc/cdc-querying-streams.html">Querying CDC Streams</a></li>
<li class="toctree-l3"><a class="reference internal" href="cdc/cdc-advanced-types.html">Advanced column types</a></li>
<li class="toctree-l3"><a class="reference internal" href="cdc/cdc-preimages.html">Preimages and postimages</a></li>
<li class="toctree-l3"><a class="reference internal" href="cdc/cdc-consistency.html">Data Consistency in CDC</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="workload-attributes.html">Workload Attributes</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../architecture/index.html">ScyllaDB Architecture</a><input class="toctree-checkbox" id="toctree-checkbox-19" name="toctree-checkbox-19" type="checkbox"/><label for="toctree-checkbox-19"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l2"><a class="reference internal" href="../architecture/tablets.html">Data Distribution with Tablets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../architecture/ringarchitecture/index.html">ScyllaDB Ring Architecture</a></li>
<li class="toctree-l2"><a class="reference internal" href="../architecture/architecture-fault-tolerance.html">ScyllaDB Fault Tolerance</a></li>
<li class="toctree-l2"><a class="reference internal" href="../architecture/console-CL-full-demo.html">Consistency Level Console Demo</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../architecture/anti-entropy/index.html">ScyllaDB Anti-Entropy</a><input class="toctree-checkbox" id="toctree-checkbox-20" name="toctree-checkbox-20" type="checkbox"/><label for="toctree-checkbox-20"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../architecture/anti-entropy/hinted-handoff.html">ScyllaDB Hinted Handoff</a></li>
<li class="toctree-l3"><a class="reference internal" href="../architecture/anti-entropy/read-repair.html">ScyllaDB Read Repair</a></li>
<li class="toctree-l3"><a class="reference internal" href="../operating-scylla/procedures/maintenance/repair.html">ScyllaDB Repair</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../architecture/sstable/index.html">SSTable</a><input class="toctree-checkbox" id="toctree-checkbox-21" name="toctree-checkbox-21" type="checkbox"/><label for="toctree-checkbox-21"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../architecture/sstable/sstable2/index.html">ScyllaDB SSTable - 2.x</a></li>
<li class="toctree-l3"><a class="reference internal" href="../architecture/sstable/sstable3/index.html">ScyllaDB SSTable - 3.x</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../architecture/compaction/compaction-strategies.html">Compaction Strategies</a></li>
<li class="toctree-l2"><a class="reference internal" href="../architecture/raft.html">Raft Consensus Algorithm in ScyllaDB</a></li>
<li class="toctree-l2"><a class="reference internal" href="../architecture/zero-token-nodes.html">Zero-token Nodes</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting ScyllaDB</a><input class="toctree-checkbox" id="toctree-checkbox-22" name="toctree-checkbox-22" type="checkbox"/><label for="toctree-checkbox-22"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l2 has-children"><a class="reference internal" href="../troubleshooting/support/index.html">Errors and Support</a><input class="toctree-checkbox" id="toctree-checkbox-23" name="toctree-checkbox-23" type="checkbox"/><label for="toctree-checkbox-23"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/report-scylla-problem.html">Report a ScyllaDB problem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/error-messages/index.html">Error Messages</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/log-level.html">Change Log Level</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../troubleshooting/startup/index.html">ScyllaDB Startup</a><input class="toctree-checkbox" id="toctree-checkbox-24" name="toctree-checkbox-24" type="checkbox"/><label for="toctree-checkbox-24"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/change-ownership.html">Ownership Problems</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/scylla-wont-start.html">ScyllaDB will not Start</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/python-error-no-module-named-yaml.html">ScyllaDB Python Script broken</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../troubleshooting/upgrade/index.html">Upgrade</a><input class="toctree-checkbox" id="toctree-checkbox-25" name="toctree-checkbox-25" type="checkbox"/><label for="toctree-checkbox-25"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/missing-dotmount-files.html">Inaccessible configuration files after ScyllaDB upgrade</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../troubleshooting/cluster/index.html">Cluster and Node</a><input class="toctree-checkbox" id="toctree-checkbox-26" name="toctree-checkbox-26" type="checkbox"/><label for="toctree-checkbox-26"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/handling-node-failures.html">Handling Node Failures</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/failed-add-remove-replace.html">Failure to Add, Remove, or Replace a Node</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/failed-decommission.html">Failed Decommission Problem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/timeouts.html">Cluster Timeouts</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/node-joined-without-any-data.html">Node Joined With No Data</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/nodetool-nullpointerexception.html">NullPointerException</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/failed-schema-sync.html">Failed Schema Sync</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../troubleshooting/modeling/index.html">Data Modeling</a><input class="toctree-checkbox" id="toctree-checkbox-27" name="toctree-checkbox-27" type="checkbox"/><label for="toctree-checkbox-27"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/large-partition-table.html">ScyllaDB Large Partitions Table</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/large-rows-large-cells-tables.html">ScyllaDB Large Rows and Cells Table</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/debugging-large-partition.html">Large Partitions Hunting</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/failed-update-schema.html">Failure to Update the Schema</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../troubleshooting/storage/index.html">Data Storage and SSTables</a><input class="toctree-checkbox" id="toctree-checkbox-28" name="toctree-checkbox-28" type="checkbox"/><label for="toctree-checkbox-28"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/space-up.html">Space Utilization Increasing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/drop-table-space-up.html">Disk Space is not Reclaimed</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/sstable-corruption.html">SSTable Corruption Problem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/pointless-compactions.html">Pointless Compactions</a></li>
<li class="toctree-l3"><a class="reference external" href="https://monitoring.docs.scylladb.com/stable/use-monitoring/advisor/heavyCompaction.html">Limiting Compaction</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../troubleshooting/CQL/index.html">CQL</a><input class="toctree-checkbox" id="toctree-checkbox-29" name="toctree-checkbox-29" type="checkbox"/><label for="toctree-checkbox-29"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/time-zone.html">Time Range Query Fails</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/copy-from-failed.html">COPY FROM Fails</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/clients-table.html">CQL Connection Table</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../troubleshooting/monitor/index.html">ScyllaDB Monitor and Manager</a><input class="toctree-checkbox" id="toctree-checkbox-30" name="toctree-checkbox-30" type="checkbox"/><label for="toctree-checkbox-30"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/manager-monitoring-integration.html">Manager and Monitoring integration</a></li>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/reverse-dns-sshd.html">Manager lists healthy nodes as down</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../troubleshooting/install-remove/index.html">Installation and Removal</a><input class="toctree-checkbox" id="toctree-checkbox-31" name="toctree-checkbox-31" type="checkbox"/><label for="toctree-checkbox-31"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l3"><a class="reference internal" href="../troubleshooting/autoremove-ubuntu.html">Removing ScyllaDB on Ubuntu breaks system packages</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../kb/index.html">Knowledge Base</a><input class="toctree-checkbox" id="toctree-checkbox-32" name="toctree-checkbox-32" type="checkbox"/><label for="toctree-checkbox-32"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l2"><a class="reference internal" href="../kb/cdc-experimental-upgrade.html">Upgrading from experimental CDC</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/compaction.html">Compaction</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/consistency.html">Consistency in ScyllaDB</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/count-all-rows.html">Counting all rows in a table is slow</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/cqlsh-more.html">CQL Query Does Not Display Entire Result Set</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/cqlsh-results.html">When CQLSh query returns partial results with followed by “More”</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/custom-user.html">Run ScyllaDB and supporting services as a custom user:group</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/customizing-cpuset.html">Customizing CPUSET</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/decode-stack-trace.html">Decoding Stack Traces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/disk-utilization.html">Snapshots and Disk Utilization</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/dpdk-hardware.html">DPDK mode</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/flamegraph.html">Debug your database with Flame Graphs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/gc-grace-seconds.html">How to Change gc_grace_seconds for a Table</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/gossip.html">Gossip in ScyllaDB</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/increase-permission-cache.html">Increase Permission Cache to Avoid Non-paged Queries</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/lwt-differences.html">How does ScyllaDB LWT Differ from Apache Cassandra ?</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/map-cpu.html">Map CPUs to ScyllaDB Shards</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/memory-usage.html">ScyllaDB Memory Usage</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/ntp.html">NTP Configuration for ScyllaDB</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/perftune-modes-sync.html">Updating the Mode in perftune.yaml After a ScyllaDB Upgrade</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/posix.html">POSIX networking for ScyllaDB</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/quiz-administrators.html">ScyllaDB consistency quiz for administrators</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/raid-device.html">Recreate RAID devices</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/rf-increase.html">How to Safely Increase the Replication Factor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/scylla-and-spark-integration.html">ScyllaDB and Spark integration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/scylla-limits-systemd.html">Increase ScyllaDB resource limits over systemd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/seed-nodes.html">ScyllaDB Seed Nodes</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/set-up-swap.html">How to Set up a Swap Space</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/snapshots.html">ScyllaDB Snapshots</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/static-columns.html">ScyllaDB payload sent duplicated static columns</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/stop-local-repair.html">Stopping a local repair</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/system-limits.html">System Limits</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/tombstones-flush.html">How to flush old tombstones from a table</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/ttl-facts.html">Time to Live (TTL) and Compaction</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/unresponsive-nodes.html">ScyllaDB Nodes are Unresponsive</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/update-pk.html">Update a Primary Key</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/use-perf.html">Using the perf utility with ScyllaDB</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kb/yaml-address.html">Configure ScyllaDB Networking with Multiple NIC/IP Combinations</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../reference/index.html">Reference</a><input class="toctree-checkbox" id="toctree-checkbox-33" name="toctree-checkbox-33" type="checkbox"/><label for="toctree-checkbox-33"><i class="icon-chevron-right"></i></label><div class="break"></div><ul>
<li class="toctree-l2"><a class="reference internal" href="../reference/aws-images.html">AWS Images</a></li>
<li class="toctree-l2"><a class="reference internal" href="../reference/azure-images.html">Azure Images</a></li>
<li class="toctree-l2"><a class="reference internal" href="../reference/gcp-images.html">GCP Images</a></li>
<li class="toctree-l2"><a class="reference internal" href="../reference/configuration-parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="../reference/glossary.html">Glossary</a></li>
<li class="toctree-l2"><a class="reference internal" href="../reference/limits.html">Limits</a></li>
<li class="toctree-l2"><a class="reference internal" href="../reference/api-reference.html">API Reference (BETA)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../reference/metrics.html">Metrics (BETA)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../faq.html">ScyllaDB FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contribute.html">Contribute to ScyllaDB</a></li>
</ul>
</div>
</div>
</div>
</div>
</section>
<footer class="footer">
<div class="footer-group">
<div class="footer-top">
<a class="footer-logo" href="https://www.scylladb.com"></a>
<div class="footer-links">
<a class="footer-links__link" href="https://docs.scylladb.com/" target="_blank">Docs</a>
<a class="footer-links__link" href="https://docs.scylladb.com/stable/get-started/develop-with-scylladb/tutorials-example-projects.html" target="_blank">Tutorials</a>
<a class="footer-links__link" href="https://university.scylladb.com/" target="_blank">University</a>
<a class="footer-links__link" href="https://www.scylladb.com/company/contact-us/"
target="_blank">Contact Us</a>
<a class="footer-links__link" href="https://www.scylladb.com/company/" target="_blank">About Us</a>
</div>
<div class="footer-actions">
<a class="footer-actions__link" href="http://slack.scylladb.com/" target="_blank">
<span data-tooltip tabindex="1" title="User Slack channel" data-position="bottom">
<i class="icon-slack"></i>
</span>
</a>
<a class="footer-actions__link" href="https://forum.scylladb.com/" target="_blank">
<span data-tooltip tabindex="1" title="Community forum" data-position="bottom">
<i class="icon-docs-community"></i>
</span>
</a>
</div>
</div>
<div class="footer-copyright">
&#169; 2026, ScyllaDB. All rights reserved.
| <a class="footer-copyright__link" href="https://www.scylladb.com/tos/" target="_blank">Terms of Service</a>
| <a class="footer-copyright__link" href="https://www.scylladb.com/privacy/" target="_blank">Privacy Policy</a>
| ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
</div>
<div class="footer-bottom">
<div class="footer-bottom__last-updated">
Last updated on 19 Apr 2026.
</div>
<div class="footer-bottom__version">
Powered by
<a class="footer-bottom__link" href="http://sphinx-doc.org/">Sphinx 9.1.0</a> &amp;
<a class="footer-bottom__link" href="https://sphinx-theme.scylladb.com/">ScyllaDB Theme 1.9.2</a>
</div>
</div>
</div>
</footer>
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-T8P2JP" height="0" width="0"
style="display: none; visibility: hidden"></iframe>
</noscript>
</body>
</html>