本文为您介绍如何通过MaxCompute外部表能力,将SNAPPY压缩文件数据(以半角逗号分隔)从OSS迁移至MaxCompute。

前提条件

  • 已开通MaxCompute并创建项目,详情请参见创建MaxCompute项目
  • 已开通OSS并创建存储空间,且Bucket中有压缩数据SNAPPY文件,开通OSS创建存储空间详情请参见创建存储空间
    本文使用的示例文件所在的OSS Bucket地域为:华北2(北京),文件路径为:mfosscostfee/demo7/oss实际使用过程中,请以您文件的实际情况为准。

压缩数据从OSS迁移至MaxCompute

  1. 登录MaxCompute连接开发工具。
    MaxCompute支持您从如下平台创建OSS外部表,选择一个开发工具使用。
    创建方式平台
    基于MaxCompute SQL创建OSS外部表MaxCompute客户端
    使用控制台(查询编辑器)连接
    DataWorks控制台-ODPS SQL节点
    MaxCompute Studio-SQL程序
    以可视化方式创建OSS外部表MaxCompute Studio-SQL程序
    DataWorks控制台-外部表
  2. 创建OSS外部表。
    命令示例如下所示,创建外部表语法详情请参见创建OSS外部表
    --创建外部表
    create external table if not exists mc_oss_ext_snap_split
    (
    str1 string,
    str2 string,
    str3 string,
    str4 string,
    str5 string,
    str6 string,
    str7 string,
    str8 string,
    str9 string,
    str10 string,
    str11 string,
    str12 string,
    str13 string,
    str14 string,
    str15 string,
    str16 string,
    str17 string,
    str18 string
    )
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
    WITH SERDEPROPERTIES ('field.delim'=',') --Snappy内容以(,)分隔
    STORED AS TEXTFILE
    location 'oss://oss-cn-beijing-internal.aliyuncs.com/mfosscostfee/demo7/'
    ;                        
  3. 读取外部表数据写入MaxCompute内部表。
    命令示例如下所示。
    --创建内部表
    create table if not exists mc_oss_snap_split
    (
    str1 string,
    str2 string,
    str3 string,
    str4 string,
    str5 string,
    str6 string,
    str7 string,
    str8 string,
    str9 string,
    str10 string,
    str11 string,
    str12 string,
    str13 string,
    str14 string,
    str15 string,
    str16 string,
    str17 string,
    str18 string
    );
    --读取外表数据写入内部表数据
    insert into table mc_oss_snap_split select * from mc_oss_ext_snap_split limit 10;
  4. 查询内部表数据。
    使用如下命令查询内部表数据。
    select str2,str3 from mc_oss_snap_split;
    示例返回结果如下。
    +------------+------------+
    | str2       | str3       |
    +------------+------------+
    | 113.221620 | 23.398279  |
    | 113.288735 | 23.157167  |
    | 113.040365 | 23.681102  |
    | 113.910224 | 22.757139  |
    | 119.086087 | 33.583632  |
    | 113.363475 | 23.141354  |
    | 113.328440 | 23.130362  |
    | 113.249651 | 23.205976  |
    | 113.258325 | 23.159060  |
    | 117.463688 | 38.836611  |
    +------------+------------+
    说明压缩数据已从OSS迁移至MaxCompute中。