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 格式字段有关有效键的更多信息。
- --csv-output
- 可选
数据格式为
.csv输出。 指定一个逗号分隔的字符串key=value,...pairs. 请参阅CSV 格式字段有关有效键的更多信息。查看 S3 APICSV输出欲了解更多信息。
- --enc-c
- 可选
使用服务器端加密或解密对象SSE-C 加密使用客户端管理的密钥。
该参数接受一个键值对,格式为
KEY=VALUEKEY对象的完整路径为
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
- 可选
数据格式为
.jsonor.ndjson输入对象。 指定JSON内容的类型为type=<VALUE>该值可以是以下之一:查看 S3 APIJSONInput欲了解更多信息。
- --json-output
- 可选
数据格式为
.jsonoutput. 支持rd=valuekey, whererd是RecordDelimiter对于 JSON 文档。省略以使用默认换行符
\n.查看 S3 APIJSONOutput欲了解更多信息。
全局标志
此命令支持任何全局标志.
示例
选择存储桶中所有对象的所有列
使用mc sql随着--recursive和--query将查询应用于存储桶中所有对象的选项:
mc sql --recursive --query "select * from S3Object" ALIAS/PATH
对对象运行聚合查询
使用mc sql随着--query查询 MinIO 部署中对象的选项:
mc sql --query "select count(s.power) from S3Object" ALIAS/PATH
行为
输入格式
mc sql支持以下输入格式:
类型 |
|
|---|---|
|
|
|
|
|
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-input和mc sql --csv-output某些密钥对仅适用于--csv-input请参阅 S3 API 文档CSVInput有关 S3 CSV 格式的更多信息。
Key |
|
描述 |
|---|---|---|
|
输入中分隔每条记录(行)的字符 对应 |
|
|
分隔记录中每个字段的字符。默认为 对应 |
|
|
用于转义的字符当 对应 |
|
|
用于转义引号的字符 对应 |
|
|
是的 |
第一行中的内容 请指定以下支持的其中一个值:
对于 对于 对应 |
|
是的 |
用于指示应忽略记录的字符。必须出现在记录的开头。 对应 |
|
是的 |
指定 默认值为 对应 |
S3 Compatibility
Themc命令行工具专为兼容 AWS S3 API 而构建,并已通过 MinIO 和 AWS S3 测试,确保功能与行为符合预期。
MinIO 不提供对其他 S3 兼容服务的保证,因为它们的 S3 API 实现方式未知,因此不受支持。尽管mc命令可能按文档所述工作,任何此类使用风险自负。