使用DLA分析MaxCompute外部表数据

MaxCompute支持通过外部表关联OSS,进行数据输出。然而,由于MaxCompute外部表的目录结构比较特殊,无法使用MaxCompute以外的工具对OSS上的文件做进一步的分析,限制了外部表的使用场景。因此,DLA最近支持了分析MaxCompute外部表数据文件的功能,借助DLA强大的生态,可以方便地对MaxCompute外部表进行分析,并能够和其他数据源做联合查询。
本文通过一个简单的例子介绍如何使用这个功能。

准备工作:创建MaxCompute外部表并写入数据


进入MaxCompute工作空间,新建一个ODPS SQL节点,在其中执行如下语句创建OSS外表:

CREATE EXTERNAL TABLE parquet
(
  a int,
  b int
)
STORED AS PARQUET
LOCATION 'oss://${accessKeyId}:${accessKeySecret}@${endpoint}/${bucket}/${userPath}/';

关于创建外部表语法的更多信息可参考MaxCompute文档
建表之后,我们可以执行如下语句向其中写入几条测试数据:

insert into parquet values(1,1);
insert into parquet values(2,2);

执行查询,我们可以看到数据已经写入到外表中了:

使用DLA分析MaxCompute外部表数据

使用DLA分析MaxCompute外部表

首先创建一个OSS Schema:

CREATE SCHEMA dla_oss_db with DBPROPERTIES(
catalog='oss',
location 'oss://${bucket}/${userPath}/'
)

创建表:

CREATE EXTERNAL TABLE odps_parquet (
    `a` int,
    `b` int
)
STORED AS PARQUET
LOCATION 'oss://${bucket}/${userPath}/'
TBLPROPERTIES (
    'directory.odps' = 'true'
);

在读取MaxCompute外部表时,和其他OSS文件不同的是多了一个表属性'directory.odps' = 'true',这表示表的目录是按照MaxCompute外部表的格式来组织的。
执行查询:
使用DLA分析MaxCompute外部表数据

关于我们

数据湖分析Data Lake Analytics简介

欢迎大家使用数据湖分析(DLA),DLA不仅仅便宜,且快,且方便,专为阿里云数据湖分析方案而生

  • 支持自建、托管RDS、NoSQL、OSS(JSON、CSV、Parquet等格式)多种数据源分析
  • 支持按量 按照扫描量 的计费方式,准入门槛0元,提供的Serverless的弹性服务为按需收费,不需要购买固定的资源,完全契合业务潮汐带来的资源波动,满足弹性的分析需求,同时极大地降低了运维成本和使用成本
  • 平台底层托管大集群且自动弹性,在一定数据量情况下,分析性能比自建小集群高出400%
  • 支持一键 把 MySQL、PG、SqlServer、PolarDb数据库 拖到DLA,再分析,解决原MySQL不敢分析的问题。 DLA 分析性能TPC-H 10G情况 比原MySQL 8c16g 等高出10倍,数据量越大,MySQL性能越差,在1TB数据量下,原MySQL基本跑不出来
  • 产品文档:https://www.aliyun.com/product/datalakeanalytics
  • 帮助文档:https://help.aliyun.com/document_detail/70378.html
  • MySQL&PG&SqlServer一键同步数据到DLA:https://help.aliyun.com/document_detail/126559.html
  • 新客户1元试用:https://common-buy.aliyun.com/?commodityCode=openanalytics_post

欢迎大家群内咨询

使用DLA分析MaxCompute外部表数据

上一篇:KUBERNETES04_下载策略、私有仓库下载、env、command、生命周期容器钩子、资源限制(四)


下一篇:爆料:DLA SQL新体验,新数据源,还有一元购(内含福利)