BigQuery 解释器

原文链接 : http://zeppelin.apache.org/docs/0.7.2/interpreter/bigquery.html

译文链接 : http://www.apache.wiki/pages/viewpage.action?pageId=10030770

贡献者 : 片刻 ApacheCN Apache中文网

概述

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构建的。

启用BigQuery解释器

在笔记本中,要启用BigQuery解释器,请单击Gear图标并选择bigquery

设置服务帐户凭据

为了在Google Cloud Engine之外运行BigQuery解释器,您需要按照以下说明提供身份验证凭据

  • 转到API控制台凭据页面
  • 从项目下拉列表中选择您的项目。
  • 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构建自己的SQL。

例如,SQL可使用航班公开数据集来查询机场前十名的出发延迟

  1. %bigquery.sql
  2. SELECT departure_airport,count(case when departure_delay>0 then 1 else 0 end) as no_of_delays
  3. FROM [bigquery-samples:airline_ontime_data.flights]
  4. group by departure_airport
  5. order by 2 desc
  6. limit 10

另一个例子,SQL从BigQuery中托管的github数据中查询最常用的java包

  1. %bigquery.sql
  2. SELECT
  3. package,
  4. COUNT(*) count
  5. FROM (
  6. SELECT
  7. REGEXP_EXTRACT(line, r' ([a-z0-9\._]*)\.') package,
  8. id
  9. FROM (
  10. SELECT
  11. SPLIT(content, '\n') line,
  12. id
  13. FROM
  14. [bigquery-public-data:github_repos.sample_contents]
  15. WHERE
  16. content CONTAINS 'import'
  17. AND sample_path LIKE '%.java'
  18. HAVING
  19. LEFT(line, 6)='import' )
  20. GROUP BY
  21. package,
  22. id )
  23. GROUP BY
  24. 1
  25. ORDER BY
  26. count DESC
  27. LIMIT
  28. 40

技术说明

有关当前实现的深入技术细节请参考bigquery/README.md