本文介绍如何创建外部存储,建立日志服务与OSS的关联。

前提条件

功能优势

与OSS进行关联查询分析,具有如下优势:
  • 节省费用:将更新频率低的数据保存在OSS上,只需要支付少量的存储费用,并且可以通过内网读数据,免去流量费用。
  • 降低运维工作:在轻量级的联合分析平台中,不需要搬迁数据到同一个存储系统中。
  • 节省时间:使用SQL分析数据,分析结果秒级可见,并可以将常用的分析结果定义为报表,打开即可看到结果。

操作步骤

  1. 登录日志服务控制台
  2. Project列表区域,单击目标Project。
  3. 日志存储 > 日志库页签中,单击目标Logstore。
  4. 输入查询分析语句,单击查询/分析
    通过SQL定义虚拟外部表(此处以user_meta1为例),映射到OSS文件,如果执行结果中的resulttrue,表示执行成功。
    * | create table user_meta1 ( userid bigint, nick varchar, gender varchar, province varchar, gender varchar,age bigint) with ( endpoint='oss-cn-hangzhou-internal.aliyuncs.com',accessid='**************************',accesskey ='****************************',bucket='testoss*********',objects=ARRAY['user.csv'],type='oss')
    外部存储
    在查询分析语句中定义外部存储名称、表的Schema等信息,并通过WITH语法指定OSS访问信息及文件信息,详细信息如下表所示。
    配置项 说明
    外部存储名称 外部存储名称,即虚拟表的名称,例如user_meta1
    表的Schema 定义表的属性,包括表的列名及格式,例如(userid bigint, nick varchar, gender varchar, province varchar, gender varchar,age bigint)
    endpoint OSS访问域名,详情请参见访问域名和数据中心
    accessid 您的AccessKey ID。
    accesskey 您的AccessKey Secret。
    bucket CSV文件所在的OSS Bucket名称。
    objects CSV文件路径。
    说明 objects为array类型,可以包含多个OSS文件。
    type 固定为oss,表示外部存储类型为OSS。
  5. 验证是否已成功定义外部存储。
    执行如下语句,返回结果为您之前定义的表内容,则表示已定义外部存储成功。
    select * from user_meta1
    验证结果
  6. 通过JOIN语法完成日志服务和OSS的联合查询。

    例如,执行如下查询分析语句关联日志服务中日志的id和oss文件中的userid,补全日志信息。其中,test_accesslog为Logstore名称,l为Logstore别名,user_meta1为您定义的外部存储,请根据实际情况替换。

    * | select * from test_accesslog l join user_meta1 u on l.userid = u.userid
    联合查询

关联OSS数据源的最佳实践请参见关联Logstore与OSS外表进行查询分析