21.md 3.9 KB
Newer Older
W
mkdocs  
wizardforcel 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
# 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)