利用 OSS Select,您可以使用简单的SQL语句从OSS的单个文件中选取内容,仅获取所需要的数据,从而减少从OSS传输的数据量,提升您获取数据的效率。

前提条件

  • 目前支持RFC 4180标准的CSV(包括TSV等类CSV文件,文件的行列分隔符以及Quote字符都可自定义)和JSON文件,且文件编码为UTF-8。
  • 通过控制台可以对128MB以下的文件提取40MB以下的数据记录。如果您需要处理更大的文件或返回更多的记录,请使用 API:SelectObject

操作步骤

  1. 登录OSS管理控制台
  2. 单击Bucket列表,之后单击目标Bucket名称。
  3. 单击文件管理页签。
  4. 选择目标文件对应的更多 > 选取内容
  5. 选取内容页面设置相关参数。
    • 文件类型:按文件实际情况选择文件的类型,可选项为:CSVJSON
    • 分隔符(针对CSV文件):选择逗号(,)或自定义分隔符。
    • 标题行(针对CSV文件):选择文件第一行是否包含列标题。
    • JSON格式符(针对JSON文件):选择您的JSON文件对应的格式。
    • 压缩格式:选择您当前的文件是否为压缩文件。目前压缩文件仅支持GZIP文件。
  6. 单击显示文件预览可预览文件。
    说明 预览文件会产生Select扫描费用。
    • 标准存储类型:Select扫描费用
    • 低频访问、归档存储类型:Select扫描费用和数据取回费用。
  7. 单击下一步,输入SQL语句并执行。
    说明 关于SQL语句的使用说明,请参见SelectObject API文档中的 常见SQL用例
  8. 查看执行结果。单击下载,下载所选取的内容到本地。

操作样例

假如名为 People的CSV文件,有3列数据,分别是 姓名公司年龄
  • 如果想查找年龄大于50岁,并且名字以Lora开头的人(其中_1,_2,_3是列索引,代表第一列、第二列、第三列),可以执行如下SQL语句:
    select * from ossobject where _1 like 'Lora*' and _3 > 50
  • 如果想统计这个文件有多少行,最大年龄与最小年龄是多少,可以执行如下SQL语句:
    select count(*), max(cast(_3 as int)), min(cast(_3 as int)) from ossobject