# BigQuery 解释器
原文链接 : [http://zeppelin.apache.org/docs/0.7.2/interpreter/bigquery.html](http://zeppelin.apache.org/docs/0.7.2/interpreter/bigquery.html)
译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10030770](http://www.apache.wiki/pages/viewpage.action?pageId=10030770)
贡献者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文网](/display/~apachechina)
## 概述
[BigQuery](https://cloud.google.com/bigquery/what-is-bigquery)是Google Cloud Platform中高度可扩展的无操作数据仓库。如果没有正确的硬件和基础架构,则查询大量数据集可能会耗时且昂贵。Google BigQuery通过使用Google基础设施的处理能力,启用超级快速SQL查询,仅针对仅附加表格来解决此问题。简单地将您的数据移动到BigQuery中,让我们处理辛苦的工作。您可以根据业务需求控制对项目和数据的访问,例如让他人查看或查询您的数据。
## 配置
| Name | Default Value | Description |
| --- | --- | --- |
| zeppelin.bigquery.project_id | | Google 项目ID |
| zeppelin.bigquery.wait_time | 5000 | 以毫秒为单位查询超时 |
| zeppelin.bigquery.max_no_of_rows | 100000 | 最大结果集大小 |
## BigQuery API
Zeppelin是针对BigQuery API版本v2-rev265-1.21.0 - [API Javadocs](https://developers.google.com/resources/api-libraries/documentation/bigquery/v2/java/latest/)构建的。
## 启用BigQuery解释器
在笔记本中,要启用**BigQuery**解释器,请单击**Gear**图标并选择**bigquery**。
### 设置服务帐户凭据
为了在Google Cloud Engine之外运行BigQuery解释器,您需要按照以下说明提供身份验证[凭据](https://developers.google.com/identity/protocols/application-default-credentials):
* 转到[API控制台凭据页面](https://console.developers.google.com/project/_/apis/credentials)
* 从项目下拉列表中选择您的项目。
* 在`Credentials`页面上,选择`Create credentials`下拉菜单,然后选择`Service account key`。
* 从服务帐户下拉列表中,选择一个现有的服务帐户或创建一个新的服务帐户。
* 对于`Key type`,选择`JSON`键选项,然后选择`Create`。该文件自动下载到您的计算机。
* 将`*.json`您刚刚下载的文件放在您选择的目录中。该目录必须是私有的(您不能让任何人访问此目录),但您的Zeppelin实例可以访问。
* 将环境变量设置为下载`GOOGLE_APPLICATION_CREDENTIALS`的JSON文件的路径。
* 无论是GUI:在解释器配置页面CAPITAL_CASE中的属性名称设置env vars
* 或者`zeppelin-env.sh`:只是将其添加到文件的末尾。
## 使用BigQuery解释器
在段落中,用于`%bigquery.sql`选择**BigQuery**解释器,然后根据存储在BigQuery中的数据集输入SQL语句。您可以使用[BigQuery SQL Reference](https://cloud.google.com/bigquery/query-reference)构建自己的SQL。
例如,SQL可使用航班公开数据集来查询机场前十名的出发延迟
```
%bigquery.sql
SELECT departure_airport,count(case when departure_delay>0 then 1 else 0 end) as no_of_delays
FROM [bigquery-samples:airline_ontime_data.flights]
group by departure_airport
order by 2 desc
limit 10
```
另一个例子,SQL从BigQuery中托管的github数据中查询最常用的java包
```
%bigquery.sql
SELECT
package,
COUNT(*) count
FROM (
SELECT
REGEXP_EXTRACT(line, r' ([a-z0-9\._]*)\.') package,
id
FROM (
SELECT
SPLIT(content, '\n') line,
id
FROM
[bigquery-public-data:github_repos.sample_contents]
WHERE
content CONTAINS 'import'
AND sample_path LIKE '%.java'
HAVING
LEFT(line, 6)='import' )
GROUP BY
package,
id )
GROUP BY
1
ORDER BY
count DESC
LIMIT
40
```
## 技术说明
有关当前实现的深入技术细节请参考[bigquery/README.md](https://github.com/apache/zeppelin/blob/master/bigquery/README.md)。
- 快速入门
- 什么是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) )