本文介绍如何创建外部存储,建立日志服务与OSS的关联。
前提条件
功能优势
与OSS进行关联查询分析,具有如下优势:
节省费用:将更新频率低的数据保存在OSS上,只需要支付少量的存储费用,并且可以通过内网读数据,免去流量费用。
降低运维工作:在轻量级的联合分析平台中,不需要搬迁数据到同一个存储系统中。
节省时间:使用SQL分析数据,分析结果秒级可见,并可以将常用的分析结果定义为报表,打开即可看到结果。
操作步骤
登录日志服务控制台。
在Project列表区域,单击目标Project。
在控制台左侧,单击日志存储,在日志库列表中单击目标Logstore。
输入查询与分析语句,单击查询/分析。
通过SQL定义虚拟外部表,映射到OSS文件。
* | create table <External storage> (<Schema>) with (endpoint='oss-cn-${your_region_name}-internal.aliyuncs.com',accessid='<your accessid>',accesskey ='<your accesskey>',bucket='<your bucket name>',objects=ARRAY['*.csv'],type='oss')
在查询分析语句中定义外部存储名称External storage、表的Schema等信息,并通过WITH语法指定OSS访问信息及文件信息,详细信息如下表所示。
配置项
说明
示例
外部存储名称External storage
外部存储名称,即虚拟表的名称。
user_meta1
表的Schema
定义表的属性,包括表的列名及格式。
(userid bigint, nick varchar, gender varchar, province varchar, age bigint)
endpoint
OSS内网访问域名。更多信息,请参见访问域名和数据中心。
oss-cn-hangzhou-internal.aliyuncs.com
accessid
阿里云账号AccessKey ID和AccessKey Secret。建议您使用具备日志服务Project写入权限的RAM用户的AccessKey。授予RAM用户向指定Project写入数据权限的具体操作,请参见RAM自定义授权场景。如何获取AccessKey的具体操作,请参见访问密钥。
LT****7V
accesskey
Y4****ZR
bucket
CSV文件所在的OSS Bucket名称。
examplebucket
objects
CSV文件路径。
说明objects为array类型,可以包含多个OSS文件。
user.csv
type
固定为oss,表示外部存储类型为OSS。
oss
示例命令如下所示:
* | create table user_meta1 ( userid bigint, nick varchar, gender varchar, province varchar, age bigint) with ( endpoint='oss-cn-hangzhou.aliyuncs.com',accessid='LTAI5t8y9c113M7V****',accesskey='Y45H7bqvvgapWZR****',bucket='examplebucket',objects=ARRAY['user.csv'],type='oss')
如果执行结果中的result为true,表示执行成功。
验证是否已成功定义外部存储。
执行如下语句,其中,External storage为步骤4中定义的外部存储名称。返回结果为您之前定义的表内容,则表示已成功定义外部存储。
* | select * from <External storage>
通过JOIN语法完成日志服务和OSS的联合查询。
例如,执行如下查询分析语句关联日志服务中日志的ID和OSS文件中的userid,补全日志信息。
说明采集的日志中需要包含参数userid。
* | select * from <logstore> l join <External storage> u on l.userid = u.userid
配置项
说明
示例
Logstore
需要查询的Logstore的名称。
test_logstore
External storage
步骤4中定义的外部存储名称。
user_meta1
关联OSS数据源的最佳实践请参见关联Logstore与OSS外表进行查询和分析。
相关文档
本文介绍了创建外部数据源OSS Bucket的步骤,如果需要修改、删除外部数据源,请调用UpdateOssExternalStore - 更新OSS外部存储和DeleteExternalStore - 删除外部存储配置。