Google 的 bigquery 产品, 类似一个 web 版本的 SQL GUI, 他提供一个可供加载, 处理和导出数据的页面.

在使用之前需要搭建账户:

查询公共数据

在做好设置之后, google 提供了一些事例数据供测试, 我们可以在这里做一些测试.

例如官方文档提供的 query:

1
2
3
4
5
SELECT
weight_pounds, state, year, gestation_weeks
FROM
publicdata:samples.natality
ORDER BY weight_pounds DESC LIMIT 10;

得到的结果是这样的:

bigquery1

同时我们也可以通过左侧边栏查看对应的原始数据:

bigquery2

上传数据

在左侧导航栏选择如下图所示的下三角 > 点击 Create new dataset 创建新的数据集, 创建好之后再点击 Create new table 然后创建新的表格.

创建新表格时, 需要你导入本地文件, 填写好 Schema, 之后再点击 Create Table. 这些数据都是存储在 google cloud storage 中的, 如果你需要下载在线数据, 可以点击 Export Table 到 Google Cloud Storage 中下载.

启用 bq 命令行工具

这个步骤需要你在你的电脑上安装 Cloud SDK, 我的电脑是 mac, 所以我写一个 mac 版本的安装:

Step1: 确保你的电脑已经安装 python, 并且版本是 2.7, 选择 MAC OS X 要安装的文件

bigquery4

Step2: 将下载的文件解压, 找到 install.sh, 把他拖到 Terminal 里面去安装, 然后后面会产生一些配置文件, 按照默认一路回车.

然后需要你重启你的 Terminal, 然后就可以在命令行执行 bq 命令了:

1
gcloud init

选择对应的 project, 探后执行测试命令:

1
bq show publicdata:samples.shakespeare

得到如下所示的结果:

Bigquery5

具体细节参考: Quickstart Using the bq Command-Line Tool

Bigquery 数据加载

Bigquery 数据加载方式有很多:

  • 从 Google Cloud Storage 或者 CLOUD DATASTORE(NoSQL database)中加载
  • 直接从可读数据源加载
  • 使用 streaming inserts 来插入数据

在执行加载数据时, 需要你保证你对 cloud storage 里的数据至少有只读的权限, 同时要保证对要修改的 Table 有写的权限.

支持的数据类型

目前支持的数据类型有: CSV, JSON (newline-delimited), Avro, Cloud Datastore backups

参考这里: Data Formats

加载数据的方式有三种:

  • 从 Web UI 中加载, 这个上面已经讲过了
  • 通过命令行加载
  • 通过 API 上传

Bigquery 数据处理

具体参考这里: Query Reference

同步查询

同步查询等待查询完成,然后返回响应。这个操作在 Web UI 中就可以完成.

异步查询

异步查询会立即返回响应,通常在查询完成之前。这样的查询命令只能使用命令行和 API 才能实现.

例子:

1
bq query --nosync --destination_table=mydataset.happyhalloween "SELECT name,count FROM mydataset.names_2013 WHERE gender = 'M' ORDER BY count DESC LIMIT 6"

交互式或批处理查询

运行同步查询中的所有示例都是交互式查询。

批处理查询也可以在 Web UI, 命令行和 API 中实现.

缓存查询结果

当您运行重复查询时,BigQuery会尝试重复使用缓存结果。当你使用缓存的查询结果时, 是不计费的. 缓存查询结果保存 24 小时左右.

处理外部数据查询

BigQuery 支持直接从 Google Drive 和 Google Cloud Storage 中直接 query 数据.

用户定义函数(UDF)

UDF 能够使用另一个 SQL 表达式或其他编程语言(如 JavaScript)编写查询语句。

Audit logs

Bigquery 中的日志文件由 Administrative Activity 和 Data Access 这两部分组成.

可以通过 log 数据查询 big query 或者使用费用查询.

数据处理

REST API 接受三种类型的参数: path parameters, query parameters 和 body parameters

数据更新

这是一个 beta 功能, 具体参考: Updating Data

数据导出

数据导出一般是导出到 Google Cloud Storage 的. 下载的话也可以从 Google Cloud Storage 中下载. 导出的文件支持 CSV, JSON 和 Avro 三种类型.

参考文档

BigQuery developer: https://cloud.google.com/bigquery/quickstart-web-ui
BigQuery cookbook: https://support.google.com/analytics/answer/4419694?hl=en&ref_topic=3416089

一首歌的结尾