网易视频云:新一代列式存储格式Parquet.docx

网易视频云:新一代列式存储格式Parquet.docx

ID:62001122

大小:961.57 KB

页数:15页

时间:2021-04-10

 网易视频云:新一代列式存储格式Parquet.docx_第1页
 网易视频云:新一代列式存储格式Parquet.docx_第2页
 网易视频云:新一代列式存储格式Parquet.docx_第3页
 网易视频云:新一代列式存储格式Parquet.docx_第4页
 网易视频云:新一代列式存储格式Parquet.docx_第5页
资源描述:

《 网易视频云:新一代列式存储格式Parquet.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、文档网易视频云:新一代列式存储格式Parquet网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅、低时延、高并发的视频直播、录制、存储、转码及点播等音视频的PAAS服务,在线教育、远程医疗、娱乐秀场、在线金融等各行业及企业用户只需经过简单的开发即可打造在线音视频平台。现在,网易视频云的技术专家给大家分享一则技术文: 新一代列式存储格式Parquet。  ApacheParquet是Hadoop生态圈中一种新型列式存储格式,它可以兼容Hadoop生态圈中大多数计算框架

2、(Hadoop、Spark等),被多种查询引擎支持(Hive、Impala、Drill等),并且它是语言和平台无关的。Parquet最初是由Twitter和Cloudera(由于Impala的缘故)合作开发完成并开源,2015年5月从Apache的孵化器里毕业成为Apache顶级项目,最新的版本是1.8.1。Parquet是什么  Parquet的灵感来自于2010年Google发表的Dremel论文,文中介绍了一种支持嵌套结构的存储格式,并且使用了列式存储的方式提升查询性能,在Dremel论文中还介绍了Go

3、ogle如何使用这种存储格式实现并行查询的,如果对此感兴趣可以参考论文和开源实现ApacheDrill。  嵌套数据模型15/15文档  在接触大数据之前,我们简单的将数据划分为结构化数据和非结构化数据,通常我们使用关系数据库存储结构化数据,而关系数据库中使用数据模型都是扁平式的,遇到诸如List、Map和自定义Struct的时候就需要用户在应用层解析。但是在大数据环境下,通常数据的来源是服务端的埋点数据,很可能需要把程序中的某些对象内容作为输出的一部分,而每一个对象都可能是嵌套的,所以如果能够原生的支持这种

4、数据,这样在查询的时候就不需要额外的解析便能获得想要的结果。例如在Twitter,在他们的生产环境中一个典型的日志对象(一条记录)有87个字段,其中嵌套了7层,如下图:  另外,随着嵌套格式的数据的需求日益增加,目前Hadoop生态圈中主流的查询引擎都支持更丰富的数据类型,例如Hive、SparkSQL、Impala等都原生的支持诸如struct、map、array这样的复杂数据类型,这样也就使得诸如Parquet这种原生支持嵌套数据类型的存储格式也变得至关重要,性能也会更好。  列式存储  列式存储,顾名思

5、义就是按照列进行存储数据,把某一列的数据连续的存储,每一行中的不同列的值离散分布。列式存储技术并不新鲜,在关系数据库中都已经在使用,尤其是在针对OLAP场景下的数据存储,由于OLAP场景下的数据大部分情况下都是批量导入,基本上不需要支持单条记录的增删改操作,而查询的时候大多数都是只使用部分列进行过滤、聚合,对少数列进行计算(基本不需要select*fromxx之类的查询)。列式存储可以大大提升这类查询的性能,较之于行是存储,列式存储能够带来这些优化:15/15文档  1、由于每一列中的数据类型相同,所以可以针

6、对不同类型的列使用不同的编码和压缩方式,这样可以大大降低数据存储空间。2、读取数据的时候可以把映射(Project)下推,只需要读取需要的列,这样可以大大减少每次查询的I/O数据量,更甚至可以支持谓词下推,跳过不满足条件的列。3、由于每一列的数据类型相同,可以使用更加适合CPUpipeline的编码方式,减小CPU的缓存失效。Parquet的组成  Parquet仅仅是一种存储格式,它是语言、平台无关的,并且不需要和任何一种数据处理框架绑定,目前能够和Parquet适配的组件包括下面这些,可以看出基本上通常使

7、用的查询引擎和计算框架都已适配,并且可以很方便的将其它序列化工具生成的数据转换成Parquet格式。  查询引擎:Hive,Impala,Pig,Presto,Drill,Tajo,HAWQ,IBMBigSQL计算框架:MapReduce,Spark,Cascading,Crunch,Scalding,Kite数据模型:Avro,Thrift,ProtocolBuffers,POJOs  项目组成  Parquet项目由以下几个子项目组成:  parquet-format项目由java实现,它定义了所有Par

8、quet元数据对象,Parquet的元数据是使用ApacheThrift进行序列化并存储在Parquet文件的尾部。parquet-mr项目由java实现,它包括多个模块,包括实现了读写Parquet文件的功能,并且提供一些和其它组件适配的工具,例如HadoopInput/OutputFormats、HiveSerde(目前Hive已经自带Parquet了)、Pigloaders等。parquet-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。