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

使用限制

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

操作步骤

  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击目标Bucket名称。
  3. 在左侧导航栏,选择文件管理 > 文件管理
  4. 在文件管理页面,选择目标文件对应的更多 > 选取内容
  5. 选取内容页面设置相关参数。
    • 文件类型:按文件实际情况选择文件的类型,可选项为:CSVJSON
    • 分隔符(针对CSV文件):选择半角逗号(,)或自定义分隔符。
    • 标题行(针对CSV文件):选择文件第一行是否包含列标题。
    • JSON格式符(针对JSON文件):选择您的JSON文件对应的格式。
    • 压缩格式:选择您当前的文件是否为压缩文件。目前压缩文件仅支持GZIP文件。
  6. 单击显示文件预览可预览文件。
    注意 预览标准存储类型文件时,会产生Select扫描费用。预览低频访问、归档和冷归档存储类型文件时,会产生Select扫描费用和数据取回费用。
  7. 单击下一步,输入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 oss_object