Skip to main content

bq主要涉及增,删,显示,查,所以从这四方面整理

查看数据集的schema 使用bq show 数据集​

增 bq mk, bk load 具体可以参考

bq mk babaynames 创建新的数据集,在自己项目中命名
#### 创建表格 bq load datasetID tableID data_file Schema
bq load 数据集ID.表格ID(如果空就自己创建一个) 数据文件(比如txt) schema类型
bq load datasetID.tableid your_file name:string,gender:string,count:integer(your schema)
bq load --source_format=AVRO fakedatas.customer "gs://zz_bucket/avro/cust.avro" (avro文件)

还可以改用 --autodetect 标志,而无需提供架构定义。

删 bq rm -r

删除数据集 bq rm​

bq rm -r 数据集id

bq rm -r babynames

显示 bq ls, bq show

检测表格是否创建成功或者更新成功​

创建后,可以通过bq ls 数据集id 查看是否创建成功 也可以通过bq show 数据集id.tableid 查看schema

bq ls 显示所有dataset
bq ls babaynames 显示datasetid的所有table
bq show datasetid 显示dataset的ACL(权限) 比如可以看到 谁是owners,writers,readers
bq show babynames.names2010 显示table的schema类型,多少文本数,字段

查 bq query --use_legacy_sql=false 'select * from dataset.table'

## 运行sql语句命令
总体格式就是 bq query --use_legacy_sql=false 'select 字段 耦合字段(比如count(*)) from datasetid.tableid where 条件 order by 字段 (做排序ASC,DESC) Limit 数字(限制条数)'
注意的地方是
### use_legacy_sql=false 表示使用标准sql语句
### 条件的时候可以使用双引号做区分""
```sql
bq query "select name,count from babynames.names2010 where gender = 'F' Order by count desc limit 5"

bq query --use_legacy_sql=false 'SELECT word,SUM(word_count) AS count FROM `bigquery-public-data`.samples.shakespeare WHERE word LIKE "%raisin%" GROUP BY word'

第二个例子是选择从bq公共集中选择samples这个dataset,然后从这个dataset的shakespeare表中选择word字段, 执行条件是 word字段必须等于"huzzah"
bq query --use_legacy_sql=false 'SELECT word FROM `bigquery-public-data`.samples.shakespeare WHERE word = "huzzah"'

运行帮助命令​

bq help query

下载数据到项目中​

使用wget 数据源连接(比如zip,txt,csv等)

wget http://www.ssa.gov/OACT/babynames/names.zip

解压缩zip文件到项目中​

unzip names.zip