`
猫耳呀
  • 浏览: 165490 次
社区版块
存档分类
最新评论

OSS重磅推出OSS Select——使用SQL选取文件的内容【免费公测中】

 
阅读更多

摘要: OSS重磅推出OSS Select功能,可以直接使用简单的SQL语句,从OSS的文件中选取所需要的内容

对象存储OSS(Object Storage Service)具有海量、可靠、安全、高性能、低成本的特点。OSS提供标准、低频、归档类型,覆盖多种数据从热到冷的存储需求,单个文件的大小从1字节到48.8TB,可以存储的文件个数无限制。OSS已成为互联网、企业级数据应用的基础设施。
通常,获取对象存储数据的通方式为:获取整个对象,或按指定的字节范围来获取数据。今天,我们重磅推出OSS Select,直接使用简单的SQL语句,从OSS的文件中选取所需要的内容

OSS Select介绍

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

OSS Select(公测中)让开发者可以直接使用SQL语句,从OSS文件中选取需要的内容。

使用OSS Select,只获取应用程序所需的查询结果,并支持并发地分片查询,会大幅提升程序的性能,通常情况下能有400%的提升。

公测说明:

  • 文件格式:公测期间支持未加密的CSV格式或者有分隔符的UTF8文本文件,参考RFC4180
  • 公测期间支持标准、低频类型的Object
  • 支持RangeQuery(公测期间,RangeQuery模式下不支持Use Header Name)
  • OSS Select公测期间免费
  • 后续阿里云EMR、DataLakeAnalytics、MaxCompute、HybridDB等都会陆续支持OSS Select

使用示例(python)

# -*- coding: utf-8 -*-

import os
import oss2


defselect_call_back(consumed_bytes, total_bytes = None):
    print('Consumed Bytes:' + str(consumed_bytes) + '\n')
# 首先初始化AccessKeyId、AccessKeySecret、Endpoint等信息。
# 通过环境变量获取,或者把诸如“<你的AccessKeyId>”替换成真实的AccessKeyId等。
#
# 以杭州区域为例,Endpoint可以是:
#   http://oss-cn-hangzhou.aliyuncs.com
#   https://oss-cn-hangzhou.aliyuncs.com
# 分别以HTTP、HTTPS协议访问。
access_key_id = os.getenv('OSS_TEST_ACCESS_KEY_ID', '<你的AccessKeyId>')
access_key_secret = os.getenv('OSS_TEST_ACCESS_KEY_SECRET', '<你的AccessKeySecret>')
bucket_name = os.getenv('OSS_TEST_BUCKET', '<你的Bucket>')
endpoint = os.getenv('OSS_TEST_ENDPOINT', '<你的访问域名>')


# 确认上面的参数都填写正确了
for param in (access_key_id, access_key_secret, bucket_name, endpoint):
    assert '<' not in param, '请设置参数:' + param


# 创建Bucket对象,所有Object相关的接口都可以通过Bucket对象来进行
bucket = oss2.Bucket(oss2.Auth(access_key_id, access_key_secret), endpoint, bucket_name)
# 
csvfile = 'sample.csv'
resultfilename = 'python_select.csv'

csv_meta_params = {'FileHeaderInfo': 'None',
                'RecordDelimiter': '\r\n'}

# LineRange(可选参数):表示指定查询行的范围
select_csv_params = {'FileHeaderInfo': 'None',
                 'LineRange':(100,1000)} 

csv_header = bucket.get_csv_object_meta(key, csv_meta_params)

# 将查询结果输出到文件
result = bucket.select_csv_object_to_file(csvfile, resultfile, 
         "select _1, _3, _4 from ossobject where _4 > 40 and  _1 like '%Tom%' ", 
        select_call_back, input_format)

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

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

result = bucket.select_csv_object(csvfile,  "select * from ossobject where _4 > 40 and  _1 like '%Tom%' ", select_call_back, select_csv_params)


content_got = b''
for chunk in result:
    content_got += chunk
print(content_got)

查询结果:

测试示例

您可以使用OSS Select来加速您的各类应用。OSS Select团队,创建了一个Spark的示例,基于OSS Select,实现 Spark Data Source API。假设,您需要从大量的人员名单中,查询符合条件的人员信息。比如查询50岁以上,姓名中包含Tom的目标人员。

使用OSS Select提升应用程序性能

  • 启用OSS Select,Spark借助OSS Select仅获取文件中所需要的数据;而禁用OSS Select,Spark获取整个文件
  • 不使用OSS Select,查询需要78秒(1.3分钟)。而使用OSS Select,只需要11秒,程序性能提升6倍! 

测试配置说明:

Spark测试集群配置:

数量 配置
master 1 4core 8GB
workers 2 4core 8GB

Spark配置:

export SPARK_MASTER_IP=master
export SPARK_WORKER_MEMORY=6g
export SPARK_WORKER_CORES=3
export SPARK_WORKER_INSTANCES=1
export SPARK_EXECUTOR_CORES=1
export SPARK_EXECUTOR_MEMORY=2g

数据量:

CSV数据量为7GB。

 

原文链接

分享到:
评论

相关推荐

    文件上传(普通上传,oss上传,oss大文件分段上传)

    本文将深入探讨如何使用Java语言实现文件的本地上传、OSS(Object Storage Service)普通上传以及OSS大文件的分段上传。我们将重点讲解每个过程,并提供相关的知识点。 首先,我们来看本地文件上传。在Java中,我们...

    springboot整合easypoi实现文件导入导出OSS文件上传和下载。OSS图片导出

    在本项目中,我们主要探讨如何使用SpringBoot框架与阿里云OSS(Object Storage Service)服务相结合,通过Easypoi库实现文件的导入、导出功能,以及OSS上的文件上传和下载。Easypoi是一个强大的Java操作Excel的工具...

    java上传本地文件到oss指定目录

    在Java开发中,将本地文件上传到阿里云OSS(Object Storage Service)是常见的操作,尤其在处理大数据存储和分发时。阿里云OSS提供了一种高效、安全且经济的云端存储解决方案。本篇文章将详细讲解如何使用Java SDK...

    dubbo上传文件+oss上传文件服务.zip

    在本项目中,`file_remote`可能是一个处理远程文件操作的模块,它接收来自Dubbo服务提供者的文件,并负责将文件上传到OSS。为了实现这一功能,开发者可能使用了阿里云的Java SDK,通过调用对应的API来完成文件上传。...

    vue阿里云oss文件的基本操作

    在Vue.js应用中使用阿里云OSS,首先需要安装相关的SDK。通过npm或yarn可以方便地完成安装: ```bash npm install ali-oss --save # 或 yarn add ali-oss ``` 接着,在项目中引入并初始化OSS客户端: ```...

    阿里云OSS临时授权STS直传视频文件到OSS服务器教程(含所需的核心js代码)

    使用客户端的selectFiles方法让用户选择视频文件,然后调用uploadFile方法,传入文件和上传的OSS路径。 5. 监听上传进度和结果: 注册上传进度和成功/失败的回调函数,以便在前端展示上传状态。 6. 安全处理: ...

    springboot整合oss实现文件的上传,查看,删除,下载

    在本文中,我们将深入探讨如何使用SpringBoot与OSS(Object Storage Service)集成,实现文件的上传、查看、删除和下载功能。OSS通常是指云存储服务,如阿里云的OSS,它提供了大规模、安全且高可用的在线存储解决...

    oss存储浏览器查看器,可以在linux系统里查看oss存储使用情况,也可以上传、下载、删除

    本文将详细介绍这种工具的功能以及如何在Linux系统中使用。 **1. 功能特性** OSS存储浏览器查看器的主要功能包括: - **查看存储使用情况**:实时显示OSS存储空间的使用状态,包括总容量、已使用空间、剩余空间等...

    java利用oss实现下载功能

    在writeJSONObjectFile方法中,我们首先创建OSSClient实例,然后使用该实例将内容写入OSS。最后,我们将下载链接返回给前端。 通过使用Java和OSS,可以轻松实现下载功能。这种方法可以满足大多数下载需求,并且...

    java实现上传文件到oss(阿里云)功能示例

    要使用 Java 实现上传文件到 OSS,需要首先导入阿里云 OSS 官方提供的工具包 aliyun-sdk-oss-2.5.0.jar 或最新版本。同时,需要在阿里云控制台获取到密匙KeyId 和密匙KeySecret。 二、AliyunConfig 配置类 在 Java...

    oss文件上传(带回调)

    【标题】"OSS文件上传(带回调)"指的是在Spring Boot应用中集成对象存储服务(Object Storage Service,简称OSS),并实现文件上传功能,同时具备回调机制,即在文件上传完成后,系统会自动执行预设的回调函数,通常...

    oss文件上传demo

    在这个"oss文件上传demo"中,我们将探讨如何使用阿里云OSS进行文件上传操作。 首先,要进行OSS文件上传,你需要在阿里云控制台上创建一个OSS bucket,这是存储文件的基本单元。bucket具有全局唯一性,并且可以根据...

    Java下载https文件并上传阿里云oss服务器

    接着,使用`OSSClient`的API将网络流(在本例中是音频文件)上传到指定的bucket。 上传文件通常涉及以下步骤: 1. 创建OSSClient实例。 2. 获取上传文件的输入流,例如通过HTTP请求获取HTTPS文件。 3. 调用OSS...

    vue页面使用阿里oss上传功能的实例(一)

    在本例中,我们使用了 OSS.Wrapper 来初始化 oss-sdk,并将其用于上传文件。 知识点七:Vue 组件的使用 在实现上传功能时,我们需要使用 Vue 组件来封装 upload 组件。在本例中,我们使用了 Vue 组件来封装 upload...

    基于python实现上传文件到OSS代码实例

    在本文中,我们将深入探讨如何使用Python语言上传文件到阿里云对象存储服务(OSS)。阿里云OSS是一种云存储服务,提供高可用性、高可靠性和可扩展性的数据存储解决方案。通过Python SDK,我们可以方便地与OSS交互,...

    android 集成 OSS 上传图片

    在Android开发中,集成阿里云对象存储服务(OSS)以实现图片上传是一个常见的需求。OSS 是一种云存储服务,允许开发者将大量的文件存储在云端,并能够方便地进行访问和管理。以下是对这个主题的详细讲解。 1. **...

    oss实现js上传

    在IT行业中,OSS(Object Storage Service)是一种广泛使用的云存储服务,它允许开发者和企业存储、管理和访问大量数据。在这种场景下,"oss实现js上传"指的是利用JavaScript实现向OSS服务批量上传文件的功能。这种...

    阿里云OSS文件上传下载查询工具类-AliyunOSSUtil.java

    使用阿里云OSS对象存储服务,根据SDK编写文件上传、下载、查询、删除、获取文件链接、创建文件夹等方法的工具类Util,该工具类已在正式应用环境中经受考验,其中有示例demo使用方法教程,方法有注解,帮助使用者更好...

    阿里云Oss的简单使用

    在本案例中,我们将探讨如何简单使用阿里云OSS进行文件上传,尤其是针对Android应用的开发。 首先,我们需要在阿里云控制台创建一个OSS bucket。Bucket是OSS中存储对象的基本单元,相当于传统存储中的目录或文件夹...

    ueditor(jsp版)上传文件到阿里云OSS的简单实例

    在本文中,我们将深入探讨如何将ueditor(jsp版)集成到阿里云对象存储服务(OSS)中,实现文件的上传功能。这是一项对于Web开发者来说非常实用的技术,尤其适用于那些希望为用户提供便捷的在线内容编辑和存储服务的...

Global site tag (gtag.js) - Google Analytics