# Lens 解释器
原文链接 : [http://zeppelin.apache.org/docs/0.7.2/interpreter/lens.html](http://zeppelin.apache.org/docs/0.7.2/interpreter/lens.html)
译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10030852](http://www.apache.wiki/pages/viewpage.action?pageId=10030852)
贡献者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文网](/display/~apachechina)
## 概观
[Apache Lens](https://lens.apache.org/)提供统一分析界面。Lens旨在通过跨多个分层数据存储提供单一数据视图并为分析查询提供最佳执行环境,从而减少数据分析孤立。它将Hadoop与传统的数据仓库无缝集成在一起的工具之一。
![](https://img.kancloud.cn/7e/3e/7e3eb8d1dd66729adcbc08676e11d07d_566x325.jpg)
## 安装和运行Lens
为了使用Lens解释器,您可以通过以下简单的步骤安装Apache Lens:
1. 从[ASF](http://www.apache.org/dyn/closer.lua/lens/2.3-beta)下载Lens的最新版本。或者旧版本可以[在档案馆](http://archive.apache.org/dist/lens/)找到。
2. 在运行镜头之前,您必须设置HIVE _HOME和HADOOP_ HOME。如果你想获得更多的信息,请参考[这里](http://lens.apache.org/lenshome/install-and-run.html#Installation)。镜头还提供伪分布模式。[Lens伪分布式设置](http://lens.apache.org/lenshome/pseudo-distributed-setup.html)是通过使用[docker](https://www.docker.com/)处理器完成的。Hive服务器和hadoop守护程序作为镜头伪分布式设置中的单独进程运行。
3. 现在,您可以启动镜头服务器(或停止)。
```
./bin/lens-ctl start (or stop)
```
## 配置Lens解释器
在“解释器”菜单中,您可以编辑Lens解释器或创建新的Lens解释器。Zeppelin提供Lens的这些属性。
| 物业名称 | 值 | 描述 |
| --- | --- | --- |
| lens.client.dbname | default | 数据库模式名称 |
| lens.query.enable.persistent.resultset | false | 是否为查询启用持久性结果集。启用后,服务器将从驱动程序中获取结果,如果有的话将自定义格式,并存储在配置的位置。查询输出的文件名是queryhandle-id,带有已配置的扩展名 |
| lens.server.base.url | http://hostname:port/lensapi | Lens服务器的基本URL。你必须编辑你可能使用的“hostname”和“port”(例如: http://0.0.0.0:9999/lensapi) |
| lens.session.cluster.user | default | Hadoop集群用户名 |
| zeppelin.lens.maxResult | 1000 | 要显示的最大行数 |
| zeppelin.lens.maxThreads | 10 | 如果并发是真的,那么有多少个线程? |
| zeppelin.lens.run.concurrent | true | 同时执行Lens会话 |
| XXX | YYY | [配置Lens服务器]()中的其他任何内容 |
![](https://img.kancloud.cn/a6/71/a671224c97c79491f7a239fe68adcafb_566x267.jpg)
### 解释器绑定为Zeppelin笔记本
配置Lens解释器后,创建自己的笔记本,然后您可以绑定如下图像的解释器。
![](https://img.kancloud.cn/77/85/77854a42aeb0f7e514686ec4948d9108_566x217.jpg)
有关更多的解释器绑定信息,请参阅[此处](http://zeppelin.apache.org/docs/manual/interpreters.html)。
### 如何使用
您可以使用[OLAP Cube ](http://lens.apache.org/user/olap-cube.html)[QL](http://lens.apache.org/user/cli.html)来分析数据,这是一种高级SQL类似语言来查询和描述以数据立方体组织的数据集。您可能会遇到OLAP立方体像这个[视频教程](https://cwiki.apache.org/confluence/display/LENS/2015/07/13/20+Minute+video+demo+of+Apache+Lens+through+examples)。您可以在此视频中看到,它们使用的是镜头客户机外壳(./ bin / lens-cli.sh)。所有这些功能也可以使用镜头解释器在Zeppelin上使用。
* 创建和使用(切换)数据库。
```
create database newDb
use newDb
```
* 创建存储。
```
create storage your/path/to/lens/client/examples/resources/db-storage.xml
```
* 创建尺寸,显示它们的字段和连接链。
```
create dimension your/path/to/lens/client/examples/resources/customer.xml
dimension show fields customer
dimension show joinchains customer
```
* 创建缓存,显示它们的字段和连接链。
```
create cube your/path/to/lens/client/examples/resources/sales-cube.xml
cube show fields sales
cube show joinchains sales
```
* 创造Dimtables和事实。
```
create dimtable your/path/to/lens/client/examples/resources/customer_table.xml
create fact your/path/to/lens/client/examples/resources/sales-raw-fact.xml
```
* 添加分区到Dimtable和Fact。
```
dimtable add single-partition --dimtable_name customer_table --storage_name local --path your/path/to/lens/client/examples/resources/customer-local-part.xml
fact add partitions --fact_name sales_raw_fact --storage_name local --path your/path/to/lens/client/examples/resources/sales-raw-local-parts.xml
```
* 现在,您可以对多维数据集运行查询。
```
query execute cube select customer_city_name, product_details.description, product_details.category, product_details.color, store_sales from sales where time_range_in(delivery_time, '2015-04-11-00', '2015-04-13-00')
```
![](https://img.kancloud.cn/86/9d/869d3646a31262d1a407951162624415_566x169.jpg)
这些只是Lens提前提供的例子。如果您想探索Lens的整个[教程](https://cwiki.apache.org/confluence/display/LENS/2015/07/13/20+Minute+video+demo+of+Apache+Lens+through+examples),请参阅[教程视频](https://cwiki.apache.org/confluence/display/LENS/2015/07/13/20+Minute+video+demo+of+Apache+Lens+through+examples)。
## Lens UI服务
Lens还提供Web UI服务。一旦服务器启动,您可以打开http://serverhost:19999/index.html上的服务并浏览。您也可以在这里检查您所制作的结构并使用查询。
![](https://img.kancloud.cn/9a/6b/9a6b4efaa7de17c93cd56604bdbe6449_566x323.jpg)
- 快速入门
- 什么是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) )