bq 命令行工具参考文档
本文档介绍了 bq
命令行工具(BigQuery 命令行工具)的语法、命令、标志和参数。本指南的目标读者是熟悉 BigQuery,但希望了解如何使用特定 bq 命令行工具的用户。如需了解有关如何使用 bq 命令行工具的一般信息,请参阅使用 bq 命令行工具。
摘要
bq 命令行工具使用以下格式:
bq COMMAND [FLAGS] [ARGUMENTS]
某些标志可与多个 bq 命令行工具命令搭配使用;全局标志部分介绍了这些标志。
其他标志是特定于命令的;它们只能与特定的 bq 命令行工具命令搭配使用。命令部分中介绍了特定于命令的标志。
布尔值标志
某些 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 会使用该标志的默认值。
为标志指定值
在为标志指定值时,等号 =
为可选项。例如,以下两个命令是等效的:
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: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 令牌。--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
命令需要此位置标志。对于以下命令,此位置标志为可选项。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) 政策并向该政策添加绑定。
此命令是执行以下三个步骤的替代方法:
- 使用
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:[email protected] \ --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 单字节字符。您可以使用
\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
命令使用以下标志和参数:
--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
。如果--autodetect
为false
,且未使用--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 单字节字符。您可以使用
\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
此标志表示源数据的格式。请使用以下某个值:
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 将 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 数据转移adwords
- Google Ads 数据转移google_ads
- Google Ads 数据传输(预览版)merchant_center
- Google Merchant Center 数据转移play
- Google Play 数据转移scheduled_query
- 计划查询数据传输doubleclick_search
- Search Ads 360 数据转移youtube_channel
- YouTube 频道数据转移youtube_content_owner
- YouTube 内容所有者数据转移redshift
- Amazon Redshift 迁移on_premises
- Teradata 迁移
例如:
--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
。您的选择指定了要创建的资源类型。
--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
指定承诺方案类型。必须是以下值之一:
ANNUAL
THREE_YEAR
使用旧版固定费率价格的客户还可以使用以下值之一:
FLEX
MONTHLY
ANNUAL
--renewal_plan=RENEWAL_TYPE
指定续订方案类型。
ANNUAL
或THREE_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 格式的连接专属参数。必须指定
instanceId
、database
和type
。如果您要创建 Spanner 连接并希望使用 Data Boost,请添加
"useParallelism":true
和"useDataBoost":true
对。--connection_credential=CONNECTION_CREDENTIAL
JSON 格式的连接凭据。必须指定
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
对于 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 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
值指定数据格式;为以下各项之一: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 外部表以及基于 AWS 和 Azure 的 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_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
此标志会在表上启用基于时间的分区,并设置分区类型。请使用以下某个值:
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
,则此标志指定是否对 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 数据转移adwords
- Google Ads 数据转移google_ads
- Google Ads 数据传输(预览版)merchant_center
- Google Merchant Center 数据转移play
- Google Play 数据转移scheduled_query
- 计划查询数据传输doubleclick_search
- 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
参数是转移作业中要包含的表的逗号分隔列表。如需排除某个表,请在该表前面加上连字符 (-
)。默认值会在转移作业中包含所有表。
如需了解如何将 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.avro
gs://bucket/path_to_table/dt=2019-05-31/country=CA/id=3/file.avro
如果您使用
AUTO
或STRINGS
模式,则可接受以下值: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
,则此标志指定是否对 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
此标志指定源数据的格式。请使用以下某个值:
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}
--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}
如果指定了此标志,则对于所提供的表的查询,需要分区过滤条件。此标志只能与分区表一起使用。
--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(例如 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 政策绑定中的成员类型。请使用以下某个值: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
此标志充当过滤条件;仅当资源的 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_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。--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
,则该命令会轮询作业完成情况,并立即返回。如果未指定整数值,则该命令会等到作业完成。