# Cassandra CQL 解釋器
原文鏈接 : [http://zeppelin.apache.org/docs/0.7.2/interpreter/cassandra.html](http://zeppelin.apache.org/docs/0.7.2/interpreter/cassandra.html)
譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10030777](http://www.apache.wiki/pages/viewpage.action?pageId=10030777)
貢獻者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文網](/display/~apachechina)
| Name | Class | Description |
| --- | --- | --- |
| %cassandra | CassandraInterpreter | 為Apache Cassandra CQL查詢語言提供解釋器 |
## 啟用Cassandra解釋器
在筆記本中,要啟用**Cassandra**解釋器,請單擊**Gear**圖標并選擇**Cassandra。**

## 使用Cassandra解釋器
在段落中,使用**_%cassandra_**來選擇**Cassandra**解釋器,然后輸入所有命令。
要訪問交互式幫助,請鍵入**HELP;**

## 解釋器命令
所述Cassandra解釋器接受下列命令
| Command Type | Command Name | Description |
| --- | --- | --- |
| Help command | HELP | 顯示交互式幫助菜單 |
| Schema commands | DESCRIBE KEYSPACE, DESCRIBE CLUSTER, DESCRIBE TABLES ... | 描述Cassandra模式的自定義命令 |
| Option commands | @consistency, @retryPolicy, @fetchSize ... | 將運行時選項注入段落中的所有語句 |
| Prepared statement commands | @prepare, @bind, @remove_prepared | 讓您注冊一個準備好的命令,并通過注入綁定值重新使用它 |
| Native CQL statements | All CQL-compatible statements (SELECT, INSERT, CREATE ...) | 所有CQL語句都直接針對Cassandra服務器執行 |
## CQL語句
該解釋器與Cassandra支持的任何CQL語句兼容。例如:
```
INSERT INTO users(login,name) VALUES('jdoe','John DOE');
SELECT * FROM users WHERE login='jdoe';?
```
除了以下特殊命令之外,每個語句都應以分號(**;**)分隔:
1. @準備
2. @bind
3. @remove_prepare
4. @一致性
5. @serialConsistency
6. @timestamp
7. @retryPolicy
8. @fetchSize
9. @請求超時
只要它們以分號分隔,就支持多行語句以及同一行上的多個語句。例如:
```
USE spark_demo;
SELECT * FROM albums_by_country LIMIT 1; SELECT * FROM countries LIMIT 1;
SELECT *
FROM artists
WHERE login='jlennon';?
```
支持批處理語句,可以跨多行,以及DDL(CREATE / ALTER / DROP)語句:
```
BEGIN BATCH
INSERT INTO users(login,name) VALUES('jdoe','John DOE');
INSERT INTO users_preferences(login,account_type) VALUES('jdoe','BASIC');
APPLY BATCH;
CREATE TABLE IF NOT EXISTS test(
key int PRIMARY KEY,
value text
);?
```
CQL語句不**區分大小寫**(列名和值除外)。這意味著以下語句是等同和有效的:
```
INSERT INTO users(login,name) VALUES('jdoe','John DOE');
Insert into users(login,name) vAlues('hsue','Helen SUE');?
```
所有CQL語句和版本的完整列表如下:
| Cassandra版本 | 文件鏈接 |
| --- | --- |
| **3.X** | [http://docs.datastax.com/en/cql/3.3/cql/cqlIntro.html](http://docs.datastax.com/en/cql/3.3/cql/cqlIntro.html) |
| **2.2** | [http://docs.datastax.com/en/cql/3.3/cql/cqlIntro.html](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](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](http://docs.datastax.com/en/cql/3.0/cql/aboutCQL.html) |
## 聲明中的評論
可以在語句之間添加注釋。單行注釋以**哈希符號**(#)或**雙斜杠**(//)開頭。多行注釋在/ **和** /之間。例如:
```
#Single line comment style 1
INSERT INTO users(login,name) VALUES('jdoe','John DOE');
//Single line comment style 2
/**
Multi line
comments
**/
Insert into users(login,name) vAlues('hsue','Helen SUE');?
```
## 語法驗證
解釋器隨附了一個內置的語法驗證器。此驗證器僅檢查基本語法錯誤。
所有與CQL相關的語法驗證都直接**委托**給**Cassandra**
大多數情況下,語法錯誤是由于語句或**打字錯誤**之間**的分號丟失**造成的。
## 模式命令
為了使模式發現更容易和更具交互性,支持以下命令:
| 命令 | 描述 |
| --- | --- |
| **DESCRIBE CLUSTER;** | 顯示當前的群集名稱及其分區 |
| **DESCRIBE KEYSPACES;** | 列出集群中的所有現有密鑰空間及其配置(復制因子,持久寫入...) |
| **DESCRIBE TABLES;** | 列出集群中的所有現有密鑰空間,并列出所有表的名稱 |
| **DESCRIBE TYPES;** | 列出集群中的所有現有密鑰空間,并列出所有用戶定義的類型名稱 |
| **DESCRIBE FUNCTIONS;** | 列出集群中的所有現有鍵空間,并列出所有函數的名稱 |
| **DESCRIBE AGGREGATES;** | 列出集群中的所有現有密鑰空間,并列出所有聚合名稱 |
| **DESCRIBE MATERIALIZED VIEWS;** | 列出集群中的所有現有密鑰空間,并列出所有實例化視圖名稱 |
| **DESCRIBE KEYSPACE <keyspace_name>;_** | 描述給定的密鑰空間配置及其所有表的詳細信息(名稱,列,...) |
| **DESCRIBE TABLE (<keyspacename>).<table_name>;_** | 描述給定的表。如果沒有提供密鑰空間,則使用當前登錄的密鑰空間。如果沒有登錄密鑰空間,則使用默認系統密鑰空間。如果沒有找到表,會出現錯誤信息 |
| **DESCRIBE TYPE (<keyspacename>).<type_name>;_** | 描述給定類型(UDT)。如果沒有提供密鑰空間,則使用當前登錄的密鑰空間。如果沒有登錄密鑰空間,則使用默認系統密鑰空間。如果沒有找到類型,會出現錯誤信息 |
| **DESCRIBE FUNCTION (<keyspacename>).<function_name>;_** | 描述給定的功能。如果沒有提供密鑰空間,則使用當前登錄的密鑰空間。如果沒有登錄密鑰空間,則使用默認系統密鑰空間。如果沒有找到功能,則會出現錯誤信息 |
| **DESCRIBE AGGREGATE (<keyspacename>).<aggregate_name>;_** | 描述給定的聚合。如果沒有提供密鑰空間,則使用當前登錄的密鑰空間。如果沒有登錄密鑰空間,則使用默認系統密鑰空間。如果沒有找到聚合,則會出現錯誤消息 |
| **DESCRIBE MATERIALIZED VIEW (<keyspacename>).<view_name>;** | 描述給定的視圖。如果沒有提供密鑰空間,則使用當前登錄的密鑰空間。如果沒有登錄密鑰空間,則使用默認系統密鑰空間。如果沒有找到任何視圖,會出現錯誤信息 |
模式對象(集群,密鑰空間,表,類型,功能和聚合)以表格格式顯示。左上角有一個下拉菜單來展開對象細節。右上角的菜單顯示“圖標”圖標。

## 運行時參數
有時您希望能夠將運行時查詢參數傳遞給您的語句。
這些參數不是CQL規范的一部分,而是特定于解釋器。
以下是所有參數的列表:
| 參數 | 語法 | 描述 |
| --- | --- | --- |
| Consistency Level | **@consistency=_value_** | 將給定的一致性級別應用于段落中的所有查詢 |
| Serial Consistency Level | **@serialConsistency=_value_** | 將給定的串行一致性級別應用于段落中的所有查詢 |
| Timestamp | **@timestamp=_long value_** | 將給定的時間戳應用于段落中的所有查詢。請注意,直接在CQL語句中傳遞的時間戳值將覆蓋此值 |
| Retry Policy | **@retryPolicy=_value_** | 將給定的重試策略應用于段落中的所有查詢 |
| Fetch Size | **@fetchSize=_integer value_** | 將給定的提取大小應用于段落中的所有查詢 |
| Request Time Out | **@requestTimeOut=_integer value_** | 將給定的請求超時**以毫秒**為**單位應用于段落**中的所有查詢 |
一些參數僅接受限制值:
| 參數 | 可能的值 |
| --- | --- |
| Consistency Level | **ALL, ANY, ONE, TWO, THREE, QUORUM, LOCAL_ONE, LOCAL_QUORUM, EACH_QUORUM_** |
| Serial Consistency Level | **SERIAL, LOCALSERIAL** |
| Timestamp | Any long value |
| Retry Policy | **DEFAULT, DOWNGRADING_CONSISTENCY, FALLTHROUGH, LOGGING_DEFAULT, LOGGING_DOWNGRADING, LOGGING_FALLTHROUGH** |
| Fetch Size | Any integer value |
> 請注意,您應該**不**加分號(**;**在每個參數語句的結束)
一些例子:
```
CREATE TABLE IF NOT EXISTS spark_demo.ts(
key int PRIMARY KEY,
value text
);
TRUNCATE spark_demo.ts;
// Timestamp in the past
@timestamp=10
// Force timestamp directly in the first insert
INSERT INTO spark_demo.ts(key,value) VALUES(1,'first insert') USING TIMESTAMP 100;
// Select some data to make the clock turn
SELECT * FROM spark_demo.albums LIMIT 100;
// Now insert using the timestamp parameter set at the beginning(10)
INSERT INTO spark_demo.ts(key,value) VALUES(1,'second insert');
// Check for the result. You should see 'first insert'
SELECT value FROM spark_demo.ts WHERE key=1;?
```
有關查詢參數的一些注釋:
> 1. **許多**查詢參數可以在同一段落中設置
> 2. 如果**相同的**查詢參數用不同的值設置很多時間,則解釋器僅考慮第一個值
> 3. 每個查詢參數都適用于同一**段落**中的**所有CQL語句**,除非您使用純CQL文本覆蓋選項(如強制使用USING子句的時間戳)
> 4. 關于CQL語句的每個查詢參數的順序并不重要
## 支持準備聲明
出于性能原因,最好先準備語句,然后通過提供綁定值重用它們。
此解釋器提供3個命令來處理準備和綁定的語句:
1. **@prepare**
2. **@bind**
3. **@remove_prepared**
例:
```
@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]?
```
#### @prepare
您可以使用語法_“@prepare [statement-name] = SELECT ...”_來創建一個準備好的語句。該_語句名_是**強制性的**,因為翻譯準備與Java驅動程序給定的語句,并在保存生成的準備語句**內部哈希表**,使用所提供的_語句名_作為搜索關鍵字。
> 請注意,內部準備的語句映射與**所有筆記本**和**所有段落**共享,因為**Cassandra**只有一個解釋器實例
>
> 如果解釋器遇到**相同的****_statement-name_****(key)的****許多**?@prepare,那么只有**第一個**語句才會被考慮。
例:
```
@prepare[select]=SELECT * FROM spark_demo.albums LIMIT ?
@prepare[select]=SELECT * FROM spark_demo.artists LIMIT ? ?
```
對于上述示例,準備好的語句是`SELECT * FROM spark_demo.albums LIMIT ?`。`SELECT * FROM spark_demo.artists LIMIT?被忽略,因為已準備好的語句映射中已經存在一個條目,帶有key select。
在**Zeppelin**的背景下,筆記本可以定期執行,因此有必要**避免重新準備許多時間相同的聲明(被認為是反模式)**。
#### [@bind](http://zeppelin.apache.org/docs/0.7.1/interpreter/cassandra.html#bind)
一旦準備好聲明(可能在分開的筆記本/段落中)。您可以將值綁定到它:
```
@bind[select_first]=10?
```
綁定值不是@bind語句的**強制**值。但是,如果您提供綁定值,則需要遵守一些語法:?
* 字符串值應包含在簡單引號(')之間
* 日期值應包含在簡單引號(')之間,并遵循格式:
1. yyyy-MM-dd HH:MM:ss
2. yyyy-MM-dd HH:MM:ss.SSS
* **null**按原樣解析
* **布爾值**(true | false)按原樣解析
* 集合值必須遵循**[標準的CQL語法](http://docs.datastax.com/en/cql/3.1/cql/cql_using/use_collections_c.html)**:
* 列表:['list?_item1','list_?item2',...]
* 設置:{'set?_item1','set_?item2',...}
* map:{'key1':'val1','key2':'val2',...}
* **元組**值應該在括號之間(見**[元組CQL語法](http://docs.datastax.com/en/cql/3.1/cql/cql_reference/tupleType.html)**):('text',123,true)
* **udt**值應該在括號之間(見**[UDT CQL語法](http://docs.datastax.com/en/cql/3.1/cql/cql_using/cqlUseUDT.html)**):{stree?_name:'Beverly Hills',number:104,郵編_:90020,state:'California',...}
> 可以在批處理中使用@bind語句:
>
> ```
> BEGIN BATCH
> @bind[insert_user]='jdoe','John DOE'
> UPDATE users SET age = 27 WHERE login='hsue';
> APPLY BATCH;?
> ```
#### [@remove_prepare](http://zeppelin.apache.org/docs/0.7.1/interpreter/cassandra.html#remove_prepare)
```
為了避免準備好的語句永遠保留在準備好的語句映射中,您可以使用?@remove_prepare [statement-name]語法將其刪除。刪除不存在的準備語句不會產生錯誤。
```
## 使用動態表單
而不是對CQL查詢進行硬編碼,可以使用**[Zeppelin動態表單](http://zeppelin.apache.org/docs/0.6.0-SNAPSHOT/manual/dynamicform.html)**語法注入簡單的值或多個選擇表單。
仍然支持綁定輸入文本和選擇表單的舊式胡須語法(**{{}}**),但不推薦使用,并在將來的版本中將其刪除。
> **傳統**?簡單參數的語法是:**{{input_Label = default value}}**。默認值是強制性的,因為第一次執行該段落,我們在呈現表單之前啟動CQL查詢,因此應提供至少一個值。
>
> 多選擇參數的語法是:**{{input_Label = value1 |?value2 |?... |?valueN}}**。默認情況下,第一次執行該段落時,首選用于CQL查詢。
例:
```
#Secondary index on performer style
SELECT name, country, performer
FROM spark_demo.performers
WHERE name='${performer=Sheryl Crow|Doof|Fanfarlo|Los Paranoia}'
AND styles CONTAINS '${style=Rock}'; ?
```
在上面的例子中,第一個CQL查詢將執行為_performer ='Sheryl Crow'AND style ='Rock'_。對于后續查詢,您可以使用表單直接更改值。
> 請注意,我們在簡單引號(**'**)之間附帶了**$ {}**塊,因為Cassandra希望有一個String。我們也可以使用**$ {style ='Rock'}**語法,但這次,表單上顯示的值是**_“Rock”_**而不是**_Rock_**。
也可以使用動態表單來**準備語句**:
```
@bind[select]=='${performer=Sheryl Crow|Doof|Fanfarlo|Los Paranoia}', '${style=Rock}'?
```
## 共享狀態
可以并行執行許多段落。但是,在后端,我們仍然使用同步查詢。?只有當有可能返回值時,_異步執行_才是可能`Future`的`InterpreterResult`。這可能是**Zeppelin**項目的一個有趣的建議。
最近,**Zeppelin**允許您選擇解釋員的隔離級別(請參閱**[解釋器綁定模式](http://zeppelin.apache.org/docs/0.6.0-SNAPSHOT/manual/interpreters.html)**)。
長篇小說,你有3個可用的綁定:
* **shared**:_相同的JVM_和所有注釋的_相同的解釋器實例_?
* **范圍**:_相同的JVM_但_不同的解釋器實例_,每個音符一個
* **隔離**:_不同的JVM_運行_單個解釋器實例_,每個音符一個JVM
使用**共享**綁定,**所有**注釋和段落`com.datastax.driver.core.Session`都使用相同的對象。因此,如果您使用**USE?****_密鑰空間名稱_****?;?**聲明登錄到一個密鑰空間,它會更改密鑰空間?**所有當前用戶**的的**卡桑德拉**解釋,因為我們只能創造1個%的實例對象**卡桑德拉**解釋。????`com.datastax.driver.core.Session`??
同樣的說法也適用于**準備好的語句哈希映射**,它由**所有**使用**Cassandra**解釋器的實例共享。
當使用**作用域**綁定時,在_同一個JVM中,_?**Zeppelin**將創建Cassandra解釋器的多個實例,從而創建多個`com.datastax.driver.core.Session`對象。**小心使用這種綁定的資源和內存使用!**
所述**分離的**模式是最極端的,并且將創建許多JVM /?`com.datastax.driver.core.Session`因為有不同的筆記對象。
## 解釋器配置
要配置**Cassandra**解釋器,請轉到**解釋器**菜單,向下滾動以更改參數。該**卡珊德拉**解釋器使用的是官方**[卡桑德拉Java驅動程序](https://github.com/datastax/java-driver)**和大多數參數都用于配置Java驅動程序
以下是配置參數及其默認值。
| 屬性名稱 | 描述 | 默認值 |
| --- | --- | --- |
| cassandra.cluster | 要連接的Cassandra群集的名稱 | Test Cluster |
| cassandra.compression.protocol | 在線壓縮?可能的值為:NONE,SNAPPY,LZ4 | NONE |
| cassandra.credentials.username | 如果啟用安全性,請提供登錄 | none |
| cassandra.credentials.password | 如果啟用安全性,請提供密碼 | none |
| cassandra.hosts | 逗號分隔Cassandra主機(DNS名稱或IP地址)。?
例如:'192.168.0.12,node2,node3' | localhost |
| cassandra.interpreter.parallelism | 可執行的并發段數(查詢塊)數 | 10 |
| cassandra.keyspace | 要連接的默認鍵盤空間。**強烈建議讓默認值在表名前加上所有查詢中的實際鍵空格** | system |
| cassandra.load.balancing.policy | 負載均衡策略。Default =?_new TokenAwarePolicy(new DCAwareRoundRobinPolicy())_??要指定您自己的策略,請提供您的策略的**完全限定類名(FQCN)**。在運行時,解釋器將使用**Class.forName(FQCN)**實例化策略,? | DEFAULT |
| cassandra.max.schema.agreement.wait.second | Cassandra max模式協議等待第二 | 10 |
| cassandra.pooling.core.connection.per.host.local | 協議V2及以下default = 2.協議V3及以上default = 1 | 2 |
| cassandra.pooling.core.connection.per.host.remote | 協議V2及以下default = 1.協議V3及以上default = 1 | 1 |
| cassandra.pooling.heartbeat.interval.seconds | 卡桑德拉泳池心跳間隔(秒) | 30 |
| cassandra.pooling.idle.timeout.seconds | Cassandra空閑時間在幾秒鐘內 | 120 |
| cassandra.pooling.max.connection.per.host.local | Protocol V2及以下default = 8.協議V3及以上default = 1 | 8 |
| cassandra.pooling.max.connection.per.host.remote | 協議V2及以下default = 2.協議V3及以上default = 1 | 2 |
| cassandra.pooling.max.request.per.connection.local | 協議V2及以下默認值= 128.協議V3及以上默認值= 1024 | 128 |
| cassandra.pooling.max.request.per.connection.remote | 協議V2及以下默認值= 128.協議V3及以上默認值= 256 | 128 |
| cassandra.pooling.new.connection.threshold.local | 協議V2及以下默認值= 100.協議V3及以上默認= 800 | 100 |
| cassandra.pooling.new.connection.threshold.remote | 協議V2及以下默認值= 100.協議V3及以上default = 200 | 100 |
| cassandra.pooling.pool.timeout.millisecs | Cassandra游泳池以毫秒為單位超時 | 5000 |
| cassandra.protocol.version | Cassandra二進制協議版本 | 4 |
| cassandra.query.default.consistency | Cassandra查詢默認一致性級別?
可用值:ONE,TWO,THREE,QUORUM,LOCAL?_ONE,LOCAL_?QUORUM,EACH?_QUORUM,ALL_ | ONE |
| cassandra.query.default.fetchSize | Cassandra查詢默認提取大小 | 5000 |
| cassandra.query.default.serial.consistency | Cassandra查詢默認串行一致性級別?
可用值:SERIAL,LOCALSERIAL | SERIAL |
| cassandra.reconnection.policy | Cassandra重新連接政策。Default = new ExponentialReconnectionPolicy(1000, 10 * 60 * 1000)?要指定自己的策略,請提供策略的**完全限定類名(FQCN)**。在運行時,解釋器將使用**Class.forName(FQCN)**實例化策略,? | DEFAULT |
| cassandra.retry.policy | Cassandra重試政策?Default = DefaultRetryPolicy.INSTANCE要指定您自己的策略,請提供您的策略的**完全限定類名(FQCN)**。在運行時,解釋器將使用**Class.forName(FQCN)**實例化策略,? | DEFAULT |
| cassandra.socket.connection.timeout.millisecs | Cassandra套接字默認連接超時(毫秒) | 500 |
| cassandra.socket.read.timeout.millisecs | Cassandra套接字以毫秒為單位讀取超時 | 12000 |
| cassandra.socket.tcp.no_delay | Cassandra套接字TCP沒有延遲 | true |
| cassandra.speculative.execution.policy | Cassandra投機執行政策?Default = NoSpeculativeExecutionPolicy.INSTANCE要指定您自己的策略,請提供策略的**完全限定類名(FQCN)**。在運行時,解釋器將使用**Class.forName(FQCN)**實例化策略。 | DEFAULT |
## 更改日志
**3.0?**_(Zeppelin 0.7.1)_:
* 更新文檔
* 更新交互式文檔
* 添加對二進制協議**V4的**支持
* 實現新的`@requestTimeOut`運行時選項
* 將Java驅動程序版本升級到**3.0.1**
* 允許解釋器在使用FormType.SIMPLE時以編程方式添加動態表單
* 允許動態窗體使用默認的Zeppelin語法
* 在FallThroughPolicy上修正打字錯誤
* 在創建動態表單之前,請先查看AngularObjectRegistry中的數據
* 添加缺少的`ALTER`語句支持
**2.0?**_(Zeppelin 0.7.1)_:
* 更新幫助菜單并添加更改日志
* 添加對**用戶定義函數**,**用戶定義的聚合**和**物化視圖的支持**
* 將Java驅動程序版本升級到**3.0.0-rc1**
**1.0?**_(Zeppelin 0.5.5-孵育)_:
* 初始版本
## 錯誤和聯系人
如果您遇到這個解釋器的錯誤,請在**[@doanduyhai](https://twitter.com/doanduyhai)**創建一個**[JIRA](https://issues.apache.org/jira/browse/ZEPPELIN-382?jql=project%20%3D%20ZEPPELIN)**票,并在Twitter上**[打我一下](https://twitter.com/doanduyhai)。**
- 快速入門
- 什么是Apache Zeppelin?
- 安裝
- 配置
- 探索Apache Zeppelin UI
- 教程
- 動態表單
- 發表你的段落
- 自定義Zeppelin主頁
- 升級Zeppelin版本
- 從源碼編譯
- 使用Flink和Spark Clusters安裝Zeppelin教程
- 解釋器
- 概述
- 解釋器安裝
- 解釋器依賴管理
- 解釋器的模擬用戶
- 解釋員執行Hook(實驗)
- Alluxio 解釋器
- Beam 解釋器
- BigQuery 解釋器
- Cassandra CQL 解釋器
- Elasticsearch 解釋器
- Flink 解釋器
- Geode/Gemfire OQL 解釋器
- HBase Shell 解釋器
- HDFS文件系統 解釋器
- Hive 解釋器
- Ignite 解釋器
- JDBC通用 解釋器
- Kylin 解釋器
- Lens 解釋器
- Livy 解釋器
- Markdown 解釋器
- Pig 解釋器
- PostgreSQL, HAWQ 解釋器
- Python 2&3解釋器
- R 解釋器
- Scalding 解釋器
- Scio 解釋器
- Shell 解釋器
- Spark 解釋器
- 系統顯示
- 系統基本顯示
- 后端Angular API
- 前端Angular API
- 更多
- 筆記本存儲
- REST API
- 解釋器 API
- 筆記本 API
- 筆記本資源 API
- 配置 API
- 憑據 API
- Helium API
- Security ( 安全 )
- Shiro 授權
- 筆記本 授權
- 數據源 授權
- Helium 授權
- Advanced ( 高級 )
- Zeppelin on Vagrant VM ( Zeppelin 在 Vagrant 虛擬機上 )
- Zeppelin on Spark Cluster Mode( Spark 集群模式下的 Zeppelin )
- Zeppelin on CDH ( Zeppelin 在 CDH 上 )
- Contibute ( 貢獻 )
- Writing a New Interpreter ( 寫一個新的解釋器 )
- Writing a new Visualization (Experimental) ( 編寫新的可視化(實驗) )
- Writing a new Application (Experimental) ( 寫一個新的應用程序( 實驗 ) )
- Contributing to Apache Zeppelin ( Code ) ( 向 Apache Zeppelin 貢獻( 代碼 ) )
- Contributing to Apache Zeppelin ( Website ) ( 向 Apache Zeppelin 貢獻(website) )