CINXE.COM
Getting Started | Couchbase Docs
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv=content-security-policy content="default-src 'none'; script-src 'self' 'unsafe-eval' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline' https:; font-src 'self' https://fonts.gstatic.com; frame-src 'self' https:; img-src 'self' data: https:; connect-src 'self' https:; worker-src blob:;"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://metrics.couchbase.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MVPNN2');</script> <!-- End Google Tag Manager --> <title>Getting Started | Couchbase Docs</title> <link rel="canonical" href="https://docs.couchbase.com/elasticsearch-connector/current/getting-started.html"> <link rel="stylesheet" href="../../_/css/site.css"> <script src="../../_/js/vendor/jquery.js"></script> <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-domain-script="748511ff-10bf-44bf-88b8-36382e5b5fd9"></script> <script>function OptanonWrapper(){}</script> <meta name="description" content="Learn how to install the Elasticsearch Connector."> <link rel="schema.dcterms" href="https://purl.org/dc/terms/"> <meta name="dcterms.subject" content="elasticsearch-connector"> <meta name="dcterms.identifier" content="4.4"> <meta name="page-url" content="/elasticsearch-connector/current/getting-started.html"> <meta name="page-nav-header-levels" content="0"> <meta name="docsearch:component" content="elasticsearch-connector"> <meta name="docsearch:component_title" content="Elasticsearch Connector"> <meta name="docsearch:cversion" content="4.4"> <meta name="docsearch:component_version" content="elasticsearch-connector@4.4"> <meta name="docsearch:module" content=""> <meta name="docsearch:breadcrumbs" content="Elasticsearch Connector / Getting Started"> <meta name="docsearch:topic_type" content=""> <meta name="docsearch:version_rank" content="1"> <meta name="docsearch:status" content=""> <meta name="docsearch:edition" content=""> <meta name="docsearch:page_rank" content="50"> <meta name="generator" content="Antora 3.1.5"> <link rel="icon" href="../../_/img/favicon.svg" type="image/svg+xml"> <link rel="icon" href="../../_/img/favicon.ico" type="image/x-icon" sizes="any"> </head> <body class="article"> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MVPNN2" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <header class="header fixed-top"> <div class="header-top-row"> <div class="container"> <nav class="navbar navbar-expand-md flex-nowrap justify-content-between navbar-new-top"> <ul class="navbar-brand-list"> <li class="brand-logo"> <a class="navbar-brand" href="https://www.couchbase.com"> <img src="../../_/img/couchbase-logo.svg" alt="Couchbase" /> </a> </li> <li> <a class="navbar-brand cb-documentation" href="https://docs.couchbase.com/home/index.html"> <img src="../../_/img/cb-documentation.svg" alt="Couchbase Documentation" class="cb-docs" /> <img src="../../_/img/cb-docs-hover.svg" alt="Couchbase Documentation" class="hide cb-hover-docs" /> </a> </li> </ul> <button class="navbar-burger" data-target="topbar-menu"> <span></span> <span></span> <span></span> </button> </nav> </div> </div> <div class="header-bottom-row" id="topbar-menu"> <div class="container"> <nav class="navbar navbar-new-bottom "> <div class="navbar-collapse collapse" id="navbar2"> <ul class="navbar-nav w-100 justify-content-start"> <li class="nav-item ""> <a href="https://docs.couchbase.com/home/index.html" class="nav-link"> <i class="fas fa-home"></i> </a> </li> <li class="nav-item "> <a class="nav-link" href="../../home/server.html"> Server </a> </li> <li class="nav-item "> <a class="nav-link" href="../../home/mobile.html"> Mobile </a> </li> <li class="nav-item "> <a class="nav-link" href="../../home/cloud.html"> Capella </a> </li> <li class="nav-item "> <a class="nav-link" href="../../cloud-native-database/index.html"> Cloud-Native </a> </li> <li class="nav-item nav-item-selected"> <a class="nav-link" href="../../home/sdk.html"> Couchbase SDKs </a> </li> <li class="nav-item "> <a class="nav-link" href="../../home/columnar-sdk.html"> Columnar SDKs </a> </li> </ul> </div> <div class="primary-action"> <div class="navbar-item search" id="search"> <input class="dataLayer query" type="text" placeholder="Search Docs"><i class="fas fa-search"></i> </div> <a class="btn btn-primary btn-grey-reverse" onclick="(window.dataLayer=window.dataLayer||[]).push({'event':'customEvent', 'category':'CTA', 'action':'Button Click', 'label':'Download'});" href="https://www.couchbase.com/downloads"> Downloads <i class="far fa-arrow-to-bottom fa-fw"></i> </a> <a href="https://cloud.couchbase.com/sign-up" class="btn btn-primary" onclick="(window.dataLayer=window.dataLayer||[]).push({'event':'customEvent', 'category':'CTA', 'action':'Button Click', 'label':'Free Trial'});" > Try Free <i class="far fa-cloud fa-fw"></i> </a> </div> </nav> </div> </div> </header> <div class="body container"> <aside class="nav left-sidebar"> <div class="nav-container"> <a href="#" class="menu-expand-toggle"><span>Navigation</span><i class="fas fa-times-circle"></i><i class="fas fa-chevron-circle-left"></i></a> </div> </aside> <aside class="toc sidebar" data-title="Contents" data-levels="1"> <div class="sidebar-box"> <div class="tools" role="navigation"> <ul> <li class="tool edit"><a href="https://github.com/couchbase/docs-elastic-search/edit/main/modules/ROOT/pages/getting-started.adoc" title="Edit Page" target="_blank" rel="noopener" class="remove-ext-icon">Edit on GitHub</a></li> </ul> </div> <div class="toc-menu"></div> <div class="is-this-helpful-box"> <h4> Is this page helpful?</h4> <div class="btn-row"> <a href="#" class="like-btn helpful-btn" id="yesBtn" data-page-rating="like" > <i class="far fa-thumbs-up"></i> Yes </a> <a href="#" class="dislike-btn helpful-btn" id="noBtn" data-page-rating="dislike"> <i class="far fa-thumbs-down"></i> No</a> </div> <div class="any-feedback"> <a href="#" class="btn any-feedback-btn" id="myCustomTrigger">Leave Additional Feedback? </a> </div> <div class="dialog-box" id="dialogBox"> <form> <div class="form-group " id="additionalFeedbackBox"> <textarea class="input-control feed-back-msg" rows="8" placeholder="Any Additonal Feedback?"></textarea> <div class="action-btn-row "> <a href="#" class="skip-btn" id="skipBtnMsg">Skip</a> <button class="submit-btn btn blue-btn disabled" > Submit </button> <a href="#" class="info-btn"><i class="fas fa-info-circle"></i></a> </div> </div> </form> </div> </div> </div> </aside> <div class="feedback-modal modal-popup"> <div class="modal-popup-dialogue"> <div class="popup-header"> <a href="#" class="close-popup"><i class="fa fa-times"></i></a> </div> <div class="popup-content"> <p> Please use the form below to provide your feedback. Because your feedback is valuable to us, the information you submit in this form is recorded in our issue tracking system (JIRA), which is publicly available. You can track the status of your feedback using the ticket number displayed in the dialog once you submit the form. </p> </div> </div> </div> <main class="article" data-ceiling="topbar"> <div class="article-header"> <nav class="crumbs" aria-label="breadcrumbs"> <ul> <li class="crumb"><a href="index.html">Elasticsearch Connector</a></li> <li class="crumb"><a href="getting-started.html">Getting Started</a></li> </ul> </nav> </div> <article class="doc"> <div class="page-heading-title"> <h1 class="page">Getting Started</h1> <div class="labels"> <ul></ul> </div> </div> <div class="contributor-list-box"> <span class="last-commit-date" id="commitdate"> </span> <ul id="contributorList"></ul> <span id="otherContributor"> + </span> </div><div id="preamble"> <div class="sectionbody"> <div class="quoteblock abstract"> <blockquote> A brief overview of the various ways to run the Couchbase Elasticsearch Connector, followed by step-by-step instructions for installing the connector in solo/distributed mode. </blockquote> </div> </div> </div> <div class="sect1"> <h2 id="operational-modes"><a class="anchor" href="#operational-modes"></a>Operational Modes</h2> <div class="sectionbody"> <div class="paragraph"> <p>The connector can be deployed in different modes depending on the requirements of your project.</p> </div> <div class="sect2"> <h3 id="solo"><a class="anchor" href="#solo"></a>Solo</h3> <div class="paragraph"> <p>In the simplest mode, the connector runs as a single standalone Java process. This is referred to as "solo" mode. Solo mode is appropriate for experimentation and low-traffic environments.</p> </div> <div class="paragraph"> <p>If this is your first time working with the connector, we recommend starting with solo mode.</p> </div> </div> <div class="sect2"> <h3 id="distributed"><a class="anchor" href="#distributed"></a>Distributed</h3> <div class="paragraph"> <p>If a single connector process cannot handle all of your traffic, multiple connector processes can be deployed in "distributed" mode.</p> </div> <div class="imageblock kroki"> <div class="content"> <img src="_images/diag-e05c933651f46d9bd14e508d34923d02554a2b61.svg" alt="Distributed data flow with ElasticSearch"> </div> <div class="title">Figure 1. Distributed data flow with ElasticSearch</div> </div> <div class="paragraph"> <p>In this mode each process is manually configured to handle only a subset of the replication workload. Distributed mode can scale to handle high volumes of traffic, but is inflexible; adding an additional process to a distributed connector group requires stopping and reconfiguring <em>all</em> of the processes in the group.</p> </div> <div class="admonitionblock note"> <table> <tr> <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> <td class="content"> Solo mode is effectively the same as distributed mode with a group size of 1. </td> </tr> </table> </div> </div> <div class="sect2"> <h3 id="autonomous-operations"><a class="anchor" href="#autonomous-operations"></a>Autonomous Operations</h3> <div class="paragraph"> <p>For scalable environments that require high availability and centralized management, you can run the connector in "autonomous operations" (AO) mode. This mode is similar to distributed mode in that each process handles a subset of the replication workload, but improves upon it by using a <a href="https://www.consul.io">HashiCorp Consul</a> cluster to coordinate the activities of the connector processes. This enables connector processes to dynamically join or leave the group, and allows an administrator to reconfigure the group on-the-fly without needing to shut down all of the processes.</p> </div> <div class="paragraph"> <p>AO mode is discussed in more detail in the <a href="autonomous-operations.html" class="xref page">Autonomous Operations</a> guide. The page you’re reading now is focused on solo and distributed mode; we recommend becoming familiar with these modes before progressing to AO mode.</p> </div> </div> </div> </div> <div class="sect1"> <h2 id="pre-requisites"><a class="anchor" href="#pre-requisites"></a>Pre-requisites</h2> <div class="sectionbody"> <div class="paragraph"> <p>Linux is required for production deployments. macOS is fine for experimentation and development, but is not officially supported.</p> </div> <div class="paragraph"> <p>To deploy the connector in solo or distributed mode, you will need:</p> </div> <div class="ulist"> <ul> <li> <p>The <a href="release-notes.html" class="xref page">latest release</a> of Couchbase Elasticsearch Connector.</p> </li> <li> <p><a href="compatibility.html" class="xref page">Compatible versions</a> of Java, Elasticsearch, and Couchbase Server.</p> </li> </ul> </div> <div class="admonitionblock note"> <table> <tr> <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> <td class="content"> Couchbase Enterprise Edition is required if you wish to enable secure connections to Couchbase. Likewise, versions of Elasticsearch prior to 6.8 and 7.1 require an additional license in order to support secure connections. Trial versions of both are available. </td> </tr> </table> </div> </div> </div> <div class="sect1"> <h2 id="pre-flight-check"><a class="anchor" href="#pre-flight-check"></a>Pre-flight Check</h2> <div class="sectionbody"> <div class="paragraph"> <p>Verify the Elasticsearch cluster is up and running (the default port is <code>9200</code>).</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-console hljs" data-lang="console">$ curl localhost:9200</code></pre> </div> </div> <div class="paragraph"> <p>Expected result is something like:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-json hljs" data-lang="json">{ "name" : "K3RqW4F", "cluster_name" : "elasticsearch", "cluster_uuid" : "Bw-Ta0wDTcekzQIhXZHGkg", "version" : { "number" : "5.6.5", "build_hash" : "6a37571", "build_date" : "2017-12-04T07:50:10.466Z", "build_snapshot" : false, "lucene_version" : "6.6.1" }, "tagline" : "You Know, for Search" }</code></pre> </div> </div> <div class="paragraph"> <p>Verify that Couchbase Server is running.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-console hljs" data-lang="console">$ curl localhost:8092</code></pre> </div> </div> <div class="paragraph"> <p>Expected result is something like:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-json hljs" data-lang="json">{"couchdb":"Welcome","version":"v4.5.1-60-g3cf258d","couchbase":"5.0.2-5506-community"}</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="installation"><a class="anchor" href="#installation"></a>Installation</h2> <div class="sectionbody"> <div class="paragraph"> <p>Extract the connector distribution archive. This should give you a directory called <code>couchbase-elasticsearch-connector-<version></code>. This directory will be referred to as <code>$CBES_HOME</code>.</p> </div> <div class="paragraph"> <p>Add <code>$CBES_HOME/bin</code> to your <code>PATH</code>.</p> </div> </div> </div> <div class="sect1"> <h2 id="configuration"><a class="anchor" href="#configuration"></a>Configuration</h2> <div class="sectionbody"> <div class="paragraph"> <p>Copy <code>$CBES_HOME/config/example-connector.toml</code> to <code>$CBES_HOME/config/default-connector.toml</code>.</p> </div> <div class="admonitionblock tip"> <table> <tr> <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> <td class="content"> The connector commands get their configuration from <code>$CBES_HOME/config/default-connector.toml</code> by default. You can tell them to use a different config file with the <code>--config <file></code> command line option. </td> </tr> </table> </div> <div class="paragraph"> <p>Take a moment to browse the settings available in <code>default-connector.toml</code>. Make sure the Couchbase and Elasticsearch credentials and hostnames match your environment. Note that the passwords are stored separately in the <code>$CBES_HOME/secrets</code> directory.</p> </div> <div class="paragraph"> <p>The sample config will replicate documents from the Couchbase <code>travel-sample</code> bucket. Go ahead and <a href="../../server/current/manage/manage-settings/install-sample-buckets.html#install-sample-buckets-with-the-ui" class="xref page">install sample buckets</a> now if you haven’t already.</p> </div> </div> </div> <div class="sect1"> <h2 id="controlling-the-connector"><a class="anchor" href="#controlling-the-connector"></a>Controlling the Connector</h2> <div class="sectionbody"> <div class="paragraph"> <p>The command-line tools in <code>$CBES_HOME/bin</code> are used to start the connector and manage replication checkpoints.</p> </div> <div class="sect2"> <h3 id="starting-the-connector"><a class="anchor" href="#starting-the-connector"></a>Starting the connector</h3> <div class="paragraph"> <p>Run this command:</p> </div> <div class="literalblock"> <div class="content"> <pre>cbes</pre> </div> </div> <div class="paragraph"> <p>The connector should start copying documents from the <code>travel-sample</code> bucket into Elasticsearch.</p> </div> </div> <div class="sect2"> <h3 id="stopping-the-connector"><a class="anchor" href="#stopping-the-connector"></a>Stopping the connector</h3> <div class="paragraph"> <p>A connector process will shut down gracefully in response to an interrupt signal (ctrl-c, or <code>kill -s INT <pid></code>).</p> </div> </div> </div> </div> <div class="sect1"> <h2 id="distributed-mode"><a class="anchor" href="#distributed-mode"></a>Distributed Mode</h2> <div class="sectionbody"> <div class="paragraph"> <p>The throughput of the connector is limited by the time it takes for Elasticsearch to index documents. If you determine a single instance of the connector is unable to saturate your Elasticsearch indexing capacity, you can run multiple instances of the connector in distributed mode for horizontal scalability.</p> </div> <div class="paragraph"> <p>A Couchbase bucket consists of many separate partitions (also known as virtual buckets, abbreviated as "vbuckets"). When the connector runs in distributed mode, each instance of the connector is responsible for replicating a different subset of the partitions.</p> </div> <div class="paragraph"> <p>To run the connector in distributed mode, install the connector on multiple machines. Make sure the connector configuration is identical on each machine, except for the <code>memberNumber</code> config key, which must be unique within the group. Set the <code>totalMembers</code> config key to the total number of connector processes in the group.</p> </div> <div class="admonitionblock warning"> <table> <tr> <td class="icon"> <i class="fa icon-warning" title="Warning"></i> </td> <td class="content"> Make sure to stop all of the connector instances in a group before changing the number of instances in the group. </td> </tr> </table> </div> <div class="paragraph"> <p>When a connector instance runs in distributed mode, it replicates from only the partitions that correspond to its group membership configuration.</p> </div> </div> </div> <div class="sect1"> <h2 id="managing-checkpoints"><a class="anchor" href="#managing-checkpoints"></a>Managing Checkpoints</h2> <div class="sectionbody"> <div class="paragraph"> <p>The connector periodically saves its replication state by writing metadata documents to the Couchbase bucket. These documents have IDs starting with <code>_connector:cbes:</code></p> </div> <div class="paragraph"> <p>Command line tools are provided to manage the replication checkpoint.</p> </div> <div class="admonitionblock caution"> <table> <tr> <td class="icon"> <i class="fa icon-caution" title="Caution"></i> </td> <td class="content"> You must stop all connector instances in a group before modifying the replication checkpoint, otherwise the changes will not take effect. (This restriction does not apply when running in <a href="autonomous-operations.html" class="xref page">Autonomous Operations mode</a>.) </td> </tr> </table> </div> <div class="paragraph"> <p>The following commands are specific to the solo and distributed modes. <a href="autonomous-operations.html" class="xref page">Autonomous Operations mode</a> has its own separate commands for managing checkpoints.</p> </div> <div class="sect2"> <h3 id="checkpoint-command-config"><a class="anchor" href="#checkpoint-command-config"></a>Configuring the checkpoint management commands</h3> <div class="paragraph"> <p>The checkpoint management commands use the same config file as the connector. The <code>--config</code> argument tells the checkpoint management command the filesystem path of the config file to use. For example:</p> </div> <div class="literalblock"> <div class="content"> <pre>cbes-<command> --config <path/to/connector/config.toml></pre> </div> </div> <div class="paragraph"> <p>If the <code>--config</code> argument is not specified, the path defaults to <code>config/default-connector.toml</code>.</p> </div> <div class="paragraph"> <p>When running a checkpoint management command from an environment where the connector is already installed and configured, use the same config file as the connector.</p> </div> <div class="paragraph"> <p>If you want to run a checkpoint management command in a different environment, you’ll need to:</p> </div> <div class="olist arabic"> <ol class="arabic"> <li> <p>Get the connector distribution archive and unzip it.</p> </li> <li> <p>Edit the <code>config/example-connector.toml</code> and <code>config/secrets/couchbase-password.toml</code> files to match the settings of the connector whose checkpoints you want to manage.</p> </li> </ol> </div> <div class="paragraph"> <p>The checkpoint management commands use only the following parts of the config file:</p> </div> <div class="ulist"> <ul> <li> <p>The <code>name</code> field from the <code>[group]</code> section.</p> </li> <li> <p>The <code>[couchbase]</code> section.</p> </li> <li> <p>The <code>[couchbase.clientCertificate]</code> section, if applicable.</p> </li> <li> <p>The <code>[couchbase.env]</code> section, if applicable.</p> </li> </ul> </div> <div class="paragraph"> <p>See <a href="configuration.html" class="xref page">connector configuration</a> for details about these settings.</p> </div> <div class="admonitionblock warning"> <table> <tr> <td class="icon"> <i class="fa icon-warning" title="Warning"></i> </td> <td class="content"> Although the other config sections are unused by the checkpoint management commands, they must still be present in the config file, otherwise the commands fail and complain of an invalid config file. Any files referenced by the config must also be present (for example, the contents of the <code>secrets</code> directory). </td> </tr> </table> </div> <div class="admonitionblock tip"> <table> <tr> <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> <td class="content"> <div class="paragraph"> <p>Instead of hardcoding values in the connector config file, you can pass in values via environment variables. This requires editing the config file to use environment variable placeholders.</p> </div> <div class="paragraph"> <p>For example, you could edit your config file to say:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-toml hljs" data-lang="toml">[group] name = '${GROUP_NAME}'</code></pre> </div> </div> <div class="paragraph"> <p>Then specify the group name by setting an environment variable when running the checkpoint management command:</p> </div> <div class="literalblock"> <div class="content"> <pre>env GROUP_NAME=example-group \ cbes-<command> --config <path/to/connector/config.toml></pre> </div> </div> <div class="paragraph"> <p>For more details, see <a href="configuration.html#environment-variables" class="xref page">using environment variable placeholders in config files</a>.</p> </div> </td> </tr> </table> </div> </div> <div class="sect2"> <h3 id="save-checkpoint"><a class="anchor" href="#save-checkpoint"></a>Saving the current replication state</h3> <div class="paragraph"> <p>To create a backup of the current state:</p> </div> <div class="literalblock"> <div class="content"> <pre>cbes-checkpoint-backup --output <checkpoint.json></pre> </div> </div> <div class="paragraph"> <p>This will create a checkpoint document on the local filesystem. On Linux, to include a timestamp in the filename:</p> </div> <div class="literalblock"> <div class="content"> <pre>cbes-checkpoint-backup \ --output checkpoint-$(date -u +%Y-%m-%dT%H:%M:%SZ).json</pre> </div> </div> <div class="paragraph"> <p>This command is safe to use while the connector is running, and can be triggered from a cron job to create periodic backups.</p> </div> </div> <div class="sect2"> <h3 id="restore-checkpoint"><a class="anchor" href="#restore-checkpoint"></a>Reverting to a saved checkpoint</h3> <div class="paragraph"> <p>If you want to rewind the event stream and re-index documents starting from a saved checkpoint, first stop all running connector processes in the connector group. Then run:</p> </div> <div class="literalblock"> <div class="content"> <pre>cbes-checkpoint-restore --input <checkpoint.json></pre> </div> </div> <div class="paragraph"> <p>The next time you run the connector, it will resume from the checkpoint you just restored.</p> </div> </div> <div class="sect2"> <h3 id="reset-checkpoint"><a class="anchor" href="#reset-checkpoint"></a>Resetting the connector</h3> <div class="paragraph"> <p>If you want to discard all replication state and start streaming from the beginning, first stop all of the connector processes, then run:</p> </div> <div class="literalblock"> <div class="content"> <pre>cbes-checkpoint-clear</pre> </div> </div> </div> <div class="sect2"> <h3 id="catch-up-checkpoint"><a class="anchor" href="#catch-up-checkpoint"></a>Setting the checkpoint to "now"</h3> <div class="paragraph"> <p>If you want to reset the connector so it starts from the current state of the bucket, first stop all connector processes in the group, then run:</p> </div> <div class="literalblock"> <div class="content"> <pre>cbes-checkpoint-clear --catch-up</pre> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="whats-next"><a class="anchor" href="#whats-next"></a>What’s Next?</h2> <div class="sectionbody"> <div class="paragraph"> <p>After successfully deploying the connector in solo or distributed mode, you’re ready to dive into the <a href="autonomous-operations.html" class="xref page">Autonomous Operations</a> guide.</p> </div> </div> </div> </article> </main> </div> <footer class="footer"> <div class="container"> <div class="footer-links"> <div class="col"> <div class="footer-logo"> <a href="https://www.couchbase.com" class="icon"> <img src="../../_/img/couchbase-logo.svg" alt="Couchbase"> </a> </div> </div> <div class="col"> <ul> <li><a href="https://docs.couchbase.com" target="_blank" rel="noopener">Documentation</a></li> <li><a href="https://forums.couchbase.com" target="_blank" rel="noopener">Forums</a></li> <li><a href="https://support.couchbase.com" target="_blank" rel="noopener">Support</a></li> </ul> </div> <div class="col"> <ul> <li><a href="https://developer.couchbase.com" target="_blank" rel="noopener">Developer Portal</a></li> <li><a href="https://blog.couchbase.com" target="_blank" rel="noopener">Blog</a></li> <li><a href="https://www.couchbase.com/resources">Resources</a></li> </ul> </div> <div class="col"> <ul> <li><a href="https://www.couchbase.com/get-started-developing-nosql">Get Started</a></li> <li><a href="https://www.couchbase.com/downloads">Downloads</a></li> <li><a href="https://learn.couchbase.com/store?utf8=%E2%9C%93&ss=1&ct=78327&commit=Filter" target="_blank" rel="noopener">Training</a></li> </ul> </div> <div class="col"> <ul class="social-icons"> <li> <svg width="14" height="14" viewBox="0 0 32.1 26.1"> <path id="twitter" class="cls-1" d="M32,7.1a11.836,11.836,0,0,1-3.8,1,6.462,6.462,0,0,0,2.9-3.6,12.606,12.606,0,0,1-4.2,1.6A6.492,6.492,0,0,0,22.1,4a6.594,6.594,0,0,0-6.6,6.6,7.719,7.719,0,0,0,.2,1.5A18.458,18.458,0,0,1,2.2,5.2a6.294,6.294,0,0,0-.9,3.3A6.765,6.765,0,0,0,4.2,14a6.109,6.109,0,0,1-3-.8v.1a6.543,6.543,0,0,0,5.3,6.4,4.678,4.678,0,0,1-1.7.2,4.869,4.869,0,0,1-1.2-.1,6.679,6.679,0,0,0,6.1,4.6,12.917,12.917,0,0,1-8.2,2.8,9.151,9.151,0,0,1-1.6-.1,18.438,18.438,0,0,0,10.1,3c12.1,0,18.7-10,18.7-18.7v-.8A13.336,13.336,0,0,0,32,7.2Z" transform="translate(0.1 -4)"/></svg> <a href="https://twitter.com/couchbase" class="icon"> Twitter </a> </li> <li> <svg width="14" height="14" viewBox="0 0 32 32"> <path id="linkedin" class="cls-1" d="M29,0H3A3.076,3.076,0,0,0,0,3V29a3.009,3.009,0,0,0,3,3H29a2.946,2.946,0,0,0,3-3V3A3.009,3.009,0,0,0,29,0ZM12,26H8V12h4ZM10,10a2,2,0,1,1,2-2A2.006,2.006,0,0,1,10,10ZM26,26H22V18a2,2,0,0,0-4,0v8H14V12h4v2.5c.8-1.1,2.1-2.5,3.5-2.5A4.736,4.736,0,0,1,26,17Z"/></svg> <a href="https://www.linkedin.com/company/couchbase" class="icon"> Linkedin </a> </li> <li> <svg width="14" height="14" viewBox="0 0 32 32"> <path id="facebook" class="cls-1" d="M29,0H3A2.652,2.652,0,0,0,0,3V29a2.652,2.652,0,0,0,3,3H16V18H12V14h4V12a6.452,6.452,0,0,1,6-6h4v4H22a2.151,2.151,0,0,0-2,2v2h6l-1,4H20V32h9a2.652,2.652,0,0,0,3-3V3A2.652,2.652,0,0,0,29,0Z"/></svg> <a href="https://www.facebook.com/Couchbase" class="icon"> Facebook </a> </li> </ul> </div> </div> <div class="footer-terms"> <div class="footer-terms-copyright"> <span>漏 2024 Couchbase and the Couchbase logo are registered trademarks of Couchbase, Inc. All third party trademarks (including logos and icons) referenced by Couchbase, Inc. remain the property of their respective owners. </span> </div> <div class="footer-terms-links"> <a href="https://www.couchbase.com/terms-of-use">Terms of Use</a> <a href="https://www.couchbase.com/privacy-policy">Privacy Policy</a> <a href="https://www.couchbase.com/cookie-policy">Cookie Policy</a> <a href="https://www.couchbase.com/support-policy">Support Policy</a> <a href="https://info.couchbase.com/unsubscribe-or-manage-preferences.html" target="_blank" rel="noopener">Marketing Preference Center</a> </div> </div> </div> </footer> <script src="../../_/js/site-navigation-data.js"></script> <script id="page-navigation-group" type="application/json"> {"title":"Couchbase SDKs","components":["dotnet-sdk","c-sdk","cxx-sdk","go-sdk","java-sdk","kotlin-sdk","nodejs-sdk","php-sdk","python-sdk","ruby-sdk","scala-sdk","elasticsearch-connector","kafka-connector","spark-connector","tableau-connector","power-bi-connector","sdk-extensions"],"url":"/home/sdk.html","latestVersions":{"dotnet-sdk":"3.6","c-sdk":"3.3","cxx-sdk":"1.0","go-sdk":"2.9","java-sdk":"3.7","kotlin-sdk":"1.4","nodejs-sdk":"4.4","php-sdk":"4.2","python-sdk":"4.3","ruby-sdk":"3.5","scala-sdk":"1.7","elasticsearch-connector":"4.4","kafka-connector":"4.2","spark-connector":"3.5","tableau-connector":"1.1","power-bi-connector":"1.0","sdk-extensions":"master"}} </script> <template id="run-code-panel"> <div class="action-panel"> <form class="action-panel-control" method="POST" action="https://couchbase.live/run" target="run-code-output"> <input type="hidden" name="lang"> <input type="hidden" name="code"> <input type="hidden" name="from" value="docs"> <div class="controls"> <button class="control-button rerun" type="submit"><i class="fas fa-redo"></i></button> <span class="shell-name control-label">Output</span> <button class="control-button close"><i class="fas fa-times"></i> Close</button> </div> </form> <iframe class="run-code-output" name="run-code-output"></iframe> </div> </template> <script id="site-script" src="../../_/js/vendor/chatbox-ui.js"></script> <script id="site-script" src="../../_/js/site.js"></script> <script async src="../../_/js/vendor/tabs.js" data-sync-storage-key="preferred-tab"></script> <script defer src="../../_/js/vendor/fontawesome-icon-defs.js"></script> <script defer src="../../_/js/vendor/fontawesome.js" data-search-pseudo-elements="true"></script> <script async src="../../_/js/vendor/highlight.js"></script> <script async id="search-script" src="../../_/js/vendor/docsearch.js" data-app-id="NI1G57N08Q" data-api-key="d3eff3e8bcc0860b8ceae87360a47d54" data-index-name="prod_docs_couchbase" data-stylesheet="../../_/css/vendor/docsearch.css"></script> <script async id="feedback-script" src="../../_/js/vendor/feedback.js?v=1" data-collector-id="709818cb"></script> </body> </html>