通过MaxCompute查询和分析OSS数据

部分应用可能每天都有大量的数据上传至OSS,这些数据可能涉及超大文本文件的结构化分析。您可以通过MaxCompute的外部表查询功能,将OSS存储的数据加载到MaxCompute进行分析。MaxCompute的数据查询和分析工作效率可提升至分钟级,帮助您更高效、更低成本地挖掘海量数据的价值。

前提条件

  • 已创建OSS Bucket。具体操作,请参见创建Bucket

操作步骤

  1. 将物联网采集的数据上传到OSS。

    1. 准备数据。

      本地创建vehicle.csv文件,文件包含的示例数据如下:

      1,1,51,1,46.81006,-92.08174,9/14/2014 0:00,S
      1,2,13,1,46.81006,-92.08174,9/14/2014 0:00,NE
      1,3,48,1,46.81006,-92.08174,9/14/2014 0:00,NE
      1,4,30,1,46.81006,-92.08174,9/14/2014 0:00,W
      1,5,47,1,46.81006,-92.08174,9/14/2014 0:00,S
      1,6,9,1,46.81006,-92.08174,9/14/2014 0:00,S
      1,7,53,1,46.81006,-92.08174,9/14/2014 0:00,N
      1,8,63,1,46.81006,-92.08174,9/14/2014 0:00,SW
      1,9,4,1,46.81006,-92.08174,9/14/2014 0:00,NE
      1,10,31,1,46.81006,-92.08174,9/14/2014 0:00,N
    2. vehicle.csv文件上传至华东1(杭州)地域examplebucket的demo/目录下。具体操作,请参见上传文件

  2. 运行MaxCompute客户端。

    具体操作,请参见运行MaxCompute客户端

  3. 通过MaxCompute创建外部表。具体操作,请参见创建表

    创建非分区表data_csv_external,示例如下。

    CREATE EXTERNAL TABLE IF NOT EXISTS data_csv_external
    (
        vehicleId int,
        recordId int,
        patientId int,
        calls int,
        locationLatitute double,
        locationLongtitue double,
        recordTime string,
        direction string
        )
        STORED BY 'com.aliyun.odps.CsvStorageHandler'    
        LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/examplebucket/demo/';
  4. 通过MaxCompute查询外部表。

    执行如下SQL语句:

    select recordId, patientId, direction from data_csv_external where patientId > 25;

    输出结果如下:

    +------------+------------+-----------+
    | recordId   | patientId  | direction |
    +------------+------------+-----------+
    | 1          | 51         | S         |
    | 3          | 48         | NE        |
    | 4          | 30         | W         |
    | 5          | 47         | S         |
    | 7          | 53         | N         |
    | 8          | 63         | SW        |
    | 10         | 31         | N         |
    +------------+------------+-----------+

常见问题

报错:Accessing project '<projectname>' failed: ODPS-0420095: Access Denied - Authorization Failed [4002], You don't exist in project <projectname>.如何解决?

相关文档

  • MaxCompute支持您在项目中创建OSS外部表,与OSS上的目录建立映射关系,您可以通过OSS外部表访问OSS目录下的非结构化数据,或者将MaxCompute项目中的数据写入OSS。更多信息,请参见创建OSS外部表

  • 如果您需要将MaxCompute表中的数据导出到本地,便于离线查看数据。请参见运行SQL命令并导出结果数据

  • 如果您不再需要保留表数据或MaxCompute项目,可以删除表或MaxCompute项目,以免产生不必要的资源浪费及账单费用。请参见删除表或MaxCompute项目