前提条件
  • 已开通OSS服务 , 并已创建Bucket 。
    • 开通OSS服务请参见开通OSS服务 。
    • 创建Bucket请参见创建Bucket 。
  • 已开通MaxCompute服务 , 并已授权MaxCompute访问OSS 。
    • 开通MaxCompute服务请参见开通MaxCompute 。
    • MaxCompute需要直接访问OSS的数据 , 因此需要将OSS的数据相关权限赋给MaxCompute的访问账号 。您可以在直接登录阿里云账号后 , 单击此处完成一键授权 。
背景信息
互联网金融应用每天都需要将大量的金融数据交换文件存放在OSS上 , 并需要进行超大文本文件的结构化分析 。通过MaxCompute的OSS外部表查询功能 , 用户可以直接用外部表的方式将OSS上的大文件加载到MaxCompute进行分析 , 从而大幅提升整个链路的效率 。
操作示例:物联网采集数据分析
  1. 将物联网数据上传到OSS 。
    操作步骤请参见阿里云官网OSS上传文件 。您可以使用任何数据集来执行测试 , 以验证我们在这篇文章中概述的最佳实践 。本示例在OSS上准备了一批CSV数据 , Endpoint为oss-cn-beijing-internal.aliyuncs.com , Bucket为oss-odps-test , 数据文件的存放路径为 /demo/vehicle.csv 。
  2. 创建MaxCompute Project 。
    操作步骤请参阿里云官网MaxCompute创建MaxCompute Project 。
  3. 通过MaxCompute创建外部表 。
    操作步骤请参考阿里云官网MaxCompute 创建表 , 语句如下:
    CREATE EXTERNAL TABLE IF NOT EXISTS ambulance_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-beijing-internal.aliyuncs.com/oss-odps-test/Demo/';
  4. 通过MaxCompute查询外部表 。
    成功创建外部表后 , 便可如普通表一样使用该外部表 。查询步骤请参见见阿里云官网MaxCompute 提取和分析数据 。
    假设/demo/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
    执行如下 SQL 语句:
    select recordId, patientId, direction from ambulance_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|
    +------------+------------+-----------+
    更多关于OSS外部表使用方法 , 请参见阿里云官网MaxCompute外部表概述 。
操作示例:阿里云产品消费账单分析
  1. 创建MaxCompute Project , 详情请参见阿里云官网MaxCompute创建MaxCompute Project 。

    推荐阅读