本文介绍如何在DLA中分析MaxCompute外部表生成的数据。

大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute的非结构化框架支持通过INSERT方式将MaxCompute的数据直接输出到OSS。MaxCompute也支持通过外部表关联OSS,进行数据输出。

由于MaxCompute外部表的目录结构比较特殊,需要在建表时指定directory.odps属性为true,DLA就会按照MaxCompute外部表的目录结构来读取数据文件。

请参见MaxCompute外部表文档,创建外部表并写入测试数据。

操作步骤

1. 创建OSS Schema。

​​​​​​​ CREATE SCHEMA dla_oss_db with DBPROPERTIES(
  catalog='oss',
  location 'oss://dlaossfile1/dla/'
  )​

2. 创建OSS外表。

​CREATE EXTERNAL TABLE odps (
 a int,
 b int,
 c int
 )
ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ','
STORED AS `TEXTFILE`
LOCATION 'oss://dlaossfile1/dla/odps/'
 TBLPROPERTIES (
    'directory.odps' = 'true'
)​
  • 字段名称、类型要和odps中的定义一致。
  • 文件格式相关的参数要和odps中的定义相对应。
  • ‘directory.odps’ = ‘true’表示这个目录是按照MaxCompute外部表的目录结构来组织的。

3. 查询数据。

​mysql> select * from odps;
+------+------+------+
| a    | b    | c    |
+------+------+------+
|   30 |   11 |   12 |
|   33 |   14 |   15 |
|   36 |   17 |   18 |
|   41 |    2 |    3 |
|   44 |    5 |    6 |
|   47 |    8 |    9 |
|   50 |   11 |   12 |
|   53 |   14 |   15 |
|   56 |   17 |   18 |
+------+------+------+
9 rows in set (9.69 sec)​