bq 命令行工具参考文档

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

摘要

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

bq COMMAND [FLAGS] [ARGUMENTS]

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

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

布尔值标志

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

格式 示例
true --FLAGNAME=true --debug_mode=true
true --FLAGNAME --debug_mode
false --FLAGNAME=false --debug_mode=false
false --noFLAGNAME --nodebug_mode

本文档对布尔值标志使用 --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 表。

上下文 格式 示例
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 命令结合使用(如适用):

--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,则系统会请求一个不包含 Google 云端硬盘范围的新 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 命令需要此位置标志。对于以下命令,此位置标志为可选项。

  • query
  • cp
  • load
  • extract
  • partition
  • update
  • wait
  • mk(使用 --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) 政策并向该政策添加绑定。

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

  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

使用 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 均未指定,则目标表与基表的类型相同。

您不能同时使用标志设置 --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

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

  • 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 命令,请参阅使用 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。如果 --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}
如果对于 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.writeDispositionWRITE_TRUNCATE 值。

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

--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_typeFILE_SYSTEM_MATCH,则该文件会直接用作数据文件。如果 file_set_spec_typeNEW_LINE_DELIMITED_MANIFEST,则文件中的每一行都会被解读为指向一个数据文件的 URI。

--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 逻辑类型使用架构推断

--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 用作键,并将以下数据源之一用作值:

例如:

   --filter labels.dataSourceIds:dcm_dt
   

对于转移作业运行,请将 states 用作键,并将以下转移作业状态之一用作值: + SUCCEEDED + FAILED + PENDING + RUNNING + CANCELLED

 For example:
 <pre>
 --filter labels.states:FAILED
 </pre>

对于作业,过滤条件标志不受支持。

--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。可能的值如下:

  • 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

如需购买容量承诺,请将 --capacity_commitment 设置为 true 并使用以下标志:

--location=LOCATION
指定承诺的位置。
--plan=PLAN_TYPE

指定承诺方案类型。必须是以下值之一:

  • ANNUAL
  • THREE_YEAR

使用旧版固定费率价格的客户还可以使用以下值之一:

  • FLEX
  • MONTHLY
  • ANNUAL
--renewal_plan=RENEWAL_TYPE

指定续订方案类型ANNUALTHREE_YEAR 承诺方案的必需参数。必须是以下各项之一:

  • ANNUAL
  • THREE_YEAR
  • NONE

使用旧版固定费率价格的客户还可以使用以下值之一:

  • FLEX
  • MONTHLY
  • ANNUAL
--project_id=PROJECT_ID

指定管理槽的项目。

--slots=NUMBER_OF_BASELINE_SLOTS

指定要购买的基准槽数。

--edition=EDITION

与容量承诺关联的版本。必须是以下其中一项:

  • ENTERPRISE
  • ENTERPRISE_PLUS

如需了解详情,请参阅购买槽

bq mk --connection

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

--connection_type=CONNECTION_TYPE
连接类型,例如对于 Cloud SQL 连接为 CLOUD_SQL
--properties=PROPERTIES

JSON 格式的连接专属参数。必须指定 instanceIddatabasetype

如果您要创建 Spanner 连接并希望使用 Data Boost,请添加 "useParallelism":true"useDataBoost":true 对。

--connection_credential=CONNECTION_CREDENTIAL

JSON 格式的连接凭据。必须指定 usernamepassword

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

对于 Azure Omni on Azure,请指定包含 Azure Storage 账号的 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
与容量承诺关联的版本。必须是以下其中一项:
  • STANDARD
  • ENTERPRISE
  • ENTERPRISE_PLUS
--autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS
分配给预留的自动扩缩槽数。该值等于预留大小上限减去基准槽数。只能与 --edition 标志搭配使用。

如需了解详情,请参阅创建包含专用槽的预留

bq mk --reservation_assignment

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

--assignee_id=ASSIGNEE_ID
此标志指定文件夹、组织或项目的 ID。
--assignee_type=ASSIGNEE_TYPE
此标志指定要分配给预留的实体类型。以下项之一:
  • FOLDER
  • ORGANIZATION
  • PROJECT
--job_type=JOB_TYPE
此标志指定要分配给预留的作业类型。以下项之一:
  • QUERY
  • PIPELINE
  • ML_EXTERNAL
  • BACKGROUND
--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 StorageGoogle 云端硬盘外部表

--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 值指定数据格式;为以下各项之一:

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

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

例如:

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

对于 Bigtable 外部表以及基于 AWSAzure 的 BigLake 表

--external_table_definition=PATH_TO_FILE
该值必须是包含表定义的文件的路径。

对于基于 Cloud Storage 的 BigLake 表

--external_table_definition=FORMAT=BUCKET_PATH@REGION.CONNECTION_NAME

  • FORMAT 值指定数据格式;为以下各项之一:

    • AVRO
    • CSV
    • NEWLINE_DELIMITED_JSON
    • ICEBERG
    • ORC
    • PARQUET
  • 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_typeFILE_SYSTEM_MATCH,则该文件会直接用作数据文件。如果 file_set_spec_typeNEW_LINE_DELIMITED_MANIFEST,则文件中的每一行都会被解读为指向一个数据文件的 URI。

--reference_file_schema_uri=URI

指定具有创建外部表的预期表架构的引用文件的路径。与 ExternalDataConfiguration.referenceFileSchemaUri 相同。系统会为 Avro、ORC 和 PARQUET 格式启用此标志。

--label=KEY:VALUE

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

--max_staleness=INTERVAL

指定对表执行的操作是否使用了缓存的元数据,以及操作使用的缓存元数据的新鲜度。

适用于 BigLake 表对象表

如需停用元数据缓存,请指定 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

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

  • 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
此标志指定转移作业配置的显示名。
--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 参数是转移作业中要包含的表的逗号分隔列表。如需排除某个表,请在该表前面加上连字符 (-)。默认值会在转移作业中包含所有表。

如需了解如何将 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

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

--add_tags=TAGS
指定要附加到新视图的标记,以英文逗号分隔。例如 556741164180/env:prod,myProject/department:sales。每个标记必须具有命名空间键名称和值简称
--description=DESCRIPTION
此标志指定视图的说明。
--expiration=SECONDS
指定视图有效期。如果 SECONDS0,则视图不会过期。如果未指定 --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.avro
  • gs://bucket/path_to_table/dt=2019-05-31/country=CA/id=3/file.avro

如果您使用 AUTOSTRINGS 模式,则可接受以下值:

  • gs://bucket/path_to_table
  • gs://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,则此标志指定是否对 Parquet LIST 逻辑类型使用架构推断。默认值为 false

--parquet_enum_as_string={true|false}

如果 source_format 设置为 PARQUET,则此标志可指定是否将 Parquet ENUM 逻辑类型推断为 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_typeFILE_SYSTEM_MATCH,则该文件会直接用作数据文件。如果 file_set_spec_typeNEW_LINE_DELIMITED_MANIFEST,则文件中的每一行都会被解读为指向一个数据文件的 URI。

--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 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 后缀
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 个列名称),指定了要用于对查询中的目标表进行聚簇的字段。如果与分区一起指定,则系统首先会对表进行分区,然后使用所提供的列对每个分区进行聚簇。
--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。 请按以下格式指定 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

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

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

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

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

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

--job_timeout_ms={string (Int64Value)}

指定运行查询的最长时间(以毫秒为单位)。如果超出此时间限制,BigQuery 会尝试停止作业。

QUERY

此标志表示您要运行的查询。 您可以使用以下任一方法指定查询:

  • 指定包含查询的字符串。

    如果您需要在查询中使用其他字符串字面量,则必须遵循所用 shell(例如 BashPowerShell)的引用规则。

    以下示例展示了 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 政策并从政策中移除绑定。资源可以是表或视图。

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

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

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

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 标志搭配使用时,指定要显示的实体类型。请使用以下某个值:
  • 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 命令使用以下标志和参数:

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

此标志充当过滤条件;仅当资源的 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;指定预留中的作业可以使用其他预留中的空闲槽,或使用未分配给任何预留的槽。如需了解详情,请参阅空闲槽

--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(用英文逗号分隔)。如需了解详情,请参阅合并两项承诺

--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 替换为以下项之一:

  • ANNUAL
  • THREE_YEAR
--refresh_window_days=DAYS

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

--remove_tags=TAG_KEYS

仅适用于数据集和表。指定要从资源中移除的标记,以英文逗号分隔,例如 556741164180/env,myProject/department。每个标记键都必须具有命名空间键名称

--renewal_plan=PLAN

--capacity_commitment 标志搭配使用时,更新年度容量承诺的续订方案。将 PLAN 替换为以下项之一:

  • ANNUAL
  • THREE_YEAR
  • NONE

使用旧版固定费率价格的客户还可以使用以下值之一:

  • 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

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

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

  • DAY
  • HOUR
  • MONTH
  • YEAR

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

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

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

  • PENDING
  • RUNNING
  • DONE

默认值为 DONE

JOB

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

SECONDS

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