文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

mc sql

语法

Themc sql该命令提供了一个 S3 Select 接口,用于在指定的 MinIO 部署中对对象执行 SQL 查询。

从对象中选择内容有关 S3 Select 行为和限制的更多信息。

以下命令查询所有对象在mydata桶上的myminioMinIO 部署:

mc sql --recursive --query "select * from S3Object" myminio/mydata

该命令具有以下语法:

mc [GLOBALFLAGS] mc sql                          \
                 --query "string"                \
                 [--csv-input "string"]          \
                 [--compression "string"]        \
                 [--csv-output "string"]         \
                 [--csv-output-header "string"]  \
                 [--enc-c "string"]              \
                 [--json-input "string"]         \
                 [--json-output "string"]        \
                 [--recursive]                   \
                 ALIAS
  • Brackets[]表示可选参数。

  • 共享同一行的参数是相互依赖的。

  • 使用竖线分隔的参数|操作符是互斥的。

将示例复制到文本编辑器中,根据需要修改,然后在终端/Shell中运行命令。

参数

ALIAS
必需

运行 SQL 查询的存储桶或对象的完整路径。 指定别名已配置的 S3 服务的前缀ALIASpath. 例如:

mc sql [FLAGS] play/mybucket
--query, e
必需

要在指定数据库上执行的SQL语句ALIAS目录或对象。 将整个 SQL 查询用双引号括起来".

默认值为"select * from S3Object".

--csv-input
可选

数据格式为.csv输入对象。 指定一个逗号分隔的字符串key=value,...pairs. 请参阅CSV 格式字段有关有效键的更多信息。

--compression
可选

输入对象的压缩类型。 请指定以下支持的数值之一:

  • GZIP

  • BZIP2

  • NONE(default)

MinIO 后端支持的压缩方案仅限:

--csv-output
可选

数据格式为.csv输出。 指定一个逗号分隔的字符串key=value,...pairs. 请参阅CSV 格式字段有关有效键的更多信息。

查看 S3 APICSV输出欲了解更多信息。

--csv-output-header
可选

标题行的.csv输出文件。 指定一个逗号分隔的字段字符串作为field1,field2,....

省略以输出一个.csv没有标题行。

--enc-c
可选

使用服务器端加密或解密对象SSE-C 加密使用客户端管理的密钥。

该参数接受一个键值对,格式为KEY=VALUE

KEY

对象的完整路径为alias/bucket/path/object.ext.

您只能指定顶级路径,以便对该路径中的所有操作使用单一加密密钥。

VALUE

指定一个32字节的RawBase64编码密钥or一个64字节的十六进制编码密钥,用于SSE-C加密。

原始 Base64 编码拒绝 =- 填充的密钥。 省略填充或使用支持 RAW 格式的 Base64 编码器。

  • KEY- 对象的完整路径为alias/bucket/path/object.

  • VALUE- 用于加密对象的32字节RAW Base64编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

您可以通过重复该参数来指定多个加密密钥。

指定前缀路径,对该路径下所有匹配的对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

Note

MinIO 强烈建议在生产工作负载中不要使用 SSE-C 加密。 请通过 SSE-KMS 使用--enc-kms或通过 SSE-S3--enc-s3改为使用参数。

--json-input
可选

数据格式为.json or .ndjson输入对象。 指定JSON内容的类型为type=<VALUE>该值可以是以下之一:

查看 S3 APIJSONInput欲了解更多信息。

--json-output
可选

数据格式为.jsonoutput. 支持rd=valuekey, whererdRecordDelimiter对于 JSON 文档。

省略以使用默认换行符\n.

查看 S3 APIJSONOutput欲了解更多信息。

--recursive, r
可选

递归搜索指定的ALIAS使用目录--querySQL 语句。

全局标志

此命令支持任何全局标志.

示例

选择存储桶中所有对象的所有列

使用mc sql随着--recursive--query将查询应用于存储桶中所有对象的选项:

mc sql --recursive --query "select * from S3Object" ALIAS/PATH
  • 替换ALIAS随着别名MinIO 部署的。

  • 替换PATH使用 MinIO 部署中存储桶的路径。

对对象运行聚合查询

使用mc sql随着--query查询 MinIO 部署中对象的选项:

mc sql --query "select count(s.power) from S3Object" ALIAS/PATH
  • 替换ALIAS随着别名MinIO 部署的。

  • 替换PATHMinIO 部署中对象的路径。

行为

输入格式

mc sql支持以下输入格式:

输入格式类型

类型

content-type

.csv

text/csv

.json

application/json

.parquet

none

对于.csv文件类型,使用mc sql --csv-input指定 CSV 数据格式。 请参阅CSV 格式字段有关 CSV 格式字段的更多信息。

对于.json文件类型,使用mc sql --json-input指定 JSON 数据格式。

对于.parquet文件类型,mc sql自动解释数据格式。

mc sql根据目标对象的文件扩展名确定类型。 例如,名为data.json被解释为 JSON 文件。

如果对象具有适当的扩展名,您可以查询支持类型但扩展名不同的数据。content-type更多信息,请参阅mc cp --attr.

CSV 格式字段

下表列出了可用的有效键值对mc sql --csv-inputmc sql --csv-output某些密钥对仅适用于--csv-input请参阅 S3 API 文档CSVInput有关 S3 CSV 格式的更多信息。

Key

--csv-input

描述

rd

输入中分隔每条记录(行)的字符.csvfile.

对应RecordDelimiter在 S3 API 中CSVInput.

fd

分隔记录中每个字段的字符。默认为,.

对应FieldDelimeter在 S3 API 中CSVInput.

qc

用于转义的字符当fdcharacter is part of a value. 默认值为".

对应QuoteCharacter在 S3 API 中CSVInput.

qec

用于转义引号的字符"已转义值内的字符。

对应QuoteEscapeCharacter在 S3 API 中CSVInput.

fh

是的

第一行中的内容.csvfile.

请指定以下支持的其中一个值:

  • NONE- 第一行不是标题。

  • IGNORE- 忽略第一行。

  • USE- 第一行是标题。

对于NONE or IGNORE你必须指定列位置_#识别列中的--query声明。

对于USE你可以指定标头值来标识列--query声明。

对应FieldHeaderInfo在 S3 API 中CSVInput.

cc

是的

用于指示应忽略记录的字符。必须出现在记录的开头。

对应Comment在 S3 API 中CSVInput.

qrd

是的

指定TRUE表示字段可能包含记录分隔符值(rd).

默认值为FALSE.

对应AllowQuotedRecordDelimiter在 S3 API 中CSVInput.

S3 Compatibility

Themc命令行工具专为兼容 AWS S3 API 而构建,并已通过 MinIO 和 AWS S3 测试,确保功能与行为符合预期。

MinIO 不提供对其他 S3 兼容服务的保证,因为它们的 S3 API 实现方式未知,因此不受支持。尽管mc命令可能按文档所述工作,任何此类使用风险自负。