本文介绍如何在客户端上运行常见SQL语句和导出数据。

MaxCompute支持以下方式运行SQL语句:

背景信息

MaxCompute目前支持的SQL语法如下:
  • 各类运算符。
  • 通过DDL语句对表、分区以及视图进行管理。
  • 通过SELECT语句查询表中的记录,通过WHERE语句过滤表中的记录。
  • 通过INSERT语句插入数据、更新数据。
  • 通过等值连接JOIN操作,支持两张表的关联,并支持多张小表的MapJOIN。
  • 通过内置函数和自定义函数来进行计算。
  • 正则表达式。
说明
  • MaxCompute SQL不支持事务、索引、UPDATE以及DELETE等操作,同时MaxCompute的SQL语法与Oracle,MySQL有一定差别,您无法将其他数据库中的SQL语句无缝迁移到MaxCompute上来。
  • MaxCompute上作业提交后会有几十秒到数分钟不等的排队调度,所以MaxCompute适合一次批量处理海量数据的跑批作业,不适合直接对接需要每秒处理几千至数万笔事务的前台业务系统。作业的优化请参见SQL优化示例
  • 关于SQL操作的详细示例,请参见SQL及函数
  • MaxCompute SQL的更多限制请参见SQL使用限制项

提取和分析数据

查询不同学历的单身人士贷款买房的数量,并将结果保存到result_table中。

  1. 使用如下语句将表bank_data中不同学历单身贷款买房人士的数量保存至表result_table中。
    INSERT OVERWRITE TABLE result_table  
    SELECT education,COUNT(marital) AS num
    FROM bank_data
    WHERE housing = 'yes'
        AND marital = 'single'
    GROUP BY education;
  2. 使用如下语句查看result_table表中的数据。
    SELECT * FROM result_table;
    结果如下所示。
上述过程仅仅是一个最简单的数据加工举例,您在实际应用的过程中,可能需要使用多个SQL对多个表进行加工操作。推荐您使用DataWorks完成复杂的数据加工业务流程。

导出数据

使用如下语句将表result_table中数据导出到本地D盘保存成名为result.txt的文件。
tunnel download result_table D:\result.txt;
其中,result_table为需要导出的表,D:\result.txt为导出后保存的路径及名称。更多Tunnel命令,请参考Tunnel命令参考

导出成功后如下图所示,可以看到download OK字样。