交互式分析(Interactive Analytics)与大数据生态无缝打通,支持您使用熟悉的工具以标准SQL直接访问外部表(当前版本仅支持访问MaxCompute项目)。

您可以直接查询分析MaxCompute项目中的数据,无冗余存储,无数据导入导出操作,快速获取查询结果,同时您也可以将数据导入至交互式分析,相比其他非大数据生态产品,数据导入导出速度性能更佳。

针针对不用的业务特性和场景,我们建议您根据以下两种场景来选择查询方式:
  • MaxCompute直接分析使用场景:首选方案,查询数据量小于100GB(经过分区过滤后,命中分区的大小,与查询相关字段的大小无关)。
  • MaxCompute导入查询使用场景:单表查询数据量大于100GB、复杂查询、含索引的查询、数据需更新、insert操作的场景。

本小节将会为您介绍在交互式分析(Interactive Analytics)中如何直接加速查询MaxCompute表数据。

示例1:MaxCompute非分区表数据查询

  1. 准备MaxCompute非分区表数据
    您可以参考MaxCompute快速入门,创建表并导入数据,也可以直接从数据地图搜索已有MaxCompute表。示例选用数据地图中的一张表,其DDL如下:
    CREATE TABLE weather (
        city            STRING ,
        temp_lo         int,           -- 最低温度
        temp_hi         int         -- 最高温度
    );
    INSERT INTO weather VALUES 
    ('beijing',40,50),
    ('hangzhou',46,55);
  2. 交互式分析(Interactive Analytics)创建外部表
    这一步的作用是建立映射表,目的是让交互式分析(Interactive Analytics)读取MaxCompute源头表数据。外部表语义和参数完全兼容标准pg,详情参考创建和管理外部表。示例建表SQL如下:
    CREATE FOREIGN TABLE weather1 (
     city text,
     temp_lo int8,
     temp_hi int8
    )
    SERVER odps_server
    OPTIONS (project_name '<odpsprojectname>',table_name 'weather');
    说明
    • project_name:MaxCompute表所在的项目名称。
    • table_name:要查询的MaxCompute表名称。
    • 字段名必须与MaxCompute字段名保持一致。
    • 映射字段可以根据需要全部映射,或者只是映射部分。
    • 当MaxCompute project下表的schema发生变化时,交互式分析(Interactive Analytics)当前版本不会做schema的自动更新,由您自己负责更新,详细的命令参考PostgreSQL官网
    • 当前版本不支持import foreign schema
  3. 查询外部表
    外部表创建成功后,直接查询外部表,即可查询到MaxCompute的数据
    select * from weather1;

示例2:MaxCompute分区表数据直接查询

  1. 准备Maxcompute分区表数据
    准备一张MaxCompute分区数据表,可参见MaxCompute分区表创建一张分区表。示例选用数据地图已有的分区表,其DDL如下:
    create table odps_test
    (
        shop_name     string,
        customer_id   string,
        total_price   INT 
    )
    partitioned by (sale_date string);
    INSERT  overwrite table odps_test partition (sale_date='2013')values ('shop', '1234', 12);
    INSERT  overwrite table odps_test partition (sale_date='2014')values ('rest', '1111', 13);
    INSERT  overwrite table odps_test partition (sale_date='2015')values ('texy', '2222', 14);
  2. 交互式分析(Interactive Analytics)创建外部表
    在交互式分析(Interactive Analytics)中创建一张外部表,用于映射MaxCompute中源头数据表。示例外部表的DDL如下。
    CREATE FOREIGN TABLE table_odps (
     shop_name text,
     customer_id text,
     total_price int8,
     sale_date text
    )
    SERVER odps_server
    OPTIONS (project_name '<odpsprojectname>', table_name 'odps_test');
  3. 查询分区表
    查询整张表,示例SQL如下。
    SELECT * FROM table_odps;
    查询分区数据,示例SQL如下。
    SELECT * FROM table_odps 
    WHERE sale_date = '2013';