| <!DOCTYPE html> |
| |
| |
| |
| <html lang="en"> |
| <head> |
| <!-- Global site tag (gtag.js) - Google Analytics --> |
| <script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script> |
| <script> |
| window.dataLayer = window.dataLayer || []; |
| function gtag(){dataLayer.push(arguments);} |
| gtag('js', new Date()); |
| |
| gtag('config', 'UA-61232409-1'); |
| </script> |
| |
| |
| |
| <meta charset="UTF-8"> |
| <meta name="ignite-version" content="2.9.0" /> |
| <title>Ignite Cassandra Integration Configuration | Ignite Documentation</title> |
| |
| <link rel="canonical" href="/docs/2.9.0/extensions-and-integrations/cassandra/configuration" /> |
| <META NAME="ROBOTS" CONTENT="NOINDEX" /> |
| |
| |
| <link rel="stylesheet" href="/assets/css/styles.css?1609302780"> |
| <link rel="stylesheet" href="/assets/css/asciidoc-pygments.css"> |
| <link rel="shortcut icon" href="/favicon.ico"> |
| <meta name='viewport' content='width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0'> |
| |
| <script type="text/javascript" src="/assets/js/anchor.min.js?1609302780"></script> |
| |
| <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" /> |
| |
| |
| </head> |
| <body> |
| <header> |
| <!--#include virtual="/includes/promotion_banner.html" --> |
| <div class="container"> |
| <button type='button' class='menu' title='Docs menu'> |
| <img src="/assets/images/menu-icon.svg"/> |
| </button> |
| <div class='home'> |
| <a href="/" class='home' title='Apache Ignite home'> |
| <img src="/assets/images/apache_ignite_logo.svg" alt="Apache Ignite logo" width="103" > |
| </a> |
| </div> |
| |
| |
| <select id="version-selector"> |
| <option value="2.9.0">2.9.0</option> |
| </select> |
| |
| <nav id="api-docs"> |
| <li><a href="#">APIs</a> |
| |
| <nav class='dropdown'> |
| <li class="dropdown-item"><a href="/releases/latest/javadoc/index.html">Java</a></li> |
| |
| <li class="dropdown-item"><a href="/releases/latest/dotnetdoc/api/">C#/.NET</a></li> |
| |
| <li class="dropdown-item"><a href="/releases/latest/cppdoc/index.html">C++</a></li> |
| |
| <li class="dropdown-item"><a href="/releases/latest/scaladoc/scalar/index.html#org.apache.ignite.scalar.scalar$">Scala</a></li> |
| |
| </nav> |
| </li> |
| |
| <li><a href="#">Examples</a> |
| <nav class="dropdown"> |
| <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/examples" target="_blank" rel="noopener" title="Apache Ignite Java examples">Java</a></li> |
| |
| <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/dotnet/examples" target="_blank" rel="noopener" title="Apache Ignite C#/.NET examples">C#/.NET</a></li> |
| |
| <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/cpp/examples" target="_blank" rel="noopener" title="Apache Ignite C++ examples">C++</a></li> |
| |
| <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/python/examples" target="_blank" rel="noopener" title="Apache Ignite Python examples">Python</a></li> |
| |
| <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/nodejs/examples" target="_blank" rel="noopener" title="Apache Ignite NodeJS examples">NodeJS</a></li> |
| |
| <li class="dropdown-item"><a href="https://github.com/apache/ignite/tree/master/modules/platforms/php/examples" target="_blank" rel="noopener" title="Apache Ignite PHP examples">PHP</a></li> |
| </nav> |
| </li> |
| </nav> |
| |
| <form class='search'> |
| <button class="search-close" type='button'><img src='/assets/images/cancel.svg'></button> |
| <input type="search" placeholder="Search…" id="search-input"> |
| </form> |
| <button type='button' class='search-toggle'><img src='/assets/images/search.svg'></button> |
| |
| <nav id="lang-selector"> |
| <li><a href="#"><img src="/assets/images/icon_lang_en.png" alt="English language icon" /><span>▼</span></a> |
| <nav class="dropdown"> |
| <li class="dropdown-item"><a href="/docs/latest/" ><img src="/assets/images/icon_lang_en.png" alt="English language icon" /><span>English</span></a></li> |
| <li class="dropdown-item"><a href="https://www.ignite-service.cn/doc/java/" target="_blank" rel="noopener"><img src="/assets/images/icon_lang_cn.png" alt="Chinese language icon" /><span>Chinese</span></a></li> |
| </nav> |
| </li> |
| </nav> |
| |
| <button type='button' class='top-nav-toggle'>⋮</button> |
| |
| |
| |
| </div> |
| </header> |
| |
| |
| <link rel="stylesheet" href="/assets/css/docs.css"> |
| <section class='page-docs'> |
| |
| |
| |
| |
| |
| |
| <nav class='left-nav' data-swiftype-index='false'> |
| |
| |
| <li> |
| |
| |
| <a href="/docs/2.9.0/index" class='' >Documentation Overview</a> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Quick Start Guides<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/quick-start/java" |
| class='' |
| >Java</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/quick-start/dotnet" |
| class='' |
| >.NET/C#</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/quick-start/cpp" |
| class='' |
| >C++</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/quick-start/python" |
| class='' |
| >Python</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/quick-start/nodejs" |
| class='' |
| >Node.JS</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/quick-start/sql" |
| class='' |
| >SQL</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/quick-start/php" |
| class='' |
| >PHP</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/quick-start/restapi" |
| class='' |
| >REST API</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Installation<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/installation/installing-using-zip" |
| class='' |
| >Installing Using ZIP Archive</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/installation/installing-using-docker" |
| class='' |
| >Installing Using Docker</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/installation/deb-rpm" |
| class='' |
| >Installing DEB or RPM package</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Kubernetes<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/installation/kubernetes/amazon-eks-deployment" class=''>Amazon EKS</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/installation/kubernetes/azure-deployment" class=''>Azure Kubernetes Service</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/installation/kubernetes/gke-deployment" class=''>Google Kubernetes Engine</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/installation/vmware-installation" |
| class='' |
| >VMWare</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Setting Up<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/understanding-configuration" |
| class='' |
| >Understanding Configuration</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/setup" |
| class='' |
| >Setting Up</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/logging" |
| class='' |
| >Configuring Logging</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/resources-injection" |
| class='' |
| >Resources Injection</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| <a href="/docs/2.9.0/starting-nodes" class='' >Starting and Stopping Nodes</a> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Clustering<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/clustering/clustering" |
| class='' |
| >Overview</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/clustering/tcp-ip-discovery" |
| class='' |
| >TCP/IP Discovery</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/clustering/zookeeper-discovery" |
| class='' |
| >ZooKeeper Discovery</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/clustering/discovery-in-the-cloud" |
| class='' |
| >Discovery in the Cloud</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/clustering/network-configuration" |
| class='' |
| >Network Configuration</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/clustering/connect-client-nodes" |
| class='' |
| >Connecting Client Nodes</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/clustering/baseline-topology" |
| class='' |
| >Baseline Topology</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/clustering/running-client-nodes-behind-nat" |
| class='' |
| >Running Client Nodes Behind NAT</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Thin Clients<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/thin-clients/getting-started-with-thin-clients" |
| class='' |
| >Thin Clients Overview</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/thin-clients/java-thin-client" |
| class='' |
| >Java Thin Client</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/thin-clients/dotnet-thin-client" |
| class='' |
| >.NET Thin Client</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/thin-clients/cpp-thin-client" |
| class='' |
| >C++ Thin Client</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/thin-clients/python-thin-client" |
| class='' |
| >Python Thin Client</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/thin-clients/php-thin-client" |
| class='' |
| >PHP Thin Client</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/thin-clients/nodejs-thin-client" |
| class='' |
| >Node.js Thin Client</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Binary Client Protocol<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/binary-client-protocol/binary-client-protocol" class=''>Binary Client Protocol</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/binary-client-protocol/data-format" class=''>Data Format</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/binary-client-protocol/key-value-queries" class=''>Key-Value Queries</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/binary-client-protocol/sql-and-scan-queries" class=''>SQL and Scan Queries</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/binary-client-protocol/binary-type-metadata" class=''>Binary Types Metadata</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/binary-client-protocol/cache-configuration" class=''>Cache Configuration</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Data Modeling<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/data-modeling/data-modeling" |
| class='' |
| >Introduction</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/data-modeling/data-partitioning" |
| class='' |
| >Data Partitioning</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/data-modeling/affinity-collocation" |
| class='' |
| >Affinity Colocation</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/data-modeling/binary-marshaller" |
| class='' |
| >Binary Marshaller</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Configuring Memory<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/memory-architecture" |
| class='' |
| >Memory Architecture</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/memory-configuration/data-regions" |
| class='' |
| >Configuring Data Regions</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/memory-configuration/eviction-policies" |
| class='' |
| >Eviction Policies</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Configuring Persistence<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/persistence/native-persistence" |
| class='' |
| >Ignite Persistence</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/persistence/external-storage" |
| class='' |
| >External Storage</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/persistence/swap" |
| class='' |
| >Swapping</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/persistence/custom-cache-store" |
| class='' |
| >Implementing Custom Cache Store</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/persistence/snapshots" |
| class='' |
| >Cluster Snapshots</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/persistence/disk-compression" |
| class='' |
| >Disk Compression</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/persistence/persistence-tuning" |
| class='' |
| >Tuning Persistence</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Configuring Caches<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/configuring-caches/configuration-overview" |
| class='' |
| >Cache Configuration</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/configuring-caches/configuring-backups" |
| class='' |
| >Configuring Partition Backups</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/configuring-caches/partition-loss-policy" |
| class='' |
| >Partition Loss Policy</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/configuring-caches/atomicity-modes" |
| class='' |
| >Atomicity Modes</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/configuring-caches/expiry-policies" |
| class='' |
| >Expiry Policy</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/configuring-caches/on-heap-caching" |
| class='' |
| >On-Heap Caching</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/configuring-caches/cache-groups" |
| class='' |
| >Cache Groups</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/configuring-caches/near-cache" |
| class='' |
| >Near Caches</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| <a href="/docs/2.9.0/data-rebalancing" class='' >Data Rebalancing</a> |
| |
| </li> |
| |
| <li> |
| |
| |
| <a href="/docs/2.9.0/data-streaming" class='' >Data Streaming</a> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Using Key-Value API<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/key-value-api/basic-cache-operations" |
| class='' |
| >Basic Cache Operations</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/key-value-api/binary-objects" |
| class='' |
| >Working with Binary Objects</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/key-value-api/using-scan-queries" |
| class='' |
| >Using Scan Queries</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/read-repair" |
| class='' |
| >Read Repair</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| <a href="/docs/2.9.0/key-value-api/transactions" class='' >Performing Transactions</a> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Working with SQL<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/SQL/sql-introduction" |
| class='' |
| >Introduction</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/SQL/schemas" |
| class='' |
| >Understanding Schemas</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/SQL/indexes" |
| class='' |
| >Defining Indexes</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/SQL/sql-api" |
| class='' |
| >Using SQL API</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/SQL/distributed-joins" |
| class='' |
| >Distributed Joins</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/SQL/sql-transactions" |
| class='' |
| >SQL Transactions</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/SQL/custom-sql-func" |
| class='' |
| >Custom SQL Functions</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/SQL/JDBC/jdbc-driver" |
| class='' |
| >JDBC Driver</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/SQL/JDBC/jdbc-client-driver" |
| class='' |
| >JDBC Client Driver</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>ODBC Driver<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/SQL/ODBC/odbc-driver" class=''>ODBC Driver</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0//SQL/ODBC/connection-string-dsn" class=''>Connection String and DSN</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/SQL/ODBC/querying-modifying-data" class=''>Querying and Modifying Data</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/SQL/ODBC/specification" class=''>Specification</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/SQL/ODBC/data-types" class=''>Data Types</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/SQL/ODBC/error-codes" class=''>Error Codes</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/transactions/mvcc" |
| class='' |
| >Multiversion Concurrency Control</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>SQL Reference<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/sql-reference/sql-conformance" |
| class='' |
| >SQL Conformance</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/sql-reference/ddl" |
| class='' |
| >Data Definition Language (DDL)</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/sql-reference/dml" |
| class='' |
| >Data Manipulation Language (DML)</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/sql-reference/transactions" |
| class='' |
| >Transactions</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/sql-reference/operational-commands" |
| class='' |
| >Operational Commands</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/sql-reference/aggregate-functions" |
| class='' |
| >Aggregate functions</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/sql-reference/numeric-functions" |
| class='' |
| >Numeric Functions</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/sql-reference/string-functions" |
| class='' |
| >String Functions</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/sql-reference/date-time-functions" |
| class='' |
| >Data and Time Functions</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/sql-reference/system-functions" |
| class='' |
| >System Functions</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/sql-reference/data-types" |
| class='' |
| >Data Types</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Distributed Computing<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/distributed-computing/distributed-computing" |
| class='' |
| >Distributed Computing API</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/distributed-computing/cluster-groups" |
| class='' |
| >Cluster Groups</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/distributed-computing/executor-service" |
| class='' |
| >Executor Service</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/distributed-computing/map-reduce" |
| class='' |
| >MapReduce API</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/distributed-computing/load-balancing" |
| class='' |
| >Load Balancing</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/distributed-computing/fault-tolerance" |
| class='' |
| >Fault Tolerance</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/distributed-computing/job-scheduling" |
| class='' |
| >Job Scheduling</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/distributed-computing/collocated-computations" |
| class='' |
| >Colocating Computations with Data</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Code Deployment<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/code-deployment/deploying-user-code" |
| class='' |
| >Deploying User Code</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/code-deployment/peer-class-loading" |
| class='' |
| >Peer Class Loading</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Machine Learning<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/machine-learning/machine-learning" |
| class='' |
| >Machine Learning</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/machine-learning/partition-based-dataset" |
| class='' |
| >Partition Based Dataset</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/machine-learning/updating-trained-models" |
| class='' |
| >Updating Trained Models</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Binary Classification<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/binary-classification/introduction" class=''>Introduction</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/binary-classification/linear-svm" class=''>Linear SVM (Support Vector Machine)</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/binary-classification/decision-trees" class=''>Decision Trees</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/binary-classification/multilayer-perceptron" class=''>Multilayer Perceptron</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/binary-classification/logistic-regression" class=''>Logistic Regression</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/binary-classification/knn-classification" class=''>k-NN Classification</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/binary-classification/ann" class=''>ANN (Approximate Nearest Neighbor)</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/binary-classification/naive-bayes" class=''>Naive Bayes</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Regression<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/regression/introduction" class=''>Introduction</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/regression/linear-regression" class=''>Linear Regression</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/regression/decision-trees-regression" class=''>Decision Trees Regression</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/regression/knn-regression" class=''>k-NN Regression</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Clustering<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/clustering/introduction" class=''>Introduction</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/clustering/k-means-clustering" class=''>K-Means Clustering</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/clustering/gaussian-mixture" class=''>Gaussian mixture (GMM)</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/machine-learning/preprocessing" |
| class='' |
| >Preprocessing</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Model Selection<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/model-selection/introduction" class=''>Introduction</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/model-selection/evaluator" class=''>Evaluator</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/model-selection/split-the-dataset-on-test-and-train-datasets" class=''>Split the dataset on test and train datasets</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/model-selection/hyper-parameter-tuning" class=''>Hyper-parameter tuning</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/model-selection/pipeline-api" class=''>Pipeline API</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/machine-learning/multiclass-classification" |
| class='' |
| >Multiclass Classification</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Ensemble Methods<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/ensemble-methods/introduction" class=''></a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/ensemble-methods/stacking" class=''>Stacking</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/ensemble-methods/baggin" class=''>Bagging</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/ensemble-methods/random-forest" class=''>Random Forest</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/ensemble-methods/gradient-boosting" class=''>Gradient Boosting</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/machine-learning/recommendation-systems" |
| class='' |
| >Recommendation Systems</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Importing Model<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/importing-model/introduction" class=''>Introduction</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/importing-model/model-import-from-gxboost" class=''>Import Model from XGBoost</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/machine-learning/importing-model/model-import-from-apache-spark" class=''>Import Model from Apache Spark</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| <a href="/docs/2.9.0/key-value-api/continuous-queries" class='' >Using Continuous Queries</a> |
| |
| </li> |
| |
| <li> |
| |
| |
| <a href="/docs/2.9.0/services/services" class='' >Using Ignite Services</a> |
| |
| </li> |
| |
| <li> |
| |
| |
| <a href="/docs/2.9.0/messaging" class='' >Using Ignite Messaging</a> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Distributed Data Structures<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/data-structures/queue-and-set" |
| class='' |
| >Queue and Set</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/data-structures/atomic-types" |
| class='' |
| >Atomic Types</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/data-structures/countdownlatch" |
| class='' |
| >CountDownLatch</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/data-structures/atomic-sequence" |
| class='' |
| >Atomic Sequence</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/data-structures/semaphore" |
| class='' |
| >Semaphore</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/data-structures/id-generator" |
| class='' |
| >ID Generator</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| <a href="/docs/2.9.0/distributed-locks" class='' >Distributed Locks</a> |
| |
| </li> |
| |
| <li> |
| |
| |
| <a href="/docs/2.9.0/restapi" class='' >REST API</a> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>.NET Specific<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-configuration-options" |
| class='' |
| >Configuration Options</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-deployment-options" |
| class='' |
| >Deployment Options</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-standalone-nodes" |
| class='' |
| >Standalone Nodes</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-logging" |
| class='' |
| >Logging</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-linq" |
| class='' |
| >LINQ</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-java-services-execution" |
| class='' |
| >Java Services Execution</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-platform-cache" |
| class='' |
| >.NET Platform Cache</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-plugins" |
| class='' |
| >Plugins</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-serialization" |
| class='' |
| >Serialization</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-cross-platform-support" |
| class='' |
| >Cross-Platform Support</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-platform-interoperability" |
| class='' |
| >Platform Interoperability</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-remote-assembly-loading" |
| class='' |
| >Remote Assembly Loading</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/net-specific/net-troubleshooting" |
| class='' |
| >Troubleshooting</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Integrations<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/net-specific/asp-net-output-caching" class=''>ASP.NET Output Caching</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/net-specific/asp-net-session-state-caching" class=''>ASP.NET Session State Caching</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/net-specific/net-entity-framework-cache" class=''>Entity Framework 2nd Level Cache</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>C++ Specific<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/cpp-specific/cpp-serialization" |
| class='' |
| >Serialization</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/cpp-specific/cpp-platform-interoperability" |
| class='' |
| >Platform Interoperability</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/cpp-specific/cpp-objects-lifetime" |
| class='' |
| >Objects Lifetime</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Monitoring<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/monitoring-metrics/intro" |
| class='' |
| >Introduction</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/monitoring-metrics/cluster-id" |
| class='' |
| >Cluster ID and Tag</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/monitoring-metrics/cluster-states" |
| class='' |
| >Cluster States</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Metrics<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/monitoring-metrics/configuring-metrics" class=''>Configuring Metrics</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/monitoring-metrics/metrics" class=''>JMX Metrics</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>New Metrics System<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/monitoring-metrics/new-metrics-system" class=''>Introduction</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/monitoring-metrics/new-metrics" class=''>Metrics</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/monitoring-metrics/system-views" |
| class='' |
| >System Views</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/monitoring-metrics/tracing" |
| class='' |
| >Tracing</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Working with Events<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/events/listening-to-events" |
| class='' |
| >Enabling and Listenting to Events</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/events/events" |
| class='' |
| >Events</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Tools<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/tools/control-script" |
| class='' |
| >Control Script</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/tools/visor-cmd" |
| class='' |
| >Visor CMD</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/tools/gg-control-center" |
| class='' |
| >GridGain Control Center</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/tools/sqlline" |
| class='' |
| >SQLLine</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/tools/tableau" |
| class='' |
| >Tableau</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/tools/informatica" |
| class='' |
| >Informatica</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/tools/pentaho" |
| class='' |
| >Pentaho</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Security<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/security/authentication" |
| class='' |
| >Authentication</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/security/ssl-tls" |
| class='' |
| >SSL/TLS</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Transparent Data Encryption<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/security/tde" class=''>Introduction</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/security/master-key-rotation" class=''>Master key rotation</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/security/sandbox" |
| class='' |
| >Sandbox</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle expanded '>Extensions and Integrations<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group expanded'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Spring<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/spring/spring-boot" class=''>Spring Boot</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/spring/spring-data" class=''>Spring Data</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/spring/spring-caching" class=''>Spring Caching</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Ignite for Spark<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/ignite-for-spark/overview" class=''>Overview</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/ignite-for-spark/ignitecontext-and-rdd" class=''>IgniteContext and IgniteRDD</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/ignite-for-spark/ignite-dataframe" class=''>Ignite DataFrame</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/ignite-for-spark/installation" class=''>Installation</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/ignite-for-spark/spark-shell" class=''>Test Ignite with Spark-shell</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/ignite-for-spark/troubleshooting" class=''>Troubleshooting</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/extensions-and-integrations/hibernate-l2-cache" |
| class='' |
| >Hibernate L2 Cache</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/extensions-and-integrations/mybatis-l2-cache" |
| class='' |
| >MyBatis L2 Cache</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='collapsed '>Streaming<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages collapsed"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/streaming/kafka-streamer" class=''>Kafka Streamer</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/streaming/camel-streamer" class=''>Camel Streamer</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/streaming/flink-streamer" class=''>Flink Streamer</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/streaming/flume-sink" class=''>Flume Sink</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/streaming/jms-streamer" class=''>JMS Streamer</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/streaming/mqtt-streamer" class=''>MQTT Streamer</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/streaming/rocketmq-streamer" class=''>RocketMQ Streamer</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/streaming/storm-streamer" class=''>Storm Streamer</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/streaming/zeromq-streamer" class=''>ZeroMQ Streamer</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/streaming/twitter-streamer" class=''>Twitter Streamer</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| |
| |
| <button |
| type='button' |
| class='expanded parent '>Cassandra Integration<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class="sub_pages expanded parent"> |
| |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/cassandra/overview" class=''>Overview</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/cassandra/configuration" class='active'>Configuration</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/cassandra/usage-examples" class=''>Usage Examples</a></li> |
| |
| |
| |
| |
| <li><a href="/docs/2.9.0/extensions-and-integrations/cassandra/ddl-generator" class=''>DDL Generator</a></li> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/extensions-and-integrations/php-pdo" |
| class='' |
| >PHP PDO</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| <li> |
| |
| |
| <a href="/docs/2.9.0/plugins" class='' >Plugins</a> |
| |
| </li> |
| |
| <li> |
| |
| |
| |
| |
| |
| |
| <button type='button' class='group-toggle collapsed '>Performance and Troubleshooting<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button> |
| <nav class='nav-group collapsed'> |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/perf-and-troubleshooting/general-perf-tips" |
| class='' |
| >General Performance Tips</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/perf-and-troubleshooting/memory-tuning" |
| class='' |
| >Memory and JVM Tuning</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/perf-and-troubleshooting/persistence-tuning" |
| class='' |
| >Persistence Tuning</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/perf-and-troubleshooting/sql-tuning" |
| class='' |
| >SQL Tuning</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/perf-and-troubleshooting/thread-pools-tuning" |
| class='' |
| >Thread Pools Tuning</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/perf-and-troubleshooting/troubleshooting" |
| class='' |
| >Troubleshooting and Debugging</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/perf-and-troubleshooting/handling-exceptions" |
| class='' |
| >Handling Exceptions</a> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| <li> |
| |
| <a href="/docs/2.9.0/perf-and-troubleshooting/yardstick-benchmarking" |
| class='' |
| >Benchmarking With Yardstick</a> |
| |
| </li> |
| |
| |
| |
| </nav> |
| |
| </li> |
| |
| </nav> |
| <div class="left-nav__overlay"></div> |
| |
| |
| <article data-swiftype-index='true'> |
| <a class='edit-link' href="https://github.com/apache/ignite/tree/IGNITE-7595/docs/_docs/extensions-and-integrations/cassandra/configuration.adoc" target="_blank">Edit</a> |
| |
| <h1>Ignite Cassandra Integration Configuration</h1> |
| |
| <div class="sect1"> |
| <h2 id="overview">Overview</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>To setup Cassandra as a persistent store, you need to set <code>CacheStoreFactory</code> for your Ignite caches to |
| <code>org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory</code>.</p> |
| </div> |
| <div class="paragraph"> |
| <p>This could be done using Spring context configuration like this:</p> |
| </div> |
| <code-tabs><code-tab data-tab='XML'><div class="listingblock"> |
| <div class="content"> |
| <pre class="rouge highlight"><code data-lang="xml"><span class="nt"><bean</span> <span class="na">id=</span><span class="s">"ignite.cfg"</span> <span class="na">class=</span><span class="s">"org.apache.ignite.configuration.IgniteConfiguration"</span><span class="nt">></span> |
| <span class="nt"><property</span> <span class="na">name=</span><span class="s">"cacheConfiguration"</span><span class="nt">></span> |
| <span class="nt"><list></span> |
| ... |
| <span class="c"><!-- Configuring persistence for "cache1" cache --></span> |
| <span class="nt"><bean</span> <span class="na">class=</span><span class="s">"org.apache.ignite.configuration.CacheConfiguration"</span><span class="nt">></span> |
| <span class="nt"><property</span> <span class="na">name=</span><span class="s">"name"</span> <span class="na">value=</span><span class="s">"cache1"</span><span class="nt">/></span> |
| <span class="c"><!-- Tune on Read-Through and Write-Through mode --></span> |
| <span class="nt"><property</span> <span class="na">name=</span><span class="s">"readThrough"</span> <span class="na">value=</span><span class="s">"true"</span><span class="nt">/></span> |
| <span class="nt"><property</span> <span class="na">name=</span><span class="s">"writeThrough"</span> <span class="na">value=</span><span class="s">"true"</span><span class="nt">/></span> |
| <span class="c"><!-- Specifying CacheStoreFactory --></span> |
| <span class="nt"><property</span> <span class="na">name=</span><span class="s">"cacheStoreFactory"</span><span class="nt">></span> |
| <span class="nt"><bean</span> <span class="na">class=</span><span class="s">"org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory"</span><span class="nt">></span> |
| <span class="c"><!-- Datasource configuration bean which is responsible for Cassandra connection details --></span> |
| <span class="nt"><property</span> <span class="na">name=</span><span class="s">"dataSourceBean"</span> <span class="na">value=</span><span class="s">"cassandraDataSource"</span><span class="nt">/></span> |
| <span class="c"><!-- Persistent settings bean which is responsible for the details of how objects will be persisted to Cassandra --></span> |
| <span class="nt"><property</span> <span class="na">name=</span><span class="s">"persistenceSettingsBean"</span> <span class="na">value=</span><span class="s">"cache1_persistence_settings"</span><span class="nt">/></span> |
| <span class="nt"></bean></span> |
| <span class="nt"></property></span> |
| <span class="nt"></bean></span> |
| ... |
| <span class="nt"></list></span> |
| ... |
| <span class="nt"></property></span> |
| <span class="nt"></bean></span></code></pre> |
| </div> |
| </div></code-tab></code-tabs> |
| <div class="paragraph"> |
| <p>There are two main properties which should be specified for <code>CassandraCacheStoreFactory</code>:</p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p><code>dataSourceBean</code> - instance of the <code>org.apache.ignite.cache.store.cassandra.datasource.DataSource</code> class responsible for |
| all the aspects of Cassandra database connection (credentials, contact points, read/write consistency level, load balancing policy and etc…​)</p> |
| </li> |
| <li> |
| <p><code>persistenceSettingsBean</code> - instance of the <code>org.apache.ignite.cache.store.cassandra.persistence.KeyValuePersistenceSettings</code> |
| class responsible for all the aspects of how objects should be persisted into Cassandra (keyspace and its options, table |
| and its options, partition and cluster key options, POJO object fields mapping, secondary indexes, serializer for BLOB objects and etc…​)</p> |
| </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p>In the below section these two beans and their configuration settings will be described in details.</p> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="datasourcebean">DataSourceBean</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>This bean stores all the details required for Cassandra database connection and CRUD operations. In the table below you can find all the bean properties:</p> |
| </div> |
| <table class="tableblock frame-all grid-all stripes-even stretch"> |
| <colgroup> |
| <col style="width: 20%;"> |
| <col style="width: 70%;"> |
| <col style="width: 10%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Property</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| <th class="tableblock halign-left valign-top">Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>user</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">User name used to connect to Cassandra</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>password</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">User password used to connect to Cassandra</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>credentials</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Credentials bean providing <code>username</code> and <code>password</code></p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>authProvider</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Use the specified AuthProvider when connecting to Cassandra. Use this method when a custom authentication scheme is in place.</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>port</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Port to use to connect to Cassandra (if it’s not provided in connection point specification)</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>contactPoints</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Array of contact points (<code>hostaname:[port]</code>) to use for Cassandra connection</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>maxSchemaAgreementWaitSeconds</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Maximum time to wait for schema agreement before returning from a DDL query</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>10</code> seconds</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>protocolVersion</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies what version of Cassandra driver protocol should be used (could be helpful for backward compatibility with old versions of Cassandra)</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>3</code></p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>compression</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Compression to use for the transport. Supported compressions: <code>snappy</code>, <code>lz4</code></p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>useSSL</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Enables the use of SSL</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>sslOptions</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Enables the use of SSL using the provided options</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>collectMetrix</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Enables metrics collection</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>jmxReporting</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Enables JMX reporting of the metrics</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>fetchSize</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies query fetch size. Fetch size controls how much resulting rows will be retrieved simultaneously.</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>readConsistency</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies consistency level for READ queries</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>writeConsistency</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies consistency level for WRITE/DELETE/UPDATE queries</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>loadBalancingPolicy</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies load balancing policy to use</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>TokenAwarePolicy</code></p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>reconnectionPolicy</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies reconnection policy to use</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>ExponentialReconnectionPolicy</code></p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>retryPolicy</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies retry policy to use</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>DefaultRetryPolicy</code></p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>addressTranslater</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies address translater to use</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>IdentityTranslater</code></p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>speculativeExecutionPolicy</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies speculative execution policy to use</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>NoSpeculativeExecutionPolicy</code></p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>poolingOptions</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies connection pooling options</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>socketOptions</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies low-level socket options for the connections kept to the Cassandra hosts</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>nettyOptions</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Hooks that allow clients to customize Cassandra driver’s underlying Netty layer</p></td> |
| <td class="tableblock halign-left valign-top"></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="persistencesettingsbean">PersistenceSettingsBean</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>This bean stores all the details(keyspace, table, partition options, POJO fields mapping and etc…​) of how objects |
| (keys and values) should be persisted into Cassandra database.</p> |
| </div> |
| <div class="paragraph"> |
| <p>The constructor of <code>org.apache.ignite.cache.store.cassandra.persistence.KeyValuePersistenceSettings</code> allows to create such |
| a bean from a string which contains XML configuration document of specific structure (see below) or from the resource pointing to XML document.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Here is the generic example of an XML configuration document (<strong>persistence descriptor</strong>) which specifies how Ignite cache |
| keys and values should be serialized/deserialized to/from Cassandra:</p> |
| </div> |
| <code-tabs><code-tab data-tab='XML'><div class="listingblock"> |
| <div class="content"> |
| <pre class="rouge highlight"><code data-lang="xml"><span class="c"><!-- |
| Root container for persistence settings configuration. |
| |
| Note: required element |
| |
| Attributes: |
| 1) keyspace [required] - specifies keyspace for Cassandra tables which should be used to store key/value pairs |
| 2) table [required] - specifies Cassandra table which should be used to store key/value pairs |
| 3) ttl [optional] - specifies expiration period for the table rows (in seconds) |
| --></span> |
| <span class="nt"><persistence</span> <span class="na">keyspace=</span><span class="s">"my_keyspace"</span> <span class="na">table=</span><span class="s">"my_table"</span> <span class="na">ttl=</span><span class="s">"86400"</span><span class="nt">></span> |
| <span class="c"><!-- |
| Specifies Cassandra keyspace options which should be used to create provided keyspace if it doesn't exist. |
| |
| Note: optional element |
| --></span> |
| <span class="nt"><keyspaceOptions></span> |
| REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 3} |
| AND DURABLE_WRITES = true |
| <span class="nt"></keyspaceOptions></span> |
| |
| <span class="c"><!-- |
| Specifies Cassandra table options which should be used to create provided table if it doesn't exist. |
| |
| Note: optional element |
| --></span> |
| <span class="nt"><tableOptions></span> |
| comment = 'A most excellent and useful table' |
| AND read_repair_chance = 0.2 |
| <span class="nt"></tableOptions></span> |
| |
| <span class="c"><!-- |
| Specifies persistent settings for Ignite cache keys. |
| |
| Note: required element |
| |
| Attributes: |
| 1) class [required] - java class name for Ignite cache key |
| 2) strategy [required] - one of three possible persistent strategies: |
| a) PRIMITIVE - stores key value as is, by mapping it to Cassandra table column with corresponding type. |
| Should be used only for simple java types (int, long, String, double, Date) which could be mapped |
| to corresponding Cassadra types. |
| b) BLOB - stores key value as BLOB, by mapping it to Cassandra table column with blob type. |
| Could be used for any java object. Conversion of java object to BLOB is handled by "serializer" |
| which could be specified in serializer attribute (see below). |
| c) POJO - stores each field of an object as a column having corresponding type in Cassandra table. |
| Provides ability to utilize Cassandra secondary indexes for object fields. |
| 3) serializer [optional] - specifies serializer class for BLOB strategy. Shouldn't be used for PRIMITIVE and |
| POJO strategies. Available implementations: |
| a) org.apache.ignite.cache.store.cassandra.serializer.JavaSerializer - uses standard Java |
| serialization framework |
| b) org.apache.ignite.cache.store.cassandra.serializer.KryoSerializer - uses Kryo |
| serialization framework |
| 4) column [optional] - specifies column name for PRIMITIVE and BLOB strategies where to store key value. |
| If not specified column having 'key' name will be used. Shouldn't be used for POJO strategy. |
| --></span> |
| <span class="nt"><keyPersistence</span> <span class="na">class=</span><span class="s">"org.mycompany.MyKeyClass"</span> <span class="na">strategy=</span><span class="s">"..."</span> <span class="na">serializer=</span><span class="s">"..."</span> <span class="na">column=</span><span class="s">"..."</span><span class="nt">></span> |
| <span class="c"><!-- |
| Specifies partition key fields if POJO strategy used. |
| |
| Note: optional element, only required for POJO strategy in case you want to manually specify |
| POJO fields to Cassandra columns mapping, instead of relying on dynamic discovering of |
| POJO fields and mapping them to the same columns of Cassandra table. |
| --></span> |
| <span class="nt"><partitionKey></span> |
| <span class="c"><!-- |
| Specifies mapping from POJO field to Cassandra table column. |
| |
| Note: required element |
| |
| Attributes: |
| 1) name [required] - POJO field name |
| 2) column [optional] - Cassandra table column name. If not specified lowercase |
| POJO field name will be used. |
| --></span> |
| <span class="nt"><field</span> <span class="na">name=</span><span class="s">"companyCode"</span> <span class="na">column=</span><span class="s">"company"</span> <span class="nt">/></span> |
| ... |
| ... |
| <span class="nt"></partitionKey></span> |
| |
| <span class="c"><!-- |
| Specifies cluster key fields if POJO strategy used. |
| |
| Note: optional element, only required for POJO strategy in case you want to manually specify |
| POJO fields to Cassandra columns mapping, instead of relying on dynamic discovering of |
| POJO fields and mapping them to the same columns of Cassandra table. |
| --></span> |
| <span class="nt"><clusterKey></span> |
| <span class="c"><!-- |
| Specifies mapping from POJO field to Cassandra table column. |
| |
| Note: required element |
| |
| Attributes: |
| 1) name [required] - POJO field name |
| 2) column [optional] - Cassandra table column name. If not specified lowercase |
| POJO field name will be used. |
| 3) sort [optional] - specifies sort order (asc or desc) |
| --></span> |
| <span class="nt"><field</span> <span class="na">name=</span><span class="s">"personNumber"</span> <span class="na">column=</span><span class="s">"number"</span> <span class="na">sort=</span><span class="s">"desc"</span><span class="nt">/></span> |
| ... |
| ... |
| <span class="nt"></clusterKey></span> |
| <span class="nt"></keyPersistence></span> |
| |
| <span class="c"><!-- |
| Specifies persistent settings for Ignite cache values. |
| |
| Note: required element |
| |
| Attributes: |
| 1) class [required] - java class name for Ignite cache value |
| 2) strategy [required] - one of three possible persistent strategies: |
| a) PRIMITIVE - stores key value as is, by mapping it to Cassandra table column with corresponding type. |
| Should be used only for simple java types (int, long, String, double, Date) which could be mapped |
| to corresponding Cassadra types. |
| b) BLOB - stores key value as BLOB, by mapping it to Cassandra table column with blob type. |
| Could be used for any java object. Conversion of java object to BLOB is handled by "serializer" |
| which could be specified in serializer attribute (see below). |
| c) POJO - stores each field of an object as a column having corresponding type in Cassandra table. |
| Provides ability to utilize Cassandra secondary indexes for object fields. |
| 3) serializer [optional] - specifies serializer class for BLOB strategy. Shouldn't be used for PRIMITIVE and |
| POJO strategies. Available implementations: |
| a) org.apache.ignite.cache.store.cassandra.serializer.JavaSerializer - uses standard Java |
| serialization framework |
| b) org.apache.ignite.cache.store.cassandra.serializer.KryoSerializer - uses Kryo |
| serialization framework |
| 4) column [optional] - specifies column name for PRIMITIVE and BLOB strategies where to store value. |
| If not specified column having 'value' name will be used. Shouldn't be used for POJO strategy. |
| --></span> |
| <span class="nt"><valuePersistence</span> <span class="na">class=</span><span class="s">"org.mycompany.MyValueClass"</span> <span class="na">strategy=</span><span class="s">"..."</span> <span class="na">serializer=</span><span class="s">"..."</span> <span class="na">column=</span><span class="s">""</span><span class="nt">></span> |
| <span class="c"><!-- |
| Specifies mapping from POJO field to Cassandra table column. |
| |
| Note: required element |
| |
| Attributes: |
| 1) name [required] - POJO field name |
| 2) column [optional] - Cassandra table column name. If not specified lowercase |
| POJO field name will be used. |
| 3) static [optional] - boolean flag which specifies that column is static withing a given partition |
| 4) index [optional] - boolean flag specifying that secondary index should be created for the field |
| 5) indexClass [optional] - custom index java class name if you want to use custom index |
| 6) indexOptions [optional] - custom index options |
| --></span> |
| <span class="nt"><field</span> <span class="na">name=</span><span class="s">"firstName"</span> <span class="na">column=</span><span class="s">"first_name"</span> <span class="na">static=</span><span class="s">"..."</span> <span class="na">index=</span><span class="s">"..."</span> <span class="na">indexClass=</span><span class="s">"..."</span> <span class="na">indexOptions=</span><span class="s">"..."</span><span class="nt">/></span> |
| ... |
| ... |
| <span class="nt"></valuePersistence></span> |
| <span class="nt"></persistence></span></code></pre> |
| </div> |
| </div></code-tab></code-tabs> |
| <div class="paragraph"> |
| <p>Below are provided all the details about persistence descriptor configuration and its elements:</p> |
| </div> |
| <div class="sect2"> |
| <h3 id="persistence">persistence</h3> |
| <div class="admonitionblock caution"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <div class="title">Caution</div> |
| </td> |
| <td class="content"> |
| <h3 id="required-element" class="discrete">! Required Element</h3> |
| <div class="paragraph"> |
| <p>Root container for persistence settings configuration.</p> |
| </div> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <table class="tableblock frame-all grid-all stripes-even stretch"> |
| <colgroup> |
| <col style="width: 20%;"> |
| <col style="width: 20%;"> |
| <col style="width: 60%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Attribute</th> |
| <th class="tableblock halign-left valign-top">Required</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>keyspace</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Keyspace for Cassandra tables which should be used to store key/value pairs. If keyspace doesn’t |
| exist it will be created (if specified Cassandra account has appropriate permissions).</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>table</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Cassandra table which should be used to store key/value pairs. If table doesn’t exist it will be created |
| (if specified Cassandra account has appropriate permissions). If table name doesn’t specified Ignite cache name will be used as a table name.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>ttl</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Expiration period for the table rows (in seconds).</p></td> |
| </tr> |
| </tbody> |
| </table> |
| <div class="paragraph"> |
| <p>In the next chapters you’ll find what child elements could be placed inside persistence settings container.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="keyspaceoptions">keyspaceOptions</h3> |
| <div class="admonitionblock note"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <div class="title">Note</div> |
| </td> |
| <td class="content"> |
| <h3 id="optional-element" class="discrete">Optional Element</h3> |
| <div class="paragraph"> |
| <p>Options to create Cassandra keyspace specified in the <code>keyspace</code> attribute of persistence settings container.</p> |
| </div> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="paragraph"> |
| <p>Keyspace will be created only if it doesn’t exist and if an account used to connect to Cassandra has appropriate permissions.</p> |
| </div> |
| <div class="paragraph"> |
| <p>The text specified in this XML element is just a chunk of |
| <a href="http://docs.datastax.com/en/cql/3.0/cql/cql_reference/create_keyspace_r.html" target="_blank" rel="noopener">CREATE KEYSPACE</a> Cassandra DDL statement which goes after <strong>WITH</strong> keyword.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="tableoptions">tableOptions</h3> |
| <div class="admonitionblock note"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <div class="title">Note</div> |
| </td> |
| <td class="content"> |
| <h3 id="optional-element-2" class="discrete">Optional Element</h3> |
| <div class="paragraph"> |
| <p>Options to create Cassandra table specified in the table attribute of persistence settings container.</p> |
| </div> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="paragraph"> |
| <p>A table will be created only if it doesn’t exist and if an account used to connect to Cassandra has appropriate permissions.</p> |
| </div> |
| <div class="paragraph"> |
| <p>The text specified in this XML element is just a chunk of |
| <a href="http://docs.datastax.com/en/cql/3.0/cql/cql_reference/create_table_r.html" target="_blank" rel="noopener">CREATE TABLE</a> Cassandra DDL statement which goes after <strong>WITH</strong> keyword.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="keypersistence">keyPersistence</h3> |
| <div class="admonitionblock caution"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <div class="title">Caution</div> |
| </td> |
| <td class="content"> |
| <h3 id="required-element-2" class="discrete">! Required Element</h3> |
| <div class="paragraph"> |
| <p>Persistent settings for Ignite cache keys.</p> |
| </div> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="paragraph"> |
| <p>These settings specify how key objects from Ignite cache should be stored/loaded to/from Cassandra table:</p> |
| </div> |
| <table class="tableblock frame-all grid-all stripes-even stretch"> |
| <colgroup> |
| <col style="width: 20%;"> |
| <col style="width: 20%;"> |
| <col style="width: 60%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Attribute</th> |
| <th class="tableblock halign-left valign-top">Required</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>class</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Java class name for Ignite cache keys.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>strategy</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies one of three possible persistent strategies (see below) which controls how object should be persisted/loaded to/from Cassandra table.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>serializer</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Serializer class for BLOB strategy (see below for available implementations). Shouldn’t be used for PRIMITIVE and POJO strategies.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>column</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Column name for PRIMITIVE and BLOB strategies where to store key. If not specified, column having 'key' name will be |
| used. Attribute shouldn’t be specified for POJO strategy.</p></td> |
| </tr> |
| </tbody> |
| </table> |
| <div class="paragraph"> |
| <p>Persistence strategies:</p> |
| </div> |
| <table class="tableblock frame-all grid-all stripes-even stretch"> |
| <colgroup> |
| <col style="width: 25%;"> |
| <col style="width: 75%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Name</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>PRIMITIVE</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Stores object as is, by mapping it to Cassandra table column with corresponding type. Should be used only for simple java types |
| (int, long, String, double, Date) which could be directly mapped to corresponding Cassadra types. Use this |
| <a href="https://docs.datastax.com/en/developer/java-driver/4.4/manual/core/#cql-to-java-type-mapping" target="_blank" rel="noopener">link</a> to figure out Java to Cassandra types mapping.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>BLOB</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Stores object as BLOB, by mapping it to Cassandra table column with blob type. Could be used for any java object. |
| Conversion of java object to BLOB is handled by "serializer" which could be specified in serializer attribute of <strong>keyPersistence</strong> container.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>POJO</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Stores each field of an object as a column having corresponding type in Cassandra table. Provides ability to utilize |
| Cassandra secondary indexes for object fields. Could be used only for POJO objects following Java Beans convention and |
| having their fields of <a href="https://docs.datastax.com/en/developer/java-driver/4.4/manual/core/#cql-to-java-type-mapping" target="_blank" rel="noopener">simple java type which could be directly mapped to corresponding Cassandra types</a>.</p></td> |
| </tr> |
| </tbody> |
| </table> |
| <div class="paragraph"> |
| <p>Available serializer implementations:</p> |
| </div> |
| <table class="tableblock frame-all grid-all stripes-even stretch"> |
| <colgroup> |
| <col style="width: 25%;"> |
| <col style="width: 75%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Class</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.ignite.cache.store.cassandra.serializer.JavaSerializer</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Uses standard Java serialization framework</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.ignite.cache.store.cassandra.serializer.KryoSerializer</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Uses Kryo serialization framework</p></td> |
| </tr> |
| </tbody> |
| </table> |
| <div class="paragraph"> |
| <p>If you are using <code>PRIMITIVE</code> or <code>BLOB</code> persistence strategy you don’t need to specify internal elements of <code>keyPersistence</code> |
| tag, cause the idea of these two strategies is that the whole object should be persisted into one column of Cassandra table |
| (which could be specified by <code>column</code> attribute).</p> |
| </div> |
| <div class="paragraph"> |
| <p>If you are using the <code>POJO</code> persistence strategy you have two option:</p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>Leave <code>keyPersistence</code> tag empty - in a such case, all the fields of POJO object class will be detected automatically using such rules:</p> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>Only fields having simple java types which could be directly mapped to |
| <a href="http://docs.datastax.com/en/developer/java-driver/1.0/java-driver/reference/javaClass2Cql3Datatypes_r.html" target="_blank" rel="noopener">appropriate Cassandra types</a> |
| will be detected.</p> |
| </li> |
| <li> |
| <p>Fields discovery mechanism takes into account <code>@QuerySqlField</code> annotation:</p> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>If <code>name</code> attribute is specified it will be used as a column name for Cassandra table. Otherwise field name in a lowercase will be used as a column name.</p> |
| </li> |
| <li> |
| <p>If <code>descending</code> attribute is specified for a field mapped to <strong>cluster key</strong> column, it will be used to set sort order for the column.</p> |
| </li> |
| </ul> |
| </div> |
| </li> |
| <li> |
| <p>Fields discovery mechanism takes into account <code>@AffinityKeyMapped</code> annotation. All the fields marked by this annotation |
| will be treated as <a href="http://docs.datastax.com/en/cql/3.0/cql/ddl/ddl_compound_keys_c.html" target="_blank" rel="noopener">partition key</a> |
| fields (in an order as they are declared in a class). All other fields will be treated as |
| <a href="http://docs.datastax.com/en/cql/3.0/cql/ddl/ddl_compound_keys_c.html">cluster key</a> fields.</p> |
| </li> |
| <li> |
| <p>If there are no fields annotated with <code>@AffinityKeyMapped</code> all the discovered fields will be treated as |
| <a href="http://docs.datastax.com/en/cql/3.0/cql/ddl/ddl_compound_keys_c.html" target="_blank" rel="noopener">partition key</a> fields.</p> |
| </li> |
| </ul> |
| </div> |
| </li> |
| <li> |
| <p>Specify persistence details inside <code>keyPersistence</code> tag - in such case, you have to specify <strong>partition key</strong> fields |
| mapping to Cassandra table columns inside <code>partitionKey</code> tag. This tag is used just as a container for mapping settings |
| and doesn’t have any attributes. Optionally (if you are going to use cluster key) you can also specify <strong>cluster key</strong> |
| fields mapping to appropriate Cassandra table columns inside <code>clusterKey</code> tag. This tag is used just as a container for |
| mapping settings and doesn’t have any attributes.</p> |
| </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p>Next two sections are providing a detailed specification for <code>partition</code> and <code>cluster</code> key fields mappings (which makes |
| sense if you choose the second option from the list above).</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="partitionkey">partitionKey</h3> |
| <div class="admonitionblock note"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <div class="title">Note</div> |
| </td> |
| <td class="content"> |
| <h3 id="optional-element-3" class="discrete">Optional Element</h3> |
| <div class="paragraph"> |
| <p>Container for <code>field</code> elements specifying Cassandra partition key.</p> |
| </div> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="paragraph"> |
| <p>Defines the Ignite cache KEY object fields (inside it), which should be used as a <strong>partition key</strong> fields in Cassandra |
| table and specifies fields mappings to table columns.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Mappings are specified by using <code><field></code> tag having such attributes:</p> |
| </div> |
| <table class="tableblock frame-all grid-all stripes-even stretch"> |
| <colgroup> |
| <col style="width: 20%;"> |
| <col style="width: 20%;"> |
| <col style="width: 60%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Attribute</th> |
| <th class="tableblock halign-left valign-top">Required</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>name</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">POJO object field name.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>column</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Cassandra table column name. If not specified lowercase POJO field name will be used.</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <div class="sect2"> |
| <h3 id="clusterkey">clusterKey</h3> |
| <div class="admonitionblock note"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <div class="title">Note</div> |
| </td> |
| <td class="content"> |
| <h3 id="optional-element-4" class="discrete">Optional Element</h3> |
| <div class="paragraph"> |
| <p>Container for <code>field</code> elements specifying Cassandra cluster key.</p> |
| </div> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="paragraph"> |
| <p>Defines the Ignite cache KEY object fields (inside it), which should be used as a <strong>cluster key</strong> fields in Cassandra |
| table and specifies fields mappings to table columns.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Mapping are specified by using <code><field></code> tag having such attributes:</p> |
| </div> |
| <table class="tableblock frame-all grid-all stripes-even stretch"> |
| <colgroup> |
| <col style="width: 20%;"> |
| <col style="width: 20%;"> |
| <col style="width: 60%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Attribute</th> |
| <th class="tableblock halign-left valign-top">Required</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>name</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">POJO object field name.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>column</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Cassandra table column name. If not specified lowercase POJO field name will be used.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>sort</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies sort order for the field (<code>asc</code> or <code>desc</code>).</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <div class="sect2"> |
| <h3 id="valuepersistence">valuePersistence</h3> |
| <div class="admonitionblock caution"> |
| <table> |
| <tr> |
| <td class="icon"> |
| <div class="title">Caution</div> |
| </td> |
| <td class="content"> |
| <h3 id="required-element-3" class="discrete">! Required Element</h3> |
| <div class="paragraph"> |
| <p>Persistent settings for Ignite cache values.</p> |
| </div> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div class="paragraph"> |
| <p>These settings specify how value objects from Ignite cache should be stored/loaded to/from Cassandra table. The settings attributes |
| look very similar to corresponding settings for Ignite cache keys:</p> |
| </div> |
| <table class="tableblock frame-all grid-all stripes-even stretch"> |
| <colgroup> |
| <col style="width: 20%;"> |
| <col style="width: 20%;"> |
| <col style="width: 60%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Attribute</th> |
| <th class="tableblock halign-left valign-top">Required</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>class</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Java class name for Ignite cache values.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>strategy</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies one of three possible persistent strategies (see below) which controls how object should be persisted/loaded to/from Cassandra table.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>serializer</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Serializer class for BLOB strategy (see below for available implementations). Shouldn’t be used for <code>PRIMITIVE</code> and <code>POJO</code> strategies.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>column</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Column name for <code>PRIMITIVE</code> and <code>BLOB</code> strategies where to store value. If not specified, column having <code>value</code> name will be used. |
| Attribute shouldn’t be specified for POJO strategy.</p></td> |
| </tr> |
| </tbody> |
| </table> |
| <div class="paragraph"> |
| <p>Persistence strategies (same as for key persistence settings):</p> |
| </div> |
| <table class="tableblock frame-all grid-all stripes-even stretch"> |
| <colgroup> |
| <col style="width: 25%;"> |
| <col style="width: 75%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Name</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>PRIMITIVE</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Stores object as is, by mapping it to Cassandra table column with corresponding type. Should be used only for simple java types |
| (int, long, String, double, Date) which could be directly mapped to corresponding Cassadra types. Use this |
| <a href="http://docs.datastax.com/en/developer/java-driver/2.0/java-driver/reference/javaClass2Cql3Datatypes_r.html" target="_blank" rel="noopener">link</a> to figure out Java to Cassandra types mapping.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>BLOB</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Stores object as <code>BLOB</code>, by mapping it to Cassandra table column with blob type. Could be used for any java object. Conversion of |
| java object to <code>BLOB</code> is handled by "serializer" which could be specified in serializer attribute of <code>keyPersistence</code> container.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>POJO</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Stores each field of an object as a column having a corresponding type in Cassandra table. Provides ability to utilize Cassandra |
| secondary indexes for object fields. Could be used only for POJO objects following Java Beans convention and having their fields |
| of <a href="http://docs.datastax.com/en/developer/java-driver/1.0/java-driver/reference/javaClass2Cql3Datatypes_r.html" target="_blank" rel="noopener">simple java type which could be directly mapped to corresponding Cassandra types</a>.</p></td> |
| </tr> |
| </tbody> |
| </table> |
| <div class="paragraph"> |
| <p>Available serializer implementations (same as for key persistence settings):</p> |
| </div> |
| <table class="tableblock frame-all grid-all stripes-even stretch"> |
| <colgroup> |
| <col style="width: 25%;"> |
| <col style="width: 75%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Class</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.ignite.cache.store.cassandra.serializer.JavaSerializer</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Uses standard Java serialization framework.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.apache.ignite.cache.store.cassandra.serializer.KryoSerializer</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Uses Kryo serialization framework.</p></td> |
| </tr> |
| </tbody> |
| </table> |
| <div class="paragraph"> |
| <p>If you are using <code>PRIMITIVE</code> or <code>BLOB</code> persistence strategy you don’t need to specify internal elements of <code>valuePersistence</code> |
| tag, cause the idea of these two strategies is that the whole object should be persisted into one column of Cassandra table |
| (which could be specified by <code>column</code> attribute).</p> |
| </div> |
| <div class="paragraph"> |
| <p>If you are using <code>POJO</code> persistence strategy you have two option (similar to the same options for keys):</p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>Leave <code>valuePersistence</code> tag empty - in such a case, all the fields of POJO object class will be detected automatically using such rules:</p> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>Only fields having simple java types which could be directly mapped to |
| <a href="http://docs.datastax.com/en/developer/java-driver/1.0/java-driver/reference/javaClass2Cql3Datatypes_r.html" target="_blank" rel="noopener">appropriate Cassandra types</a> will be detected.</p> |
| </li> |
| <li> |
| <p>Fields discovery mechanism takes into account <code>@QuerySqlField</code> annotation:</p> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p>If <code>name</code> attribute is specified it will be used as a column name for Cassandra table. Otherwise, field name in a lower case will be used as a column name.</p> |
| </li> |
| <li> |
| <p>If <code>index</code> attribute is specified, secondary index will be created for a corresponding column in Cassandra table (if such table doesn’t exist).</p> |
| </li> |
| </ul> |
| </div> |
| </li> |
| </ul> |
| </div> |
| </li> |
| <li> |
| <p>Specify persistence details inside <code>valuePersistence</code> tag - in such a case, you have to specify your POJO fields mapping to Cassandra table columns |
| inside <code>valuePersistence</code> tag.</p> |
| </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p>If you selected the second option from the list above, you have to use <code><field></code> tag to specify POJO fields to Cassandra |
| table columns mapping. The tag has following attributes:</p> |
| </div> |
| <table class="tableblock frame-all grid-all stripes-even stretch"> |
| <colgroup> |
| <col style="width: 20%;"> |
| <col style="width: 20%;"> |
| <col style="width: 60%;"> |
| </colgroup> |
| <thead> |
| <tr> |
| <th class="tableblock halign-left valign-top">Attribute</th> |
| <th class="tableblock halign-left valign-top">Required</th> |
| <th class="tableblock halign-left valign-top">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>name</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">yes</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">POJO object field name.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>column</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Cassandra table column name. If not specified lowercase POJO field name will be used.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>static</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Boolean flag which specifies that column is static withing a given partition.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>index</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Boolean flag specifying that secondary index should be created for the field.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>indexClass</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Custom index java class name, in case you want to use custom index.</p></td> |
| </tr> |
| <tr> |
| <td class="tableblock halign-left valign-top"><p class="tableblock"><code>indexOptions</code></p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">no</p></td> |
| <td class="tableblock halign-left valign-top"><p class="tableblock">Custom index options.</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| </div> |
| </div> |
| <div class="copyright"> |
| © 2020 The Apache Software Foundation.<br/> |
| Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation. |
| |
| </div> |
| |
| </article> |
| <nav class="right-nav" data-swiftype-index='false'> |
| <ul class="sectlevel1"> |
| <li><a href="#overview">Overview</a></li> |
| <li><a href="#datasourcebean">DataSourceBean</a></li> |
| <li><a href="#persistencesettingsbean">PersistenceSettingsBean</a> |
| <ul class="sectlevel2"> |
| <li><a href="#persistence">persistence</a></li> |
| <li><a href="#keyspaceoptions">keyspaceOptions</a></li> |
| <li><a href="#tableoptions">tableOptions</a></li> |
| <li><a href="#keypersistence">keyPersistence</a></li> |
| <li><a href="#partitionkey">partitionKey</a></li> |
| <li><a href="#clusterkey">clusterKey</a></li> |
| <li><a href="#valuepersistence">valuePersistence</a></li> |
| </ul> |
| </li> |
| </ul> |
| |
| |
| <footer> |
| </footer> |
| |
| </nav> |
| |
| </section> |
| <script type='module' src='/assets/js/code-copy-to-clipboard.js' async crossorigin></script> |
| |
| <script> |
| // inits deep anchors -- needs to be done here because of https://www.bryanbraun.com/anchorjs/#dont-run-it-too-late |
| anchors.add('.page-docs h1, .page-docs h2, .page-docs h3:not(.discrete), .page-docs h4, .page-docs h5'); |
| anchors.options = { |
| placement: 'right', |
| visible: 'always' |
| }; |
| </script> |
| <!-- load google fonts async --> |
| <script type="text/javascript"> |
| WebFontConfig = { |
| google: { families: [ 'Open+Sans:300,400,600,700&display=swap' ] } |
| }; |
| (function() { |
| var wf = document.createElement('script'); |
| wf.src = 'https://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js'; |
| wf.type = 'text/javascript'; |
| wf.async = 'true'; |
| var s = document.getElementsByTagName('script')[0]; |
| s.parentNode.insertBefore(wf, s); |
| })(); </script> |
| <script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script> |
| <script> |
| docsearch({ |
| // Your apiKey and indexName will be given to you once |
| // we create your config |
| apiKey: '3eee686c0ebe39eff3baeb18c56fa5f8', |
| indexName: 'apache_ignite', |
| // Replace inputSelector with a CSS selector |
| // matching your search input |
| inputSelector: '#search-input', |
| // algoliaOptions: { 'facetFilters': ["version:$VERSION"] }, |
| |
| // Set debug to true to inspect the dropdown |
| debug: false, |
| }); |
| </script> |
| <script type='module' src='/assets/js/index.js?1609302780' async crossorigin></script> |
| <script type='module' src='/assets/js/versioning.js?1609302780' async crossorigin></script> |
| </body> |
| |
| </html> |