MaxCompute用户指南:处理非结构化数据:前言-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

MaxCompute用户指南:处理非结构化数据:前言

行者武松 2017-10-24 10:38:10 1397


MaxCompute 作为阿里云大数据平台的核心计算组件,拥有强大的计算能力,能够调度大量的节点做并行计算,同时对分布式计算中的 failover、重试等均有一套行之有效的处理管理机制。
MaxCompute SQL 作为分布式数据处理的主要入口,为快速方便处理/存储 EB级别的离线数据提供强有力的支持。随着大数据业务的不断扩展,新的数据使用场景在不断产生,在这样的背景下,MaxCompute计算框架也在不断的演化,原来主要面对内部特殊格式数据的强大计算能力,正一步步的开放给不同的外部数据。
现阶段 MaxCompute SQL 面对的主要是以 cfile 列格式,存储在内部 MaxCompute 表格中的结构化数据。而对于MaxCompute 表外的各种用户数据(包括文本以及各种非结构化的数据),需要首先通过各种工具导入 MaxCompute表,然后进行计算。数据导入的过程,具有较大的局限性。以 OSS 为例子,想要在 MaxCompute 中处理 OSS上的数据,通常有以下两种做法:

  • 通过 OSS SDK 或者其他工具从 OSS 下载数据,然后再通过 MaxCompute Tunnel 将数据导入表里。

  • 写 UDF,在 UDF 里直接调用 OSS SDK 访问 OSS 数据。

但这两种做法都有不足之处:

  • 第一种需要在 MaxCompute 系统外部做一次中转,如果 OSS 数据量太大,还需要考虑如何并发来加速,无法充分利用 MaxCompute 大规模计算的能力。

  • 第二种通常需要申请 UDF 网络访问权限,还要开发者自己控制作业并发数和数据如何分片的问题。

本节将介绍一种外部表的功能,支持旨在提供处理除了 MaxCompute 现有表格以外的其他数据的能力。在这个框架中,通过一条简单的 DDL语句,即可在 MaxCompute 上创建一张外部表,建立 MaxCompute表与外部数据源的关联,提供各种数据的接入和输出能力。创建好的外部表可以像普通的 MaxCompute 表一样使用(大部分场景),充分利用MaxCompute SQL 的强大计算功能。
这里的 各种数据 涵盖两个维度:
  多样的数据存储介质:插件式的框架可以对接多种数据存储介质,比如 OSS、OTS。
多样的数据格式:MaxCompute 表是结构化的数据,而外部表可以不限于结构化数据。

  • 完全无结构数据,比如图像、音频、视频文件、raw binaries 等。

  • 半结构化数据,比如 csv、tsv 等隐含一定 schema 的文本文件。

  • 非 cfile 的结构化数据,比如 orc/parquet 文件,甚至 hbase/OTS 数据。

接下来将通过两个简单的示例,来帮助您深入了解非结构化数据的处理,详情请参见 访问 OSS 非结构化数据访问 OTS 非结构化数据
存储 SQL 分布式计算 并行计算 大数据 调度 MaxCompute 开发工具 对象存储 数据格式
分享到
取消 提交回答
全部回答(0)
大数据
使用钉钉扫一扫加入圈子
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

推荐文章
相似问题