# 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) )