日志服务支持通过SDK方式将本地CSV文件上传到日志服务进行托管,并建立Logstore与CSV文件的关联。本文介绍如何在日志服务Logstore中联合托管的CSV文件进行数据分析。
前提条件
- 已采集日志。更多信息,请参见数据采集。
- 已配置索引。更多信息,请参见配置索引。
- 已创建CSV文件。
- 已安装Python SDK。更多信息,请参见安装Python SDK。
支持aliyun-log-python-sdk 0.7.3及以上版本,您可以通过pip install aliyun-log-python-sdk -U命令进行升级。
使用限制
- 仅支持关联一个CSV文件。
- 最大支持50 MB的CSV文件。CSV文件经SDK压缩后被上传至日志服务,压缩后的大小需小于9.9 MB。
数据样例
例如Logstore用于记录用户的登录操作,CSV文件用于记录用户的基本信息(性别、年龄等)。关联Logstore和CSV文件后,可用于分析与用户属性相关的指标。
- Logstore
userid:100001 action:login __time__:1637737306
- CSV文件
操作步骤
- 通过Python SDK创建外部存储(ExternalStore)。关于Python SDK的更多信息,请参见Python SDK概述。
from aliyun.log import * endpoint='cn-shanghai.log.aliyuncs.com' accessKeyId='test-project' accessKey='TAI****YDw' project='lr****VM' ext_logstore='user_meta' csv_file='./user.csv' client = LogClient(endpoint, accessKeyId, accessKey) res = client.create_external_store(project, ExternalStoreCsvConfig(ext_logstore, csv_file, [ {"name" : "userid", "type" : "bigint"}, {"name" : "nick", "type" : "varchar"}, {"name" : "gender", "type" : "varchar"}, {"name" : "province", "type" : "varchar"}, {"name" : "age", "type" : "bigint"} ])) res.log_print()
参数 说明 endpoint 日志服务的域名。更多信息,请参见服务入口。 accessKeyId 阿里云访问密钥AccessKey ID。更多信息,请参见访问密钥。
警告 建议您使用RAM用户的AccessKey进行操作,有效降低AccessKey泄露的风险。accessKey 阿里云访问密钥AccessKey Secret。更多信息,请参见访问密钥。 project 目标Logstore所在的Project。 ext_logstore 外部存储名称,即虚拟表的名称。命名规则如下: - 仅支持小写字母、数字、短划线(-)和下划线(_)。
- 必须以小写字母或数字开头和结尾。
- 名称长度为3~63个字符。
csv_file 本地CSV文件所在路径及文件名。 表的Schema 用于定义虚拟表的属性,包括表的列名及格式。例如下述脚本表示表的Schema,请根据实际情况替换。 [ {"name" : "userid", "type" : "bigint"}, {"name" : "nick", "type" : "varchar"}, {"name" : "gender", "type" : "varchar"}, {"name" : "province", "type" : "varchar"}, {"name" : "age", "type" : "bigint"} ]
- 登录日志服务控制台。
- 在Project列表区域,单击目标Project。
- 在日志存储 > 日志库页签中,单击目标Logstore。
- 执行如下语句,验证是否成功创建外部存储。其中
user_meta
为外部存储的名称,请根据实际情况替换。* | SELECT * FROM user_meta
如果返回结果为CSV文件的内容,则表示创建外部存储成功。
- 执行如下语句,建立Logstore与CSV文件的联合查询。本案例中通过Logstore中的userid字段和CSV文件中的userid字段,建立联合查询。其中,website_log为Logstore名称,user_meta为您定义的外部存储,请根据实际情况替换。
* | SELECT * FROM website_log JOIN user_meta ON website_log.userid = user_meta.userid
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/166029.html