You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by zj...@apache.org on 2019/09/29 07:08:15 UTC

svn commit: r1867691 [12/41] - in /zeppelin/site: docs/0.8.2/ docs/0.8.2/assets/ docs/0.8.2/assets/themes/ docs/0.8.2/assets/themes/zeppelin/ docs/0.8.2/assets/themes/zeppelin/bootstrap/ docs/0.8.2/assets/themes/zeppelin/bootstrap/css/ docs/0.8.2/asset...

Added: zeppelin/site/docs/0.8.2/interpreter/cassandra.html
URL: http://svn.apache.org/viewvc/zeppelin/site/docs/0.8.2/interpreter/cassandra.html?rev=1867691&view=auto
==============================================================================
--- zeppelin/site/docs/0.8.2/interpreter/cassandra.html (added)
+++ zeppelin/site/docs/0.8.2/interpreter/cassandra.html Sun Sep 29 07:08:10 2019
@@ -0,0 +1,1103 @@
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Zeppelin 0.8.0 Documentation: Cassandra CQL Interpreter for Apache Zeppelin</title>
+    <meta name="description" content="Apache Cassandra database is the right choice when you need scalability and high availability without compromising performance.">
+    <meta name="author" content="The Apache Software Foundation">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
+
+    <!-- Le styles -->
+    <link href="/docs/0.8.0/assets/themes//bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/docs/0.8.0/assets/themes//css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/docs/0.8.0/assets/themes//css/syntax.css" rel="stylesheet"  type="text/css" media="screen" /> 
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+    -->
+
+    <!-- Js -->
+    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
+    <script src="/docs/0.8.0/assets/themes//bootstrap/js/bootstrap.min.js"></script>
+    <script src="/docs/0.8.0/assets/themes//js/docs.js"></script>
+    <script src="/docs/0.8.0/assets/themes//js/anchor.min.js"></script>
+    <script src="/docs/0.8.0/assets/themes//js/toc.js"></script>
+    <script src="/docs/0.8.0/assets/themes//js/lunr.min.js"></script>
+    <script src="/docs/0.8.0/assets/themes//js/search.js"></script>    
+
+    <!-- atom & rss feed -->
+    <link href="/docs/0.8.0/atom.xml" type="application/atom+xml" rel="alternate" title="Sitewide ATOM Feed">
+    <link href="/docs/0.8.0/rss.xml" type="application/rss+xml" rel="alternate" title="Sitewide RSS Feed">
+  </head>
+
+  <body>
+    
+        <div id="menu" class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container navbar-container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <div class="navbar-brand">
+            <a class="navbar-brand-main" href="http://zeppelin.apache.org">
+              <img src="/docs/0.8.0/assets/themes/zeppelin/img/zeppelin_logo.png" width="50"
+                   style="margin-top: -2px;" alt="I'm zeppelin">
+              <span style="margin-left: 5px; font-size: 27px;">Zeppelin</span>
+              <a class="navbar-brand-version" href="/docs/0.8.0"
+                 style="font-size: 15px; color: white;"> 0.8.0
+              </a>
+            </a>
+          </div>
+        </div>
+        <nav class="navbar-collapse collapse" role="navigation">
+          <ul class="nav navbar-nav">
+            <li>
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Quick Start <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li class="title"><span>Getting Started</span></li>
+                <li><a href="/docs/0.8.0/quickstart/install.html">Install</a></li>
+                <li><a href="/docs/0.8.0/quickstart/explore_ui.html">Explore UI</a></li>
+                <li><a href="/docs/0.8.0/quickstart/tutorial.html">Tutorial</a></li>
+                <li role="separator" class="divider"></li>
+                <li><a href="/docs/0.8.0/quickstart/spark_with_zeppelin.html">Spark with Zeppelin</a></li>
+                <li><a href="/docs/0.8.0/quickstart/sql_with_zeppelin.html">SQL with Zeppelin</a></li>
+                <li><a href="/docs/0.8.0/quickstart/python_with_zeppelin.html">Python with Zeppelin</a></li>
+              </ul>
+            </li>
+
+            <li>
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Usage<b class="caret"></b></a>
+              <ul class="dropdown-menu scrollable-menu">
+                <li class="title"><span>Dynamic Form</span></li>
+                <li><a href="/docs/0.8.0/usage/dynamic_form/intro.html">What is Dynamic Form?</a></li>
+                <li role="separator" class="divider"></li>
+                <li class="title"><span>Display System</span></li>
+                <li><a href="/docs/0.8.0/usage/display_system/basic.html#text">Text Display</a></li>
+                <li><a href="/docs/0.8.0/usage/display_system/basic.html#html">HTML Display</a></li>
+                <li><a href="/docs/0.8.0/usage/display_system/basic.html#table">Table Display</a></li>
+                <li><a href="/docs/0.8.0/usage/display_system/basic.html#network">Network Display</a></li>
+                <li><a href="/docs/0.8.0/usage/display_system/angular_backend.html">Angular Display using Backend API</a></li>
+                <li><a href="/docs/0.8.0/usage/display_system/angular_frontend.html">Angular Display using Frontend API</a></li>
+                <li role="separator" class="divider"></li>
+                <li class="title"><span>Interpreter</span></li>
+                <li><a href="/docs/0.8.0/usage/interpreter/overview.html">Overview</a></li>
+                <li><a href="/docs/0.8.0/usage/interpreter/interpreter_binding_mode.html">Interpreter Binding Mode</a></li>
+                <li><a href="/docs/0.8.0/usage/interpreter/user_impersonation.html">User Impersonation</a></li>
+                <li><a href="/docs/0.8.0/usage/interpreter/dependency_management.html">Dependency Management</a></li>
+                <li><a href="/docs/0.8.0/usage/interpreter/installation.html">Installing Interpreters</a></li>
+                <!--<li><a href="/docs/0.8.0/usage/interpreter/dynamic_loading.html">Dynamic Interpreter Loading (Experimental)</a></li>-->
+                <li><a href="/docs/0.8.0/usage/interpreter/execution_hooks.html">Execution Hooks (Experimental)</a></li>
+                <li role="separator" class="divider"></li>
+                <li class="title"><span>Other Features</span></li>
+                <li><a href="/docs/0.8.0/usage/other_features/publishing_paragraphs.html">Publishing Paragraphs</a></li>
+                <li><a href="/docs/0.8.0/usage/other_features/personalized_mode.html">Personalized Mode</a></li>
+                <li><a href="/docs/0.8.0/usage/other_features/customizing_homepage.html">Customizing Zeppelin Homepage</a></li>
+                <li><a href="/docs/0.8.0/usage/other_features/notebook_actions.html">Notebook Actions</a></li>
+                <li><a href="/docs/0.8.0/usage/other_features/cron_scheduler.html">Cron Scheduler</a></li>
+                <li><a href="/docs/0.8.0/usage/other_features/zeppelin_context.html">Zeppelin Context</a></li>
+                <li role="separator" class="divider"></li>
+                <li class="title"><span>REST API</span></li>
+                <li><a href="/docs/0.8.0/usage/rest_api/interpreter.html">Interpreter API</a></li>
+                <li><a href="/docs/0.8.0/usage/rest_api/zeppelin_server.html">Zeppelin Server API</a></li>
+                <li><a href="/docs/0.8.0/usage/rest_api/notebook.html">Notebook API</a></li>
+                <li><a href="/docs/0.8.0/usage/rest_api/notebook_repository.html">Notebook Repository API</a></li>
+                <li><a href="/docs/0.8.0/usage/rest_api/configuration.html">Configuration API</a></li>
+                <li><a href="/docs/0.8.0/usage/rest_api/credential.html">Credential API</a></li>
+                <li><a href="/docs/0.8.0/usage/rest_api/helium.html">Helium API</a></li>
+              </ul>
+            </li>
+
+            <li>
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Setup<b class="caret"></b></a>
+              <ul class="dropdown-menu scrollable-menu">
+                <li class="title"><span>Basics</span></li>
+                <li><a href="/docs/0.8.0/setup/basics/how_to_build.html">How to Build Zeppelin</a></li>
+                <li><a href="/docs/0.8.0/setup/basics/multi_user_support.html">Multi-user Support</a></li>
+                <li role="separator" class="divider"></li>
+                <li class="title"><span>Deployment</span></li>
+                <!--<li><a href="/docs/0.8.0/setup/deployment/docker.html">Docker Image for Zeppelin</a></li>-->
+                <li><a href="/docs/0.8.0/setup/deployment/spark_cluster_mode.html#spark-standalone-mode">Spark Cluster Mode: Standalone</a></li>
+                <li><a href="/docs/0.8.0/setup/deployment/spark_cluster_mode.html#spark-on-yarn-mode">Spark Cluster Mode: YARN</a></li>
+                <li><a href="/docs/0.8.0/setup/deployment/spark_cluster_mode.html#spark-on-mesos-mode">Spark Cluster Mode: Mesos</a></li>
+                <li><a href="/docs/0.8.0/setup/deployment/flink_and_spark_cluster.html">Zeppelin with Flink, Spark Cluster</a></li>
+                <li><a href="/docs/0.8.0/setup/deployment/cdh.html">Zeppelin on CDH</a></li>
+                <li><a href="/docs/0.8.0/setup/deployment/virtual_machine.html">Zeppelin on VM: Vagrant</a></li>
+                <li role="separator" class="divider"></li>
+                <li class="title"><span>Security</span></li>
+                <li><a href="/docs/0.8.0/setup/security/authentication_nginx.html">HTTP Basic Auth using NGINX</a></li>
+                <li><a href="/docs/0.8.0/setup/security/shiro_authentication.html">Shiro Authentication</a></li>
+                <li><a href="/docs/0.8.0/setup/security/notebook_authorization.html">Notebook Authorization</a></li>
+                <li><a href="/docs/0.8.0/setup/security/datasource_authorization.html">Data Source Authorization</a></li>
+                <li><a href="/docs/0.8.0/setup/security/http_security_headers.html">HTTP Security Headers</a></li>
+                <li role="separator" class="divider"></li>
+                <li class="title"><span>Notebook Storage</span></li>
+                <li><a href="/docs/0.8.0/setup/storage/storage.html#notebook-storage-in-local-git-repository">Git Storage</a></li>
+                <li><a href="/docs/0.8.0/setup/storage/storage.html#notebook-storage-in-s3">S3 Storage</a></li>
+                <li><a href="/docs/0.8.0/setup/storage/storage.html#notebook-storage-in-azure">Azure Storage</a></li>
+                <li><a href="/docs/0.8.0/setup/storage/storage.html#notebook-storage-in-zeppelinhub">ZeppelinHub Storage</a></li>
+                <li><a href="/docs/0.8.0/setup/storage/storage.html#notebook-storage-in-mongodb">MongoDB Storage</a></li>
+                <li role="separator" class="divider"></li>
+                <li class="title"><span>Operation</span></li>
+                <li><a href="/docs/0.8.0/setup/operation/configuration.html">Configuration</a></li>
+                <li><a href="/docs/0.8.0/setup/operation/proxy_setting.html">Proxy Setting</a></li>
+                <li><a href="/docs/0.8.0/setup/operation/upgrading.html">Upgrading</a></li>
+                <li><a href="/docs/0.8.0/setup/operation/trouble_shooting.html">Trouble Shooting</a></li>
+              </ul>
+            </li>
+
+            <li>
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">Interpreter <b class="caret"></b></a>
+              <ul class="dropdown-menu scrollable-menu">
+                <li class="title"><span>Interpreters</span></li>
+                <li><a href="/docs/0.8.0/usage/interpreter/overview.html">Overview</a></li>
+                <li role="separator" class="divider"></li>
+                <li><a href="/docs/0.8.0/interpreter/spark.html">Spark</a></li>
+                <li><a href="/docs/0.8.0/interpreter/jdbc.html">JDBC</a></li>
+                <li><a href="/docs/0.8.0/interpreter/python.html">Python</a></li>
+                <li role="separator" class="divider"></li>
+                <li><a href="/docs/0.8.0/interpreter/alluxio.html">Alluxio</a></li>
+                <li><a href="/docs/0.8.0/interpreter/beam.html">Beam</a></li>
+                <li><a href="/docs/0.8.0/interpreter/bigquery.html">BigQuery</a></li>
+                <li><a href="/docs/0.8.0/interpreter/cassandra.html">Cassandra</a></li>
+                <li><a href="/docs/0.8.0/interpreter/elasticsearch.html">Elasticsearch</a></li>
+                <li><a href="/docs/0.8.0/interpreter/flink.html">Flink</a></li>
+                <li><a href="/docs/0.8.0/interpreter/geode.html">Geode</a></li>
+                <li><a href="/docs/0.8.0/interpreter/groovy.html">Groovy</a></li>
+                <li><a href="/docs/0.8.0/interpreter/hbase.html">HBase</a></li>
+                <li><a href="/docs/0.8.0/interpreter/hdfs.html">HDFS</a></li>
+                <li><a href="/docs/0.8.0/interpreter/hive.html">Hive</a></li>
+                <li><a href="/docs/0.8.0/interpreter/ignite.html">Ignite</a></li>
+                <li><a href="/docs/0.8.0/interpreter/kylin.html">Kylin</a></li>
+                <li><a href="/docs/0.8.0/interpreter/lens.html">Lens</a></li>
+                <li><a href="/docs/0.8.0/interpreter/livy.html">Livy</a></li>
+                <li><a href="/docs/0.8.0/interpreter/markdown.html">Markdown</a></li>
+                <li><a href="/docs/0.8.0/interpreter/neo4j.html">Neo4j</a></li>
+                <li><a href="/docs/0.8.0/interpreter/pig.html">Pig</a></li>
+                <li><a href="/docs/0.8.0/interpreter/postgresql.html">Postgresql, HAWQ</a></li>
+                <li><a href="/docs/0.8.0/interpreter/r.html">R</a></li>
+                <li><a href="/docs/0.8.0/interpreter/scalding.html">Scalding</a></li>
+                <li><a href="/docs/0.8.0/interpreter/scio.html">Scio</a></li>
+                <li><a href="/docs/0.8.0/interpreter/shell.html">Shell</a></li>
+              </ul>
+            </li>
+            <li>
+              <a href="#" data-toggle="dropdown" class="dropdown-toggle">More<b class="caret"></b></a>
+              <ul class="dropdown-menu scrollable-menu" style="right: 0; left: auto;">
+                <li class="title"><span>Extending Zeppelin</span></li>
+                <li><a href="/docs/0.8.0/development/writing_zeppelin_interpreter.html">Writing Zeppelin Interpreter</a></li>
+                <li role="separator" class="divider"></li>
+                <li class="title"><span>Helium (Experimental)</span></li>
+                <li><a href="/docs/0.8.0/development/helium/overview.html">Overview</a></li>
+                <li><a href="/docs/0.8.0/development/helium/writing_application.html">Writing Helium Application</a></li>
+                <li><a href="/docs/0.8.0/development/helium/writing_spell.html">Writing Helium Spell</a></li>
+                <li><a href="/docs/0.8.0/development/helium/writing_visualization_basic.html">Writing Helium Visualization: Basics</a></li>
+                <li><a href="/docs/0.8.0/development/helium/writing_visualization_transformation.html">Writing Helium Visualization: Transformation</a></li>
+                <li role="separator" class="divider"></li>
+                <li class="title"><span>Contributing to Zeppelin</span></li>
+                <li><a href="/docs/0.8.0/setup/basics/how_to_build.html">How to Build Zeppelin</a></li>
+                <li><a href="/docs/0.8.0/development/contribution/useful_developer_tools.html">Useful Developer Tools</a></li>
+                <li><a href="/docs/0.8.0/development/contribution/how_to_contribute_code.html">How to Contribute (code)</a></li>
+                <li><a href="/docs/0.8.0/development/contribution/how_to_contribute_website.html">How to Contribute (website)</a></li>
+                <li role="separator" class="divider"></li>
+                <li class="title"><span>External Resources</span></li>
+                <li><a target="_blank" href="">Mailing List</a></li>
+                <li><a target="_blank" href="">Apache Zeppelin Wiki</a></li>
+                <li><a target="_blank" href="">Stackoverflow Questions about Zeppelin</a></li>
+              </ul>
+            </li>
+            <li>
+              <a href="/docs/0.8.0/search.html" class="nav-search-link">
+                <span class="fa fa-search nav-search-icon"></span>
+              </a>
+            </li>
+          </ul>
+        </nav><!--/.navbar-collapse -->
+      </div>
+    </div>
+
+
+
+    <div class="content">
+      
+<!--<div class="hero-unit Cassandra CQL Interpreter for Apache Zeppelin">
+  <h1></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+<h1>Cassandra CQL Interpreter for Apache Zeppelin</h1>
+
+<div id="toc"></div>
+
+<table class="table-configuration">
+  <tr>
+    <th>Name</th>
+    <th>Class</th>
+    <th>Description</th>
+  </tr>
+  <tr>
+    <td>%cassandra</td>
+    <td>CassandraInterpreter</td>
+    <td>Provides interpreter for Apache Cassandra CQL query language</td>
+  </tr>
+</table>
+
+<h2>Enabling Cassandra Interpreter</h2>
+
+<p>In a notebook, to enable the <strong>Cassandra</strong> interpreter, click on the <strong>Gear</strong> icon and select <strong>Cassandra</strong></p>
+
+<p><center>
+ <img src="/docs/0.8.0/assets/themes/zeppelin/img/docs-img/cassandra-InterpreterBinding.png" alt="Interpreter Binding"></p>
+
+<p><img src="/docs/0.8.0/assets/themes/zeppelin/img/docs-img/cassandra-InterpreterSelection.png" alt="Interpreter Selection">
+ </center></p>
+
+<h2>Using the Cassandra Interpreter</h2>
+
+<p>In a paragraph, use <strong><em>%cassandra</em></strong> to select the <strong>Cassandra</strong> interpreter and then input all commands.</p>
+
+<p>To access the interactive help, type <strong>HELP;</strong></p>
+
+<p><center>
+   <img src="/docs/0.8.0/assets/themes/zeppelin/img/docs-img/cassandra-InteractiveHelp.png" alt="Interactive Help">
+ </center></p>
+
+<h2>Interpreter Commands</h2>
+
+<p>The <strong>Cassandra</strong> interpreter accepts the following commands</p>
+
+<p><center>
+  <table class="table-configuration">
+    <tr>
+      <th>Command Type</th>
+      <th>Command Name</th>
+      <th>Description</th>
+    </tr>
+    <tr>
+      <td nowrap>Help command</td>
+      <td><code>HELP</code></td>
+      <td>Display the interactive help menu</td>
+    </tr>
+    <tr>
+      <td nowrap>Schema commands</td>
+      <td><code>DESCRIBE KEYSPACE</code>, <code>DESCRIBE CLUSTER</code>, <code>DESCRIBE TABLES</code> ...</td>
+      <td>Custom commands to describe the Cassandra schema</td>
+    </tr>
+    <tr>
+      <td nowrap>Option commands</td>
+      <td><code>@consistency</code>, <code>@retryPolicy</code>, <code>@fetchSize</code> ...</td>
+      <td>Inject runtime options to all statements in the paragraph</td>
+    </tr>
+    <tr>
+      <td nowrap>Prepared statement commands</td>
+      <td><code>@prepare</code>, <code>@bind</code>, <code>@remove_prepared</code></td>
+      <td>Let you register a prepared command and re-use it later by injecting bound values</td>
+    </tr>
+    <tr>
+      <td nowrap>Native CQL statements</td>
+      <td>All CQL-compatible statements (<code>SELECT</code>, <code>INSERT</code>, <code>CREATE</code>, ...)</td>
+      <td>All CQL statements are executed directly against the Cassandra server</td>
+    </tr>
+  </table>
+</center></p>
+
+<h2>CQL statements</h2>
+
+<p>This interpreter is compatible with any CQL statement supported by Cassandra. Ex:</p>
+<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="n">users</span><span class="p">(</span><span class="n">login</span><span class="p">,</span><span class="n">name</span><span class="p">)</span> <span class="k">VALUES</span><span class="p">(</span><span class="s1">&#39;jdoe&#39;</span><span class="p">,</span><span class="s1">&#39;John DOE&#39;</span><span class="p">);</span>
+<span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="n">users</span> <span class="k">WHERE</span> <span class="n">login</span><span class="o">=</span><span class="s1">&#39;jdoe&#39;</span><span class="p">;</span>
+</code></pre></div>
+<p>Each statement should be separated by a semi-colon ( <strong>;</strong> ) except the special commands below:</p>
+
+<ol>
+<li><code>@prepare</code></li>
+<li><code>@bind</code></li>
+<li><code>@remove_prepare</code></li>
+<li><code>@consistency</code></li>
+<li><code>@serialConsistency</code></li>
+<li><code>@timestamp</code></li>
+<li><code>@retryPolicy</code></li>
+<li><code>@fetchSize</code></li>
+<li><code>@requestTimeOut</code></li>
+</ol>
+
+<p>Multi-line statements as well as multiple statements on the same line are also supported as long as they are separated by a semi-colon. Ex:</p>
+<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span></span><span class="n">USE</span> <span class="n">spark_demo</span><span class="p">;</span>
+
+<span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="n">albums_by_country</span> <span class="k">LIMIT</span> <span class="mi">1</span><span class="p">;</span> <span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="n">countries</span> <span class="k">LIMIT</span> <span class="mi">1</span><span class="p">;</span>
+
+<span class="k">SELECT</span> <span class="o">*</span>
+<span class="k">FROM</span> <span class="n">artists</span>
+<span class="k">WHERE</span> <span class="n">login</span><span class="o">=</span><span class="s1">&#39;jlennon&#39;</span><span class="p">;</span>
+</code></pre></div>
+<p>Batch statements are supported and can span multiple lines, as well as DDL (<code>CREATE</code>/<code>ALTER</code>/<code>DROP</code>) statements:</p>
+<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span></span><span class="k">BEGIN</span> <span class="n">BATCH</span>
+    <span class="k">INSERT</span> <span class="k">INTO</span> <span class="n">users</span><span class="p">(</span><span class="n">login</span><span class="p">,</span><span class="n">name</span><span class="p">)</span> <span class="k">VALUES</span><span class="p">(</span><span class="s1">&#39;jdoe&#39;</span><span class="p">,</span><span class="s1">&#39;John DOE&#39;</span><span class="p">);</span>
+    <span class="k">INSERT</span> <span class="k">INTO</span> <span class="n">users_preferences</span><span class="p">(</span><span class="n">login</span><span class="p">,</span><span class="n">account_type</span><span class="p">)</span> <span class="k">VALUES</span><span class="p">(</span><span class="s1">&#39;jdoe&#39;</span><span class="p">,</span><span class="s1">&#39;BASIC&#39;</span><span class="p">);</span>
+<span class="n">APPLY</span> <span class="n">BATCH</span><span class="p">;</span>
+
+<span class="k">CREATE</span> <span class="k">TABLE</span> <span class="k">IF</span> <span class="k">NOT</span> <span class="k">EXISTS</span> <span class="n">test</span><span class="p">(</span>
+    <span class="k">key</span> <span class="nb">int</span> <span class="k">PRIMARY</span> <span class="k">KEY</span><span class="p">,</span>
+    <span class="n">value</span> <span class="nb">text</span>
+<span class="p">);</span>
+</code></pre></div>
+<p>CQL statements are <strong>case-insensitive</strong> (except for column names and values). This means that the following statements are equivalent and valid:</p>
+<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="n">users</span><span class="p">(</span><span class="n">login</span><span class="p">,</span><span class="n">name</span><span class="p">)</span> <span class="k">VALUES</span><span class="p">(</span><span class="s1">&#39;jdoe&#39;</span><span class="p">,</span><span class="s1">&#39;John DOE&#39;</span><span class="p">);</span>
+<span class="k">Insert</span> <span class="k">into</span> <span class="n">users</span><span class="p">(</span><span class="n">login</span><span class="p">,</span><span class="n">name</span><span class="p">)</span> <span class="k">vAlues</span><span class="p">(</span><span class="s1">&#39;hsue&#39;</span><span class="p">,</span><span class="s1">&#39;Helen SUE&#39;</span><span class="p">);</span>
+</code></pre></div>
+<p>The complete list of all CQL statements and versions can be found below:</p>
+
+<p><center>
+ <table class="table-configuration">
+   <tr>
+     <th>Cassandra Version</th>
+     <th>Documentation Link</th>
+   </tr>
+   <tr>
+     <td><strong>3.x</strong></td>
+     <td>
+        <a target="_blank"
+          href="http://docs.datastax.com/en/cql/3.3/cql/cqlIntro.html">
+          http://docs.datastax.com/en/cql/3.3/cql/cqlIntro.html
+        </a>
+     </td>
+   </tr><br>
+   <tr>
+     <td><strong>2.2</strong></td>
+     <td>
+        <a target="_blank"
+          href="http://docs.datastax.com/en/cql/3.3/cql/cqlIntro.html">
+          http://docs.datastax.com/en/cql/3.3/cql/cqlIntro.html
+        </a>
+     </td>
+   </tr>
+   <tr>
+     <td><strong>2.1 &amp; 2.0</strong></td>
+     <td>
+        <a target="_blank"
+          href="http://docs.datastax.com/en/cql/3.1/cql/cql_intro_c.html">
+          http://docs.datastax.com/en/cql/3.1/cql/cql<em>intro</em>c.html
+        </a>
+     </td>
+   </tr>
+   <tr>
+     <td><strong>1.2</strong></td>
+     <td>
+        <a target="_blank"
+          href="http://docs.datastax.com/en/cql/3.0/cql/aboutCQL.html">
+          http://docs.datastax.com/en/cql/3.0/cql/aboutCQL.html
+        </a>
+     </td>
+   </tr>
+ </table>
+</center></p>
+
+<h2>Comments in statements</h2>
+
+<p>It is possible to add comments between statements. Single line comments start with the <strong>hash sign</strong> (#) or <strong>double slashes</strong> (//). Multi-line comments are enclosed between /** and **/. Ex:</p>
+<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span></span><span class="o">#</span><span class="n">Single</span> <span class="n">line</span> <span class="k">comment</span> <span class="n">style</span> <span class="mi">1</span>
+<span class="k">INSERT</span> <span class="k">INTO</span> <span class="n">users</span><span class="p">(</span><span class="n">login</span><span class="p">,</span><span class="n">name</span><span class="p">)</span> <span class="k">VALUES</span><span class="p">(</span><span class="s1">&#39;jdoe&#39;</span><span class="p">,</span><span class="s1">&#39;John DOE&#39;</span><span class="p">);</span>
+
+<span class="o">//</span><span class="n">Single</span> <span class="n">line</span> <span class="k">comment</span> <span class="n">style</span> <span class="mi">2</span>
+
+<span class="cm">/**</span>
+<span class="cm"> Multi line</span>
+<span class="cm"> comments</span>
+<span class="cm"> **/</span>
+<span class="k">Insert</span> <span class="k">into</span> <span class="n">users</span><span class="p">(</span><span class="n">login</span><span class="p">,</span><span class="n">name</span><span class="p">)</span> <span class="k">vAlues</span><span class="p">(</span><span class="s1">&#39;hsue&#39;</span><span class="p">,</span><span class="s1">&#39;Helen SUE&#39;</span><span class="p">);</span>
+</code></pre></div>
+<h2>Syntax Validation</h2>
+
+<p>The interpreters is shipped with a built-in syntax validator. This validator only checks for basic syntax errors.</p>
+
+<p>All CQL-related syntax validation is delegated directly to <strong>Cassandra</strong></p>
+
+<p>Most of the time, syntax errors are due to <strong>missing semi-colons</strong> between statements or <strong>typo errors</strong>.</p>
+
+<h2>Schema commands</h2>
+
+<p>To make schema discovery easier and more interactive, the following commands are supported:</p>
+
+<p><center>
+ <table class="table-configuration">
+   <tr>
+     <th>Command</th>
+     <th>Description</th>
+   </tr>
+   <tr>
+     <td><strong>DESCRIBE CLUSTER;</strong></td>
+     <td>Show the current cluster name and its partitioner</td>
+   </tr>
+   <tr>
+     <td><strong>DESCRIBE KEYSPACES;</strong></td>
+     <td>List all existing keyspaces in the cluster and their configuration (replication factor, durable write ...)</td>
+   </tr>
+   <tr>
+     <td><strong>DESCRIBE TABLES;</strong></td>
+     <td>List all existing keyspaces in the cluster and for each, all the tables name</td>
+   </tr>
+   <tr>
+     <td><strong>DESCRIBE TYPES;</strong></td>
+     <td>List all existing keyspaces in the cluster and for each, all the user-defined types name</strong></td>
+   </tr>
+   <tr>
+     <td nowrap><strong>DESCRIBE FUNCTIONS;</strong></td>
+     <td>List all existing keyspaces in the cluster and for each, all the functions name</td>
+   </tr>
+   <tr>
+     <td nowrap><strong>DESCRIBE AGGREGATES;</strong></td>
+     <td>List all existing keyspaces in the cluster and for each, all the aggregates name</td>
+   </tr>
+   <tr>
+     <td nowrap><strong>DESCRIBE MATERIALIZED VIEWS;</strong></td>
+     <td>List all existing keyspaces in the cluster and for each, all the materialized views name</td>
+   </tr>
+   <tr>
+     <td nowrap><strong>DESCRIBE KEYSPACE &lt;keyspace<em>name&gt;;</strong></td>
+     <td>Describe the given keyspace configuration and all its table details (name, columns, ...)</td>
+   </tr>
+   <tr>
+     <td nowrap><strong>DESCRIBE TABLE (&lt;keyspace</em>name&gt;).&lt;table<em>name&gt;;</strong></td>
+     <td>
+        Describe the given table. If the keyspace is not provided, the current logged in keyspace is used.
+        If there is no logged in keyspace, the default system keyspace is used.
+        If no table is found, an error message is raised
+     </td>
+   </tr>
+   <tr>
+     <td nowrap><strong>DESCRIBE TYPE (&lt;keyspace</em>name&gt;).&lt;type<em>name&gt;;</strong></td>
+     <td>
+        Describe the given type(UDT). If the keyspace is not provided, the current logged in keyspace is used.
+        If there is no logged in keyspace, the default system keyspace is used.
+        If no type is found, an error message is raised
+     </td>
+   </tr>
+   <tr>
+     <td nowrap><strong>DESCRIBE FUNCTION (&lt;keyspace</em>name&gt;).&lt;function<em>name&gt;;</strong></td>
+     <td>Describe the given function. If the keyspace is not provided, the current logged in keyspace is used.
+         If there is no logged in keyspace, the default system keyspace is used.
+         If no function is found, an error message is raised
+     </td>
+   </tr>
+   <tr>
+     <td nowrap><strong>DESCRIBE AGGREGATE (&lt;keyspace</em>name&gt;).&lt;aggregate<em>name&gt;;</strong></td>
+     <td>Describe the given aggregate. If the keyspace is not provided, the current logged in keyspace is used.
+         If there is no logged in keyspace, the default system keyspace is used.
+         If no aggregate is found, an error message is raised
+     </td>
+   </tr>
+   <tr>
+     <td nowrap><strong>DESCRIBE MATERIALIZED VIEW (&lt;keyspace</em>name&gt;).&lt;view_name&gt;;</strong></td>
+     <td>Describe the given view. If the keyspace is not provided, the current logged in keyspace is used.
+         If there is no logged in keyspace, the default system keyspace is used.
+         If no view is found, an error message is raised
+     </td>
+   </tr>
+ </table>
+</center></p>
+
+<p>The schema objects (cluster, keyspace, table, type, function and aggregate) are displayed in a tabular format.
+There is a drop-down menu on the top left corner to expand objects details. On the top right menu is shown the Icon legend.</p>
+
+<p><center>
+  <img src="/docs/0.8.0/assets/themes/zeppelin/img/docs-img/cassandra-DescribeSchema.png" alt="Describe Schema">
+</center></p>
+
+<h2>Runtime Parameters</h2>
+
+<p>Sometimes you want to be able to pass runtime query parameters to your statements.</p>
+
+<p>Those parameters are not part of the CQL specs and are specific to the interpreter.</p>
+
+<p>Below is the list of all parameters:</p>
+
+<p><center>
+ <table class="table-configuration">
+   <tr>
+     <th>Parameter</th>
+     <th>Syntax</th>
+     <th>Description</th>
+   </tr>
+   <tr>
+     <td nowrap>Consistency Level</td>
+     <td><strong>@consistency=<em>value</em></strong></td>
+     <td>Apply the given consistency level to all queries in the paragraph</td>
+   </tr>
+   <tr>
+     <td nowrap>Serial Consistency Level</td>
+     <td><strong>@serialConsistency=<em>value</em></strong></td>
+     <td>Apply the given serial consistency level to all queries in the paragraph</td>
+   </tr>
+   <tr>
+     <td nowrap>Timestamp</td>
+     <td><strong>@timestamp=<em>long value</em></strong></td>
+     <td>
+        Apply the given timestamp to all queries in the paragraph.
+        Please note that timestamp value passed directly in CQL statement will override this value
+      </td>
+   </tr>
+   <tr>
+     <td nowrap>Retry Policy</td>
+     <td><strong>@retryPolicy=<em>value</em></strong></td>
+     <td>Apply the given retry policy to all queries in the paragraph</td>
+   </tr>
+   <tr>
+     <td nowrap>Fetch Size</td>
+     <td><strong>@fetchSize=<em>integer value</em></strong></td>
+     <td>Apply the given fetch size to all queries in the paragraph</td>
+   </tr>
+   <tr>
+     <td nowrap>Request Time Out</td>
+     <td><strong>@requestTimeOut=<em>integer value</em></strong></td>
+     <td>Apply the given request timeout <strong>in millisecs</strong> to all queries in the paragraph</td>
+   </tr><br>
+ </table>
+</center></p>
+
+<p>Some parameters only accept restricted values:</p>
+
+<p><center>
+ <table class="table-configuration">
+   <tr>
+     <th>Parameter</th>
+     <th>Possible Values</th>
+   </tr>
+   <tr>
+     <td nowrap>Consistency Level</td>
+     <td><strong>ALL, ANY, ONE, TWO, THREE, QUORUM, LOCAL<em>ONE, LOCAL</em>QUORUM, EACH<em>QUORUM</strong></td>
+   </tr>
+   <tr>
+     <td nowrap>Serial Consistency Level</td>
+     <td><strong>SERIAL, LOCAL</em>SERIAL</strong></td>
+   </tr>
+   <tr>
+     <td nowrap>Timestamp</td>
+     <td>Any long value</td>
+   </tr>
+   <tr>
+     <td nowrap>Retry Policy</td>
+     <td><strong>DEFAULT, DOWNGRADING<em>CONSISTENCY, FALLTHROUGH, LOGGING</em>DEFAULT, LOGGING<em>DOWNGRADING, LOGGING</em>FALLTHROUGH</strong></td>
+   </tr>
+   <tr>
+     <td nowrap>Fetch Size</td>
+     <td>Any integer value</td>
+   </tr>
+ </table>
+</center></p>
+
+<blockquote>
+<p>Please note that you should <strong>not</strong> add semi-colon ( <strong>;</strong> ) at the end of each parameter statement</p>
+</blockquote>
+
+<p>Some examples:</p>
+<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span></span><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="k">IF</span> <span class="k">NOT</span> <span class="k">EXISTS</span> <span class="n">spark_demo</span><span class="p">.</span><span class="n">ts</span><span class="p">(</span>
+    <span class="k">key</span> <span class="nb">int</span> <span class="k">PRIMARY</span> <span class="k">KEY</span><span class="p">,</span>
+    <span class="n">value</span> <span class="nb">text</span>
+<span class="p">);</span>
+<span class="k">TRUNCATE</span> <span class="n">spark_demo</span><span class="p">.</span><span class="n">ts</span><span class="p">;</span>
+
+<span class="o">//</span> <span class="k">Timestamp</span> <span class="k">in</span> <span class="n">the</span> <span class="n">past</span>
+<span class="o">@</span><span class="k">timestamp</span><span class="o">=</span><span class="mi">10</span>
+
+<span class="o">//</span> <span class="k">Force</span> <span class="k">timestamp</span> <span class="n">directly</span> <span class="k">in</span> <span class="n">the</span> <span class="k">first</span> <span class="k">insert</span>
+<span class="k">INSERT</span> <span class="k">INTO</span> <span class="n">spark_demo</span><span class="p">.</span><span class="n">ts</span><span class="p">(</span><span class="k">key</span><span class="p">,</span><span class="n">value</span><span class="p">)</span> <span class="k">VALUES</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="s1">&#39;first insert&#39;</span><span class="p">)</span> <span class="k">USING</span> <span class="k">TIMESTAMP</span> <span class="mi">100</span><span class="p">;</span>
+
+<span class="o">//</span> <span class="k">Select</span> <span class="k">some</span> <span class="k">data</span> <span class="k">to</span> <span class="n">make</span> <span class="n">the</span> <span class="n">clock</span> <span class="n">turn</span>
+<span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="n">spark_demo</span><span class="p">.</span><span class="n">albums</span> <span class="k">LIMIT</span> <span class="mi">100</span><span class="p">;</span>
+
+<span class="o">//</span> <span class="n">Now</span> <span class="k">insert</span> <span class="k">using</span> <span class="n">the</span> <span class="k">timestamp</span> <span class="k">parameter</span> <span class="k">set</span> <span class="k">at</span> <span class="n">the</span> <span class="n">beginning</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
+<span class="k">INSERT</span> <span class="k">INTO</span> <span class="n">spark_demo</span><span class="p">.</span><span class="n">ts</span><span class="p">(</span><span class="k">key</span><span class="p">,</span><span class="n">value</span><span class="p">)</span> <span class="k">VALUES</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="s1">&#39;second insert&#39;</span><span class="p">);</span>
+
+<span class="o">//</span> <span class="k">Check</span> <span class="k">for</span> <span class="n">the</span> <span class="k">result</span><span class="p">.</span> <span class="n">You</span> <span class="n">should</span> <span class="n">see</span> <span class="s1">&#39;first insert&#39;</span>
+<span class="k">SELECT</span> <span class="n">value</span> <span class="k">FROM</span> <span class="n">spark_demo</span><span class="p">.</span><span class="n">ts</span> <span class="k">WHERE</span> <span class="k">key</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span>
+</code></pre></div>
+<p>Some remarks about query parameters:</p>
+
+<blockquote>
+<ol>
+<li><strong>many</strong> query parameters can be set in the same paragraph</li>
+<li>if the <strong>same</strong> query parameter is set many time with different values, the interpreter only take into account the first value</li>
+<li>each query parameter applies to <strong>all CQL statements</strong> in the same paragraph, unless you override the option using plain CQL text (like forcing timestamp with the <code>USING</code> clause)</li>
+<li>the order of each query parameter with regard to CQL statement does not matter</li>
+</ol>
+</blockquote>
+
+<h2>Support for Prepared Statements</h2>
+
+<p>For performance reason, it is better to prepare statements before-hand and reuse them later by providing bound values.</p>
+
+<p>This interpreter provides 3 commands to handle prepared and bound statements:</p>
+
+<ol>
+<li><strong>@prepare</strong></li>
+<li><strong>@bind</strong></li>
+<li><strong>@remove_prepared</strong></li>
+</ol>
+
+<p>Example:</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>@prepare[statement-name]=...
+
+@bind[statement-name]=’text’, 1223, ’2015-07-30 12:00:01’, null, true, [‘list_item1’, ’list_item2’]
+
+@bind[statement-name-with-no-bound-value]
+
+@remove_prepare[statement-name]
+</code></pre></div>
+<h4>@prepare</h4>
+
+<p>You can use the syntax <em>&quot;@prepare[statement-name]=SELECT...&quot;</em> to create a prepared statement.
+The <em>statement-name</em> is <strong>mandatory</strong> because the interpreter prepares the given statement with the Java driver and
+saves the generated prepared statement in an <strong>internal hash map</strong>, using the provided <em>statement-name</em> as search key.</p>
+
+<blockquote>
+<p>Please note that this internal prepared statement map is shared with <strong>all notebooks</strong> and <strong>all paragraphs</strong> because
+there is only one instance of the interpreter for Cassandra</p>
+
+<p>If the interpreter encounters <strong>many</strong> <code>@prepare</code> for the <strong>same <em>statement-name</em> (key)</strong>, only the <strong>first</strong> statement will be taken into account.</p>
+</blockquote>
+
+<p>Example:</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>@prepare[select]=SELECT * FROM spark_demo.albums LIMIT ?
+
+@prepare[select]=SELECT * FROM spark_demo.artists LIMIT ?
+</code></pre></div>
+<p>For the above example, the prepared statement is <code>SELECT * FROM spark_demo.albums LIMIT ?</code>.
+<code>SELECT * FROM spark_demo.artists LIMIT ?</code> is ignored because an entry already exists in the prepared statements map with the key <em>select</em>.</p>
+
+<p>In the context of <strong>Zeppelin</strong>, a notebook can be scheduled to be executed at regular interval,
+thus it is necessary to <strong>avoid re-preparing many time the same statement (considered an anti-pattern)</strong>.</p>
+
+<h4>@bind</h4>
+
+<p>Once the statement is prepared (possibly in a separated notebook/paragraph). You can bind values to it:</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>@bind[select_first]=10
+</code></pre></div>
+<p>Bound values are not mandatory for the <strong>@bind</strong> statement. However if you provide bound values, they need to comply to some syntax:</p>
+
+<ul>
+<li>String values should be enclosed between simple quotes (<strong>&#39;</strong>)</li>
+<li>Date values should be enclosed between simple quotes (<strong>&#39;</strong>) and respect the formats (full list is in the <a href="https://docs.datastax.com/en/cql/3.3/cql/cql_reference/timestamp_type_r.html">documentation</a>):
+
+<ol>
+<li>yyyy-MM-dd HH:MM:ss</li>
+<li>yyyy-MM-dd HH:MM:ss.SSS</li>
+</ol></li>
+<li><strong>null</strong> is parsed as-is</li>
+<li><strong>boolean</strong> (<code>true</code>|<code>false</code>) are parsed as-is</li>
+<li>collection values must follow the <strong><a href="http://docs.datastax.com/en/cql/3.1/cql/cql_using/use_collections_c.html">standard CQL syntax</a></strong>:
+
+<ul>
+<li>list: [&#39;list<em>item1&#39;, &#39;list</em>item2&#39;, ...]</li>
+<li>set: {&#39;set<em>item1&#39;, &#39;set</em>item2&#39;, …}</li>
+<li>map: {&#39;key1&#39;: &#39;val1&#39;, &#39;key2&#39;: &#39;val2&#39;, …}</li>
+</ul></li>
+<li><strong>tuple</strong> values should be enclosed between parenthesis (see <strong><a href="http://docs.datastax.com/en/cql/3.1/cql/cql_reference/tupleType.html">Tuple CQL syntax</a></strong>): (&#39;text&#39;, 123, true)</li>
+<li><strong>udt</strong> values should be enclosed between brackets (see <strong><a href="http://docs.datastax.com/en/cql/3.1/cql/cql_using/cqlUseUDT.html">UDT CQL syntax</a></strong>): {stree<em>name: &#39;Beverly Hills&#39;, number: 104, zip</em>code: 90020, state: &#39;California&#39;, …}</li>
+</ul>
+
+<blockquote>
+<p>It is possible to use the @bind statement inside a batch:</p>
+<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span></span><span class="k">BEGIN</span> <span class="n">BATCH</span>
+   <span class="o">@</span><span class="n">bind</span><span class="p">[</span><span class="n">insert_user</span><span class="p">]</span><span class="o">=</span><span class="s1">&#39;jdoe&#39;</span><span class="p">,</span><span class="s1">&#39;John DOE&#39;</span>
+   <span class="k">UPDATE</span> <span class="n">users</span> <span class="k">SET</span> <span class="n">age</span> <span class="o">=</span> <span class="mi">27</span> <span class="k">WHERE</span> <span class="n">login</span><span class="o">=</span><span class="s1">&#39;hsue&#39;</span><span class="p">;</span>
+<span class="n">APPLY</span> <span class="n">BATCH</span><span class="p">;</span>
+</code></pre></div></blockquote>
+
+<h4>@remove_prepare</h4>
+
+<p>To avoid for a prepared statement to stay forever in the prepared statement map, you can use the
+<strong>@remove_prepare[statement-name]</strong> syntax to remove it.
+Removing a non-existing prepared statement yields no error.</p>
+
+<h2>Using Dynamic Forms</h2>
+
+<p>Instead of hard-coding your CQL queries, it is possible to use <strong>[Zeppelin dynamic form]</strong> syntax to inject simple value or multiple choices forms.</p>
+
+<p>The legacy mustache syntax ( <strong>{{ }}</strong> ) to bind input text and select form is still supported but is deprecated and will be removed in future releases.</p>
+
+<blockquote>
+<p><strong>Legacy</strong>
+The syntax for simple parameter is: <strong>{{input_Label=default value}}</strong>. The default value is mandatory because the first time the paragraph is executed,
+we launch the CQL query before rendering the form so at least one value should be provided.</p>
+
+<p>The syntax for multiple choices parameter is: <strong>{{input_Label=value1 | value2 | … | valueN }}</strong>. By default the first choice is used for CQL query
+the first time the paragraph is executed.</p>
+</blockquote>
+
+<p>Example:</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>#Secondary index on performer style
+SELECT name, country, performer
+FROM spark_demo.performers
+WHERE name=&#39;${performer=Sheryl Crow|Doof|Fanfarlo|Los Paranoia}&#39;
+AND styles CONTAINS &#39;${style=Rock}&#39;;
+</code></pre></div>
+<p>In the above example, the first CQL query will be executed for <code>performer=&#39;Sheryl Crow&#39; AND style=&#39;Rock&#39;</code>.
+For subsequent queries, you can change the value directly using the form.</p>
+
+<blockquote>
+<p>Please note that we enclosed the <strong>${ }</strong> block between simple quotes ( <strong>&#39;</strong> ) because Cassandra expects a String here.
+We could have also use the <strong>${style=&#39;Rock&#39;}</strong> syntax but this time, the value displayed on the form is <strong><em>&#39;Rock&#39;</em></strong> and not <strong><em>Rock</em></strong>.</p>
+</blockquote>
+
+<p>It is also possible to use dynamic forms for <strong>prepared statements</strong>:</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>@bind[select]==&#39;${performer=Sheryl Crow|Doof|Fanfarlo|Los Paranoia}&#39;, &#39;${style=Rock}&#39;
+</code></pre></div>
+<h2>Shared states</h2>
+
+<p>It is possible to execute many paragraphs in parallel. However, at the back-end side, we&#39;re still using synchronous queries.
+<em>Asynchronous execution</em> is only possible when it is possible to return a <code>Future</code> value in the <code>InterpreterResult</code>.
+It may be an interesting proposal for the <strong>Zeppelin</strong> project.</p>
+
+<p>Recently, <strong>Zeppelin</strong> allows you to choose the level of isolation for your interpreters (see <strong>[Interpreter Binding Mode]</strong> ).</p>
+
+<p>Long story short, you have 3 available bindings:</p>
+
+<ul>
+<li><strong>shared</strong> : <em>same JVM</em> and <em>same Interpreter instance</em> for all notes</li>
+<li><strong>scoped</strong> : <em>same JVM</em> but <em>different Interpreter instances</em>, one for each note</li>
+<li><strong>isolated</strong>: <em>different JVM</em> running a <em>single Interpreter instance</em>, one JVM for each note</li>
+</ul>
+
+<p>Using the <strong>shared</strong> binding, the same <code>com.datastax.driver.core.Session</code> object is used for <strong>all</strong> notes and paragraphs.
+Consequently, if you use the <code>USE keyspace_name;</code> statement to log into a keyspace, it will change the keyspace for
+<strong>all current users</strong> of the <strong>Cassandra</strong> interpreter because we only create 1 <code>com.datastax.driver.core.Session</code> object
+per instance of <strong>Cassandra</strong> interpreter.</p>
+
+<p>The same remark does apply to the <strong>prepared statement hash map</strong>, it is shared by <strong>all users</strong> using the same instance of <strong>Cassandra</strong> interpreter.</p>
+
+<p>When using <strong>scoped</strong> binding, in the <em>same JVM</em> <strong>Zeppelin</strong> will create multiple instances of the Cassandra interpreter, thus 
+multiple <code>com.datastax.driver.core.Session</code> objects. <strong>Beware of resource and memory usage using this binding !</strong> </p>
+
+<p>The <strong>isolated</strong> mode is the most extreme and will create as many JVM/<code>com.datastax.driver.core.Session</code> object as there are distinct notes.</p>
+
+<h2>Interpreter Configuration</h2>
+
+<p>To configure the <strong>Cassandra</strong> interpreter, go to the <strong>Interpreter</strong> menu and scroll down to change the parameters.
+The <strong>Cassandra</strong> interpreter is using the official <strong><a href="https://github.com/datastax/java-driver">Cassandra Java Driver</a></strong> and most of the parameters are used
+to configure the Java driver</p>
+
+<p>Below are the configuration parameters and their default values.</p>
+
+<p><table class="table-configuration">
+   <tr>
+     <th>Property Name</th>
+     <th>Description</th>
+     <th>Default Value</th>
+   </tr>
+   <tr>
+     <td><code>cassandra.cluster</code></td>
+     <td>Name of the Cassandra cluster to connect to</td>
+     <td>Test Cluster</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.compression.protocol</code></td>
+     <td>On wire compression. Possible values are: <code>NONE</code>, <code>SNAPPY</code>, <code>LZ4</code></td>
+     <td><code>NONE</code></td>
+   </tr>
+   <tr>
+     <td><code>cassandra.credentials.username</code></td>
+     <td>If security is enable, provide the login</td>
+     <td>none</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.credentials.password</code></td>
+     <td>If security is enable, provide the password</td>
+     <td>none</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.hosts</code></td>
+     <td>
+        Comma separated Cassandra hosts (DNS name or IP address).
+        <br/>
+        Ex: <code>192.168.0.12,node2,node3</code>
+      </td>
+     <td><code>localhost</code></td>
+   </tr>
+   <tr>
+     <td><code>cassandra.interpreter.parallelism</code></td>
+     <td>Number of concurrent paragraphs(queries block) that can be executed</td>
+     <td>10</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.keyspace</code></td>
+     <td>
+        Default keyspace to connect to.
+        <strong>
+          It is strongly recommended to let the default value
+          and prefix the table name with the actual keyspace
+          in all of your queries
+        </strong>
+     </td>
+     <td><code>system</code></td>
+   </tr>
+   <tr>
+     <td><code>cassandra.load.balancing.policy</code></td>
+     <td>
+        Load balancing policy. Default = <code>new TokenAwarePolicy(new DCAwareRoundRobinPolicy())</code>
+        To Specify your own policy, provide the <em>fully qualify class name (FQCN)</em> of your policy.
+        At runtime the interpreter will instantiate the policy using
+        <strong>Class.forName(FQCN)</strong>
+     </td>
+     <td>DEFAULT</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.max.schema.agreement.wait.second</code></td>
+     <td>Cassandra max schema agreement wait in second</td>
+     <td>10</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.pooling.core.connection.per.host.local</code></td>
+     <td>Protocol V2 and below default = 2. Protocol V3 and above default = 1</td>
+     <td>2</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.pooling.core.connection.per.host.remote</code></td>
+     <td>Protocol V2 and below default = 1. Protocol V3 and above default = 1</td>
+     <td>1</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.pooling.heartbeat.interval.seconds</code></td>
+     <td>Cassandra pool heartbeat interval in secs</td>
+     <td>30</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.pooling.idle.timeout.seconds</code></td>
+     <td>Cassandra idle time out in seconds</td>
+     <td>120</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.pooling.max.connection.per.host.local</code></td>
+     <td>Protocol V2 and below default = 8. Protocol V3 and above default = 1</td>
+     <td>8</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.pooling.max.connection.per.host.remote</code></td>
+     <td>Protocol V2 and below default = 2. Protocol V3 and above default = 1</td>
+     <td>2</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.pooling.max.request.per.connection.local</code></td>
+     <td>Protocol V2 and below default = 128. Protocol V3 and above default = 1024</td>
+     <td>128</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.pooling.max.request.per.connection.remote</code></td>
+     <td>Protocol V2 and below default = 128. Protocol V3 and above default = 256</td>
+     <td>128</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.pooling.new.connection.threshold.local</code></td>
+     <td>Protocol V2 and below default = 100. Protocol V3 and above default = 800</td>
+     <td>100</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.pooling.new.connection.threshold.remote</code></td>
+     <td>Protocol V2 and below default = 100. Protocol V3 and above default = 200</td>
+     <td>100</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.pooling.pool.timeout.millisecs</code></td>
+     <td>Cassandra pool time out in millisecs</td>
+     <td>5000</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.protocol.version</code></td>
+     <td>Cassandra binary protocol version</td>
+     <td>4</td>
+   </tr>
+   <tr>
+     <td>cassandra.query.default.consistency</td>
+     <td>
+      Cassandra query default consistency level
+      <br/>
+      Available values: <code>ONE</code>, <code>TWO</code>, <code>THREE</code>, <code>QUORUM</code>, <code>LOCAL_ONE</code>, <code>LOCAL_QUORUM</code>, <code>EACH_QUORUM</code>, <code>ALL</code>
+     </td>
+     <td><code>ONE</code></td>
+   </tr>
+   <tr>
+     <td><code>cassandra.query.default.fetchSize</code></td>
+     <td>Cassandra query default fetch size</td>
+     <td>5000</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.query.default.serial.consistency</code></td>
+     <td>
+      Cassandra query default serial consistency level
+      <br/>
+      Available values: <code>SERIAL</code>, <code>LOCAL_SERIAL</code>
+     </td>
+     <td><code>SERIAL</code></td>
+   </tr>
+   <tr>
+     <td><code>cassandra.reconnection.policy</code></td>
+     <td>
+        Cassandra Reconnection Policy.
+        Default = <code>new ExponentialReconnectionPolicy(1000, 10 * 60 * 1000)</code>
+        To Specify your own policy, provide the <em>fully qualify class name (FQCN)</em> of your policy.
+        At runtime the interpreter will instantiate the policy using
+        <strong>Class.forName(FQCN)</strong>
+     </td>
+     <td>DEFAULT</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.retry.policy</code></td>
+     <td>
+        Cassandra Retry Policy.
+        Default = <code>DefaultRetryPolicy.INSTANCE</code>
+        To Specify your own policy, provide the <em>fully qualify class name (FQCN)</em> of your policy.
+        At runtime the interpreter will instantiate the policy using
+        <strong>Class.forName(FQCN)</strong>
+     </td>
+     <td>DEFAULT</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.socket.connection.timeout.millisecs</code></td>
+     <td>Cassandra socket default connection timeout in millisecs</td>
+     <td>500</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.socket.read.timeout.millisecs</code></td>
+     <td>Cassandra socket read timeout in millisecs</td>
+     <td>12000</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.socket.tcp.no_delay</code></td>
+     <td>Cassandra socket TCP no delay</td>
+     <td>true</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.speculative.execution.policy</code></td>
+     <td>
+        Cassandra Speculative Execution Policy.
+        Default = <code>NoSpeculativeExecutionPolicy.INSTANCE</code>
+        To Specify your own policy, provide the <em>fully qualify class name (FQCN)</em> of your policy.
+        At runtime the interpreter will instantiate the policy using
+        <strong>Class.forName(FQCN)</strong>
+     </td>
+     <td>DEFAULT</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.ssl.enabled</code></td>
+     <td>
+        Enable support for connecting to the Cassandra configured with SSL.
+        To connect to Cassandra configured with SSL use <strong>true</strong>
+        and provide a truststore file and password with following options.
+     </td>
+     <td>false</td>
+   </tr>
+   <tr>
+     <td><code>cassandra.ssl.truststore.path</code></td>
+     <td>
+        Filepath for the truststore file to use for connection to Cassandra with SSL.
+     </td>
+     <td></td>
+   </tr>
+   <tr>
+     <td><code>cassandra.ssl.truststore.password</code></td>
+     <td>
+        Password for the truststore file to use for connection to Cassandra with SSL.
+     </td>
+     <td></td>
+   </tr>
+ </table></p>
+
+<h2>Change Log</h2>
+
+<p><strong>3.0</strong> <em>(Zeppelin 0.8.0)</em> :</p>
+
+<ul>
+<li>Update documentation</li>
+<li>Update interactive documentation</li>
+<li>Add support for binary protocol <strong>V4</strong></li>
+<li>Implement new <code>@requestTimeOut</code> runtime option</li>
+<li>Upgrade Java driver version to <strong>3.0.1</strong></li>
+<li>Allow interpreter to add dynamic forms programmatically when using FormType.SIMPLE</li>
+<li>Allow dynamic form using default Zeppelin syntax</li>
+<li>Fixing typo on FallThroughPolicy</li>
+<li>Look for data in AngularObjectRegistry before creating dynamic form</li>
+<li>Add missing support for <code>ALTER</code> statements</li>
+</ul>
+
+<p><strong>2.0</strong> <em>(Zeppelin 0.8.0)</em> :</p>
+
+<ul>
+<li>Update help menu and add changelog</li>
+<li>Add Support for <strong>User Defined Functions</strong>, <strong>User Defined Aggregates</strong> and <strong>Materialized Views</strong></li>
+<li>Upgrade Java driver version to <strong>3.0.0-rc1</strong></li>
+</ul>
+
+<p><strong>1.0</strong> <em>(Zeppelin 0.5.5-incubating)</em> :</p>
+
+<ul>
+<li>Initial version</li>
+</ul>
+
+<h2>Bugs &amp; Contacts</h2>
+
+<p>If you encounter a bug for this interpreter, please create a <strong><a href="https://issues.apache.org/jira/browse/ZEPPELIN-382?jql=project%20%3D%20ZEPPELIN">JIRA</a></strong> ticket and ping me on Twitter
+ at <strong><a href="https://twitter.com/doanduyhai">@doanduyhai</a></strong></p>
+
+<p><a href="../usage/dynamic_form/intro.html">Zeppelin Dynamic Form</a>
+<a href="../usage/interpreter/interpreter_binding_mode.html">Interpreter Binding Mode</a></p>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2019 The Apache Software Foundation</p>-->
+      </footer>
+    </div>
+
+    
+
+
+  <script type="text/javascript">
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-45176241-5', 'zeppelin.apache.org');
+  ga('require', 'linkid', 'linkid.js');
+  ga('send', 'pageview');
+
+</script>
+
+
+
+  </body>
+</html>
+

Propchange: zeppelin/site/docs/0.8.2/interpreter/cassandra.html
------------------------------------------------------------------------------
    svn:executable = *