标准 SQL 中的其他语句

EXPORT DATA 语句

EXPORT DATA 语句会将查询结果导出到外部存储位置。存储位置必须是 Cloud Storage。

EXPORT DATA
OPTIONS (export_option_list) AS
query_statement

其中:

  • export_option_list 指定导出操作的选项列表,包括目标位置的 URI。

  • query_statement 是一个 SQL 查询。查询结果将导出到外部目标位置。

使用 format 选项指定导出数据的格式。存在以下限制:

  • 您不能使用 CSV 格式导出嵌套数据和重复数据。
  • 如果您使用 JSON 格式导出数据,则 INT64 数据类型会编码为 JSON 字符串,以保留 64 位精度。

export_option_list

选项列表指定了导出操作的选项。请按以下格式指定选项列表:NAME=VALUE, ...

您必须提供 uriformat 选项。uri 选项必须是单个通配符 URI,如将数据导出到一个或多个文件中所述。

选项
compression

STRING

指定压缩格式。如果未指定,则导出的文件将不会被压缩。支持的值包括:GZIPDEFLATESNAPPY

field_delimiter

STRING

用于分隔字段的分隔符。默认值:','(英文逗号)。

适用于:CSV。

format

STRING

导出数据的格式。支持的值包括:AVROCSVJSONPARQUET预览版)。

header

BOOL

如果为 true,则系统会为每个数据文件的第一行生成列标题。默认值:false

适用于:CSV。

overwrite

BOOL

如果为 true,则系统会覆盖目标位置。否则,如果目标位置不为空,则语句会返回一个错误。默认值:false

uri

STRING

导出操作的目标位置的 URI。

示例:"gs://bucket/path/file_*.csv"

示例

将数据导出到 CSV 格式

以下示例将数据导出到 CSV 文件。它包含用于覆盖目标位置、写入标题行并使用 ';' 作为分隔符的选项。

EXPORT DATA OPTIONS(
  uri='gs://bucket/folder/*.csv',
  format='CSV',
  overwrite=true,
  header=true,
  field_delimiter=';') AS
SELECT field1, field2 FROM mydataset.table1 ORDER BY field1 LIMIT 10

将数据导出到 Avro 格式

以下示例使用 Snappy 压缩方法将数据导出到 Avro 格式。

EXPORT DATA OPTIONS(
  uri='gs://bucket/folder/*',
  format='AVRO',
  compression='SNAPPY') AS
SELECT field1, field2 FROM mydataset.table1 ORDER BY field1 LIMIT 10