文档章节

主要介绍OSS上支持开源数据格式_和计算打通的场景

_夜枫
 _夜枫
发布于 2017/06/13 13:09
字数 2305
阅读 8
收藏 0
点赞 0
评论 0

原文链接

看到标题,可能有用户要问:OSS不是用来存图片、视频、及文件的吗,还可以在上面建表、数仓?计算效率和经济性表现怎么样?

本文先给出基本结论:

  • OSS是什么?

对象存储(Object Storage Service,简称OSS)是基于阿里云飞天分布式系统的海量、安全和高可靠的云存储服务,是一种面向互联网的大规模、通用存储,提供RESTful API,具备容量和处理的弹性扩展能力。

  • 基于OSS是否可以创建数据表?

既然可以把摄像头推流接到OSS,建表属于小Case了。并且2016年在亦龙大神的帮助下,Hadoop社区在官方版本中支持OSS,开启了阿里云存储与开源融合的新里程碑。

  • OSS上建表是否易用?

今天为了降低OSS上建表的门槛,日志服务(原SLS)LogHub可以支持OSS上表的实时写入(表类型包括TextFile,列存储Parquet),支持压缩及数据Partition配置。在计算引擎端,我们已经和阿里云(MaxCompute、E-MapReduce)和主流开源计算引擎(Presto等)打通,无缝使用多种计算引擎热插拔对接。

既然可以把数据表直接建在HDFS、MaxCompute(原ODPS)上,选择OSS来存储表数据又是为什么呢?

存储与计算分离的趋势

在2009年做大规模计算的核心词是“Locality”:让计算尽量靠近数据以提升效率。当时一个公认的模型是:构建一个足够大的资源池,把数据和计算融合在里面发挥规模效应。

但最近几年以来,生态和环境都悄然发生了一些变化:

  • 计算模式:全量数据计算模式,逐步被Impala、Presto等更高效计算模式赶上
  • 存储格式:ORC/Parquet/Kudu等列存、索引技术诞生,使得计算不需要Scan大块数据
  • 网络架构:25G网络开始上线,FPGA等技术也加快了网络体验
  • 存储介质:SSD、AliFlash、3D X-Point 大量混合技术使得存储可以“既快又猛”
  • 计算平台:GPU、FGPA、甚至是未来的TPU等改变计算形态

从这些变化使得我们发现:

通过一款机型通吃存储+计算方案,已经演变成存储+计算各自服务化,通过高速网络进行连接的趋势

1
这种方式可以使得存储、计算不用再被”机型“,”机柜“,”电力“等方案束缚,在各自最擅长的领域进行创新。从业界对于”分层“的工作中,我们也看到了这类的尝试:

案例1:Netflix 基于S3解决方案

Netflix是AWS创新代表,特别是他们的大数据业务。根据2016 Re:Invent上Slides描述,Netflix每天新增500 Billion条日志(数据量500 TB)、存量数仓规模 60PB、每天会对其中3PB数据做计算。

在Slides中Netflix谈到:从2014年开始就决定开始摒弃各种系统隔阂,底层使用了统一存储S3,之上构建各种计算引擎系统。事实证明Netflix这一步走得正确,海量的存储与计算能力使得商业的创新得到了充分释放,成为AWS上令人引以为傲的学习榜样。

2

受Netflix启发,AWS 在2016 Re:Invent 上推出了一款新的计算产品Athena:该产品将Presto服务化提供基于各种存储类服务的 Ad-Hoc Query能力。

AWS Athena利用多个可用区(Availability Zones)中的计算资源执行查询,并将S3用作底层数据存储系统,由于数据冗余地存储在多个地点和每个地点的多个设备中,服务具备很高的可用性和可靠性。

案例2:Facebook RocksDB项目

Google开源了Level DB,而Facebook通过改造成RocksDB使它上升到新高度。RocksDB除了对LSM模型的多个优化外,另一个非常吸引人的地方在对存储介质、计算层适配得非常友好,可以充分发挥计算和存储的性能。底层的介质与存储对上层API透明热插拔,是在软件设计层面存储+计算分离的一个优美案例。

3

OSS上建立数仓的优势

优势1:不受限制的存储空间

对于数据仓库来说最重要一点是海量存储,能为计算分析提供大数据吞吐支持。在这个点上OSS是非常合适的。

结合OSS的目录设置,对大规模(百万级别以上)文件做合理划分,并与计算引擎配合拿到更高的计算效率。LogHub投递OSS存储支持Hive-style分区目录,将数据按照日期存储,可以设置多维分区。

举个例子,我们有一个应用叫my-app,为应用创建一个dw项目 my-dw,在项目中创建了一组表,以其中一个表my-table作为例子:表中的数据以时间(天)作为partition(例如date='20170330' 代表当天的数据目录)。

整个数仓的层级结构可以映射为OSS的一个访问路径:

  • my-app 为 OSS 上bucket名称
  • my-dw 之后则为数仓的项目名(namespace)
  • my-table是表名
  • date=20170330是一维分区

4

优势2:极低的存储成本

OSS 是提供实时数据读写“最便宜”存储产品之一,对于100GB日志数据:

  1. 使用列存储编码(以Parquet格式为例),通过snappy压缩后,存储数据量在8 GB左右
  2. 以OSS当前官网价格计算,使用OSS存储一个月费用为 8 * 0.148 = 1.184 元
  3. 除此之外,OSS有两种根据访问频率可任意转换形态:IA(低频)、Archive(冷备),最低可以降低60%成本。OSS 与 IA,Archive之间数据模型是一致的,数据形态可以非常便捷的转换。

5

优势3:一份数据,对接多种计算引擎

我们可以将数据以一种通用的协议存储(例如textfile,sequence file或parquet等),目前OSS上数据支持如下计算引擎:

  • 开源:Spark、Presto、Druid,Pig,Hive等
  • 阿里云:MaxCompute,E-MapReduce、RDS-PG、Batch Compute等

以上计算引擎和存储之间都是热插拔,可以方便地在不同大小的测试、生产数据集上进行切换组合。

对比与传统数仓方案,数据存储于OSS,计算实现了Schema on Read,使得数据分析的自由度得到了很大提升。

6

除了支持多种计算引擎外,OSS 本身还有Geo-Replication功能,可以在不同Region间准实时进行同步,不把鸡蛋放在一个篮子里,以进一步提升重要数据的安全性。

优势4:在计算效率上比肩HDFS类存储

OSS从API上看起来不像HDFS类存储这么细,性能并不一定好?

这里以一个Map-Reduce作业举例,在作业的执行过程中,OSS会在3个地方被用到:

  • 调度:当查询提交时,需要根据计算数据范围 List OSS目录制定plan,确定多少文件目录参与计算
  • 运行:每个Worker根据plan扫描指定目录下文件,读取并进行自定义计算
  • 结果:当计算完成时,写入OSS(计算中间结果产生的Shuffle文件可以写在本机以优化性能,部分场景下也可以选择使用OSS)

7

可见,对于Ad-Hoc Query类场景,OSS在使用模式上都可以完全胜任。

开始在OSS分析数据

数据写入

  • LogHub(推荐)

直接将日志以准实时方式写入OSS,支持JSON、Parquet格式,投递规则配置如下:

8

数据在OSS存储如下:

2017-04-18 11:50:39 513.75KB oss://oss-shipper-shenzhen-test/tfs_access_log/updatetime=2017_04_18_11_00/log_1492487434507106535_1670221.snappy.parquet
2017-04-18 11:56:01 517.36KB oss://oss-shipper-shenzhen-test/tfs_access_log/updatetime=2017_04_18_11_00/log_1492487754196771821_1670280.snappy.parquet
2017-04-18 12:01:31 537.03KB oss://oss-shipper-shenzhen-test/tfs_access_log/updatetime=2017_04_18_12_00/log_1492488089710991745_1670335.snappy.parquet
2017-04-18 12:06:54 512.95KB oss://oss-shipper-shenzhen-test/tfs_access_log/updatetime=2017_04_18_12_00/log_1492488410774368293_1670389.snappy.parquet
2017-04-18 12:22:55 512.95KB oss://oss-shipper-shenzhen-test/tfs_access_log/updatetime=2017_04_18_12_00/log_1492489370787863606_1670558.snappy.parquet
2017-04-18 12:34:21 261.69KB oss://oss-shipper-shenzhen-test/tfs_access_log/updatetime=2017_04_18_12_00/log_1492490057002827204_1670672.snappy.parquet
object list number is: 5451
totalsize is: real:195677878828, format:182.24GB

通过LogHub写入优势:数据接入LogHub多种选择,全托管归档服务,准实时投递,支持异常重试,STS授权。了解OSS投递请参考文档

  • OSS API/SDK

使用OSS 各种SDK或API写入,完全自主的写入方式,参考文档

计算引擎

  • E-MapReduce/Spark/Hive 用户:参考社区文档
  • MaxCompute 用户(ODPS):功能内测中。
  • PG用户:请联系 铁庵。
  • Presto用户:Local File模式,参考社区文档
  • 其它:随时一个Get,数据全部拿走。

原文链接

本文转载自:http://click.aliyun.com/m/23128/

共有 人打赏支持
_夜枫
粉丝 9
博文 506
码字总数 0
作品 0
朝阳
后端工程师
如何在MaxCompute上处理存储在OSS上的开源格式数据

前言 MaxCompute作为使用最广泛的大数据平台,内部存储的数据以EB量级计算。巨大的数据存储量以及大规模计算下高性能数据读写的需求,对于MaxCompute提出了各种高要求及挑战。处在大数据时代...

阿里云云栖社区 ⋅ 05/31 ⋅ 0

存储与计算分离:OSS构建表_+_计算引擎对接

看到标题,可能有用户要问:OSS不是用来存图片、视频、及文件的吗,还可以在上面建表、数仓?计算效率和经济性表现怎么样? 本文先给出基本结论: OSS是什么? 对象存储(Object Storage Serv...

大大梁 ⋅ 2017/06/02 ⋅ 0

如何使用OSS视频截帧功能快速生成视频预览

OSS作为对象存储产品,主要提供的是海量非结构化数据的存储,其中绝大部分都是视频和图片等富媒体数据,针对该场景的需求,OSS提供了丰富的图片处理功能来帮助用户更加方便的对存储于OSS上的...

windvision ⋅ 03/31 ⋅ 0

PgSQL · 应用案例 · "写入、共享、存储、计算" 最佳实践

背景 数据是为业务服务的,业务方为了更加透彻的掌握业务本身或者使用该业务的群体,往往会收集,或者让应用埋点,收集更多的日志。 随着用户量、用户活跃度的增长,时间的积累等,数据产生的...

阿里云RDS-数据库内核组 ⋅ 2017/05/09 ⋅ 0

解码2017双11:全球狂欢新记录背后的阿里云存储

阿里云存储支撑双11新记录 2017天猫双11全球狂欢节,全天成交额再次刷新纪录达到1682亿元,全天支付总笔数达到14.8亿,全天物流订单达8.12亿,全球225个国家和地区的消费者参加。新零售能量全...

whj. ⋅ 2017/12/22 ⋅ 0

PgSQL · 最佳实践 · 云上的数据迁移

背景 大多数使用云产品作为 IT 解决方案的客户同时使用多款云产品是一个普遍现象。 用户在多款云产品之间转移数据成为一个基础的需求。 例如 1. 用户把线下机房中的 Oracle 数据库中的数据 ...

阿里云RDS-数据库内核组 ⋅ 2017/06/10 ⋅ 0

EMR Druid 探索(二)

EMR Druid 探索(二) EMR Druid 上文介绍了 Druid 的特点、使用场景以及性能。EMR 在 3.11.0 引入了 Druid,并专门推出了一种新的集群类型:Druid 集群。在具体使用时,Druid 集群可以与 Ha...

xy_xind ⋅ 06/01 ⋅ 0

使用OSS中的数据作为机器学习的训练样本

使用OSS中的数据作为机器学习的训练样本 背景 对象存储服务OSS 阿里云对象存储服务(Object Storage Service,以下简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。 云机...

龙临 ⋅ 04/12 ⋅ 0

阿里云HBase产品体系架构及特性解析

2017云栖大会HBase专场,阿里云高级技术专家封神带来阿里云HBase产品体系架构及特性解析。本文主要从HBase在大数据中的价值谈起,进而介绍了产品架构和产品特性,接着分享了应用场景和后续计...

云迹九州 ⋅ 01/11 ⋅ 0

Hadoop默认支持集成OSS,作为Hadoop兼容的文件系统

背景 2017.12.13日Apache Hadoop3.0.0正式版本发布,默认支持阿里云OSS对象存储系统,作为Hadoop兼容的文件系统。 OSS是中国云计算厂商第一个也是目前唯一一个被Hadoop官方版本支持的云存储系...

阿里云云栖社区 ⋅ 2017/12/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

浅谈springboot Web模式下的线程安全问题

我们在@RestController下,一般都是@AutoWired一些Service,由于这些Service都是单例,所以并不存在线程安全问题。 由于Controller本身是单例模式 (非线程安全的), 这意味着每个request过来,...

算法之名 ⋅ 今天 ⋅ 0

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部