网站首页 > 资源文章 正文
创建数据集
在 bq 命令行工具中使用 bq mk 命令
数据集包含在特定项目中,数据集是用来组织和控制表和视图访问权限的顶级容器。表或视图必须属于数据集,因此需要创建至少一个数据集,才能将数据加载到 BigQuery 中。
- GoogleSQL
projectname.datasetname 格式来完全限定数据集名称
- bq 命令行工具
projectname:datasetname 格式来完全限定数据集名称
数据集限制
- 数据集位置只能在创建时设置。创建数据集后,就无法再更改其位置。
- 查询中引用的所有表必须存储在位于同一位置的数据集中。
- 复制表时,包含源表和目标表的数据集必须位于同一位置。
- 同一个项目中的数据集名称不得重复。
所需权限
如需创建数据集,您需要拥有 bigquery.datasets.create IAM 权限。
以下每个预定义 IAM 角色都包含创建数据集所需的权限:
- roles/bigquery.dataEditor
- roles/bigquery.dataOwner
- roles/bigquery.user
- roles/bigquery.admin
命名数据集
- 不超过 1024 个字符。
- 字母(大写字母或小写字母)、数字和下划线。
- 不能包含空格或特殊字符,例如 -、&、@ 或 %。
列出数据集
在 bq 命令行工具中使用 bq ls 命令
更新数据集属性
使用 bq 命令行工具的 bq update 命令。
如需更新数据集属性,您需要拥有以下 IAM 权限:
- bigquery.datasets.update
- bigquery.datasets.get
- bigquery.datasets.setIamPolicy
管理数据集
- 重命名数据集
- 复制数据集
- 手动移动数据集
- 删除数据集
在 bq 命令行工具中使用 bq rm 命令。
如需删除数据集,您需要拥有以下 IAM 权限:
- bigquery.datasets.delete(可让您删除数据集)
- bigquery.tables.delete(可让您删除表和视图)
创建表
bq 命令行工具 bq mk 命令手动创建。
如需创建表,您需要拥有以下 IAM 权限:
- bigquery.tables.create
- bigquery.tables.updateData
- bigquery.jobs.create
DECLARE active_logical_gb_price FLOAT64 DEFAULT 0.02;
DECLARE long_term_logical_gb_price FLOAT64 DEFAULT 0.01;
DECLARE active_physical_gb_price FLOAT64 DEFAULT 0.04;
DECLARE long_term_physical_gb_price FLOAT64 DEFAULT 0.02;
WITH
storage_sizes AS (
SELECT
table_schema AS dataset_name,
SUM(active_logical_bytes) / power(1024, 3) AS active_logical_gb,
SUM(long_term_logical_bytes) / power(1024, 3) AS long_term_logical_gb,
SUM(active_physical_bytes) / power(1024, 3) AS active_physical_gb,
SUM(long_term_physical_bytes) / power(1024, 3) AS long_term_physical_gb,
SUM(total_physical_bytes) / power(1024, 3) AS total_physical_gb,
SUM(total_logical_bytes) / power(1024, 3) AS total_logical_gb
FROM
region-REGION.INFORMATION_SCHEMA.TABLE_STORAGE_BY_PROJECT
WHERE total_logical_bytes > 0
AND total_physical_bytes > 0
GROUP BY 1
)
SELECT
dataset_name,
active_logical_gb,
long_term_logical_gb,
active_physical_gb,
long_term_physical_gb,
total_logical_gb / total_physical_gb AS compression_ratio,
active_logical_gb * active_logical_gb_price AS active_logical_cost,
long_term_logical_gb * long_term_logical_gb_price AS long_term_logical_cost,
active_physical_gb * active_physical_gb_price AS active_physical_cost,
long_term_physical_gb * long_term_physical_gb_price AS long_term_physical_cost,
((active_logical_gb * active_logical_gb_price) + (long_term_logical_gb * long_term_logical_gb_price))
- ((active_physical_gb * active_physical_gb_price) + (long_term_physical_gb * long_term_physical_gb_price)) AS total_cost_difference
FROM
storage_sizes
ORDER BY
compression_ratio DESC;
获取表
bq 命令行工具的 bq show 命令。
以下预定义的 IAM 角色包含以下权限:
- bigquery.tables.get
- bigquery.metadataViewer
- bigquery.dataViewer
- bigquery.dataOwner
- bigquery.dataEditor
- bigquery.admin
列出数据集中的表
bq 命令行工具的 bq ls 命令。
以下预定义 IAM 角色包含以下权限:
- bigquery.tables.list
- bigquery.user
- bigquery.metadataViewer
- bigquery.dataViewer
- bigquery.dataEditor
- bigquery.dataOwner
- bigquery.admin
管理表
- 更新表属性:
- 到期
- 时间
- 说明
- 架构定义
- 标签
以下 IAM 权限:
- bigquery.tables.update
- bigquery.tables.get
bq 命令行工具的 bq update 命令。
- 重命名(复制)表
ALTER TABLE mydataset.mytable
RENAME TO mynewtable;
- 复制表
bq 命令行工具的 bq cp 命令。
以下权限:
- bigquery.tables.get
- bigquery.tables.getData
- bigquery.tables.create
mydataset.mytable 表和 mydataset.mytable2 表复制到 mydataset2.tablecopy 表
bq cp \
mydataset.mytable,mydataset.mytable2 \
mydataset2.tablecopy
mydataset.mytable 表和 mydataset.mytable2 表复制到 myotherdataset.mytable 表并覆盖具有相同名称的目标表, 目标数据集在 myotherproject 项目中, -f 快捷键用于在无提示的情况下覆盖目标表。
bq cp -f \
mydataset.mytable,mydataset.mytable2 \
myotherproject:myotherdataset.mytable
myproject:mydataset.mytable 表和 myproject:mydataset.mytable2 表,并在目标数据集中包含同名表时返回错误, -n 快捷键用于防止覆盖具有相同名称的表。
bq cp -n \
myproject:mydataset.mytable,myproject:mydataset.mytable2 \
myotherproject:myotherdataset.mytable
mydataset.mytable 表和 mydataset.mytable2 表并向具有相同名称的目标表附加数据,目标数据集在 myotherproject 项目中。-a 快捷键用于附加到目标表。
bq cp -a \
mydataset.mytable,mydataset.mytable2 \
myotherproject:myotherdataset.mytable
查看当前配额用量
SELECT
sum(case when job_type="QUERY" then 1 else 0 end) as QRY_CNT,
sum(case when job_type="LOAD" then 1 else 0 end) as LOAD_CNT,
sum(case when job_type="EXTRACT" then 1 else 0 end) as EXT_CNT,
sum(case when job_type="COPY" then 1 else 0 end) as CPY_CNT
FROM `region-eu`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE date(creation_time)= CURRENT_DATE()
- 删除表
bq 命令行工具的 bq rm 命令。
以下 IAM 权限:
- bigquery.datasets.create
- bigquery.tables.delete
- bigquery.tables.get
- 恢复已删除的表
猜你喜欢
- 2024-10-24 2 万字长文详解 10 大多线程面试题|原力计划
- 2024-10-24 选择合适的 MySQL 日期时间类型来存储你的时间
- 2024-10-24 随笔:MySQL又死锁了,看我一顿分析
- 2024-10-24 AI办公自动化:批量合并多个Excel表格的数据并汇总
- 2024-10-24 一个诡异的MySQL查询超时问题,差点导致一个P0事故
- 2024-10-24 关于接口规范(关于接口的使用,说法错误的是)
- 2024-10-24 PUT 与 PATCH & PUT 与 POST(put与post区别)
- 2024-10-24 TiDB 查询优化及调优系列(五)调优案例实践
- 2024-10-24 一文读懂Go结构体标签(go结构体默认值)
- 2024-10-24 Git同步原始仓库到Fork仓库中(git 同步)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)