bq 命令行工具参考文档

本文档介绍了 bq 命令行工具(BigQuery 命令行工具)的语法、命令、标志和参数。本指南的目标读者是熟悉 BigQuery,但希望了解如何使用特定 bq 命令行工具的用户。如需了解有关如何使用 bq 命令行工具的一般信息,请参阅使用 bq 命令行工具

摘要

bq 命令行工具使用以下格式:

bq COMMAND [FLAGS] [ARGUMENTS]

某些标志可与多个 bq 命令行工具命令搭配使用;全局标志部分介绍了这些标志。

其他标志是特定于命令的;它们只能与特定的 bq 命令行工具命令搭配使用。命令部分中介绍了特定于命令的标志。

布尔值标志

某些 bq 命令行工具标志是布尔值;您可以将该标志的值设置为 truefalsebq 命令行工具接受使用以下格式来设置布尔值标志。

格式 示例
true --FLAGNAME=true --debug=true
true --FLAGNAME --debug
false --FLAGNAME=false --debug=false
false --noFLAGNAME --nodebug

本文档对布尔值标志使用 --FLAGNAME=VALUE 格式。

所有布尔值标志都是可选项;如果布尔值标志不存在,则 BigQuery 会使用该标志的默认值。

为标志指定值

在为标志指定值时,等号 = 为可选项。例如,以下两个命令是等效的:

bq ls --format prettyjson myDataset
bq ls --format=prettyjson myDataset

为清楚起见,本文档使用等号。

在线帮助

bq 命令行工具中提供了文档,如下所示:

说明 帮助命令格式 示例
列出所有命令及示例 bq help bq help
全局标志的说明 bq --help bq --help
特定命令的说明 bq help COMMAND bq help mk

资源规范

用于指定资源的格式取决于上下文;在某些情况下,项目和数据集之间的分隔符是英文冒号 (:),在某些情况下,它是英文句点 (.)。下表介绍了如何在不同上下文中指定 BigQuery 表。

Context 格式 示例
bq 命令行工具 PROJECT:DATASET.TABLE myProject:myDataset.myTable
标准 SQL 查询 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 命令结合使用(如适用):

--api=ENDPOINT
指定要调用的 API 端点。默认值为 https://www.googleapis.com
--api_version=VERSION
指定要使用的 API 版本。默认值为 v2
--apilog=FILE

将所有 API 请求和响应记录到 FILE 指定的文件中。可能的值如下:

  • 文件的路径 - 记录到指定文件
  • stdout - 记录到标准输出
  • stderr - 记录到标准错误
  • false - 系统不会记录 API 请求和响应(默认值)
--bigqueryrc=PATH

指定 bq 命令行工具配置文件的路径。如果未指定 --bigqueryrc 标志,则命令会使用 BIGQUERYRC 环境变量。如果未设置环境变量,则使用 $HOME/.bigqueryrc。如果该文件不存在,则系统会使用 ~/.bigqueryrc。如需了解详情,请参阅为命令行标志设置默认值

--ca_certificates_file=PATH

指定 Certificate Authority Service (CA) 文件的位置。

--dataset_id=DATASET_ID

指定要与命令搭配使用的默认数据集。系统会在不适用的情况下忽略此标志。您可以使用 PROJECT:DATASETDATASET 格式指定 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,则系统会请求一个不包含云端硬盘范围的新 OAuth 令牌。默认值为 true;系统会请求一个包含云端硬盘范围的新 OAuth 令牌。

--fingerprint_job_id={true|false}

如需使用派生自作业配置指纹的作业 ID,请设置为 true。这能防止同一个作业意外运行多次。默认值为 false

--format=FORMAT

此标志指定命令输出的格式。请使用以下某个值:

  • pretty:设置了格式的表输出
  • sparse:较为简单的表输出
  • prettyjson:简单易读的 JSON 格式
  • json:极其紧凑的 JSON
  • csv:带有标题的 csv 格式

prettysparseprettyjson 用于提供人类可读的信息。jsoncsv 旨在供其他程序使用。如果指定了 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

为新作业指定作业标识符。此标志仅适用于创建作业的命令:cpextractloadquery。如果您不使用 --job_id 标志,则此命令会生成一个唯一的作业标识符。如需了解详情,请参阅以编程方式运行作业

--job_property=KEY:VALUE

此标志表示要在作业配置的属性字段中包含的键值对。重复使用此标志可指定多个额外属性。

--location=LOCATION

此标志表示与您的单区域或多区域位置相对应的字符串。在您使用 --jobs 标志显示有关作业的信息时,bq cancel 命令和 bq show 命令需要此位置标志。对于以下命令,此位置标志为可选项。

所有其他命令均会忽略 --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 请求中包含的跟踪记录令牌。

已弃用的全局标志

以下用于配置 bq 命令行工具授权的全局标志已弃用。如需为 bq 命令行工具配置授权,请参阅授权 Cloud SDK 工具

--application_default_credential_file

如需了解详情,请参阅以服务帐号身份进行身份验证。默认值为 ''

--credential_file

此标志表示用于存储 OAuth 令牌的文件名。默认值为 $HOME/.bigquery.v2.token

--service_account

指定用于授权的服务帐号电子邮件地址。例如:

        1234567890@developer.gserviceaccount.com
        
.

--service_account_credential_file

此标志表示用作服务帐号凭据存储的文件。如果您在使用服务帐号,则必须设置此标志。

--service_account_private_key_file

此标志表示包含服务帐号私钥的文件。如果指定了 --service_account 标志,则此标志为必需。默认值为 ''

--service_account_private_key_password

此标志表示私钥密码。该密码必须与您在创建密钥时所设置的密码匹配。默认值为 notasecret

--use_gce_service_account={true|false}

如需在 Compute Engine 实例上运行时使用服务帐号凭据,而不是存储的凭据,请设置为 true。默认值为 false;系统会使用存储的凭据。 如需了解详情,请参阅以下内容:为实例创建和启用服务帐号

以下用于从文件指定 bq 命令行工具标志的全局标志已弃用。如需从文件指定标志,请使用 --bigqueryrc 标志。

--flagfile=PATH

如果指定此标志,则所提供的文件中的标志定义会插入 bq 命令行工具。默认值为 ''

如需了解详情,请参阅为命令行标志设置默认值

命令

以下各部分介绍了 bq 命令行工具命令及其特定于命令的标志和参数。

bq add-iam-policy-binding

使用 bq add-iam-policy-binding 命令,只需一步即可检索表或视图的 Identity and Access Management (IAM) 政策并向该政策添加绑定。

此命令是执行以下三个步骤的替代方法:

  1. 使用 bq get-iam-policy 命令检索政策文件(采用 JSON 格式)。
  2. 修改政策文件
  3. 使用 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 政策绑定中的成员类型。请使用以下某个值:

  • user
  • serviceAccount
  • group
  • domain

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

使用 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
--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预览版

基于表快照创建标准表。SOURCE_TABLE 参数必须指定一个表快照

--snapshot预览版

创建在 SOURCE_TABLE 参数中指定的标准表的表快照。需要用到 --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

指定用于导出文件的压缩类型。可能的值如下:

  • GZIP
  • DEFLATE
  • SNAPPY
  • NONE

默认值为 NONE

如需了解每种压缩类型支持的格式,请参阅导出格式和压缩类型

--destination_format=FORMAT

此标志指定导出的数据的格式。可能的值如下:

  • CSV
  • NEWLINE_DELIMITED_JSON
  • AVRO
  • PARQUET

默认值为 CSV

--field_delimiter=DELIMITER

对于 CSV 导出文件,请指定用于标记输出文件中各列之间边界的字符。该分隔符可以是任何 ISO-8859-1 单字节字符。您可以使用 \ttab 指定制表符分隔符。

--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 命令使用以下标志和参数:

--table={true|false}--t={true|false}
要在 RESOURCE 不是表标识符或视图标识符时返回错误,请将 --table 标志设置为 true。默认值为 false。支持此标志以与其他命令保持一致。
RESOURCE
此标志表示要获取其政策的表或视图。

如需详细了解 bq get-iam-policy 命令,请参阅表访问权限控制简介

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
--allow_quoted_newlines={true|false}
如需允许 CSV 数据中包含带英文引号的换行符,请设置为 true
--autodetect={true|false}
如需为 CSV 和 JSON 数据启用架构自动检测功能,请设置为 true。默认值为 false。如果 --autodetectfalse,且未使用 --schema 标志指定任何架构,并且存在目标表,则使用目标表的架构。
--clustering_fields=COLUMNS
此标志表示一个以英文逗号分隔的列名称列表(最多包含 4 个列名称),指定了要用于表聚簇的字段。
--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 单字节字符。您可以使用 \ttab 指定制表符分隔符。
--ignore_unknown_values={true|false}
如果此标志设置为 true,则对于 CSV 和 JSON 文件,系统会忽略所含额外列值与表架构不匹配的行,并且不会加载这些行。同样,对于 Avro、Parquet 和 ORC 文件,系统会忽略表架构中不存在的文件架构中的字段,并且不会加载这些字段。
--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 和表格数据。

--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

--schema={SCHEMA_FILE|SCHEMA}

此标志指定本地 JSON 架构文件的路径,或英文逗号分隔的列定义列表(采用 FIELD:DATA_TYPE, FIELD:DATA_TYPE 形式,以此类推)。如果您使用架构文件,请勿为其提供扩展名。

例如:

--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER

如果未指定架构,则 --autodetectfalse,并且存在目标表,则系统会使用目标表的架构。

--schema_update_option=OPTION

在将数据附加到表时(在加载作业或查询作业中),或者覆盖表分区时,此标志可指定如何更新目标表的架构。请使用以下某个值:

  • ALLOW_FIELD_ADDITION:允许添加新字段
  • ALLOW_FIELD_RELAXATION:允许将 REQUIRED 字段放宽为 NULLABLE

重复使用此标志可指定多个架构更新选项。

--skip_leading_rows=NUMBER_OF_ROWS

此标志表示一个整数,指定了在源文件开头处要跳过的行数。 默认为 0

--source_format=FORMAT

此标志表示源数据的格式。请使用以下某个值:

  • CSV
  • NEWLINE_DELIMITED_JSON
  • AVRO
  • DATASTORE_BACKUP(将此值用于 Filestore)
  • PARQUET
  • ORC
--time_partitioning_expiration=SECONDS

此标志表示一个整数,指定了应在何时删除基于时间的分区(以秒为单位)。到期时间以分区的世界协调时间 (UTC) 日期加上这个整数值为准。负数表示无到期时间。

--time_partitioning_field=COLUMN_NAME

此标志指定用于确定如何创建基于时间的分区的字段。如果在未使用此值的情况下启用了基于时间的分区,表会根据加载时间进行分区。

--time_partitioning_type=INTERVAL

此标志会在表上启用基于时间的分区,并设置分区类型。请使用以下某个值:

  • DAY
  • HOUR
  • MONTH
  • YEAR

基于时间的分区的默认分区类型为 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 将 Parquet ENUM 逻辑类型推断为 STRING 值,则将此标志设置为 true。默认值为 false

--parquet_enable_list_inference={true|false}

如果 --source_format 标志设置为 PARQUET,则此标志表示是否对 Parquet LIST 逻辑类型使用架构推断

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。默认值为 false
--datasets={true|false}-d={true|false}
如需列出数据集,请设置为 true。默认值为 false
--filter="FILTER"

此标志列出与 FILTER 参数匹配的数据集,包括一个或多个以空格分隔的三元组,格式为 labels.KEY:VALUE。如果提供了多个三元组,则命令仅会返回与所有三元组匹配的数据集(即命令使用 AND 逻辑运算符,而非OR)。如果您要指定多个三元组,则使用英文引号引起 FILTER 值。

  • 如需根据数据集标签进行过滤,请使用您应用于数据集的键和值。

    例如:

    --filter "labels.department:marketing labels.team:sales"
    

  • 如需根据转移作业配置进行过滤,请将 dataSourceIds 用作键,并将以下数据源之一用作值:

例如:

   --filter labels.dataSourceIds:dcm_dt
   

  • 如需根据转移作业运行进行过滤,请将 states 用作键,并将以下转移作业状态之一用作值:

    • SUCCEEDED
    • FAILED
    • PENDING
    • RUNNING
    • CANCELLED

      例如:

      --filter labels.states:FAILED
      

--jobs={true|false}-j={true|false}
如需列出作业,请设置为 true。默认值为 false。默认情况下,结果数上限为 10 万个。
--max_creation_time=MAX_CREATION_TIME_MS
此标志是一个整数,表示时间戳(以毫秒为单位)。与 --jobs 标志一同指定时,此标志仅会列出在时间戳之前创建的作业。
--max_results=MAX_RESULTS or -n=MAX_RESULTS
此标志表示一个整数,用于指明最大结果数。默认值为 50。
--min_creation_time=MIN_CREATION_TIME_MS
此标志是一个整数,表示时间戳(以毫秒为单位)。与 --jobs 标志一同指定时,此标志仅会列出在时间戳之后创建的作业。
--message_type=messageTypes:MESSAGE_TYPE

如需仅列出特定类型的转移作业运行日志消息,请指定 messageTypes:MESSAGE_TYPE。可能的值如下:

  • INFO
  • WARNING
  • ERROR
--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。您的选择指定了要创建的资源类型。

bq mk 命令支持所有类型的资源的以下标志:

--force={true|false}-f={true|false}
如需在已存在同名资源的情况下忽略错误,请将该值设置为 true。如果资源已存在,则退出代码为 0,但将此标志设置为 true 不会导致 bq mk 命令覆盖资源。默认值为 false

bq mk 命令支持其他标志,具体取决于您要创建的资源类型,如以下部分所述。

bq mk --capacity_commitment

购买容量承诺。支持以下标志:

--location=LOCATION
此标志指定项目的位置。
--plan=PLAN_TYPE
指定方案类型。以下项之一:
  • FLEX
  • MONTHLY
  • ANNUAL
--project_id=PROJECT_ID
此标志指定管理槽的项目。
--slots=NUMBER_OF_SLOTS
此标志指定要购买的槽数。

如需了解详情,请参阅处理承诺

bq mk --connection

创建连接。支持以下标志:

--connection_type=CONNECTION_TYPE
连接类型,例如对于 Cloud SQL 连接为 CLOUD_SQL
--properties=PROPERTIES
JSON 格式的连接专属参数。必须指定 instanceIddatabasetype
--connection_credential=CONNECTION_CREDENTIAL
JSON 格式的连接凭据。必须指定 usernamepassword
--project_id=PROJECT_ID
指定连接所属项目的 ID。
--location=LOCATION
指定将存储连接的存储位置。
--display_name=DISPLAY_NAME
为连接指定可选的好记名称。
--description=DESCRIPTION
指定连接的可选说明。
CONNECTION_ID
指定连接的可选连接 ID。如果未提供连接 ID,则系统会自动生成一个唯一 ID。连接 ID 可以包含字母、数字和下划线。

如需了解详情,请参阅创建连接

bq mk --dataset

创建数据集。支持以下标志:

--default_kms_key=KEY
此标志指定在创建或查询表期间未明确提供密钥的情况下,用于加密数据集中的表数据的默认 Cloud KMS 密钥资源 ID
--default_partition_expiration=SECONDS
此标志表示一个整数,用于指定数据集中新创建的分区表中所有分区的默认到期时间(以秒为单位)。分区的到期时间设置为分区的世界协调时间 (UTC) 日期加上这个整数值。如果设置了该属性,则该值将替换数据集级层的默认表到期时间(如果存在)。如果在创建或更新分区表时提供 --time_partitioning_expiration 标志,则表级层的分区到期时间优先于数据集级层的默认分区到期时间。
--default_table_expiration=SECONDS
此标志表示一个整数,用于指定数据集中新创建的表的默认生命周期(以秒为单位)。到期时间设置为当前世界协调时间 (UTC) 加上此值。
--description=DESCRIPTION
此标志指定数据集的说明。
--label=KEY:VALUE
指定数据集的标签。重复使用此标志可以指定多个标签。
--location=LOCATION--data_location=LOCATION
指定数据集的位置。首选 --location 标志;--data_location 标志是旧版标志。

如需了解详情,请参阅创建数据集

bq mk --materialized_view

创建具体化视图。支持以下标志:

--enable_refresh={true|false}
如需为具体化视图停用自动刷新功能,请设置为 false。创建具体化视图时,默认值为 true
--refresh_interval_ms=MILLISECONDS
此标志指定具体化视图的刷新间隔毫秒数。如果未指定此标志,则启用了刷新功能的具体化视图的默认刷新间隔时间为 180 万毫秒,即 30 分钟。

如需了解详情,请参阅创建和使用具体化视图

bq mk --reservation

使用专用槽创建预留。 支持以下标志:

--ignore_idle_slots={true|false}
如需将在此预留中运行的作业限制为仅使用分配给该预留的槽,请设置为 true。默认值为 false;此预留中的作业可以使用其他预留中的空闲槽,或使用未分配给任何预留的槽。如需了解详情,请参阅空闲槽
--location=LOCATION
此标志指定项目的位置。
--project_id=PROJECT_ID
此标志指定拥有预留的项目。
--slots=NUMBER_OF_SLOTS
此标志指定要分配给此预留的槽数。

如需了解详情,请参阅处理预留

bq mk --reservation_assignment

将项目、文件夹或组织分配到预留。 支持以下标志:

--assignee_id=ASSIGNEE_ID
此标志指定文件夹、组织或项目的 ID。
--assignee_type=ASSIGNEE_TYPE
此标志指定要分配给预留的实体类型。以下项之一:
  • FOLDER
  • ORGANIZATION
  • PROJECT
--job_type=JOB_TYPE
此标志指定要分配给预留的作业类型。以下项之一:
  • QUERY
  • PIPELINE
  • ML_EXTERNAL
--location=LOCATION
此标志指定项目的位置。
--project_id=PROJECT_ID
此标志指定拥有预留的项目。
--reservation_id=RESERVATION_ID
此标志指定预留的 ID。

如需了解详情,请参阅处理分配

bq mk --table

创建一个表。支持以下标志:

--clustering_fields=COLUMNS
此标志表示一个以英文逗号分隔的列名称列表(最多包含 4 个列名称),指定了要用于表聚簇的字段。如果与分区一起指定,则系统首先会对表进行分区,然后使用所提供的列对每个分区进行聚簇。
--description=DESCRIPTION
指定表的说明。
--destination_kms_key=KEY
此标志指定用于加密目标表数据的 Cloud KMS 密钥资源 ID
--expiration=SECONDS
指定表有效期。如果 SECONDS0,则表不会过期。如果未指定 --expiration 标志,则 BigQuery 将使用数据集的默认表生命周期来创建表。
--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 值指定数据格式;为以下各项之一:

  • CSV

  • NEWLINE_DELIMITED_JSON

  • AVRO

  • DATASTORE_BACKUP(将此值用于 Filestore)

  • PARQUET

  • ORC

如果您指定表定义文件,请勿为其提供扩展名。

例如:

--external_table_definition=/tmp/tabledef
--external_table_definition=Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv

--label=KEY:VALUE

此标志指定表的标签。重复使用此标志可以指定多个标签。

--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

此标志会在表上启用基于时间的分区,并设置分区类型。请使用以下某个值:

  • DAY
  • HOUR
  • MONTH
  • YEAR
--use_avro_logical_types={true|false}

如果 --external_table_definition 标志FORMAT 部分设置为 AVRO,则此标志可指定是否将逻辑类型转换为其对应的类型(如 TIMESTAMP),而不是仅使用其原始类型(如 INTEGER)。

--parquet_enable_list_inference={true|false}

如果 --external_table_definition 标志FORMAT 部分设置为 PARQUET,则此标志指定是否对 Parquet LIST 逻辑类型使用架构推断

--parquet_enum_as_string={true|false}

如果 --external_table_definition 标志FORMAT 部分设置为 PARQUET,则此标志指定是否将 Parquet ENUM 逻辑类型推断为 STRING 值。

如需了解详情,请参阅创建和使用表

bq mk --transfer_config

创建转移作业配置。支持以下标志:

--data_source=DATA_SOURCE
指定数据源。创建转移作业配置时,此标志是必需的。请使用以下某个值:
--display_name=DISPLAY_NAME
此标志指定转移作业配置的显示名。
--params={"PARAMETER":"VALUE"}-p={"PARAMETER":"VALUE"}
此标志指定转移作业配置的参数(采用 JSON 格式)。根据数据源的不同,参数也会有所不同。如需了解详情,请参阅 BigQuery Data Transfer Service 简介
--refresh_window_days=DAYS
此标志表示一个整数,用于指定转移作业配置的刷新时段(以天为单位)。默认值为 0
--target_dataset=DATASET
此标志指定转移作业配置的目标数据集。

如需了解如何将 bq mk 命令与 BigQuery Data Transfer Service 搭配使用,请参阅以下内容:

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

创建视图。 支持以下标志:

--description=DESCRIPTION
此标志指定视图的说明。
--expiration=SECONDS
指定视图有效期。如果 SECONDS0,则视图不会过期。如果未指定 --expiration 标志,则 BigQuery 将使用数据集的默认表生命周期来创建视图。
--label=KEY:VALUE
此标志指定视图的标签。重复使用此标志可以指定多个标签。
--use_legacy_sql={true|false}
此标志设置为 false 可使用标准 SQL 查询创建视图。默认值为 true;使用旧版 SQL。
--view_udf_resource=FILE
此标志指定本地代码文件的 Cloud Storage URI 或路径,该代码文件会被立即加载为用户指定函数资源并评估,以供视图的 SQL 查询使用。重复使用此标志可以指定多个文件。

如需了解详情,请参阅创建视图

bq mkdef

使用 bq mkdef 命令可为 Cloud Storage 或云端硬盘中存储的数据创建 JSON 格式的表定义。

摘要

bq mkdef [FLAGS] URI [ > FILE ]

标志和参数

bq mkdef 命令使用以下标志和参数:

--autodetect={true|false}
此标志指定是否对 CSV 和 JSON 数据使用架构自动检测功能。默认值为 false
--ignore_unknown_values={true|false}-i={true|false}
此标志指定是否忽略架构中不存在的行中的任何值。默认值为 false
--parquet_enable_list_inference={true|false}
如果 source_format 设置为 PARQUET,则此标志指定是否对 Parquet LIST 逻辑类型使用架构推断。默认值为 false
--parquet_enum_as_string={true|false}
如果 source_format 设置为 PARQUET,则此标志可指定是否将 Parquet ENUM 逻辑类型推断为 STRING 值。默认值为 false
--source_format=FORMAT

此标志指定源数据的格式。请使用以下某个值:

  • AVRO
  • CSV
  • DATASTORE_BACKUP(将此值用于 Filestore)
  • GOOGLE_SHEETS
  • NEWLINE_DELIMITED_JSON
  • ORC
  • PARQUET

默认值为 CSV

--use_avro_logical_types={true|false}

如果 --source_format 标志设置为 AVRO,则此标指定是否将逻辑类型转换为对应的类型(如 TIMESTAMP),而不是仅使用其原始类型(如 INTEGER)。默认值为 false

如需详细了解如何使用 bq mkdef 命令,请参阅为外部数据源创建表定义文件

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 Suffix
HOUR YYYYMMDDHH
DAY YYYYMMDD
MONTH YYYYMM
YEAR YYYY
SOURCE_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 个列名称),指定了要用于对查询中的目标表进行聚簇的字段。如果与分区一起指定,则系统首先会对表进行分区,然后使用所提供的列对每个分区进行聚簇。
--destination_kms_key=KEY
此标志指定用于加密目标表数据的 Cloud KMS 密钥资源 ID
--destination_schema={PATH_TO_FILE|SCHEMA}
此标志表示本地 JSON 架构文件的路径,或英文逗号分隔的列定义列表(采用 FIELD:DATA_TYPEFIELD:DATA_TYPE 形式,以此类推)。
--destination_table=TABLE

指定此标志时,查询结果会保存到 TABLE。 请按以下格式指定 TABLEPROJECT: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_URISCHEMA 值的格式是 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

此标志代表一个整数,用于限制查询的计费字节数。如果查询超出此限制,则查询将失败(不会产生费用)。如果未指定此标志,则收费字节数设置为项目默认值。

--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}

如果指定了此标志,则对于所提供的表的查询,需要分区过滤条件。此标志只能与分区表一起使用。

--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 标志搭配使用。指定目标表的分区类型。请使用以下某个值:

  • DAY
  • HOUR
  • MONTH
  • YEAR
--udf_resource=FILE

此标志仅适用于旧版 SQL 查询。可指定 Cloud Storage URI 或要供旧版 SQL 查询使用的用户定义函数资源所在的本地文件的路径。重复使用此标志可以指定多个文件。

--use_cache={true|false}

如需禁止缓存查询结果,请设置为 false。默认值为 true

--use_legacy_sql={true|false}

如需运行标准 SQL 查询,请设置为 false。 默认值为 true;该命令使用旧版 SQL。

QUERY

此标志表示您要运行的查询。

如需详细了解如何使用 bq query 命令,请参阅运行交互式查询和批量查询

bq remove-iam-policy-binding

使用 bq remove-iam-policy-binding 命令,只需一步即可检索资源的 IAM 政策并从政策中移除绑定。资源可以是表或视图。

此命令是执行以下三个步骤的替代方法:

  1. 使用 bq get-iam-policy 命令检索政策文件(采用 JSON 格式)。
  2. 修改政策文件
  3. 使用 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 政策绑定中的成员类型。请使用以下某个值:

  • user
  • serviceAccount
  • group
  • domain

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。默认值为 false
--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 命令使用以下标志和参数。

--table={true|false}-t={true|false}
可选。如需设置表或视图的 IAM 政策,请设置为 true。默认值为 false

RESOURCE 是您要更新其政策的表或视图。

FILE_NAME 是包含政策的 JSON 格式文件的名称。

如需详细了解 bq set-iam-policy 命令和示例,请参阅表访问权限控制简介

bq show

使用 bq show 命令可显示有关资源的信息。

摘要

bq show [FLAGS] [RESOURCE]

标志和参数

bq show 命令使用以下标志和参数:

--assignee_id=ASSIGNEE
--reservation_assignment 标志搭配使用时,指定文件夹、组织或项目的 ID。使用 --assignee_type 标志指定要显示的分配对象类型。
--assignee_type=TYPE
--reservation_assignment 标志搭配使用时,指定要显示的实体类型。请使用以下某个值:
  • FOLDER
  • ORGANIZATION
  • PROJECT
--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 标志搭配使用时,请指定要显示的预留分配的作业类型。请使用以下某个值:
  • QUERY
  • PIPELINE
  • ML_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 命令使用以下标志和参数:

--capacity_commitment={true|false}
如需更新容量承诺,请设置为 true。默认值为 false。 请将此标志与 --merge--plan--renewal_plan--split--slots 标志搭配使用。
--clear_label=KEY:VALUE
此标志用于从资源中移除标签。使用 KEY:VALUE 格式指定要移除的标签。重复使用该标志可移除多个标签。
--clustering_fields=COLUMNS
更新表的聚簇规范。COLUMNS 值是用于聚簇的列名称列表(以英文逗号分隔)。如需移除聚簇,请将 COLUMNS 设置为 ""(空字符串)。如需了解详情,请参阅修改聚簇规范
--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

此标志充当过滤条件;仅当资源的 ETagETAG 参数中指定的字符串匹配时才会更新资源。

--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;指定预留中的作业可以使用其他预留中的空闲槽,或使用未分配给任何预留的槽。如需了解详情,请参阅空闲槽

--merge={true|false}

--capacity_commitment 标志搭配使用。此标志设置为 true 可合并两个容量承诺。默认值为 false。如需了解详情,请参阅合并两个承诺

--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 标志搭配使用时,将容量承诺转换为期限较长的承诺方案。 如下所示:

  • FLEX
  • MONTHLY
  • ANNUAL
--refresh_window_days=DAYS

此标志代表一个整数,用于指定某个转移配置的更新的刷新时段(以天为单位)。

--renewal_plan=PLAN

--capacity_commitment 标志搭配使用时,为现有容量承诺指定续订方案。 如下所示:

  • FLEX
  • MONTHLY
  • ANNUAL
--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

--set_label=KEY:VALUE

此标志指定要更新的标签。如需更新多个标签,请重复使用此标志。

--slots=NUMBER_OF_SLOTS

--capacity_commitment--split 标志搭配使用时,指定要从现有容量承诺拆分为新承诺的槽数。与 --reservation 标志搭配使用时,更新预留中的槽数。

--source=FILE

此标志表示包含更新资源时所用载荷的本地 JSON 文件的路径。例如,您可以使用此标志指定一个 JSON 文件,其中包含带有更新的 access 属性的数据集资源。该文件用于覆盖数据集的访问权限控制。

--split={true|false}

--capacity_commitment 标志搭配使用时,指定是否拆分现有容量承诺。默认值为 false。如需了解详情,请参阅拆分承诺

--table={true|false}-t={true|false}

此标志指定是否更新表。默认值为 false

--target_dataset=DATASET

指定此标志时,系统会更新转移作业配置的目标数据集。

--time_partitioning_expiration=SECONDS

此标志表示一个整数,用于更新应删除基于时间的分区的时间(以秒为单位)。到期时间以分区的世界协调时间 (UTC) 日期加上这个整数值为准。负数表示无到期时间。

--time_partitioning_field=COLUMN_NAME

使用此标志时,系统会更新用于确定如何创建基于时间的分区的字段。如果在未使用此值的情况下启用了基于时间的分区,表会根据加载时间进行分区。

--time_partitioning_type=INTERVAL

指定分区类型。请使用以下某个值:

  • DAY
  • HOUR
  • MONTH
  • YEAR

您无法更改现有表的分区类型。

--transfer_config={true|false}

此标志指定是否更新转移作业配置。默认值为 false

--update_credentials={true|false}

此标志指定是否更新转移作业配置凭据。默认值为 false

--use_legacy_sql={true|false}

false 设置为将视图的 SQL 查询从旧版 SQL 更新为标准 SQL。默认值为 true;该查询使用旧版 SQL。

--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

指定此标志时,系统会等待出现特定作业状态之后再退出。请使用以下某个值:

  • PENDING
  • RUNNING
  • DONE

默认值为 DONE

JOB

指定要等待的作业。您可以使用 bq ls --jobs myProject 命令查找作业标识符。

SECONDS

此标志指定作业完成之前要等待的秒数上限。如果输入了 0,则该命令会轮询作业完成情况,并立即返回。如果未指定整数值,则该命令会等到作业完成。