bq 命令行工具参考文档
本文档介绍了 bq(基于 Python 的 BigQuery 命令行工具)的语法、命令、标志和实参。
如需查看有关使用 bq 命令行工具的教程,请参阅使用 bq 工具加载和查询数据。
使用 bq 命令行工具的方式
您可以在 Cloud Shell 中通过 Google Cloud 控制台或本地安装的 Google Cloud CLI 输入 bq 命令行工具命令。
如需通过 Google Cloud 控制台使用 bq 命令行工具,请激活 Cloud Shell:
如需在本地使用 bq 命令行工具,请安装并配置 gcloud CLI。如需让安装保持最新状态,请参阅 gcloud CLI 文档中的管理安装。
命令格式
bq 命令行工具使用以下格式:
bq COMMAND [FLAGS] [ARGUMENTS]
某些标志可与多个 bq 命令行工具命令搭配使用;全局标志部分介绍了这些标志。
其他标志是特定于命令的;它们只能与特定的 bq 命令行工具命令搭配使用。命令部分中介绍了特定于命令的标志。
为标志指定值
在为标志指定值时,等号 = 为可选项。例如,以下两个命令是等效的:
bq ls --format prettyjson myDataset bq ls --format=prettyjson myDataset
为清楚起见,本文档使用等号。
某些 bq 命令行工具标志是布尔值;您可以将相关标志的值设置为 true 或 false。bq 命令行工具接受使用以下格式来设置布尔值标志。
| 值 | 格式 | 示例 |
|---|---|---|
true |
--FLAGNAME=true |
--debug_mode=true |
true |
--FLAGNAME |
--debug_mode |
false |
--FLAGNAME=false |
--debug_mode=false |
false |
--noFLAGNAME |
--nodebug_mode |
本文档对布尔值标志使用 --FLAGNAME=VALUE 格式。
所有布尔值标志都是可选项;如果布尔值标志不存在,则 BigQuery 会使用该标志的默认值。
在实参中指定 BigQuery 资源
用于指定资源的格式取决于上下文;在某些情况下,项目和数据集之间的分隔符是英文冒号 (:),在某些情况下,它是英文句点 (.)。下表介绍了如何在不同上下文中指定 BigQuery 表。
| 上下文 | 格式 | 示例 |
|---|---|---|
| bq 命令行工具 | PROJECT:DATASET.TABLE |
myProject:myDataset.myTable |
| GoogleSQL 查询 | PROJECT.DATASET.TABLE |
myProject.myDataset.myTable |
| 旧版 SQL 查询 | PROJECT:DATASET.TABLE |
myProject:myDataset.myTable |
如果您未指定项目,则 BigQuery 将使用当前项目。例如,如果当前项目为 myProject,则 BigQuery 会将 myDataset.myTable 解释为 myProject:myDataset.myTable(或 myProject.myDataset.myTable)。
某些资源标识符必须使用反引号 (`) 进行引用。如果您的资源标识符以字母或下划线字符开头,且仅包含字母、数字和下划线字符,则无需用引号进行引用。但是,如果您的资源标识符包含其他类型的字符或预留关键字,您需要将该标识符(或包含特殊字符或预留关键字的标识符部分)用反引号括起来。如需了解详情,请参阅标识符。
如何运行命令
请将任何全局标志放在 bq 命令前面,然后包含特定于命令的标志。您可以包含多个全局标志或特定于命令的标志。例如:
bq --location=us mk --reservation --project_id=project reservation_name
您可以通过以下方式指定命令参数:
--FLAG ARGUMENT(如前面的示例中所示)--FLAG=ARGUMENT--FLAG='ARGUMENT'--FLAG="ARGUMENT"--FLAG 'ARGUMENT'--FLAG "ARGUMENT"
替换以下内容:
FLAG:全局标志或特定于命令的标志ARGUMENT:标志的参数
在某些命令中,必须为参数加上引号。如果需要引号,单引号或双引号都可以。需要使用英文引号的实参通常是包含空格、英文逗号或其他特殊字符的值。如果您的实参包含 BigQuery 资源,请务必遵循命令中指定资源名称的规则。
此示例展示了如何在命令行中运行 GoogleSQL 查询:
bq query --nouse_legacy_sql \ 'SELECT COUNT(*) FROM `bigquery-public-data`.samples.shakespeare'
指定含布尔值的标志时,可不用参数。如果您指定 true 或 false,则必须使用 FLAG=ARGUMENT 格式。
例如,以下命令在布尔值标志 --use_legacy_sql 前加上 no,以此来指定 false:
bq query --nouse_legacy_sql \ 'SELECT COUNT(*) FROM `bigquery-public-data`.samples.shakespeare'
或者,如果要将 false 指定为标志的参数,则可以输入以下命令:
bq query --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `bigquery-public-data`.samples.shakespeare'
在脚本中运行命令
您可以在脚本中运行 bq 命令行工具,就像运行 Google Cloud CLI 命令一样。以下示例展示了 bash 脚本中的 gcloud 和 bq 命令:
#!/bin/bash
gcloud config set project myProject
bq query --use_legacy_sql=false --destination_table=myDataset.myTable \
'SELECT
word,
SUM(word_count) AS count
FROM
`bigquery-public-data`.samples.shakespeare
WHERE
word LIKE "%raisin%"
GROUP BY
word'
使用服务账号
您可以使用服务账号代表您来执行已获授权的 API 调用或运行查询作业。如需在 bq 命令行工具中使用服务账号,请向该服务账号授予对 Google Cloud 的访问权限。如需了解详情,请参阅 gcloud auth activate-service-account。
如需开始使用服务账号模拟运行 bq 命令,请运行以下命令:
gcloud config set auth/impersonate_service_account SERVICE_ACCOUNT_NAME
将 SERVICE_ACCOUNT_NAME 替换为您的服务账号名称。
您运行的 bq 命令现在会使用服务账号凭据。
如需停止从服务账号运行 bq 命令,请运行以下命令:
gcloud config unset auth/impersonate_service_account
为命令行标志设置默认值
若要设置命令行标志的默认值,您可以在 bq 命令行工具的配置文件 .bigqueryrc 中添加该默认值。配置默认选项之前,必须先创建 .bigqueryrc 文件。您可以使用自己偏好的文本编辑器创建该文件。创建 .bigqueryrc 文件后,您可以使用 --bigqueryrc 全局标志指定该文件的路径。
如果未指定 --bigqueryrc 标志,则使用 BIGQUERYRC 环境变量。如果未指定该变量,则会使用路径 ~/.bigqueryrc。默认路径为 $HOME/.bigqueryrc。
如何向 .bigqueryrc 添加标志
要将命令行标志的默认值添加到 .bigqueryrc,请执行以下操作:
- 在没有文件头的文件顶端添加全局标志。
- 若要添加特定于命令的标志,请输入命令名称(在括号中),然后在命令名称后面添加特定于命令的标志(每行一个)。
例如:
--apilog=stdout --format=prettyjson --location=US [query] --use_legacy_sql=false --max_rows=100 --maximum_bytes_billed=10000000 [load] --destination_kms_key=projects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey
上述示例设置以下标志的默认值:
- 将全局标志
--apilog设置为stdout,以将调试输出打印到Google Cloud 控制台。 - 将全局标志
--format设置为prettyjson,以采用易于用户理解的 JSON 格式显示命令输出。 - 将全局标志
--location设置为US多区域位置。 将特定于
query命令的标志--use_legacy_sql设置为false,以将 GoogleSQL 设为默认查询语法。将
query特定于命令的标志--max_rows设置为100,以控制查询输出中的行数。将
query特定于命令的标志--maximum_bytes_billed设置为 10,000,000 字节 (10 MB),以让读取数据量超过 10 MB 的查询失败。将
load特定于命令的标志--destination_kms_key设置为projects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey。
CLI 帮助
您可以通过运行以下命令获取有关 bq 命令行工具的帮助:
| 说明 | 帮助命令格式 | 示例 |
|---|---|---|
| 已安装的版本 | bq version |
bq version |
| 列出所有命令及示例 | bq help |
bq help |
| 全局标志的说明 | bq --help |
bq --help |
| 特定命令的说明 | bq help COMMAND |
bq help mk |
排查 CLI 命令问题
- 如需记录发送和接收的请求,请执行以下操作:
添加
--apilog=PATH_TO_FILE标志,将操作日志保存到本地文件。将PATH_TO_FILE替换为要保存日志的位置。bq 命令行工具工作时须进行基于 REST 的标准 API 调用,这有助于在问题排查时进行查看。 当您向 Cloud Customer Care 报告问题时,附上此日志也很有帮助。使用
-或stdout代替路径会将日志打印到 Google Cloud 控制台。将--apilog设置为stderr可输出标准错误文件。如需记录更多请求,请使用--httplib2_debuglevel=LOG_LEVEL标志。LOG_LEVEL越高,日志中记录的有关 HTTP 请求的信息就越多。- 如需排查错误,请执行以下操作:
在获取作业状态或查看有关资源(如表和数据集)的详细信息时,输入
--format=prettyjson标志。使用此标志可输出 JSON 格式的响应,包括reason属性。您可以使用reason属性查找错误消息。如需详细了解运行命令时出现的错误,请使用
--debug_mode标志。
全局标志
您可以将以下标志与任何 bq 命令结合使用(如适用):
--api=ENDPOINT- 指定要调用的 API 端点。默认值为
https://www.googleapis.com。 --api_version=VERSION- 指定要使用的 API 版本。默认值为
v2。 --apilog=FILE将所有 API 请求和响应记录到
FILE指定的文件中。可能的值如下:- 文件的路径 - 记录到指定文件
stdout- 记录到标准输出stderr- 记录到标准错误false- 系统不会记录 API 请求和响应(默认值)
--use_google_auth={true|false}如果设置为
true,则会启用使用 Google 身份验证库进行身份验证的功能。默认值为true。--bigqueryrc=PATH指定 bq 命令行工具配置文件的路径。如果未指定
--bigqueryrc标志,则命令会使用BIGQUERYRC环境变量。如果未设置环境变量,则使用$HOME/.bigqueryrc。如果该文件不存在,则系统会使用~/.bigqueryrc。如需了解详情,请参阅为命令行标志设置默认值。--ca_certificates_file=PATH指定 Certificate Authority Service (CA) 文件的位置。
--dataset_id=DATASET_ID指定要与命令搭配使用的默认数据集。系统会在不适用的情况下忽略此标志。您可以使用
PROJECT:DATASET或DATASET格式指定DATASET_ID参数。 如果缺少PROJECT部分,则使用默认项目。您可以通过指定--project_id标志来替换默认项目设置。--debug_mode={true|false}如果设置为
true,则系统会显示 Python 异常的回溯。默认值为false。--disable_ssl_validation={true|false}如果设置为
true,则系统会启用 HTTPS 证书验证。默认值为false。--discovery_file=PATH指定为了发现而要读取的 JSON 文件。
--enable_gdrive={true|false}如果此标志设置为
false,则系统会请求一个不包含 Google 云端硬盘范围的新 OAuth 令牌。默认值为true;系统会请求一个包含云端硬盘范围的新 OAuth 令牌。 如需在使用用户账号进行身份验证时将此标志设置为false,必须将--use_google_auth标志设置为false。--fingerprint_job_id={true|false}如需使用派生自作业配置指纹的作业 ID,请设置为
true。这能防止同一个作业意外运行多次。默认值为false。--format=FORMAT此标志指定命令输出的格式。请使用以下某个值:
pretty:设置了格式的表输出sparse:较为简单的表输出prettyjson:简单易读的 JSON 格式json:极其紧凑的 JSONcsv:带有标题的 csv 格式
pretty、sparse和prettyjson用于提供人类可读的信息。json和csv旨在供其他程序使用。如果指定了none,则命令不会产生任何输出。如果没有--format标志,则根据命令选择适当的输出格式。--headless={true|false}如需在无用户互动的情况下运行
bq会话,请设置为true。例如,debug_mode不会进入调试程序,信息输出的频率会降低。默认值为false。--httplib2_debuglevel=DEBUG_LEVEL此标志指定是否显示 HTTP 调试信息。如果
DEBUG_LEVEL大于0,则除了错误消息之外,此命令还会将 HTTP 服务器请求和响应记录到 stderr。如果DEBUG_LEVEL不大于 0,或者未使用--httplib2_debuglevel标志,则仅会提供错误消息。例如:
--httplib2_debuglevel=1
--job_id=JOB_ID为新作业指定作业标识符。此标志仅适用于创建作业的命令:
cp、extract、load和query。如果您不使用--job_id标志,则此命令会生成一个唯一的作业标识符。如需了解详情,请参阅以编程方式运行作业。--job_property=KEY:VALUE此标志表示要在作业配置的属性字段中包含的键值对。重复使用此标志可指定多个额外属性。
--location=LOCATION此标志表示与您的单区域或多区域位置相对应的字符串。在您使用
--jobs标志显示有关作业的信息时,bq cancel命令和bq show命令需要此位置标志。对于以下命令,此位置标志为可选项。querycploadextractpartitionupdatewaitmk(使用--dataset、--reservation、--capacity_commitment或--reservation_assignment标志时)ls(使用--reservation、--capacity_commitment或--reservation_assignment标志时)
所有其他命令均会忽略
--location标志。--max_rows_per_request=MAX_ROWS此标志表示一个整数,它指定了每次读取时返回的最大行数。
--project_id=PROJECT指定要用于命令的项目。
--proxy_address=PROXY此标志指定要用于连接到 Google Cloud的代理主机的名称或 IP 地址。
--proxy_password=PASSWORD此标志指定在向代理主机进行身份验证时要使用的密码。
--proxy_port=PORT此标志指定要用于连接到代理主机的端口号。
--proxy_username=USERNAME此标志指定在向代理主机进行身份验证时要使用的用户名。
--quiet={true|false}或-q={true|false}如需在作业运行期间禁止状态更新,请设置为
true。默认值为false。--synchronous_mode={true|false}或-sync={true|false}如需创建作业并立即返回成功完成状态作为错误代码,请设置为
false。如果此标志设置为true,则此命令会等待作业完成后再返回,并返回作业完成状态作为错误代码。默认值为true。--trace=token:TOKEN指定要包含在 API 请求中包含的跟踪记录令牌。
--use_regional_endpoints={true|false}处于预览版阶段。如需连接到区域端点,请将
--use_regional_endpoints标志设置为true,并将--location标志设置为要连接的区域。默认值为false。
已弃用的全局标志
以下用于从文件指定 bq 命令行工具标志的全局标志已弃用。如需从文件指定标志,请使用 --bigqueryrc 标志。
--flagfile=PATH
如果指定此标志,则所提供的文件中的标志定义会插入到 bq 命令行工具中。默认值为 ''。如需了解详情,请参阅
为命令行标志设置默认值。
命令
以下各部分介绍了 bq 命令行工具命令及其特定于命令的标志和参数。
bq add-iam-policy-binding
使用 bq add-iam-policy-binding 命令,只需一步即可检索表或视图的 Identity and Access Management (IAM) 政策并向该政策添加绑定。
此命令是执行以下三个步骤的替代方法:
- 使用
bq get-iam-policy命令检索政策文件(采用 JSON 格式)。 - 修改政策文件
- 使用
bq set-iam-policy命令通过新绑定更新政策。
摘要
bq add-iam-policy-binding [FLAGS] --member=MEMBER_TYPE:MEMBER --role=ROLE [--table] RESOURCE
示例
bq add-iam-policy-binding --member=user:myAccount@gmail.com \ --role=roles/bigquery.dataViewer myDataset.myTable
标志和参数
bq add-iam-policy-binding 命令使用以下标志和参数:
--member=MEMBER_TYPE:MEMBER必需。使用
--member标志可以指定 IAM 政策绑定的成员部分。--member标志必须与--role标志同时指定。--member和--role标志的一个组合等同于一个绑定。MEMBER_TYPE值用于指定 IAM 政策绑定中的成员类型。请使用以下某个值:userserviceAccountgroupdomain
MEMBER值用于指定 IAM 政策绑定中的成员的电子邮件地址或网域。--role=ROLE必需。此标志指定 IAM 政策绑定的角色部分。
--role标志必须与--member标志同时指定。--member和--role标志的一个组合等同于一个绑定。--table={true|false}如需在
RESOURCE参数不是表标识符或视图标识符时返回错误,请将--table标志设置为true。默认值为false。支持此标志以与其他命令保持一致。RESOURCE要添加到其政策的表或视图。
如需了解详情,请参阅 IAM 政策参考文档。
bq cancel
使用 bq cancel 命令可取消 BigQuery 作业。
摘要
bq [--synchronous_mode=false] cancel JOB_ID
示例
bq cancel bqjob_12345
bq --synchronous_mode=false cancel bqjob_12345
标志和参数
bq cancel 命令使用以下标志和参数:
--synchronous_mode=false- 如果您不想等待
bq cancel命令完成,请将全局--synchronous_mode标志设置为false。默认值为true。 JOB_ID- 要取消的作业。
如需详细了解如何使用 bq cancel 命令,请参阅管理作业。
bq cp
使用 bq cp 命令执行以下任务:
摘要
bq cp [FLAGS] SOURCE_TABLE DESTINATION_TABLE
示例
bq cp myDataset.myTable myDataset.myTableCopy
标志和参数
bq cp 命令使用以下标志和参数:
--append_table={true|false}或-a={true|false}如需将表附加到现有表,请设置为
true。默认值为false。您不能同时使用标志设置
--append_table=true和--clone=true。--clone={true|false}如需创建表克隆,请设置为
true。基表可以是标准表、表克隆或表快照。目标表是表克隆。默认值为false;如果--clone=true和--snapshot=true均未指定,则目标表与基表的类型相同。 需要用到--no_clobber标志。您不能同时使用标志设置
--append_table=true和--clone=true。--destination_kms_key=KEY此标志指定用于加密目标表数据的 Cloud KMS 密钥资源 ID。
例如:
--destination_kms_key=projects/myProject/locations/global/keyRings/myKeyRing/cryptoKeys/myKey
--expiration=SECONDS表快照到期前的秒数。如果未添加此标志,则表快照到期时间设置为包含新表快照的数据集的默认到期时间。 与
--snapshot标志搭配使用。--force={true|false}或-f={true|false}如需在无提示的情况下覆盖目标表(如果存在),请设置为
true。默认值为false;如果存在目标表,此命令会在覆盖之前先提示进行确认。--no_clobber={true|false}或-n={true|false}如需禁止覆盖目标表(如果存在),请设置为
true。默认值为false;如果目标表存在,则会覆盖该表。--restore={true|false}此标志即将被弃用。如需通过表快照创建一个可写入表,请使用
bq cp命令或bq cp --clone命令。--snapshot={true|false}如需创建
SOURCE_TABLE参数中指定的表的表快照,请设置为true。基表可以是标准表、表克隆或其他表快照。默认值为false;如果--clone=true和--snapshot=true均未指定,则目标表与基表的类型相同。需要用到--no_clobber标志。SOURCE_TABLE此标志表示要复制的表。
DESTINATION_TABLE此标志表示要复制到的表。
如需详细了解如何使用 cp 命令,请参阅以下内容:
bq extract
使用 bq extract 命令可将表数据导出到 Cloud Storage。
摘要
bq extract [FLAGS] RESOURCE DESTINATION
示例
bq extract --compression=GZIP --destination_format=CSV --field_delimiter=tab \ --print_header=false myDataset.myTable gs://my-bucket/myFile.csv.gzip
bq extract --destination_format=CSV --field_delimiter='|' myDataset.myTable \ gs://myBucket/myFile.csv
标志和参数
bq extract 命令使用以下标志和参数:
--compression=COMPRESSION_TYPE指定用于导出文件的压缩类型。可能的值如下:
GZIPDEFLATESNAPPYNONE
默认值为
NONE。如需了解每种压缩类型支持的格式,请参阅导出格式和压缩类型。
--destination_format=FORMAT此标志指定导出的数据的格式。可能的值如下:
CSVNEWLINE_DELIMITED_JSONAVROPARQUET
默认值为
CSV。--field_delimiter=DELIMITER对于 CSV 导出文件,请指定用于标记输出文件中各列之间边界的字符。该分隔符可以是任何 ISO-8859-1 单字节字符。您可以使用
\t或tab指定制表符分隔符。--print_header={true|false}如需禁止针对带有标题的格式输出标题行,请设置为
false。默认值为true;包含标题行。RESOURCE此标志表示要从中导出数据的表。
DESTINATION此标志表示接收导出的数据的存储位置。
如需详细了解如何使用 bq extract 命令,请参阅导出表数据。
bq get-iam-policy
使用 bq get-iam-policy 命令可检索资源的 IAM 政策并将其输出到 stdout。资源可以是表、视图或槽预留。此政策采用 JSON 格式。
摘要
bq get-iam-policy [FLAGS] RESOURCE
示例
bq get-iam-policy myDataset.myTable
bq get-iam-policy --reservation myReservation
标志和参数
bq get-iam-policy 命令使用以下标志和参数:
--table={true|false}或--t={true|false}- 要在
RESOURCE不是表标识符或视图标识符时返回错误,请将--table标志设置为true。默认值为false。支持此标志以与其他命令保持一致。 --reservation={true|false}- 如需获取预留的 IAM 政策,请设置为
true(预览版)。默认值为false。使用此标志时,RESOURCE会被视为预留标识符。预留可以包含可选的项目和位置前缀:myProject:myLocation.myReservation。 RESOURCE- 此标志表示要获取其政策的表或视图。
如需详细了解 bq get-iam-policy 命令,请参阅使用 IAM 控制对资源的访问权限。
bq head
使用 bq head 命令显示表的指定行和列。默认情况下,系统会显示前 100 行的所有列。
摘要
bq head [FLAGS] [TABLE]
示例
bq head --max_rows=10 --start_row=50 --selected_fields=field1,field3 \ myDataset.myTable
标志和参数
bq head 命令使用以下标志和参数:
--job=JOB or -j=JOB- 如需读取查询作业的结果,请指定此标志并提供有效的作业 ID。
--max_rows=MAX or -n=MAX- 此标志表示一个整数,指示了在显示表数据时要输出的行数上限。默认值为
100。 --selected_fields=COLUMN_NAMES or -c=COLUMN_NAMES- 此标志表示一个英文逗号分隔列表,指定了在显示表数据时要返回的部分字段(包括嵌套字段和重复字段)。如果未指定此标志,则系统会返回所有列。
--start_row=START_ROW or -s=START_ROW- 此标志表示一个整数,指定了在显示表数据之前要跳过的行数。默认值为
0;表数据从第一行开始。 --table={true|false}或-t={true|false}- 如需在命令参数不是表或视图时返回错误,请设置为
true。默认值为false。支持此标志以与其他命令保持一致。 TABLE- 此标志表示您要检索其数据的表。
如需详细了解如何使用 bq head 命令,请参阅管理表数据。
bq help
使用 bq help 命令可在工具中显示 bq 命令行工具文档。
摘要
bq help [COMMAND]
标志和参数
bq help 命令使用以下标志和参数:
COMMAND- 指定要获取其在线帮助的特定 bq 命令行工具命令。
bq insert
使用 bq insert 命令可通过流式插入将以换行符分隔的 JSON 格式的数据行从文件插入表中。数据类型会被转换以匹配目标表的列类型。此命令仅用于测试目的。如需将数据流式传输到 BigQuery 中,请使用 insertAll API 方法。
摘要
bq insert [FLAGS] TABLE FILE
示例
bq insert --ignore_unknown_values --template_suffix=_insert myDataset.myTable /tmp/myData.json
echo '{"a":1, "b":2}' | bq insert myDataset.myTable
标志和参数
bq insert 命令使用以下标志和参数:
--ignore_unknown_values={true|false}或-i={true|false}- 如果此标志设置为
true,BigQuery 会忽略与表架构不匹配的任何键值对,并插入所含数据与该架构匹配的行。如果此标志设置为false,则系统不会插入所含数据与表架构不匹配的行。默认值为false。 --skip_invalid_rows={true|false}或-s={true|false}- 如果此标志设置为
true,则 BigQuery 会尝试插入所有有效行,即使存在无效行也是如此。如果此标志置为false,则在存在任何无效行时,该命令会失败。默认值为false。 --template_suffix=SUFFIX or -x=SUFFIX- 指定此标志时,系统会将目标表 TABLE 视为基本模板,并将行插入到名为
{destination}{templateSuffix}的实例表中。BigQuery 会使用基本模板的架构创建实例表。 TABLE- 此标志表示要向其中插入数据的表。
FILE- 此标志表示包含您要插入的数据的文件。
如需详细了解如何使用 bq insert 命令,请参阅将数据流式插入到 BigQuery。
bq load
使用 bq load 命令可将数据加载到表中。
摘要
bq load [FLAGS] DESTINATION_TABLE SOURCE_DATA [SCHEMA]
示例
bq load myDataset.newTable gs://mybucket/info.csv ./info_schema.json
标志和参数
bq load 命令使用以下标志和参数:
--allow_jagged_rows={true|false}- 如需允许 CSV 数据末尾缺少可选列,请设置为
true。 --preserve_ascii_control_characters={true|false}- 如需允许 CSV 数据中嵌入的 ASCII 控制字符,请设置为
true。 --allow_quoted_newlines={true|false}- 如需允许 CSV 数据中包含带英文引号的换行符,请设置为
true。 --autodetect={true|false}- 如需为 CSV 和 JSON 数据启用架构自动检测功能,请设置为
true。默认值为false。如果--autodetect为false,且未使用--schema标志指定任何架构,并且存在目标表,则使用目标表的架构。 --clustering_fields=COLUMNS- 此标志表示一个以英文逗号分隔的列名称列表(最多包含 4 个列名称),指定了要用于表聚簇的字段。
--column_name_character_map=SCOPE- 定义列名称中字符的范围和处理方式,并具有用于启用灵活的列名称的选项。对于 CSV 文件,必须使用
--autodetect选项。如需查看可能值的列表,请参阅load_option_list。 --destination_kms_key=KEY- 此标志指定用于加密目标表数据的 Cloud KMS 密钥资源 ID。
--encoding=ENCODING_TYPE or -E=ENCODING_TYPE- 数据中使用的字符编码。请使用以下某个值:
ISO-8859-1(也称为 Latin-1)UTF-8
--field_delimiter=DELIMITER or -F=DELIMITER- 指定用于标记数据中各列之间边界的字符。该分隔符可以是任何 ISO-8859-1 单字节字符。您可以使用
\t或tab指定制表符分隔符。 --ignore_unknown_values={true|false}- 如果对于 CSV 和 JSON 文件设置为
true,则系统会加载所含额外列值与表架构不匹配的行,但会忽略额外列。如果对于 Avro、Parquet 和 ORC 文件设置为true,则系统会忽略表架构中不存在的文件架构中的字段,并且不会加载这些字段。 --json_extension=JSON_TYPE指定要加载的 JSON 文件类型。仅适用于 JSON 文件。可能的值如下:
GEOJSON- 以换行符分隔的 GeoJSON 文件
如需使用此标志,必须将
--source_format标志设置为NEWLINE_DELIMITED_JSON。如需了解详情,请参阅加载以换行符分隔的 GeoJSON 文件。
--max_bad_records=MAX此标志表示一个整数,指定了作业中允许的最大错误记录数量,超过此数量之后,整个作业就会失败。默认值为
0。无论--max_bad_records值是多少,任意类型的错误最多返回 5 个。此标志仅适用于加载 CSV、JSON 和 Google 表格数据。--null_marker=STRING此标志表示一个可选的自定义字符串,该字符串代表 CSV 数据中的一个
NULL值。--projection_fields=PROPERTY_NAMES如果将
--source_format设置为DATASTORE_BACKUP,则此标志表示要从 Datastore 导出文件中加载哪些实体属性。以英文逗号分隔的列表形式指定属性名称。属性名称区分大小写,且必须是顶级属性。您还可以将此标志与 Firestore 导出文件一起使用。--quote=CHARACTER此标志指定用于括起 CSV 数据中字段的英文引号字符。
CHARACTER参数可以是任何单字节字符。默认值为英文双引号 (")。 如需指定没有英文引号字符,请使用空字符串""。--replace={true|false}如需在加载新数据时清空任何现有数据和架构,请设置为
true。除非您指定--destination_kms_key标志,否则所有 Cloud KMS 密钥也会被移除。默认值为false。相当于
JobConfigurationLoad.writeDisposition的WRITE_TRUNCATE值。--schema={SCHEMA_FILE|SCHEMA}此标志指定本地 JSON 架构文件的路径,或英文逗号分隔的列定义列表(采用
FIELD:DATA_TYPE, FIELD:DATA_TYPE形式)。如果您使用架构文件,请勿在文件名中添加扩展名。例如:
--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER
如果未指定架构,则
--autodetect为false,并且存在目标表,则系统会使用目标表的架构。--schema_update_option=OPTION在将数据附加到表时(在加载作业或查询作业中),或者覆盖表分区时,此标志可指定如何更新目标表的架构。请使用以下某个值:
ALLOW_FIELD_ADDITION:允许添加新字段ALLOW_FIELD_RELAXATION:允许将REQUIRED字段放宽为NULLABLE
重复使用此标志可指定多个架构更新选项。
--skip_leading_rows=NUMBER_OF_ROWS此标志表示一个整数,指定了在源文件开头处要跳过的行数。 默认值为
0。--file_set_spec_type=FILE_SET_SPEC_TYPE指定如何解读源 URI。
FILE_SYSTEM_MATCH:通过列出对象存储中的文件来扩展源 URI。如果未设置 FileSetSpecType,则这是默认行为。NEW_LINE_DELIMITED_MANIFEST:表示提供的 URI 是以换行符分隔的清单文件,每行一个 URI。清单文件不支持通配符 URI,所有引用的数据文件都必须与清单位于同一存储桶中。
例如,如果您的源 URI 为
"gs://bucket/path/file"且file_set_spec_type为FILE_SYSTEM_MATCH,则该文件会直接用作数据文件。如果file_set_spec_type为NEW_LINE_DELIMITED_MANIFEST,则文件中的每一行都会被解读为指向一个数据文件的 URI。--source_format=FORMAT此标志表示源数据的格式。请使用以下某个值:
CSVNEWLINE_DELIMITED_JSONAVRODATASTORE_BACKUP(将此值用于 Filestore)PARQUETORC
--time_partitioning_expiration=SECONDS此标志表示一个整数,指定了应在何时删除基于时间的分区(以秒为单位)。到期时间以分区的世界协调时间 (UTC) 日期加上这个整数值为准。负数表示无到期时间。
--time_partitioning_field=COLUMN_NAME此标志指定用于确定如何创建基于时间的分区的字段。如果在未使用此值的情况下启用了基于时间的分区,表会根据加载时间进行分区。
--time_partitioning_type=INTERVAL此标志会在表上启用基于时间的分区,并设置分区类型。请使用以下某个值:
DAYHOURMONTHYEAR
基于时间的分区的默认分区类型为
DAY。--use_avro_logical_types={true|false}如果
--source_format标志设置为AVRO,则将此标志设置为true可将逻辑类型转换为对应的类型(如TIMESTAMP),而不是仅使用其原始类型(如INTEGER)。--decimal_target_types=DECIMAL_TYPE此标志用于确定如何转换
Decimal逻辑类型。与JobConfigurationLoad.decimalTargetTypes相同。重复使用此标志可以指定多个定位类型。--parquet_enum_as_string={true|false}如果
--source_format标志设置为PARQUET,并且您希望 BigQuery 将 ParquetENUM逻辑类型推断为STRING值,则将此标志设置为true。默认值为false。--parquet_enable_list_inference={true|false}如果
--source_format标志设置为PARQUET,则此标志表示是否对 ParquetLIST逻辑类型使用架构推断。--reference_file_schema_uri=URI指定具有创建外部表的预期表架构的引用文件的路径。与
ExternalDataConfiguration.referenceFileSchemaUri相同。系统会为 Avro、ORC 和 PARQUET 格式启用此标志。DESTINATION_TABLE此标志表示要向其中加载数据的表。
SOURCE_DATA此标志表示包含要加载的数据的文件的 Cloud Storage URI。
SCHEMA此标志表示目标表的架构。
如需详细了解如何使用 bq load 命令从 Cloud Storage 加载数据,请参阅以下内容:
如需详细了解如何使用 bq load 命令从本地源加载数据,请参阅以下内容:
bq ls
使用 bq ls 命令可列出集合中的对象。
摘要
bq ls [FLAGS] [RESOURCE]
示例
bq ls myDataset
标志和参数
bq ls 命令使用以下标志和参数:
--all={true|false}或-a={true|false}- 如需显示所有结果,请设置为
true。显示来自所有用户或所有数据集(包括隐藏的数据集)的作业。在列出传输配置或传输运行时,不需要使用此标志。 默认值为false。 --capacity_commitment={true|false}如需列出容量承诺,请设置为
true并使用--location标志指定该位置。如需了解详情,请参阅查看购买的承诺。例如:
bq ls --capacity_commitment=true --location='us'--datasets={true|false}或-d={true|false}如需列出数据集,请设置为
true。默认值为false。--filter="FILTER"过滤列出的资源以匹配
FILTER参数。对于数据集,
FILTER包括一个或多个以空格分隔的三元组,格式为labels.KEY:VALUE。如果提供了多个三元组,则命令仅会返回与所有三元组匹配的数据集(即命令使用AND逻辑运算符,而非OR)。如果您要指定多个三元组,则使用英文引号引起FILTER值。如需根据数据集标签进行过滤,请使用您应用于数据集的键和值。
例如:
--filter "labels.department:marketing labels.team:sales"
对于转移作业配置,请将
dataSourceIds用作键,并将以下数据源之一用作值:
amazon_s3- Amazon S3 数据转移azure_blob_storage- Azure Blob Storage 数据转移dcm_dt- Campaign Manager 数据转移google_cloud_storage- Cloud Storage 数据转移cross_region_copy- 数据集副本dfp_dt- Google Ad Manager 数据转移displayvideo- Display & Video 360 数据转移google_ads- Google Ads 数据转移merchant_center- Google Merchant Center 数据转移mysql- MySQL 数据转移play- Google Play 数据转移scheduled_query- 计划查询数据传输search_ads- Search Ads 360 数据转移youtube_channel- YouTube 频道数据转移youtube_content_owner- YouTube 内容所有者数据转移redshift- Amazon Redshift 迁移on_premises- Teradata 迁移
例如:
--filter labels.dataSourceIds:dcm_dt
对于转移作业运行,请将 states 用作键,并将以下一个或多个转移作业状态用作值:
SUCCEEDEDFAILEDPENDINGRUNNINGCANCELLED
例如:
--filter="states:FAILED"
对于作业,请将 states 用作键,并将以下一个或多个作业状态用作值:
RUNNINGPENDINGDONE
例如:
bq ls --jobs --filter="states:RUNNING" bq ls --jobs --filter="states:RUNNING,PENDING"
--jobs={true|false}或-j={true|false}- 如需列出作业,请设置为
true。默认值为false。默认情况下,结果数上限为 10 万个。 --max_creation_time=MAX_CREATION_TIME_MS- 一个整数,表示 Unix 纪元时间戳(以毫秒为单位)。与
--jobs标志一同指定时,此标志仅会列出在时间戳之前创建的作业。 --max_results=MAX_RESULTS or -n=MAX_RESULTS- 此标志表示一个整数,用于指明最大结果数。默认值为 50,最大值为 1000。如果您的作业数量超过 1000 个,则可以使用
page_token标志,通过分页列出所有作业。 - --
min_creation_time=MIN_CREATION_TIME_MS - 一个整数,表示 Unix 纪元时间戳(以毫秒为单位)。与
--jobs标志一同指定时,此标志仅会列出在时间戳之后创建的作业。 --message_type=messageTypes:MESSAGE_TYPE如需仅列出特定类型的转移作业运行日志消息,请指定
messageTypes:MESSAGE_TYPE。可能的值如下:INFOWARNINGERROR
--models={true|false}或-m={true|false}如需列出 BigQuery ML 模型,请设置为
true。默认值为false。--page_token=TOKEN或-k=TOKEN此标志列出从指定的页面令牌开始的项。
--projects={true|false}或-p={true|false}如需显示所有项目,请设置为
true。默认值为false。--reservation={true|false}如需列出给定项目和位置的所有预留,请设置为
true。默认值为false。与--project_id和--location标志搭配使用。例如:
bq ls --reservation=true --project_id=myProject --location=us
--reservation_assignment={true|false}如需列出给定项目和位置的所有预留分配,请设置为
true。默认值为false。与--project_id和--location标志搭配使用。--routines={true|false}如需列出指定数据集中的所有例程,请设置为
true。默认值为false。例程包括用户定义的永久性函数、表函数(预览版)和 存储过程。--row_access_policies指定此标志 时,系统会列出表的所有行级层访问权限政策。行级层访问权限政策用于行级层安全性。您必须以
dataset.table格式提供表名称。--run_attempt=RUN_ATTEMPT与
--transfer_run标志搭配使用。如需列出指定转移作业运行的所有运行尝试,请设置为RUN_ATTEMPT_UNSPECIFIED。如需仅列出最新的运行尝试,请设置为LATEST。默认值为LATEST。--transfer_config={true|false}如需列出指定项目和位置中的转移作业配置,请设置为
true。与--transfer_location和--project_id标志搭配使用。默认值为false。--transfer_location=LOCATION此标志列出指定位置的转移作业配置。您在创建传输时设置传输位置。
--transfer_log={true|false}与
--transfer_run标志搭配使用。如需列出指定转移作业运行的转移作业日志消息,请设置为true。默认值为false。--transfer_run={true|false}此标志列出指定转移作业配置的转移作业运行。
例如:
bq ls --transfer_run=true projects/myProject/locations/us/transferConfigs/12345
RESOURCE此标志表示要列出其对象的集合。资源可以是数据集、项目、预留或转移作业配置。
如需详细了解如何使用 bq ls 命令,请参阅以下内容:
bq mk
使用 bq mk 命令可创建 BigQuery 资源。
摘要
bq mk TYPE_FLAG [OTHER FLAGS] [ARGS]
标志和参数
bq mk 命令接受一个类型标志,用于指定要创建的资源类型以及依赖于资源类型的其他标志。
TYPE_FLAG:将以下标志之一设置为 true。您的选择指定了要创建的资源类型。
--capacity_commitment:购买容量承诺。--connection:创建连接。--dataset或-d:创建数据集。--materialized_view:创建物化视图。--reservation:创建预留。--reservation_assignment:为预留分配文件夹、项目或组织。--table或-t:创建表。--transfer_config:创建转移作业配置。--transfer_run:为某个时间范围创建转移作业运行。--view:创建视图。
bq mk 命令支持所有类型的资源的以下标志:
--force={true|false}或-f={true|false}- 如需在已存在同名资源的情况下忽略错误,请将该值设置为
true。如果资源已存在,则退出代码为 0,但将此标志设置为true不会导致bq mk命令覆盖资源。默认值为false。
bq mk 命令支持其他标志,具体取决于您要创建的资源类型,如以下部分所述。
bq mk --capacity_commitment
如需购买容量承诺,请将 --capacity_commitment 设置为 true 并使用以下标志:
--location=LOCATION- 指定承诺的位置。
--plan=PLAN_TYPE指定承诺方案类型。必须是以下值之一:
ANNUALTHREE_YEAR
使用旧版固定费率价格的客户还可以使用以下值之一:
FLEXMONTHLYANNUAL
--renewal_plan=RENEWAL_TYPE指定续订方案类型。
ANNUAL或THREE_YEAR承诺方案的必需参数。必须是以下各项之一:ANNUALTHREE_YEARNONE
使用旧版固定费率价格的客户还可以使用以下值之一:
FLEXMONTHLYANNUAL
--project_id=PROJECT_ID指定管理槽的项目。
--slots=NUMBER_OF_BASELINE_SLOTS指定要购买的基准槽数。
--edition=EDITION与容量承诺关联的版本。必须是以下其中一项:
ENTERPRISEENTERPRISE_PLUS
如需了解详情,请参阅购买槽。
bq mk --connection
创建连接。支持以下标志:
--connection_type=CONNECTION_TYPE- 连接类型,例如对于 Cloud SQL 连接为
CLOUD_SQL。 --properties=PROPERTIESJSON 格式的连接专属参数。必须指定
instanceId、database和type。如果您要创建 Spanner 连接并希望使用 Data Boost,请添加
"useParallelism":true和"useDataBoost":true对。--connection_credential=CONNECTION_CREDENTIALJSON 格式的连接凭据。必须指定
username和password。--project_id=PROJECT_ID指定连接所属项目的 ID。
--location=LOCATION指定将存储连接的存储位置。
--display_name=DISPLAY_NAME为连接指定可选的好记名称。
--description=DESCRIPTION指定连接的可选说明。
--iam_role_id=ROLE_ID对于 BigQuery Omni on AWS,指定允许访问资源的 IAM 角色。
请使用以下格式:
"arn:aws:iam::AWS_ACCOUNT_ID:role/POLICY_NAME",其中:- AWS_ACCOUNT_ID 是连接的 AWS IAM 用户的 ID 号。
- POLICY_NAME 是政策名称。
示例:
"arn:aws:iam::0123456789AB:policy/s3-read-role"--tenant_id=TENANT_ID对于 Microsoft Azure 上的 BigQuery Omni,请指定包含 Microsoft Azure Storage 账号的 Microsoft Azure 目录的租户 ID。
CONNECTION_ID指定连接的可选连接 ID。如果未提供连接 ID,则系统会自动生成一个唯一 ID。连接 ID 可以包含字母、数字和下划线。
如需了解详情,请参阅连接简介。
bq mk --dataset
创建数据集。支持以下标志:
--add_tags=TAGS- 指定要附加到新数据集的标记,以英文逗号分隔。例如
556741164180/env:prod,myProject/department:sales。每个标记必须具有命名空间键名称和值简称。 --default_kms_key=KEY- 此标志指定在创建或查询表期间未明确提供密钥的情况下,用于加密数据集中的表数据的默认 Cloud KMS 密钥资源 ID。
--default_partition_expiration=SECONDS- 此标志表示一个整数,用于指定数据集中新创建的分区表中所有分区的默认到期时间(以秒为单位)。分区的到期时间设置为分区的世界协调时间 (UTC) 日期加上这个整数值。如果设置了该属性,则该值将替换数据集级层的默认表到期时间(如果存在)。如果在创建或更新分区表时提供
--time_partitioning_expiration标志,则表级层的分区到期时间优先于数据集级层的默认分区到期时间。 --default_table_expiration=SECONDS- 此标志表示一个整数,用于指定数据集中新创建的表的默认生命周期(以秒为单位)。到期时间设置为当前世界协调时间 (UTC) 加上此值。
--description=DESCRIPTION- 此标志指定数据集的说明。
--external_source=EXTERNAL_SOURCE- 在创建联合数据集时指定外部数据源。
--label=KEY:VALUE- 指定数据集的标签。重复使用此标志可以指定多个标签。
--location=LOCATION或--data_location=LOCATION- 指定数据集的位置。首选
--location标志;--data_location标志是旧版标志。 --max_time_travel_hours=HOURS- 指定数据集的时间旅行窗口的时长(以小时为单位)。
--max_time_travel_hours值必须是 48(2 天)到 168(7 天)之间以 24 的倍数(48、72、96、120、144、168)表示的整数。如果未指定此标志,则默认值为 168 小时。 --storage_billing_model=BILLING_MODEL指定数据集的存储空间结算模式。您可以将
--storage_billing_model值设置为PHYSICAL以在计算存储费用时使用物理字节,或设置为LOGICAL以使用逻辑字节。默认值为LOGICAL。更改数据集的结算模式后,更改需要 24 小时才能生效。
更改数据集的存储空间结算模式后,您必须等待 14 天才能再次更改存储空间结算模式。
如需了解详情,请参阅创建数据集。
bq mk --materialized_view
创建物化视图。支持以下标志:
--enable_refresh={true|false}- 如需为物化视图停用自动刷新功能,请设置为
false。创建物化视图时,默认值为true。 --refresh_interval_ms=MILLISECONDS- 此标志指定物化视图的刷新间隔时间毫秒数。如果未指定此标志,则启用了刷新功能的物化视图的默认刷新间隔时间为 180 万毫秒,即 30 分钟。
如需了解详情,请参阅创建和使用具体化视图。
bq mk --reservation
使用专用槽创建预留。 支持以下标志:
--target_job_concurrency=CONCURRENCY- 指定同时执行的查询的目标数量。默认值为 0,表示系统会根据预留大小自动计算并发性。如需了解详情,请参阅使用查询队列。
--ignore_idle_slots={true|false}- 如需将在此预留中运行的作业限制为仅使用分配给该预留的槽,请设置为
true。默认值为false;此预留中的作业可以使用其他预留中的空闲槽,或使用未分配给任何预留的槽。如需了解详情,请参阅空闲槽。 --location=LOCATION- 指定预留的位置。
--project_id=PROJECT_ID- 此标志指定拥有预留的项目。
--slots=NUMBER_OF_BASELINE_SLOTS- 此标志指定要分配给此预留的基准槽数。
--edition=EDITION- 与容量承诺关联的版本。必须是以下其中一项:
STANDARDENTERPRISEENTERPRISE_PLUS
--autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS- 分配给预留的自动扩缩槽数。此值等于预留大小上限值减去基准槽数。只能与
--edition标志搭配使用。 --max_slots=MAXIMUM_NUMBER_OF_SLOTS- 预留使用的槽数上限。必须使用
--scaling_mode标志进行配置(预览版)。 --scaling_mode=SCALING_MODE预留的伸缩模式。必须是以下其中一项:
IDLE_SLOTS_ONLYALL_SLOTSAUTOSCALE_ONLYSCALING_MODE_UNSPECIFIED
必须使用
--max_slots标志进行配置(预览版)。
如需了解详情,请参阅创建包含专用槽的预留。
bq mk --reservation_assignment
将项目、文件夹或组织分配到预留。 支持以下标志:
--assignee_id=ASSIGNEE_ID- 此标志指定文件夹、组织或项目的 ID。
--assignee_type=ASSIGNEE_TYPE- 此标志指定要分配给预留的实体类型。以下项之一:
FOLDERORGANIZATIONPROJECT
--job_type=JOB_TYPE- 此标志指定要分配给预留的作业类型。以下项之一:
QUERYPIPELINEML_EXTERNALBACKGROUND
--location=LOCATION- 指定预留的位置。
--project_id=PROJECT_ID- 此标志指定拥有预留的项目。
--reservation_id=RESERVATION_ID- 此标志指定预留的 ID。
如需了解详情,请参阅使用预留分配。
bq mk --table
创建一个表。支持以下标志:
--add_tags=TAGS- 指定要附加到新表的标记,以英文逗号分隔。例如
556741164180/env:prod,myProject/department:sales。每个标记必须具有命名空间键名称和值简称。 --clustering_fields=COLUMNS- 此标志表示一个以英文逗号分隔的列名称列表(最多包含 4 个列名称),指定了要用于表聚簇的字段。如果与分区一起指定,则系统首先会对表进行分区,然后使用所提供的列对每个分区进行聚簇。
--description=DESCRIPTION- 指定表的说明。
--destination_kms_key=KEY- 此标志指定用于加密目标表数据的 Cloud KMS 密钥资源 ID。
--expiration=SECONDS- 指定表有效期。如果未指定
--expiration标志,则 BigQuery 会使用数据集的默认表有效期创建表,否则表不会过期。 --external_table_definition=STRING指定用于创建外部表的表定义。
对于 Cloud Storage 和 Google 云端硬盘外部表:
-
--external_table_definition={PATH_TO_FILE|DEFINITION} - 其值可以是包含表定义 (
PATH_TO_FILE) 或内嵌表定义 (DEFINITION) 的文件的路径。
DEFINITION字段的格式为SCHEMA@FORMAT=URI。SCHEMA值的格式是FIELD:DATA_TYPE, FIELD:DATA_TYPE形式的列定义列表(以英文逗号分隔)。如果数据格式是自描述形式(例如 Avro),或者您使用的是架构自动检测功能,则可以省略SCHEMA值。FORMAT值指定数据格式;为以下各项之一:AVROCSVDATASTORE_BACKUP(将此值用于 Filestore)ICEBERGNEWLINE_DELIMITED_JSONORCPARQUET
如果您指定表定义文件,请勿为文件名添加扩展名。
例如:
--external_table_definition=/tmp/tabledef
--external_table_definition=Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv
对于 Bigtable 外部表以及基于 AWS 和 Azure 的 BigLake 表:
--external_table_definition=PATH_TO_FILE- 该值必须是包含表定义的文件的路径。
对于基于 Cloud Storage 的 BigLake 表:
--external_table_definition=FORMAT=BUCKET_PATH@REGION.CONNECTION_NAME:FORMAT值指定数据格式;为以下各项之一:AVROCSVNEWLINE_DELIMITED_JSONICEBERGORCPARQUET
BUCKET_PATH是 Cloud Storage 中包含 BigLake 表数据的一个或多个文件的路径。您可以使用以下格式指定BUCKET_PATH:- 对于单个文件:
gs://bucket_name/[folder_name/]file_name。 - 对于单个存储桶中的多个文件:
gs://bucket_name/[folder_name/]*。 对于多个存储桶中的多个文件:
gs://mybucket1/*,gs://mybucket2/folder5/*。您可以使用通配符来限制 BigLake 表中包含的文件。例如,如果存储桶包含多种类型的数据,您可以通过指定
gs://bucket_name/*.parquet让表仅使用 PARQUET 文件。如需详细了解如何使用通配符,请参阅 URI 通配符。
- 对于单个文件:
REGION值指定包含连接的单区域或多区域。CONNECTION_NAME值指定要用于此外部表的云资源连接的名称。连接会确定用于从 Cloud Storage 读取数据的服务账号。
对于对象表:
--external_table_definition=BUCKET_PATH@REGION.CONNECTION_NAME:BUCKET_PATH是包含对象表所表示对象的 Cloud Storage 存储桶的路径,格式为gs://bucket_name/[folder_name/]*。您可以通过提供多个路径来指定多个存储桶,例如gs://mybucket1/*,gs://mybucket2/folder5/*。您可以使用通配符来限制对象表中包含的对象。例如,如果存储桶包含多种类型的非结构化数据,您可以通过指定
gs://bucket_name/*.pdf仅对 PDF 对象创建对象表。如需详细了解如何使用通配符,请参阅 URI 通配符。REGION值指定包含连接的单区域或多区域。CONNECTION_NAME值指定要用于此外部表的云资源连接的名称。连接会确定用于从 Cloud Storage 读取数据的服务账号。
-
--file_set_spec_type=FILE_SET_SPEC_TYPE指定如何解读源 URI。
FILE_SYSTEM_MATCH:通过列出对象存储中的文件来扩展源 URI。如果未设置 FileSetSpecType,则这是默认行为。NEW_LINE_DELIMITED_MANIFEST:表示提供的 URI 是以换行符分隔的清单文件,每行一个 URI。清单文件不支持通配符 URI,所有引用的数据文件都必须与清单位于同一存储桶中。
例如,如果您的源 URI 为
"gs://bucket/path/file"且file_set_spec_type为FILE_SYSTEM_MATCH,则该文件会直接用作数据文件。如果file_set_spec_type为NEW_LINE_DELIMITED_MANIFEST,则文件中的每一行都会被解读为指向一个数据文件的 URI。--reference_file_schema_uri=URI指定具有创建外部表的预期表架构的引用文件的路径。与
ExternalDataConfiguration.referenceFileSchemaUri相同。系统会为 Avro、ORC 和 PARQUET 格式启用此标志。--label=KEY:VALUE此标志指定表的标签。重复使用此标志可以指定多个标签。
--max_staleness=INTERVAL指定对表执行的操作是否使用了缓存的元数据,以及操作使用的缓存元数据的新鲜度。
如需停用元数据缓存,请指定 0。这是默认设置。
如需启用元数据缓存,请使用
INTERVAL数据类型文档中所述的Y-M D H:M:S格式指定 30 分钟到 7 天之间的间隔时间值。例如,指定0-0 0 4:0:0表示 4 小时过时间隔时间。使用此值时,如果缓存的元数据在过去 4 小时内刷新,则对表执行的操作会使用缓存的元数据。如果缓存的元数据早于该值,则操作会回退到从 Cloud Storage 检索元数据。--object_metadata=STRING在创建对象表时,请将此选项的值设置为
SIMPLE。仅在创建对象表时是必需的。
--range_partitioning=COLUMN_NAME,START,END,INTERVAL此标志指定整数范围分区的选项,如下所示:
column_name是用于创建整数范围分区的列。start是范围分区的起始值(含边界值)。end是范围分区的终止值(不含边界值)。interval是分区中每个范围的宽度。
例如:
--range_partitioning=customer_id,0,10000,100
--require_partition_filter={true|false}如需对所提供的表的查询使用分区过滤条件,请设置为
true。此标志仅适用于分区表。默认值为false。--schema={SCHEMA_FILE|SCHEMA}此标志指定本地 JSON 架构文件的路径,或英文逗号分隔的列定义列表(采用
FIELD:DATA_TYPE, FIELD:DATA_TYPE形式)。如果您使用架构文件,请勿在文件名中添加扩展名。示例:
--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER
--time_partitioning_expiration=SECONDS此标志表示一个整数,指定了应在何时删除基于时间的分区(以秒为单位)。到期时间以分区的世界协调时间 (UTC) 日期加上这个整数值为准。负数表示无到期时间。
--time_partitioning_field=COLUMN_NAME此标志指定用于确定如何创建基于时间的分区的字段。如果在未使用此值的情况下启用了基于时间的分区,表会根据加载时间进行分区。
--time_partitioning_type=INTERVAL此标志会在表上启用基于时间的分区,并设置分区类型。请使用以下某个值:
DAYHOURMONTHYEAR
--use_avro_logical_types={true|false}如果
--external_table_definition标志的FORMAT部分设置为AVRO,则此标志可指定是否将逻辑类型转换为其对应的类型(如TIMESTAMP),而不是仅使用其原始类型(如INTEGER)。--parquet_enable_list_inference={true|false}如果
--external_table_definition标志的FORMAT部分设置为PARQUET,则此标志指定是否对 ParquetLIST逻辑类型使用架构推断。--parquet_enum_as_string={true|false}如果
--external_table_definition标志的FORMAT部分设置为PARQUET,则此标志指定是否将 ParquetENUM逻辑类型推断为STRING值。
如需了解详情,请参阅创建和使用表。
bq mk --transfer_config
创建转移配置。支持以下标志:
--data_source=DATA_SOURCE- 指定数据源。创建转移作业配置时,此标志是必需的。请使用以下某个值:
amazon_s3- Amazon S3 数据转移azure_blob_storage- Azure Blob Storage 数据转移dcm_dt- Campaign Manager 数据转移google_cloud_storage- Cloud Storage 数据转移cross_region_copy- 数据集副本dfp_dt- Google Ad Manager 数据转移displayvideo- Display & Video 360 数据转移google_ads- Google Ads 数据转移merchant_center- Google Merchant Center 数据转移mysql- MySQL 数据转移play- Google Play 数据转移scheduled_query- 计划查询数据传输search_ads- Search Ads 360 数据转移youtube_channel- YouTube 频道数据转移youtube_content_owner- YouTube 内容所有者数据转移redshift- Amazon Redshift 迁移on_premises- Teradata 迁移
--display_name=DISPLAY_NAME- 此标志指定转移作业配置的显示名。
--no_auto_scheduling={true|false}- 为此配置停用数据转移作业运行的自动安排。默认值为
false。 --params={"PARAMETER":"VALUE"}或-p={"PARAMETER":"VALUE"}- 此标志指定转移作业配置的参数(采用 JSON 格式)。根据数据源的不同,参数也会有所不同。
--refresh_window_days=DAYS- 此标志表示一个整数,用于指定转移作业配置的刷新时段(以天为单位)。默认值为
0。 --service_account_name=SERVICE_ACCOUNT- 指定要用作转移作业配置凭据的服务账号。
--target_dataset=DATASET- 指定转移作业配置的目标数据集。
--table_filter=TABLES- 仅与
google_ads数据源搭配使用。TABLES参数是转移作业中要包含的表的逗号分隔列表。如需排除某个表,请在该表前面加上连字符 (-)。默认值会在转移作业中包含所有表。 --destination_kms_key=KEY- 此标志指定用于加密目标表数据的 Cloud KMS 密钥资源 ID。
如需了解如何将 bq mk 命令与 BigQuery Data Transfer Service 搭配使用,请参阅以下内容:
- 设置 Amazon S3 转移作业
- 设置 Campaign Manager 转移作业
- 设置 Cloud Storage 转移作业
- 设置 Google Ad Manager 转移作业
- 设置 Google Ads 转移作业
- 设置 Google Merchant Center 转移作业(Beta 版)
- 设置 Google Play 转移作业
- 设置 Search Ads 360 转移作业(Beta 版)
- 设置 YouTube 频道转移作业
- 设置 YouTube 内容所有者转移作业
- 从 Amazon Redshift 迁移数据
- 从 Teradata 迁移数据
bq mk --transfer_run
使用指定的数据转移配置,在指定时间或时间范围创建数据转移运行。
摘要
bq mk --transfer_run [--run_time=RUN_TIME | --start_time=START_TIME --end_time=END_TIME] CONFIG
支持以下标志:
--run_time=RUN_TIME- 时间戳,用于指定安排数据转移运行的时间。
--start_time=START_TIME- 时间戳 ,用于指定一系列数据转移运行的开始时间。
--end_time=END_TIME- 时间戳 用于指定一系列数据转移运行的结束时间。
时间戳的格式为 RFC3339 世界协调时间 (UTC)(即“祖鲁时”)。
CONFIG 实参指定预先存在的数据转移配置。
示例
bq mk --transfer_run \ --run_time=2021-01-20T17:00:00.00Z \ projects/p/locations/l/transferConfigs/c
bq mk --transfer_run \ --start_time=2020-12-19T16:39:57-08:00 \ --end_time=2020-12-19T20:39:57-08:00 \ projects/p/locations/l/transferConfigs/c
bq mk --view
创建视图。 支持以下标志:
--add_tags=TAGS- 指定要附加到新视图的标记,以英文逗号分隔。例如
556741164180/env:prod,myProject/department:sales。每个标记必须具有命名空间键名称和值简称。 --description=DESCRIPTION- 此标志指定视图的说明。
--expiration=SECONDS- 指定视图有效期。如果
SECONDS为0,则视图不会过期。如果未指定--expiration标志,则 BigQuery 将使用数据集的默认表生命周期来创建视图。 --label=KEY:VALUE- 此标志指定视图的标签。重复使用此标志可以指定多个标签。
--use_legacy_sql={true|false}- 设置为
false可使用 GoogleSQL 查询创建视图。默认值由您的配置设置决定。如果未指定配置设置,则默认值为true;使用旧版 SQL。 --view_udf_resource=FILE- 此标志指定 Cloud Storage URI 资源标识符或者本地代码文件路径,该资源或代码文件会被立即加载并评估,作为用户定义的函数资源,供视图的 SQL 查询使用。重复使用此标志可以指定多个文件。
如需了解详情,请参阅创建视图。
bq mkdef
使用 bq mkdef 命令为 Cloud Storage 或 Google 云端硬盘中存储的数据创建 JSON 格式的表定义。
摘要
bq mkdef [FLAGS] URI [ > FILE ]
标志和参数
bq mkdef 命令使用以下标志和参数:
--autodetect={true|false}- 此标志指定是否对 CSV 和 JSON 数据使用架构自动检测功能。默认值为
false。 --connection_id=CONNECTION_ID- 用于身份验证的连接资源的 ID。
--hive_partitioning_mode指定在 BigQuery 读取数据时如何确定分区架构。支持以下模式:
AUTO:自动推断分区键名称和类型。STRINGS:自动推断分区键名称。所有类型都被视为字符串。CUSTOM:指定源 URI 前缀中的分区架构。
默认值为
AUTO。--hive_partitioning_source_uri_prefix指定源 URI 的通用前缀。通用前缀值是分区键编码前面的 URI 部分。如果为模式指定了
CUSTOM,则必须额外标识分区架构。例如,假设文件结构如下:
gs://bucket/path_to_table/dt=2019-06-01/country=USA/id=7/file.avrogs://bucket/path_to_table/dt=2019-05-31/country=CA/id=3/file.avro
如果您使用
AUTO或STRINGS模式,则可接受以下值:gs://bucket/path_to_tablegs://bucket/path_to_table/
如果您使用
CUSTOM模式,则可接受以下值:gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:INTEGER}gs://bucket/path_to_table/{dt:STRING}/{country:STRING}/{id:INTEGER}gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:STRING}
如需详细了解如何使用 bq mkdef 命令,请参阅为外部数据源创建表定义文件。
--ignore_unknown_values={true|false}或-i={true|false}- 此标志指定是否忽略架构中不存在的行中的任何值。默认值为
false。 --metadata_cache_mode=STRING指定表的元数据缓存是自动刷新还是手动刷新。
如果设置为
AUTOMATIC,元数据缓存会按系统定义的间隔时间刷新,通常在 30 到 60 分钟之间。如果要根据您确定的时间表刷新元数据缓存,请设置为
MANUAL。在这种情况下,您可以调用BQ.REFRESH_EXTERNAL_METADATA_CACHE系统过程来刷新缓存。如果您使用
bq mk命令设置--max_staleness标志,则必须设置--metadata_cache_mode标志。--parquet_enable_list_inference={true|false}如果
source_format设置为PARQUET,则此标志指定是否对 ParquetLIST逻辑类型使用架构推断。默认值为false。--parquet_enum_as_string={true|false}如果
source_format设置为PARQUET,则此标志可指定是否将 ParquetENUM逻辑类型推断为STRING值。默认值为false。--file_set_spec_type=FILE_SET_SPEC_TYPE指定如何解读源 URI。
FILE_SYSTEM_MATCH:通过列出对象存储中的文件来扩展源 URI。如果未设置 FileSetSpecType,则这是默认行为。NEW_LINE_DELIMITED_MANIFEST:表示提供的 URI 是以换行符分隔的清单文件,每行一个 URI。清单文件不支持通配符 URI,所有引用的数据文件都必须与清单位于同一存储桶中。
例如,如果您的源 URI 为
"gs://bucket/path/file"且file_set_spec_type为FILE_SYSTEM_MATCH,则该文件会直接用作数据文件。如果file_set_spec_type为NEW_LINE_DELIMITED_MANIFEST,则文件中的每一行都会被解读为指向一个数据文件的 URI。--source_format=FORMAT此标志指定源数据的格式。请使用以下某个值:
AVROCSVDATASTORE_BACKUP(将此值用于 Filestore)GOOGLE_SHEETSNEWLINE_DELIMITED_JSONORCPARQUET
默认值为
CSV。--use_avro_logical_types={true|false}如果
--source_format标志设置为AVRO,则此标指定是否将逻辑类型转换为对应的类型(如TIMESTAMP),而不是仅使用其原始类型(如INTEGER)。默认值为false。
bq partition
使用 bq partition 命令可将一组带有时间单位后缀的表(例如以表示日期分区的 YYYYMMDD 结尾的表)转换为分区表。
摘要
bq partition [FLAGS] SOURCE_TABLE_BASE_NAME PARTITION_TABLE
标志和参数
bq partition 命令使用以下标志和参数:
--no_clobber={true|false}或-n={true|false}- 如需禁止覆盖现有分区,请设置为
true。默认值为false;如果该分区存在,则会被覆盖。 --time_partitioning_expiration=SECONDS- 此标志表示一个整数,指定了应在何时删除基于时间的分区(以秒为单位)。到期时间以分区的世界协调时间 (UTC) 日期加上这个整数值为准。负数表示无到期时间。
--time_partitioning_type=INTERVAL指定分区类型。下表提供了
INTERVAL标志的可能值以及每个值的预期时间单位后缀格式:INTERVAL后缀 HOURYYYYMMDDHHDAYYYYYMMDDMONTHYYYYMMYEARYYYYSOURCE_TABLE_BASE_NAME此标志表示一组带有时间单位后缀的表的基本名称。
PARTITION_TABLE此标志表示目标分区表的名称。
如需详细了解如何使用 bq partition 命令,请参阅将日期分片表转换为注入时间分区表。
bq query
使用 bq query 命令可创建运行指定 SQL 查询的查询作业。
摘要
bq query [FLAGS] 'QUERY'
标志和参数
bq query 命令使用以下标志和参数:
--allow_large_results={true|false}- 如需为旧版 SQL 查询启用较大的目标表大小,请设置为
true。默认值为false。 --append_table={true|false}- 如需将数据附加到目标表,请设置为
true。默认值为false。 --batch={true|false}- 如需以批量模式运行查询,请设置为
true。默认值为false。 --clustering_fields=COLUMNS- 此标志表示一个英文逗号分隔的列名称列表(最多包含 4 个列名称),指定了要用于对查询中的目标表进行聚簇的字段。如果与分区一起指定,则系统首先会对表进行分区,然后使用所提供的列对每个分区进行聚簇。
--connection_property=KEY=VALUE键值对,可让您指定连接级属性以自定义查询行为。重复使用此标志可指定其他属性。
支持的连接属性如下:
dataset_project_id:表示查询中使用的数据集的默认项目,类似于@@dataset_project_id系统变量。query_label:将查询与给定作业标签相关联。如果设置此属性,则脚本或会话中的所有后续查询都具有此标签。如需详细了解查询标签格式要求,请参阅JobConfiguration资源中的labels字段。service_account:指定用于运行查询的服务账号。例如--connection_property=service_account=myserviceaccount@project.iam.gserviceaccount.com。session_id:将查询与给定会话相关联。time_zone:表示用于运行查询的默认时区。
--continuous={true|false}如需运行持续查询,请设置为
true。默认值为false。--destination_kms_key=KEY此标志指定用于加密目标表数据的 Cloud KMS 密钥资源 ID。
--destination_schema={PATH_TO_FILE|SCHEMA}本地 JSON 架构文件的路径,或者是列定义的英文逗号分隔列表,格式为
FIELD:DATA_TYPE, FIELD:DATA_TYPE。架构更改与查询执行由不同的操作完成。如果您通过指定
--destination_table标志将查询结果写入表中,且查询随后引发异常,则系统可能会跳过任何架构更改。如果发生这种情况,请检查目标表架构,并在必要时手动更新它。--destination_table=TABLE指定此标志时,查询结果会保存到
TABLE。 请按以下格式指定TABLE:PROJECT:DATASET.TABLE。如果未指定PROJECT,则系统会假定为当前项目。如果未指定--destination_table标志,则查询结果会保存到临时表中。示例:
--destination_table myProject:myDataset.myTable
--destination_table myDataset.myTable
--dry_run={true|false}指定此标志时,系统会对查询进行验证,但不会运行查询。
--external_table_definition={TABLE::PATH_TO_FILE|TABLE::DEFINITION}此标志指定外部表查询的表名称和表定义。表定义可以是本地 JSON 架构文件的路径,也可以是内嵌表定义。 提供内嵌表定义的格式为
SCHEMA@SOURCE_FORMAT=CLOUD_STORAGE_URI。SCHEMA值的格式是FIELD:DATA_TYPE, FIELD:DATA_TYPE形式的列定义列表(以英文逗号分隔)。如果您使用表定义文件,请勿为文件名添加扩展名。例如:
--external_table_definition=myTable::/tmp/tabledef
--external_table_definition=myTable::Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv
重复使用此标志可以查询多个表。
--flatten_results={true|false}如需禁止展平旧版 SQL 查询结果中的嵌套字段和重复字段,请设置为
false。默认值为true。--label=KEY:VALUE此标志指定查询作业的标签。重复使用此标志可以指定多个标签。
--max_rows=MAX_ROWS或-n=MAX_ROWS此标志代表一个整数,指定了查询结果中要返回的行数。默认值为
100。--maximum_bytes_billed=MAX_BYTES此标志代表一个整数,用于限制查询的计费字节数。如果查询超出此限制,则查询将失败(不会产生费用)。如果未指定此标志,则收费字节数设置为项目默认值。
--max_statement_results=VALUE一个整数,指定查询结果中显示的脚本语句的最大数量。默认值为
100。--min_completion_ratio=RATIO(实验性)此标志表示一个 0 到 1.0 之间的数字,指定了在查询返回之前必须扫描的数据的最小比例。如果未指定此标志,则系统会使用默认服务器值
1.0。--parameter={PATH_TO_FILE|PARAMETER}此标志表示一个包含查询参数列表的 JSON 文件,或一个采用
NAME:TYPE:VALUE形式的查询参数。如果名称为空,则系统会创建一个定位参数。如果省略TYPE,则系统会假定为STRING类型。NULL会指定 null 值。重复使用此标志可以指定多个参数。例如:
--parameter=/tmp/queryParams
--parameter=Name::Oscar
--parameter=Count:INTEGER:42
--range_partitioning=COLUMN_NAME,START,END,INTERVAL与
--destination_table标志搭配使用。为目标表中的整数范围分区指定选项。值是column_name,start,end,interval形式的逗号分隔列表,其中column_name是用于创建整数范围分区的列。start是范围分区的起始值(含边界值)。end是范围分区的终止值(不含边界值)。interval是分区中每个范围的宽度。
例如:
--range_partitioning=customer_id,0,10000,100
--replace={true|false}如需使用查询结果覆盖目标表,请设置为
true。所有现有数据和架构都会被清空。除非您指定--destination_kms_key标志,否则所有 Cloud KMS 密钥也会被移除。默认值为false。--require_cache={true|false}如果指定了此标志,则仅在可以从缓存中检索结果时运行查询。
--require_partition_filter={true|false}如果指定了此标志,则对于所提供的表的查询,需要分区过滤条件。此标志只能与分区表一起使用。
- **
--reservation_id=RESERVATION 预览版。如果指定,则为查询运行所在的预留。
--rpc={true|false}如需使用 RPC 样式的查询 API(而不是 REST API
jobs.insert方法),请设置为true。默认值为false。--schedule="SCHEDULE"此标志将查询设置为周期性计划查询。需要有关查询运行频率的计划。
示例:
--schedule="every 24 hours"
--schedule="every 3 hours"
如需了解时间表语法,请参阅设置时间表的格式。
--schema_update_option=OPTION在将数据附加到表时(在加载作业或查询作业中),或者覆盖表分区时,此标志可指定如何更新目标表的架构。请使用以下某个值:
ALLOW_FIELD_ADDITION:允许添加新字段。ALLOW_FIELD_RELAXATION:允许将REQUIRED字段放宽为NULLABLE。
重复使用此标志可指定多个架构更新选项。
--start_row=ROW_NUMBER或-s=ROW_NUMBER此标志代表一个整数,指定了查询结果中要返回的第一行。默认值为
0。--target_dataset=DATASET与
--schedule一起指定时,此标志会更新计划查询的目标数据集。查询必须是 DDL 或 DML。--time_partitioning_expiration=SECONDS与
--destination_table标志搭配使用。此标志值为一个整数,指定了应在何时删除基于时间的分区(以秒为单位)。到期时间以分区的世界协调时间 (UTC) 日期加上这个整数值为准。负数表示无到期时间。--time_partitioning_field=COLUMN_NAME与
--destination_table标志搭配使用。为基于时间的分区指定分区列。如果在未使用此值的情况下启用了基于时间的分区,表会根据提取时间进行分区。--time_partitioning_type=INTERVAL与
--destination_table标志搭配使用。指定目标表的分区类型。请使用以下某个值:DAYHOURMONTHYEAR
--udf_resource=FILE此标志仅适用于旧版 SQL 查询。可指定 Cloud Storage URI 资源标识符或者本地文件路径,该资源或本地文件包含要供旧版 SQL 查询使用的用户定义的函数资源。重复使用此标志可以指定多个文件。
--use_cache={true|false}如需禁止缓存查询结果,请设置为
false。默认值为true。--use_legacy_sql={true|false}如需运行 GoogleSQL 查询,请设置为
false。 默认值由您的配置设置决定。如果未指定配置设置,则默认值为true;该命令使用旧版 SQL。--job_timeout_ms={string (Int64Value)}指定运行查询的最长时间(以毫秒为单位)。如果超出此时间限制,BigQuery 会尝试停止作业。
QUERY此标志表示您要运行的查询。 您可以使用以下任一方法指定查询:
指定包含查询的字符串。
如果您需要在查询中使用其他字符串字面量,则必须遵循所用 shell(例如 Bash 或 PowerShell)的引用规则。
以下示例展示了 Bash 中的典型方法,即使用双引号表示查询中的字符串字面量,然后用单引号将查询本身括起来:
'SELECT * FROM mydataset.mytable WHERE column1 = "value";'
如果要从其他位置复制查询,则还必须移除查询中的所有注释。
传入包含查询的 SQL 脚本。以下示例展示了如何在 Bash shell 中传入 SQL 脚本:
bq query --use_legacy_sql=false < query.sql
如需详细了解如何使用 bq query 命令,请参阅运行查询。
bq remove-iam-policy-binding
使用 bq remove-iam-policy-binding 命令,只需一步即可检索资源的 IAM 政策并从政策中移除绑定。资源可以是表或视图。
此命令是执行以下三个步骤的替代方法:
- 使用
bq get-iam-policy命令检索政策文件(采用 JSON 格式)。 - 修改政策文件
- 使用
bq set-iam-policy命令在不通过绑定的情况下更新政策。
摘要
bq remove-iam-policy-binding FLAGS --member=MEMBER_TYPE:MEMBER --role=ROLE RESOURCE
标志和参数
bq remove-iam-policy-binding 命令使用以下标志和参数:
--member=MEMBER_TYPE:MEMBER必需。使用
--member标志可以指定 IAM 政策绑定的成员部分。--member标志必须与--role标志同时指定。--member和--role标志的一个组合等同于一个绑定。MEMBER_TYPE值用于指定 IAM 政策绑定中的成员类型。请使用以下某个值:userserviceAccountgroupdomain
MEMBER值用于指定 IAM 政策绑定中的成员的电子邮件地址或网域。--role=ROLE必需。此标志指定 IAM 政策绑定的角色部分。
--role标志必须与--member标志同时指定。--member和--role标志的一个组合等同于一个绑定。--table={true|false}或-t={true|false}可选。如需从表或视图的 IAM 政策中移除绑定,请设置为
true。默认值为false。
RESOURCE 是您要移除其政策绑定的表或视图。
如需了解详情,请参阅 IAM 政策参考文档。
bq rm
使用 bq rm 命令可删除 BigQuery 资源。
摘要
bq rm [FLAGS] RESOURCE
标志和参数
bq rm 命令使用以下标志和参数:
--capacity_commitment={false|true}- 如需删除容量承诺,请设置为
true,并使用--location标志指定要移除的承诺的位置,然后将RESOURCE替换为您要移除的承诺的 ID。 --dataset={true|false}或-d={true|false}- 如需删除数据集,请设置为
true。默认值为false。 --force={true|false}或-f={true|false}- 如需在不提示的情况下删除资源,请设置为
true。默认值为false。 --job={true|false}或-j={true|false}- 如需删除作业,请设置为 true。默认值为 false。
--model={true|false}或-m={true|false}- 如需删除 BigQuery ML 模型,请设置为
true。默认值为false。 --recursive={true|false}或-r{true|false}- 如需删除数据集及其中的所有表、表数据或模型,请设置为
true。默认值为false。 --reservation={true|false}- 如需删除预留,请设置为
true。默认值为false。 --reservation_assignment={true|false}- 如需删除预留分配,请设置为
true。默认值为false。 --routine={true|false}- 如需删除例程,请设置为
true。默认值为false。例程可以是用户定义的永久性函数、表函数(预览版)或存储过程。 --table={true|false}或-t={true|false}- 如需删除表或视图,请设置为
true。默认值为false。 --transfer_config={true|false}- 如需删除转移作业配置,请设置为
true。默认值为false。 RESOURCE- 此标志表示要移除的资源。
如需详细了解如何使用 bq rm 命令,请参阅以下内容:
bq set-iam-policy
使用 bq set-iam-policy 命令可为资源指定或更新 IAM 政策。资源可以是表、视图或槽预留。设置政策后,新政策会输出到 stdout。此政策采用 JSON 格式。
更新后的政策中的 etag 字段必须与当前政策的 etag 值一致,否则更新将会失败。此功能可防止并发更新。
您可以使用 bq get-iam-policy 命令获取资源的当前政策和 etag 值。
摘要
bq set-iam-policy [FLAGS] RESOURCE FILE_NAME
示例
bq set-iam-policy myDataset.myTable policy.json
bq set-iam-policy --reservation myReservation policy.json
标志和参数
bq set-iam-policy 命令使用以下标志和参数。
--table={true|false}或-t={true|false}- 可选。如需设置表或视图的 IAM 政策,请设置为
true。默认值为false。 --reservation={true|false}- 如需设置预留的 IAM 政策,请设置为
true(预览版)。默认值为false。使用此标志时,RESOURCE会被视为预留标识符。预留可以包含可选的项目和位置前缀:myProject:myLocation.myReservation。
RESOURCE 是您要更新其政策的表或视图。
FILE_NAME 是包含政策的 JSON 格式文件的名称。
如需详细了解 bq set-iam-policy 命令,请参阅使用 IAM 控制对资源的访问权限。
bq show
使用 bq show 命令可显示有关资源的信息。
摘要
bq show [FLAGS] [RESOURCE]
标志和参数
bq show 命令使用以下标志和参数:
--assignee_id=ASSIGNEE- 与
--reservation_assignment标志搭配使用时,指定文件夹、组织或项目的 ID。使用--assignee_type标志指定要显示的分配对象类型。 --assignee_type=TYPE- 与
--reservation_assignment标志搭配使用时,指定要显示的实体类型。请使用以下某个值:FOLDERORGANIZATIONPROJECT
--connection={true|false}- 如需显示有关连接的信息,请设置为
true。默认值为false。如需了解详情,请参阅查看连接资源。 --dataset={true|false}或-d={true|false}- 如需显示有关数据集的信息,请设置为
true。默认值为false。 --encryption_service_account={true|false}- 如需显示项目的加密服务账号(如果存在),或者创建一个加密服务账号(如果不存在),请设置为
true。默认值为false。与--project_id标志搭配使用。 --job={true|false}或-j={true|false}- 如需显示有关作业的信息,请设置为
true。默认值为false。 --job_type=JOB_TYPE- 与
--reservation_assignment标志搭配使用时,请指定要显示的预留分配的作业类型。请使用以下某个值:QUERYPIPELINEML_EXTERNAL
--model={true|false}或-m={true|false}- 如需显示有关 BigQuery ML 模型的信息,请设置为
true。默认值为false。 --reservation={true|false}- 如需显示有关预留的信息,请设置为
true。默认值为false。 --reservation_assignment={true|false}- 此标志设置为
true时,该命令会显示指定文件夹、组织或项目的预留分配。该命令会显示目标资源的明确分配(如果有);否则会显示从父级资源继承的分配。例如,项目可能会继承其父级文件夹中的分配。使用此标志时,系统会应用--job_type、--assignee_type和--assignee_id标志。默认值为false。 --routine={true|false}- 如需显示有关例程的信息,请设置为
true。默认值为false。例程可以是用户定义的永久性函数、表函数(预览版)或存储过程。 --schema={true|false}- 如需仅显示表的架构,请设置为
true。默认值为false。 --transfer_config={true|false}- 如需显示有关转移作业配置的信息,请设置为
true。默认值为false。 --transfer_run={true|false}- 如需显示有关转移作业运行的信息,请设置为
true。默认值为false。 --view={true|false}- 如需显示有关视图的信息,请设置为
true。默认值为false。 RESOURCE- 此标志表示您要显示其信息的资源。
如需详细了解如何使用 bq show 命令,请参阅以下内容:
bq update
使用 bq update 命令可更改资源。
摘要
bq update [FLAGS] [RESOURCE]
标志和参数
bq update 命令使用以下标志和参数:
--add_tags=TAGS- 仅适用于数据集和表。指定要附加到资源的标记,以英文逗号分隔。例如
556741164180/env:prod,myProject/department:sales。每个标记必须具有命名空间键名称和值简称。 --autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS- 分配给预留的自动扩缩槽数。此值等于预留大小上限值减去基准槽数。只能与
--reservation标志搭配使用,并且仅当预留是使用版本创建时才可用。 --capacity_commitment={true|false}- 如需更新容量承诺,请设置为
true。 请将此标志与--merge、--plan、--renewal_plan、--split、--slots标志搭配使用。 --clear_all_tags={true|false}- 仅适用于数据集和表。如需从资源中清除所有标记,请设置为
true。默认值为false。 --clear_label=KEY:VALUE- 此标志用于从资源中移除标签。使用
KEY:VALUE格式指定要移除的标签。重复使用该标志可移除多个标签。 --clustering_fields=COLUMNS- 更新表的聚簇规范。COLUMNS 值是用于聚簇的列名称列表(以英文逗号分隔)。如需移除聚簇,请将 COLUMNS 设置为
""(空字符串)。如需了解详情,请参阅修改聚簇规范。 --target_job_concurrency=CONCURRENCY- 与
--reservation标志搭配使用时,指定同时执行的查询的目标数量。默认值为 0,表示系统会根据预留大小自动设置并发性。如需了解详情,请参阅使用查询队列。 --dataset={true|false}或-d={true|false}- 如需更新数据集,请设置为
true。默认值为false。 --default_kms_key=KEY- 此标志指定用于加密数据集中的表数据的默认 Cloud KMS 密钥资源 ID。如果未明确为创建或查询表提供密钥,则系统会使用默认密钥。
--default_partition_expiration=SECONDS此标志表示一个整数,用于指定数据集中新创建的分区表中所有分区的默认到期时间(以秒为单位)。此标志没有最小值。
分区的到期时间设置为分区的世界协调时间 (UTC) 日期加上这个整数值。如果设置了该属性,则该属性将替换数据集级层的默认表到期时间(如果存在)。如果在创建或更新分区表时提供
--time_partitioning_expiration标志,则表级层的分区到期时间优先于数据集级层的默认分区到期时间。如果指定0,则系统会移除现有到期时间。--default_table_expiration=SECONDS此标志表示一个整数,用于更新数据集中新创建的表的默认生命周期(以秒为单位)。到期时间设置为当前世界协调时间 (UTC) 加上此值。如果指定
0,则系统会移除现有到期时间。--description=DESCRIPTION此标志会更新数据集、表、表快照、模型或视图的说明。
--destination_reservation_id=RESERVATION_ID与
--reservation_assignment标志搭配使用时,将现有预留分配移动到指定的预留。该值是目标预留的 ID。如需了解详情,请参阅将分配移动到其他预留。--display_name=DISPLAY_NAME此标志用于更新转移作业配置的显示名称。
--etag=ETAG此标志充当过滤条件;仅当资源的 ETag 与
ETAG参数中指定的字符串匹配时才会更新资源。--expiration SECONDS如需更新表、模型、表快照或视图的到期时间,请添加此标志。将
SECONDS替换为更新时间的秒数。如需移除表、模型、表快照或视图的到期时间,请将SECONDS参数设置为 0。--external_table_definition={TABLE::PATH_TO_FILE|TABLE::DEFINITION}此标志用于使用指定的表定义更新外部表。表定义可以是本地 JSON 表定义文件的路径,也可以是格式为
SCHEMA@SOURCE_FORMAT=CLOUD_STORAGE_URI的内嵌表定义。SCHEMA值是列定义的英文逗号分隔列表,格式为FIELD:DATA_TYPE, FIELD:DATA_TYPE。如果您使用表定义文件,请勿为文件名添加扩展名。例如:
--external_table_definition=myTable::/tmp/tabledef
--external_table_definition=myTable::Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv
--ignore_idle_slots={true|false}与
--reservation标志搭配使用。如需将在指定预留中运行的作业限制为仅使用分配给该预留的槽,请设置为true。默认值为false;指定预留中的作业可以使用其他预留中的空闲槽,或使用未分配给任何预留的槽。如需了解详情,请参阅空闲槽。--max_staleness=INTERVAL指定 INTERVAL 值,用于确定在查询物化视图或外部表时允许的最大过时时间。默认值为
0-0 0 0:0:0。例如:
- 1 天:
0-0 1 0:0:0 - 1 小时:
0-0 0 1:0:0
如需使用此标志,您必须使用
--external_table_definition标志指定表定义。- 1 天:
--max_time_travel_hours=HOURS指定数据集的时间旅行窗口的时长(以小时为单位)。
--max_time_travel_hours值必须是 48(2 天)到 168(7 天)之间以 24 的倍数(48、72、96、120、144、168)表示的整数。--merge={true|false}如需合并两项容量承诺,请将
--merge设置为true。将--capacity_commitment标志设置为true,并使用--location标志指定要合并的承诺的位置,然后将RESOURCE替换为要合并的两项承诺的 ID(用英文逗号分隔)。如需了解详情,请参阅合并两项承诺。--metadata_cache_mode=METADATA_CACHE_MODE为具有连接的外部表启用元数据缓存。请使用以下某个值:
AUTOMATICMANUAL
指定
AUTOMATIC可自动刷新缓存的元数据。指定MANUAL可停止自动刷新。如需使用此标志,您必须使用--external_table_definition标志指定表定义。--model={true|false}或-m={true|false}如需更新 BigQuery ML 模型的元数据,请设置为
true。默认值为false。--params={"PARAMETER":"VALUE"} or -p={"PARAMETER":"VALUE"}此标志用于更新转移作业配置的参数。根据数据源的不同,参数也会有所不同。如需了解详情,请参阅 BigQuery Data Transfer Service 简介。
--plan=PLAN与
--capacity_commitment标志搭配使用时,将容量承诺转换为指定的长期承诺方案。将PLAN替换为以下项之一:ANNUALTHREE_YEAR
--refresh_window_days=DAYS此标志代表一个整数,用于指定某个转移配置的更新的刷新时段(以天为单位)。
--remove_tags=TAG_KEYS仅适用于数据集和表。指定要从资源中移除的标记,以英文逗号分隔,例如
556741164180/env,myProject/department。每个标记键都必须具有命名空间键名称。--renewal_plan=PLAN与
--capacity_commitment标志搭配使用时,更新年度容量承诺的续订方案。将PLAN替换为以下项之一:ANNUALTHREE_YEARNONE
使用旧版固定费率价格的客户还可以使用以下值之一:
FLEXMONTHLYANNUAL
--reservation={true|false}此标志指定是否更新预留。默认值为
false。--reservation_assignment={true|false}此标志指定是否更新预留分配。默认值为
false。--schema={SCHEMA_FILE|SCHEMA}此标志指定本地 JSON 架构文件的路径,或英文逗号分隔的列定义列表(采用
FIELD:DATA_TYPE, FIELD:DATA_TYPE形式)。如果您使用架构文件,请勿在文件名中添加扩展名。例如:
--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER
--service_account_name=SERVICE_ACCOUNT指定要用作转移作业配置凭据的服务账号。
--set_label=KEY:VALUE此标志指定要更新的标签。如需更新多个标签,请重复使用此标志。
--slots=NUMBER_OF_BASELINE_SLOTS与
--capacity_commitment和--split标志搭配使用时,指定要从现有容量承诺拆分为新承诺的基准槽数。将RESOURCE替换为您要拆分的承诺的 ID。与
--reservation标志搭配使用时,更新预留中的槽数。--source=FILE此标志表示包含更新资源时所用载荷的本地 JSON 文件的路径。例如,您可以使用此标志指定一个 JSON 文件,其中包含带有更新的
access属性的数据集资源。该文件用于覆盖数据集的访问权限控制。 JSON 文件不得包含字节顺序标记 (BOM)。--split={true|false}当设置为
true且与--capacity_commitment标志搭配使用时,指定您要拆分现有容量承诺。使用--location标志指定要拆分的承诺的位置,并使用--slots标志指定要拆分的槽数。将RESOURCE替换为您要拆分的承诺的 ID。如需了解详情,请参阅拆分承诺。--storage_billing_model=BILLING_MODEL指定数据集的存储空间结算模式。您可以将
--storage_billing_model值设置为PHYSICAL以在计算存储费用时使用物理字节,或设置为LOGICAL以使用逻辑字节。更改数据集的结算模式后,更改需要 24 小时才能生效。
更改数据集的存储空间结算模式后,您必须等待 14 天才能再次更改存储空间结算模式。
--table={true|false}或-t={true|false}此标志指定是否更新表。默认值为
false。--target_dataset=DATASET指定此标志时,系统会更新转移作业配置的目标数据集。
--time_partitioning_expiration=SECONDS此标志表示一个整数,用于更新应删除基于时间的分区的时间(以秒为单位)。到期时间以分区的世界协调时间 (UTC) 日期加上这个整数值为准。负数表示无到期时间。
--time_partitioning_field=COLUMN_NAME使用此标志时,系统会更新用于确定如何创建基于时间的分区的字段。如果在未使用此值的情况下启用了基于时间的分区,表会根据加载时间进行分区。
--time_partitioning_type=INTERVAL指定分区类型。请使用以下某个值:
DAYHOURMONTHYEAR
您无法更改现有表的分区类型。
--transfer_config={true|false}此标志指定是否更新转移作业配置。默认值为
false。--update_credentials={true|false}此标志指定是否更新转移作业配置凭据。默认值为
false。--use_legacy_sql={true|false}设置为
false以将视图的 SQL 查询从旧版 SQL 更新为 GoogleSQL。默认值由您的配置设置决定。如果未指定配置设置,则默认值为true;该查询使用旧版 SQL。--vertex_ai_model_id=VERTEX_AI_MODEL_ID指定此标志后,系统会更新在 Vertex AI Model Registry 中注册的 BigQuery ML 模型的模型 ID。
--view=QUERY指定此标志时,系统会更新视图的 SQL 查询。
--view_udf_resource=FILE使用此标志时,系统会更新 Cloud Storage URI 资源标识符或者本地代码文件路径,该资源或代码文件会被立即加载并评估,作为用户定义的函数资源,供视图的 SQL 查询使用。重复使用此标志可以指定多个文件。
RESOURCE此标志表示要更新的资源。
如需详细了解如何使用 bq update 命令,请参阅以下内容:
bq version
使用 bq version 命令可显示 bq 命令行工具的版本号。
摘要
bq version
bq wait
使用 bq wait 命令等待指定秒数,以便作业完成。如果未指定作业,则该命令会等待当前作业完成。
摘要
bq wait [FLAGS] [JOB] [SECONDS]
示例
bq wait
bq wait --wait_for_status=RUNNING 12345 100
标志和参数
bq wait 命令使用以下标志和参数:
--fail_on_error={true|false}- 如需在作业在等待期间完成后返回成功(即使作业失败),请设置为
false。默认值为true;经过等待时间后,如果作业仍在运行,或者作业已完成但失败,则该命令会退出并显示错误。 --wait_for_status=STATUS指定此标志时,系统会等待出现特定作业状态之后再退出。请使用以下某个值:
PENDINGRUNNINGDONE
默认值为
DONE。JOB指定要等待的作业。您可以使用
bq ls --jobs myProject命令查找作业标识符。SECONDS此标志指定作业完成之前要等待的秒数上限。如果输入了
0,则该命令会轮询作业完成情况,并立即返回。如果您未指定整数值,则该命令会等到作业完成。