部分应用可能每天都有大量的数据上传至OSS,这些数据可能涉及超大文本文件的结构化分析。您可以通过MaxCompute的外部表查询功能,将OSS存储的数据加载到MaxCompute进行分析。MaxCompute的数据查询和分析工作效率可提升至分钟级,帮助您更高效、更低成本地挖掘海量数据的价值。
前提条件
已创建OSS Bucket。具体操作,请参见创建Bucket。
已授权MaxCompute访问OSS。
您可以在登录阿里云账号后,单击此处完成一键授权。
已创建MaxCompute项目。具体操作,请参见创建MaxCompute项目。
已安装并配置MaxCompute客户端。具体操作,请参见安装并配置MaxCompute客户端。
操作步骤
将物联网采集的数据上传到OSS。
准备数据。
本地创建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
将vehicle.csv文件上传至华东1(杭州)地域examplebucket的demo/目录下。具体操作,请参见上传文件。
运行MaxCompute客户端。
具体操作,请参见运行MaxCompute客户端。
通过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/';
通过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项目。