diff --git a/docs/_config.yml b/docs/_config.yml index 8a875510a27..14aca6eed9d 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -21,6 +21,8 @@ author : twitter : ASF feedburner : feedname +ZEPPELIN_VERSION : 0.6.0-incubating-SNAPSHOT + # The production_url is only used when full-domain names are needed # such as sitemap.txt # Most places will/should use BASE_PATH to make the urls diff --git a/docs/interpreter/cassandra.md b/docs/interpreter/cassandra.md index 3cec02d18e3..7a0837bf1ce 100644 --- a/docs/interpreter/cassandra.md +++ b/docs/interpreter/cassandra.md @@ -7,6 +7,7 @@ group: manual {% include JB/setup %} ## Cassandra CQL Interpreter for Apache Zeppelin + @@ -21,26 +22,29 @@ group: manual
Name
## Enabling Cassandra Interpreter -In a notebook, to enable the **Cassandra** interpreter, click on the **Gear** icon and select **Cassandra**. - -
- -
- -
+ +In a notebook, to enable the **Cassandra** interpreter, click on the **Gear** icon and select **Cassandra** + +
+ ![Interpreter Binding](../assets/themes/zeppelin/img/docs-img/cassandra-InterpreterBinding.png) + + ![Interpreter Selection](../assets/themes/zeppelin/img/docs-img/cassandra-InterpreterSelection.png) +
## Using the Cassandra Interpreter + In a paragraph, use **_%cassandra_** to select the **Cassandra** interpreter and then input all commands. - -To access the interactive help, type `HELP;` - -
- -
+ +To access the interactive help, type **HELP;** + +
+ ![Interactive Help](../assets/themes/zeppelin/img/docs-img/cassandra-InteractiveHelp.png) +
## Interpreter Commands -The **Cassandra** interpreter accepts the following commands. - + +The **Cassandra** interpreter accepts the following commands +
@@ -77,7 +81,8 @@ The **Cassandra** interpreter accepts the following commands. ## CQL statements -This interpreter is compatible with any CQL statement supported by Cassandra. Ex: + +This interpreter is compatible with any CQL statement supported by Cassandra. Ex: ```sql @@ -95,8 +100,8 @@ Each statement should be separated by a semi-colon ( **;** ) except the special 6. @timestamp 7. @retryPolicy 8. @fetchSize - -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: + +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: ```sql @@ -109,7 +114,7 @@ FROM artists WHERE login='jlennon'; ``` -Batch statements are supported and can span multiple lines, as well as DDL(CREATE/ALTER/DROP) statements: +Batch statements are supported and can span multiple lines, as well as DDL(CREATE/ALTER/DROP) statements: ```sql @@ -124,8 +129,7 @@ CREATE TABLE IF NOT EXISTS test( ); ``` -CQL statements are case-insensitive (except for column names and values). -This means that the following statements are equivalent and valid: +CQL statements are case-insensitive (except for column names and values). This means that the following statements are equivalent and valid: ```sql @@ -135,48 +139,53 @@ Insert into users(login,name) vAlues('hsue','Helen SUE'); The complete list of all CQL statements and versions can be found below: -
- - - - - - - - - - - - - - - - -
Cassandra VersionDocumentation Link
2.2 - - http://docs.datastax.com/en/cql/3.3/cql/cqlIntro.html - -
2.1 & 2.0 - - http://docs.datastax.com/en/cql/3.1/cql/cql_intro_c.html - -
1.2 - - http://docs.datastax.com/en/cql/3.0/cql/aboutCQL.html - -
+
+ + + + + + + + + + + + + + + + + +
Cassandra VersionDocumentation Link
2.2 + + http://docs.datastax.com/en/cql/3.3/cql/cqlIntro.html + +
2.1 & 2.0 + + http://docs.datastax.com/en/cql/3.1/cql/cql_intro_c.html + +
1.2 + + http://docs.datastax.com/en/cql/3.0/cql/aboutCQL.html + +
+
## Comments in statements -It is possible to add comments between statements. Single line comments start with the hash sign (#). Multi-line comments are enclosed between /** and **/. Ex: + +It is possible to add comments between statements. Single line comments start with the **hash sign** (#) or **double slashes** (//). Multi-line comments are enclosed between /** and **/. Ex: ```sql -#First comment +#Single line comment style 1 INSERT INTO users(login,name) VALUES('jdoe','John DOE'); +//Single line comment style 2 + /** Multi line comments @@ -185,72 +194,94 @@ Insert into users(login,name) vAlues('hsue','Helen SUE'); ``` ## Syntax Validation + The interpreters is shipped with a built-in syntax validator. This validator only checks for basic syntax errors. -All CQL-related syntax validation is delegated directly to **Cassandra**. + +All CQL-related syntax validation is delegated directly to **Cassandra** Most of the time, syntax errors are due to **missing semi-colons** between statements or **typo errors**. ## Schema commands + To make schema discovery easier and more interactive, the following commands are supported: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
DESCRIBE CLUSTER;Show the current cluster name and its partitioner
DESCRIBE KEYSPACES;List all existing keyspaces in the cluster and their configuration (replication factor, durable write ...)
DESCRIBE TABLES;List all existing keyspaces in the cluster and for each, all the tables name
DESCRIBE TYPES;List all existing user defined types in the current (logged) keyspace
DESCRIBE FUNCTIONS <keyspace_name>;List all existing user defined functions in the given keyspace
DESCRIBE AGGREGATES <keyspace_name>;List all existing user defined aggregates in the given keyspace
DESCRIBE KEYSPACE <keyspace_name>;Describe the given keyspace configuration and all its table details (name, columns, ...)
DESCRIBE TABLE (<keyspace_name>).<table_name>; - 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. -
DESCRIBE TYPE (<keyspace_name>).<type_name>; - 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. -
DESCRIBE FUNCTION (<keyspace_name>).<function_name>;Describe the given user defined function. The keyspace is optional.
DESCRIBE AGGREGATE (<keyspace_name>).<aggregate_name>;Describe the given user defined aggregate. The keyspace is optional.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandDescription
DESCRIBE CLUSTER;Show the current cluster name and its partitioner
DESCRIBE KEYSPACES;List all existing keyspaces in the cluster and their configuration (replication factor, durable write ...)
DESCRIBE TABLES;List all existing keyspaces in the cluster and for each, all the tables name
DESCRIBE TYPES;List all existing keyspaces in the cluster and for each, all the user-defined types name
DESCRIBE FUNCTIONS;List all existing keyspaces in the cluster and for each, all the functions name
DESCRIBE AGGREGATES;List all existing keyspaces in the cluster and for each, all the aggregates name
DESCRIBE MATERIALIZED VIEWS;List all existing keyspaces in the cluster and for each, all the materialized views name
DESCRIBE KEYSPACE <keyspace_name>;Describe the given keyspace configuration and all its table details (name, columns, ...)
DESCRIBE TABLE (<keyspace_name>).<table_name>; + 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 +
DESCRIBE TYPE (<keyspace_name>).<type_name>; + 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 +
DESCRIBE FUNCTION (<keyspace_name>).<function_name>;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 +
DESCRIBE AGGREGATE (<keyspace_name>).<aggregate_name>;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 +
DESCRIBE MATERIALIZED VIEW (<keyspace_name>).<view_name>;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 +
+
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. @@ -262,79 +293,86 @@ There is a drop-down menu on the top left corner to expand objects details. On t ## Runtime Parameters Sometimes you want to be able to pass runtime query parameters to your statements. + Those parameters are not part of the CQL specs and are specific to the interpreter. -Below is the list of all parameters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterSyntaxDescription
Consistency Level@consistency=valueApply the given consistency level to all queries in the paragraph.
Serial Consistency Level@serialConsistency=valueApply the given serial consistency level to all queries in the paragraph.
Timestamp@timestamp=long value - Apply the given timestamp to all queries in the paragraph. - Please note that timestamp value passed directly in CQL statement will override this value. -
Retry Policy@retryPolicy=valueApply the given retry policy to all queries in the paragraph.
Fetch Size@fetchSize=integer valueApply the given fetch size to all queries in the paragraph.
+Below is the list of all parameters: -Some parameters only accept restricted values: +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSyntaxDescription
Consistency Level@consistency=valueApply the given consistency level to all queries in the paragraph
Serial Consistency Level@serialConsistency=valueApply the given serial consistency level to all queries in the paragraph
Timestamp@timestamp=long value + Apply the given timestamp to all queries in the paragraph. + Please note that timestamp value passed directly in CQL statement will override this value +
Retry Policy@retryPolicy=valueApply the given retry policy to all queries in the paragraph
Fetch Size@fetchSize=integer valueApply the given fetch size to all queries in the paragraph
+
- - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterPossible Values
Consistency LevelALL, ANY, ONE, TWO, THREE, QUORUM, LOCAL\_ONE, LOCAL\_QUORUM, EACH\_QUORUM
Serial Consistency LevelSERIAL, LOCAL\_SERIAL
TimestampAny long value
Retry PolicyDEFAULT, DOWNGRADING\_CONSISTENCY, FALLTHROUGH, LOGGING\_DEFAULT, LOGGING\_DOWNGRADING, LOGGING\_FALLTHROUGH
Fetch SizeAny integer value
+Some parameters only accept restricted values: ->Please note that you should **not** add semi-colon ( **;** ) at the end of each parameter statement. +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterPossible Values
Consistency LevelALL, ANY, ONE, TWO, THREE, QUORUM, LOCAL_ONE, LOCAL_QUORUM, EACH_QUORUM
Serial Consistency LevelSERIAL, LOCAL_SERIAL
TimestampAny long value
Retry PolicyDEFAULT, DOWNGRADING_CONSISTENCY, FALLTHROUGH, LOGGING_DEFAULT, LOGGING_DOWNGRADING, LOGGING_FALLTHROUGH
Fetch SizeAny integer value
+
+ +>Please note that you should **not** add semi-colon ( **;** ) at the end of each parameter statement -Some examples: +Some examples: ```sql + CREATE TABLE IF NOT EXISTS spark_demo.ts( key int PRIMARY KEY, value text @@ -359,20 +397,22 @@ SELECT value FROM spark_demo.ts WHERE key=1; Some remarks about query parameters: -> 1. **Many** query parameters can be set in the same paragraph. -> 2. If the **same** query parameter is set many time with different values, the interpreter only take into account the first value. -> 3. Each query parameter applies to **all CQL statements** in the same paragraph, unless you override the option using plain CQL text. ( Like forcing timestamp with the USING clause ) -> 4. The order of each query parameter with regard to CQL statement does not matter. +> 1. **many** query parameters can be set in the same paragraph +> 2. if the **same** query parameter is set many time with different values, the interpreter only take into account the first value +> 3. each query parameter applies to **all CQL statements** in the same paragraph, unless you override the option using plain CQL text (like forcing timestamp with the USING clause) +> 4. the order of each query parameter with regard to CQL statement does not matter ## Support for Prepared Statements + For performance reason, it is better to prepare statements before-hand and reuse them later by providing bound values. -This interpreter provides 3 commands to handle prepared and bound statements: + +This interpreter provides 3 commands to handle prepared and bound statements: 1. **@prepare** 2. **@bind** 3. **@remove_prepared** -Example: +Example: ``` @prepare[statement_name]=... @@ -385,14 +425,17 @@ Example: ``` #### @prepare -You can use the syntax `@prepare[statement_name]=SELECT ...` to create a prepared statement. -The `statement_name` is **mandatory** because the interpreter prepares the given statement with the Java driver and saves the generated prepared statement in an **internal hash map**, using the provided `statement_name` as search key. -> Please note that this internal prepared statement map is shared with **all notebooks** and **all paragraphs** because there is only one instance of the interpreter for Cassandra. +You can use the syntax _"@prepare[statement_name]=SELECT ..."_ to create a prepared statement. +The _statement_name_ is **mandatory** because the interpreter prepares the given statement with the Java driver and +saves the generated prepared statement in an **internal hash map**, using the provided _statement_name_ as search key. + +> Please note that this internal prepared statement map is shared with **all notebooks** and **all paragraphs** because +there is only one instance of the interpreter for Cassandra -> If the interpreter encounters **many** @prepare for the **same statement_name (key)**, only the **first** statement will be taken into account. +> If the interpreter encounters **many** @prepare for the **same _statement_name_ (key)**, only the **first** statement will be taken into account. -Example: +Example: ``` @prepare[select]=SELECT * FROM spark_demo.albums LIMIT ? @@ -400,54 +443,60 @@ Example: @prepare[select]=SELECT * FROM spark_demo.artists LIMIT ? ``` -For the above example, the prepared statement is `SELECT * FROM spark_demo.albums LIMIT ?`. -`SELECT * FROM spark_demo.artists LIMIT ?` is ignored because an entry already exists in the prepared statements map with the key select. +For the above example, the prepared statement is _SELECT * FROM spark_demo.albums LIMIT ?_. +_SELECT * FROM spark_demo.artists LIMIT ?_ is ignored because an entry already exists in the prepared statements map with the key select. -In the context of **Zeppelin**, a notebook can be scheduled to be executed at regular interval, thus it is necessary to **avoid re-preparing many time the same statement (considered an anti-pattern)**. +In the context of **Zeppelin**, a notebook can be scheduled to be executed at regular interval, +thus it is necessary to **avoid re-preparing many time the same statement (considered an anti-pattern)**. #### @bind -Once the statement is prepared ( possibly in a separated notebook/paragraph ). You can bind values to it: +Once the statement is prepared (possibly in a separated notebook/paragraph). You can bind values to it: ``` @bind[select_first]=10 ``` -Bound values are not mandatory for the `@bind` statement. However if you provide bound values, they need to comply to some syntax: +Bound values are not mandatory for the **@bind** statement. However if you provide bound values, they need to comply to some syntax: * String values should be enclosed between simple quotes ( ‘ ) * Date values should be enclosed between simple quotes ( ‘ ) and respect the formats: 1. yyyy-MM-dd HH:MM:ss 2. yyyy-MM-dd HH:MM:ss.SSS -* **null** is parsed as-is. -* **boolean** (true|false) is parsed as-is. +* **null** is parsed as-is +* **boolean** (true|false) are parsed as-is * collection values must follow the **[standard CQL syntax]**: * list: [‘list_item1’, ’list_item2’, ...] * set: {‘set_item1’, ‘set_item2’, …} * map: {‘key1’: ‘val1’, ‘key2’: ‘val2’, …} -* **tuple** values should be enclosed between parenthesis ( see **[Tuple CQL syntax]** ): (‘text’, 123, true) -* **udt** values should be enclosed between brackets ( see **[UDT CQL syntax]** ): {stree_name: ‘Beverly Hills’, number: 104, zip_code: 90020, state: ‘California’, …} +* **tuple** values should be enclosed between parenthesis (see **[Tuple CQL syntax]**): (‘text’, 123, true) +* **udt** values should be enclosed between brackets (see **[UDT CQL syntax]**): {stree_name: ‘Beverly Hills’, number: 104, zip_code: 90020, state: ‘California’, …} > It is possible to use the @bind statement inside a batch: -> -> ```sql -> BEGIN BATCH -> @bind[insert_user]='jdoe','John DOE' -> UPDATE users SET age = 27 WHERE login='hsue'; -> APPLY BATCH; +> +> ```sql +>BEGIN BATCH +> @bind[insert_user]='jdoe','John DOE' +> UPDATE users SET age = 27 WHERE login='hsue'; +>APPLY BATCH; > ``` #### @remove_prepare -To avoid for a prepared statement to stay forever in the prepared statement map, you can use the `@remove_prepare[statement_name]` syntax to remove it. + +To avoid for a prepared statement to stay forever in the prepared statement map, you can use the +**@remove_prepare[statement_name]** syntax to remove it. Removing a non-existing prepared statement yields no error. ## Using Dynamic Forms + Instead of hard-coding your CQL queries, it is possible to use the mustache syntax ( **\{\{ \}\}** ) to inject simple value or multiple choices forms. -The syntax for simple parameter is: **\{\{input_Label=default value\}\}**. 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. +The syntax for simple parameter is: **\{\{input_Label=default value\}\}**. 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. -The syntax for multiple choices parameter is: **\{\{input_Label=value1 | value2 | … | valueN \}\}**. By default the first choice is used for CQL query the first time the paragraph is executed. +The syntax for multiple choices parameter is: **\{\{input_Label=value1 | value2 | … | valueN \}\}**. By default the first choice is used for CQL query +the first time the paragraph is executed. -Example: +Example: {% raw %} #Secondary index on performer style @@ -457,267 +506,284 @@ Example: AND styles CONTAINS '{{style=Rock}}'; {% endraw %} + In the above example, the first CQL query will be executed for _performer='Sheryl Crow' AND style='Rock'_. For subsequent queries, you can change the value directly using the form. > Please note that we enclosed the **\{\{ \}\}** block between simple quotes ( **'** ) because Cassandra expects a String here. > We could have also use the **\{\{style='Rock'\}\}** syntax but this time, the value displayed on the form is **_'Rock'_** and not **_Rock_**. -It is also possible to use dynamic forms for **prepared statements**: +It is also possible to use dynamic forms for **prepared statements**: {% raw %} @bind[select]=='{{performer=Sheryl Crow|Doof|Fanfarlo|Los Paranoia}}', '{{style=Rock}}' - + {% endraw %} -## Execution parallelism and shared states +## Shared states + It is possible to execute many paragraphs in parallel. However, at the back-end side, we’re still using synchronous queries. _Asynchronous execution_ is only possible when it is possible to return a `Future` value in the `InterpreterResult`. It may be an interesting proposal for the **Zeppelin** project. Another caveat is that the same `com.datastax.driver.core.Session` object is used for **all** notebooks and paragraphs. -Consequently, if you use the **USE _keyspace name_;** statement to log into a keyspace, it will change the keyspace for **all current users** of the **Cassandra** interpreter because we only create 1 `com.datastax.driver.core.Session` object per instance of **Cassandra** interpreter. +Consequently, if you use the **USE _keyspace name_;** statement to log into a keyspace, it will change the keyspace for +**all current users** of the **Cassandra** interpreter because we only create 1 `com.datastax.driver.core.Session` object +per instance of **Cassandra** interpreter. The same remark does apply to the **prepared statement hash map**, it is shared by **all users** using the same instance of **Cassandra** interpreter. -Until **Zeppelin** offers a real multi-users separation, there is a work-around to segregate user environment and states: -create different **Cassandra** interpreter instances. -For this, first go to the **Interpreter** menu and click on the **Create** button. +Until **Zeppelin** offers a real multi-users separation, there is a work-around to segregate user environment and states: +_create different **Cassandra** interpreter instances_ +For this, first go to the **Interpreter** menu and click on the **Create** button
![Create Interpreter](../assets/themes/zeppelin/img/docs-img/cassandra-NewInterpreterInstance.png)
- -In the interpreter creation form, put **cass-instance2** as **Name** and select the **cassandra** in the interpreter drop-down list +In the interpreter creation form, put **cass-instance2** as **Name** and select the **cassandra** +in the interpreter drop-down list
![Interpreter Name](../assets/themes/zeppelin/img/docs-img/cassandra-InterpreterName.png)
-Click on **Save** to create the new interpreter instance. Now you should be able to see it in the interpreter list. - + Click on **Save** to create the new interpreter instance. Now you should be able to see it in the interpreter list.
![Interpreter In List](../assets/themes/zeppelin/img/docs-img/cassandra-NewInterpreterInList.png)
Go back to your notebook and click on the **Gear** icon to configure interpreter bindings. -You should be able to see and select the **cass-instance2** interpreter instance in the available interpreter list instead of the standard **cassandra** instance. +You should be able to see and select the **cass-instance2** interpreter instance in the available +interpreter list instead of the standard **cassandra** instance.
![Interpreter Instance Selection](../assets/themes/zeppelin/img/docs-img/cassandra-InterpreterInstanceSelection.png) -
+
## Interpreter Configuration + To configure the **Cassandra** interpreter, go to the **Interpreter** menu and scroll down to change the parameters. -The **Cassandra** interpreter is using the official **[Cassandra Java Driver]** and most of the parameters are used to configure the Java driver +The **Cassandra** interpreter is using the official **[Cassandra Java Driver]** and most of the parameters are used +to configure the Java driver Below are the configuration parameters and their default value. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Property NameDescriptionDefault Value
cassandra.clusterName of the Cassandra cluster to connect toTest Cluster
cassandra.compression.protocolOn wire compression. Possible values are: NONE, SNAPPY, LZ4NONE
cassandra.credentials.usernameIf security is enable, provide the loginnone
cassandra.credentials.passwordIf security is enable, provide the passwordnone
cassandra.hosts - Comma separated Cassandra hosts (DNS name or IP address). -
- Ex: '192.168.0.12,node2,node3' -
localhost
cassandra.interpreter.parallelismNumber of concurrent paragraphs(queries block) that can be executed10
cassandra.keyspace - Default keyspace to connect to. - - It is strongly recommended to let the default value - and prefix the table name with the actual keyspace - in all of your queries. - - system
cassandra.load.balancing.policy - Load balancing policy. Default = new TokenAwarePolicy(new DCAwareRoundRobinPolicy()) - To Specify your own policy, provide the fully qualify class name (FQCN) of your policy. - At runtime the interpreter will instantiate the policy using - Class.forName(FQCN). - DEFAULT
cassandra.max.schema.agreement.wait.secondCassandra max schema agreement wait in second10
cassandra.pooling.core.connection.per.host.localProtocol V2 and below default = 2. Protocol V3 and above default = 12
cassandra.pooling.core.connection.per.host.remoteProtocol V2 and below default = 1. Protocol V3 and above default = 11
cassandra.pooling.heartbeat.interval.secondsCassandra pool heartbeat interval in secs30
cassandra.pooling.idle.timeout.secondsCassandra idle time out in seconds120
cassandra.pooling.max.connection.per.host.localProtocol V2 and below default = 8. Protocol V3 and above default = 18
cassandra.pooling.max.connection.per.host.remoteProtocol V2 and below default = 2. Protocol V3 and above default = 12
cassandra.pooling.max.request.per.connection.localProtocol V2 and below default = 128. Protocol V3 and above default = 1024128
cassandra.pooling.max.request.per.connection.remoteProtocol V2 and below default = 128. Protocol V3 and above default = 256128
cassandra.pooling.new.connection.threshold.localProtocol V2 and below default = 100. Protocol V3 and above default = 800100
cassandra.pooling.new.connection.threshold.remoteProtocol V2 and below default = 100. Protocol V3 and above default = 200100
cassandra.pooling.pool.timeout.millisecsCassandra pool time out in millisecs5000
cassandra.protocol.versionCassandra binary protocol version3
cassandra.query.default.consistency - Cassandra query default consistency level -
- Available values: ONE, TWO, THREE, QUORUM, LOCAL\_ONE, LOCAL\_QUORUM, EACH\_QUORUM, ALL -
ONE
cassandra.query.default.fetchSizeCassandra query default fetch size5000
cassandra.query.default.serial.consistency - Cassandra query default serial consistency level -
- Available values: SERIAL, LOCAL_SERIAL -
SERIAL
cassandra.reconnection.policy - Cassandra Reconnection Policy. - Default = new ExponentialReconnectionPolicy(1000, 10 * 60 * 1000) - To Specify your own policy, provide the fully qualify class name (FQCN) of your policy. - At runtime the interpreter will instantiate the policy using - Class.forName(FQCN). - DEFAULT
cassandra.retry.policy - Cassandra Retry Policy. - Default = DefaultRetryPolicy.INSTANCE - To Specify your own policy, provide the fully qualify class name (FQCN) of your policy. - At runtime the interpreter will instantiate the policy using - Class.forName(FQCN). - DEFAULT
cassandra.socket.connection.timeout.millisecsCassandra socket default connection timeout in millisecs500
cassandra.socket.read.timeout.millisecsCassandra socket read timeout in millisecs12000
cassandra.socket.tcp.no_delayCassandra socket TCP no delaytrue
cassandra.speculative.execution.policy - Cassandra Speculative Execution Policy. - Default = NoSpeculativeExecutionPolicy.INSTANCE - To Specify your own policy, provide the fully qualify class name (FQCN) of your policy. - At runtime the interpreter will instantiate the policy using - Class.forName(FQCN). - DEFAULT
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionDefault Value
cassandra.clusterName of the Cassandra cluster to connect toTest Cluster
cassandra.compression.protocolOn wire compression. Possible values are: NONE, SNAPPY, LZ4NONE
cassandra.credentials.usernameIf security is enable, provide the loginnone
cassandra.credentials.passwordIf security is enable, provide the passwordnone
cassandra.hosts + Comma separated Cassandra hosts (DNS name or IP address). +
+ Ex: '192.168.0.12,node2,node3' +
localhost
cassandra.interpreter.parallelismNumber of concurrent paragraphs(queries block) that can be executed10
cassandra.keyspace + Default keyspace to connect to. + + It is strongly recommended to let the default value + and prefix the table name with the actual keyspace + in all of your queries + + system
cassandra.load.balancing.policy + Load balancing policy. Default = new TokenAwarePolicy(new DCAwareRoundRobinPolicy()) + To Specify your own policy, provide the fully qualify class name (FQCN) of your policy. + At runtime the interpreter will instantiate the policy using + Class.forName(FQCN) + DEFAULT
cassandra.max.schema.agreement.wait.secondCassandra max schema agreement wait in second10
cassandra.pooling.core.connection.per.host.localProtocol V2 and below default = 2. Protocol V3 and above default = 12
cassandra.pooling.core.connection.per.host.remoteProtocol V2 and below default = 1. Protocol V3 and above default = 11
cassandra.pooling.heartbeat.interval.secondsCassandra pool heartbeat interval in secs30
cassandra.pooling.idle.timeout.secondsCassandra idle time out in seconds120
cassandra.pooling.max.connection.per.host.localProtocol V2 and below default = 8. Protocol V3 and above default = 18
cassandra.pooling.max.connection.per.host.remoteProtocol V2 and below default = 2. Protocol V3 and above default = 12
cassandra.pooling.max.request.per.connection.localProtocol V2 and below default = 128. Protocol V3 and above default = 1024128
cassandra.pooling.max.request.per.connection.remoteProtocol V2 and below default = 128. Protocol V3 and above default = 256128
cassandra.pooling.new.connection.threshold.localProtocol V2 and below default = 100. Protocol V3 and above default = 800100
cassandra.pooling.new.connection.threshold.remoteProtocol V2 and below default = 100. Protocol V3 and above default = 200100
cassandra.pooling.pool.timeout.millisecsCassandra pool time out in millisecs5000
cassandra.protocol.versionCassandra binary protocol version3
cassandra.query.default.consistency + Cassandra query default consistency level +
+ Available values: ONE, TWO, THREE, QUORUM, LOCAL_ONE, LOCAL_QUORUM, EACH_QUORUM, ALL +
ONE
cassandra.query.default.fetchSizeCassandra query default fetch size5000
cassandra.query.default.serial.consistency + Cassandra query default serial consistency level +
+ Available values: SERIAL, LOCAL_SERIAL +
SERIAL
cassandra.reconnection.policy + Cassandra Reconnection Policy. + Default = new ExponentialReconnectionPolicy(1000, 10 * 60 * 1000) + To Specify your own policy, provide the fully qualify class name (FQCN) of your policy. + At runtime the interpreter will instantiate the policy using + Class.forName(FQCN) + DEFAULT
cassandra.retry.policy + Cassandra Retry Policy. + Default = DefaultRetryPolicy.INSTANCE + To Specify your own policy, provide the fully qualify class name (FQCN) of your policy. + At runtime the interpreter will instantiate the policy using + Class.forName(FQCN) + DEFAULT
cassandra.socket.connection.timeout.millisecsCassandra socket default connection timeout in millisecs500
cassandra.socket.read.timeout.millisecsCassandra socket read timeout in millisecs12000
cassandra.socket.tcp.no_delayCassandra socket TCP no delaytrue
cassandra.speculative.execution.policy + Cassandra Speculative Execution Policy. + Default = NoSpeculativeExecutionPolicy.INSTANCE + To Specify your own policy, provide the fully qualify class name (FQCN) of your policy. + At runtime the interpreter will instantiate the policy using + Class.forName(FQCN) + DEFAULT
+ +## Change Log + +**2.0** _(Zeppelin {{ site.ZEPPELIN_VERSION }})_ : +* Update help menu and add changelog +* Add Support for **User Defined Functions**, **User Defined Aggregates** and **Materialized Views** +* Upgrade Java driver version to **3.0.0-rc1** + +**1.0** _(Zeppelin 0.5.5-incubating)_ : +* Initial version ## Bugs & Contacts If you encounter a bug for this interpreter, please create a **[JIRA]** ticket and ping me on Twitter - at **[@doanduyhai]**. + at **[@doanduyhai]** + [Cassandra Java Driver]: https://github.com/datastax/java-driver [standard CQL syntax]: http://docs.datastax.com/en/cql/3.1/cql/cql_using/use_collections_c.html