Apache Zeppelin 的 BigQuery 解释器
概述
BigQuery 是 Google 云平台中一个高度可扩展的无操作数据仓库。如果没有合适的硬件和基础设施,查询大规模数据集可能会耗时且昂贵。Google BigQuery 通过利用 Google 基础设施的处理能力,对仅追加表进行超快速 SQL 查询,从而解决了这个问题。只需将您的数据移动到 BigQuery 中,剩下的工作交给我们处理。您可以根据业务需求控制对项目和数据的访问权限,例如授予他人查看或查询您数据的能力。
配置
| 名称 | 默认值 | 描述 |
|---|---|---|
| zeppelin.bigquery.project_id | Google 项目 ID | |
| zeppelin.bigquery.wait_time | 5000 | 查询超时时间(毫秒) |
| zeppelin.bigquery.max_no_of_rows | 100000 | 最大结果集大小 |
| zeppelin.bigquery.sql_dialect | BigQuery SQL 方言(standardSQL 或 legacySQL)。如果为空,可以使用 [查询前缀](https://cloud.google.com/bigquery/docs/reference/standard-sql/enabling-standard-sql#sql-prefix) 如 '#standardSQL'。 |
BigQuery API
Zeppelin 是基于 BigQuery API 版本 v2-rev265-1.21.0 构建的 - API Javadocs
启用 BigQuery 解释器
在笔记本中,要启用BigQuery解释器,请点击齿轮图标并选择bigquery。
提供应用程序默认凭据
在Google云平台(例如Google App Engine,Google Compute Engine)中,默认使用内置凭据。
在GCP之外,请遵循Google API认证说明,适用于Zeppelin Google Cloud Storage
使用BigQuery解释器
在一个段落中,使用%bigquery.sql来选择BigQuery解释器,然后输入针对存储在BigQuery中的数据集的SQL语句。
你可以使用BigQuery SQL参考来构建你自己的SQL。
例如,使用flights公共数据集查询机场前10个出发延误的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。