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

如何在MaxCompute上处理存储在OSS上的开源格式数据

阅读更多

前言

MaxCompute作为使用最广泛的大数据平台,内部存储的数据以EB量级计算。巨大的数据存储量以及大规模计算下高性能数据读写的需求,对于MaxCompute提出了各种高要求及挑战。处在大数据时代,数据的来源多种多样,开源社区经过十几年的发展,百花齐放,各种各样的数据格式不断的出现。 我们的用户也在各个场景上,通过各种计算框架,积累了各种不同格式的数据。怎样将MaxCompute强大的计算能力开放给这些使用开源格式存储沉淀下来的数据,在MaxCompute上挖掘这些数据中的信息,是MaxCompute团队希望解决的问题。

MaxCompute 2.0最近推出的非结构化计算框架【公测阶段】,旨在从存储介质和存储格式两个维度,打通计算与存储的通道。 在之前的文章中,我们已经介绍过怎样在MaxCompute上对存储在OSS上的文本,音频,图像等格式的数据,以及TableStore(OTS)的KV数据进行计算处理。在这里,则将介绍对于各种流行的开源数据格式(ORC, PARQUET, SEQUENCEFILE, RCFILE, AVRO, TEXTFILE等等),怎样将其存储在OSS上面,并通过非结构化框架在MaxCompute进行处理。

本着不重造轮子的原则,对于绝大部分这些开源数据格式的解析工作,在非结构化框架中会直接调用开源社区的实现,并且无缝的与MaxCompute系统做对接。

1. 创建EXTERNAL TABLE来绑定OSS外部数据

MaxCompute非结构化数据框架通过EXTERNAL TABLE的概念来提供MaxCompute与各种数据的联通,与读取OSS数据的使用方法类似,对OSS数据进行写操作,首先要通过CREATE EXTERNAL TABLE语句创建出一个外部表,而在读取开源数据格式时,创建外表的DDL语句格式如下:

可以看到,这个语法与HIVE的语法是相当接近的,而在这个CREATE EXTERNAL TABLE的ddl语句中,有如下几点要说明:

  1. 首先要特别说明的是这里使用的是STORED AS的关键字,而不是普通非结构化外表用的STORED BY关键字,这也是目前在读取开源兼容数据时独有的。
  2. 外部表的<column schemas> 必须与具体OSS上存储存储数据的schema相符合。
  3. ROW FORMAT SERDE 并非必选选项,只有在使用一些特殊的格式上,比如TEXTFILE时才需要使用。
  4. STORED AS后面接的是文件格式名字, 比如 ORC/PARQUET/RCFILE/SEQUENCEFILE/TEXTFILE 等等。
  5. 最后还要提到的是,在上面这个例子中,我们在LOCATION上使用了OSS明文AK,这只适用于在用户对于AK的保密性不敏感情况下使用。 对于数据安全比较敏感的场景,比如在多用户场景或者弹外集群上,则推荐使用通过STS/RAM体系事先进行鉴权,从而避免使用明文AK。

1.1 范例1: 关联OSS上存储的PARQUET数据

现在再来看一个具体的例子,假设我们有一些PARQUET文件存放在一个OSS路径上,每个文件都是PARQUET格式,存放着schema为16列(4列BINGINT, 4列DOUBLE, 8列STRING)的数据,那么可以通过如下DDL语句来描述:

1.2 范例2:分区表关联OSS上存储的TEXTFILE数据

同样的数据,如果是每行以JSON格式,存储成OSS上TEXTFILE文件;同时,数据在OSS通过多个目录组织,这时是可以使用MaxCompute分区表和数据关联,则可以通过如下DDL语句来描述:

如果OSS表目录下面的子目录是以Partition Name方式组织,比如:

则可以使用以下DDL语句ADD PARTITION:

如果OSS分区目录不是按这种方式组织,或者根本不在表目录下,比如:

则可以使用以下DDL语句ADD PARTITION:

2. 读取以及处理 OSS 上面的开源格式数据

对比上面的两个范例,可以看出对于不同文件类型,只要简单修改STORED AS后的格式名。在接下来的例子中,我们将只集中描述对上面PARQUET数据对应的外表(tpch_lineitem_parquet)的处理,如果要处理不同的文件类型,只要在DDL创建外表时指定是PARQUET/ORC/TEXTFILE/RCFILE/TEXTFILE即可,处理数据的语句则是一样的。

2.1 直接读取以及处理OSS上面的开源数据

在创建数据外表后,直接对外表就可以进行与普通MaxCompute表的操作,直接对存储在OSS上的数据进行处理,比如:

可以看到,在这里tpch_lineitem_parquet这个外表被当作一个普通的内部表一样使用。唯一不同的只是在MaxCompute内部计算引擎将从OSS上去读取对应的PARQUET数据来进行处理。

但是我们应该强调的是,在这里直接使用外表,每次读取的时候都需要涉及外部OSS的IO操作,并且MaxCompute系统本身针对内部存储做的许多高性能优化都用不上了,所以性能上会有所损失。 所以如果是需要对数据进行反复计算以及对计算的高效性比较敏感的场景上,我们推荐下面这种用法:先将数据导入MaxCompute内部,再进行计算。

注意,上面例子中的tpch_lineitem_textfile表,因为使用了ROW FORMAT + STORED AS,需要手动设置flag(只使用STORED AS,odps.sql.hive.compatible默认为TRUE),再进行读取,否则会有报错。

2.2 将OSS上的开源数据导入MaxCompute,再进行计算

  • 首先创建一个与外部表schema一样的内部表tpch_lineitem_internal,然后将OSS上的开源数据导入MaxCompute内部表,以cFile格式存储在MaxCompute内部:

  • 直接就可以对内部表进行同样的操作:

通过这样子将数据先导入系统的情况下,对同样数据的计算就会更高效得多。

 

4. 结语

开源的种种数据格式往往由各种数据处理生态产生,而MaxCompute非结构化数据处理框架通过实现计算与存储的互联,希望打通阿里云核心计算平台与各种数据的通路。在这个基础上,各种各样依赖于不同数据格式的应用,将能在MaxCompute计算平台上实现,后继我们会对一些具体的这种应用,比如基因计算等,再做一些具体的case study以及介绍。我们也欢迎有对开源数据进行处理分析的更多应用,能在MaxCompute强大计算能力的基础上开花结果。

原文链接

分享到:
评论

相关推荐

    从Spark到KubernetesMaxCompute的云原生开源生态实践之路资料下载.pdf

    在这样的背景下,MaxCompute作为阿里巴巴自主研发的大数据处理平台,积极探索与开源生态的融合之路,旨在打造一个高效、弹性的云原生大数据处理平台。 #### 二、云计算与大数据的关系 云计算与大数据之间的关系...

    基于虚拟化云平台的大数据处理环境设计与实现

    这些服务包括计算资源(如EC2实例、ECS容器)、存储解决方案(如S3、OSS)以及大数据处理框架(如EMR、MaxCompute)。通过云平台,用户可以按需获取资源,只需支付实际使用量,降低了初期投资和运维成本。 Hadoop是...

    数据中台之结构化大数据存储设计 (4).docx

    缓存系统用于加速访问,队列实现数据处理的异步化,非结构化大数据存储服务如OSS用于存储大量非结构化数据,流计算则处理实时数据流,提供低延迟的分析结果。 总结来说,数据中台的结构化大数据存储设计是一个涉及...

    阿里云DataWorks数据集成版本

    3. **DataX工作原理**:DataX作为一个全量数据迁移工具,通过读取源数据、处理数据转换以及写入目标数据,实现了高效的数据同步。它支持全量数据迁移和增量数据同步,并提供了丰富的插件来处理不同的数据源。 4. **...

    阿里巴巴开源大数据平台演进之路 - 王峰(莫问)-阿里云

    为解决这些问题,EMR经历了从1.0到2.0的演进,引入了存算分离架构,支持容器化混布,资源利用率提高,并结合阿里云的对象存储OSS,提供了云原生的全托管HDFS,优化了数据存储格式,降低了总体成本并提高了存储效率。...

    阿里云大数据平台方案介绍.pdf

    比如,EMR与Hadoop生态的产品映射,涵盖了各种开源组件和阿里云产品的对应关系,如HDFS文件系统、对象存储OSS、MapReduce、Hive、Spark及其机器学习库MLlib/ML等。 3. 实时消息采集与流处理:实时消息采集主要通过...

    阿里巴巴大数据智能技术.zip

    通过Hadoop、Spark等开源工具,以及自研的大数据处理平台如MaxCompute(原名ODPS),阿里巴巴实现了对海量业务数据的高效处理,为决策支持、商业智能提供了强有力的支持。 其次,智能技术是大数据价值实现的关键,...

    datax同步模板.rar

    DataX 是阿里巴巴开源的一款高效、稳定、强大的数据同步工具,它能够支持多种数据源之间的数据迁移,例如从 MySQL 到 HDFS,从 RDS 到 MaxCompute 等。在这个"DataX同步模板.rar"压缩包中,包含了可能用于演示或测试...

    藏经阁-阿里云数据库 PG、PPAS、HDB for PG 云生态、产品指南、企业全栈应用案例、开发管理实践.pdf

    4. 云生态:阿里云数据库服务是整个云生态系统的一部分,能够与其他阿里云服务如对象存储OSS、消息队列MQ、大数据处理MaxCompute等无缝集成,提供完整的云上数据解决方案。 5. 产品指南:文档中包含了阿里云数据库...

    广西电子商务公共服务平台大数据中心(Html模板、大数据模板、大屏echarts模板).zip

    这需要熟悉云服务的管理和使用,如对象存储(OSS)、数据库服务(如RDS)和大数据服务(如EMR或MaxCompute)。 8. **数据安全与隐私保护**:电子商务平台需要严格遵守数据安全法规,确保用户数据的保密性和完整性。...

    PyPI 官网下载 | datax-0.0.3-py3-none-any.whl

    数据传输工具DataX是阿里巴巴开源的一款用于大数据同步的工具,其Python版本的库可以在Python Package Index(PyPI)官网上找到。"PyPI 官网下载 | datax-0.0.3-py3-none-any.whl"这个标题表明我们可以从PyPI官方...

    关于阿里云:阿里巴巴大数据及AI实战的介绍说明.zip

    2. 图像识别:阿里云的图像识别服务,包括OSS对象存储中的智能图片分析功能,能够识别图像内容,如人脸识别、物体识别等,助力企业在视觉智能上实现创新。 3. 自然语言处理:阿里云的自然语言处理服务,如NLP,涵盖...

    阿里云 专有云企业版 V3.12.0 E-MapReduce 产品简介 20200619.pdf

    计算层由Hadoop MapReduce、Spark、Flink等计算引擎组成,负责处理数据的计算任务。存储层主要对接阿里云的OSS(Object Storage Service)和RDS(Relational Database Service),提供大规模数据的存储和访问。管理...

    阿里云 专有云企业版 V3.7.0 云数据库 HBase 产品简介 20181204.pdf

    - **无缝集成**:与阿里云ECS、OSS、MaxCompute等服务无缝集成,方便数据导入导出和分析。 3. **使用须知** 用户在使用阿里云HBase时需遵守法律声明,如仅通过官方渠道获取文档,不得泄露文档内容,未经许可不得...

    阿里云 专有云企业版 V3.7.0 E-MapReduce 产品简介 20181201.pdf

    - 它支持与阿里云其他服务如OSS(对象存储服务)、RDS(关系型数据库服务)和MaxCompute(大数据处理服务)的无缝集成,提供了一站式的数据分析平台。 3. **安全性与合规**: - 用户需通过阿里云官方渠道获取和...

    《阿里技术参考图册》

    Hadoop、Spark等开源工具在阿里的应用和优化,以及阿里自研的大数据处理框架如MaxCompute(原名ODPS)和Lindorm(分布式NoSQL数据库),可能会在图册中进行深入解析。此外,阿里在数据仓库和BI(商业智能)方面的...

    阿里云 专有云企业版 V3.8.2 E-MapReduce 技术白皮书 20200420.pdf

    此外,它还集成了阿里云对象存储OSS、表格存储OTS和数据仓库MaxCompute等服务,实现数据的高效流动和分析。 4. **应用场景** E-MapReduce广泛应用于日志分析、用户行为分析、推荐系统、大数据挖掘、实时监控等多个...

    《阿里技术参考图册》(研发篇)

    图册可能讲解Hadoop、Spark等大数据处理框架在阿里的应用,以及阿里自研的大数据平台MaxCompute和实时计算Flink。同时,还会介绍如何利用大数据进行智能分析和决策支持。 四、人工智能篇 人工智能是阿里巴巴技术...

    云安全漏洞发现和利用.pdf

    - 对象存储:用于非结构化数据的存储,如OSS (Object Storage Service)。 - 文件存储:提供共享文件系统,如NAS (Network Attached Storage)。 - 块存储:提供高性能的磁盘存储,如EBS (Elastic Block Store)。 ...

Global site tag (gtag.js) - Google Analytics