OSS选择使用SQL语句选取OSS文件的内容

  介绍

本篇文章给大家分享的是有关OSS选择使用SQL语句选取OSS文件的内容,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

对象存储OSS(对象存储服务)具有海量,可靠,安全、高性能,低成本的特点.OSS提供标准,低频,归档类型,覆盖多种数据从热到冷的存储需求,单个文件的大小从1字节到48.8 tb,可以存储的文件个数无限制.OSS已成为互联网,企业级数据应用的基础设施。

通常,获取对象存储数据的通方式为:获取整个对象,或按指定的字节范围来获取数据。今天,<强>我们重磅推出OSS选择、直接使用简单的SQL语句,从OSS的文件中选取所需要的内容

OSS选择介绍

使用SQL选取OSS文件中的内容

OSS选择(公测中)让开发者可以直接使用SQL语句,从OSS文件中选取需要的内容。
 OSS选择使用SQL语句选取OSS文件的内容”> <br/>使用OSS选择,只获取应用程序所需的查询结果,并支持并发地分片查询,会大幅提升程序的性能,通常情况下能有400%的提升。<br/> <img src=

公测说明:

<李>

文件格式:公测期间支持未加密的CSV格式或者有分隔符的UTF8文本文件,参考RFC4180,

<李>

公测期间支持标准,低频类型的对象

<李>

支持RangeQuery(公测期间,RangeQuery模式下不支持使用标题名称)

<李>

OSS选择公测期间免费

<李>

后续阿里云EMR, DataLakeAnalytics, MaxCompute, HybridDB等都会陆续支持OSS选择

使用示例(python)

 #, - *安康;编码:utf-8  - * -
  
  import 操作系统
  import  oss2
  
  
  def  select_call_back (consumed_bytes, total_bytes =,无):
  ,,,print (& # 39; Consumed 字节:& # 39;,+,str (consumed_bytes), +, & # 39; \ n # 39;)
  #,首先初始化AccessKeyId, AccessKeySecret、端点等信息。
  #,通过环境变量获取,或者把诸如“& lt;你的AccessKeyId>“替换成真实的AccessKeyId等。
  #
  #,以杭州区域为例,端点可以是:
  #,,http://oss-cn-hangzhou.aliyuncs.com
  #,,https://oss-cn-hangzhou.aliyuncs.com
  #,分别以HTTP、HTTPS协议访问。
  时间=access_key_id  os.getenv (& # 39; OSS_TEST_ACCESS_KEY_ID& # 39;,, & # 39; & lt;你的AccessKeyId> & # 39;)
  时间=access_key_secret  os.getenv (& # 39; OSS_TEST_ACCESS_KEY_SECRET& # 39;,, & # 39; & lt;你的AccessKeySecret> & # 39;)
  时间=bucket_name  os.getenv (& # 39; OSS_TEST_BUCKET& # 39;,, & # 39; & lt;你的Bucket> & # 39;)
  时间=endpoint  os.getenv (& # 39; OSS_TEST_ENDPOINT& # 39;,, & # 39; & lt;你的访问域名祝辞& # 39;)
  
  
  #,确认上面的参数都填写正确了
  for  param 拷贝(access_key_id, access_key_secret,, bucket_name,,端点):
  ,,,assert  & # 39; & lt; & # 39;, not 参数,拷贝,& # 39;请设置参数:& # 39;+,参数
  
  
  #,创建桶对象,所有对象相关的接口都可以通过桶对象来进行
  时间=bucket  oss2.Bucket (oss2.Auth (access_key_secret access_key_id也),端点,,bucket_name)
  #,
  时间=csvfile  & # 39; sample.csv& # 39;
  时间=resultfilename  & # 39; python_select.csv& # 39;
  
  csv_meta_params =, {& # 39; FileHeaderInfo& # 39;:, & # 39;没有# 39;,
  ,,,,,,,,,,,,,,,& # 39;RecordDelimiter& # 39;:, & # 39; \ r \ n # 39;}
  
  #,LineRange(可选参数):表示指定查询行的范围
  select_csv_params =, {& # 39; FileHeaderInfo& # 39;:, & # 39;没有# 39;,
  ,,,,,,,,,,,,,,,,& # 39;LineRange& # 39;: (100、1000)},
  
  csv_header =, bucket.get_csv_object_meta(关键,csv_meta_params)
  
  #,将查询结果输出到文件
  时间=result  bucket.select_csv_object_to_file (csvfile, resultfile,,
  ,,,,,,,,“select  _1,,、, _4 得到ossobject  where  _4 祝辞,40,以及,_1  like  & # 39;汤姆% % & # 39;,,,,
  ,,,,,,,,,select_call_back input_format) 

以上是一个简单的python示例,使用SQL查询OSS的对象,并将结果输出到文件汇总。

除了将查询结果输出到文件,还可以将查询结果直接返回

 result =, bucket.select_csv_object (csvfile,,,“select  *,得到ossobject  where  _4 祝辞,40,以及,_1  like  & # 39;汤姆% % & # 39;,,,,,select_call_back, select_csv_params)
  
  
  时间=content_got  b # 39; & # 39;
  for  chunk 结果:拷贝
  ,,,content_got  +=,块
  打印(content_got) 

OSS选择使用SQL语句选取OSS文件的内容