多库查询分析功能允许您在查询时临时选择同一个 Project 下的多个 Logstore,使用一套查询分析语句获得聚合结果,从而提升问题排查和数据分析的效率,避免在多个查询页面间反复切换。相较于需要预先创建和固化的数据集(StoreView),多库查询分析提供了更灵活、即时的联合查询能力,尤其适用于探索性分析和紧急故障排查场景。
适用范围
目前功能处于内测阶段,如需使用,需提交工单申请,支持地域:
地域名称 | 地域ID |
华东1(杭州) | cn-hangzhou |
华南3(广州) | cn-guangzhou |
华北2(北京) | cn-beijing |
华北3(张家口) | cn-zhangjiakou |
华南2(河源) | cn-heyuan |
华北6(乌兰察布) | cn-wulanchabu |
华北5(呼和浩特) | cn-huhehaote |
华南1(深圳) | cn-shenzhen |
西南1(成都) | cn-chengdu |
华北1(青岛) | cn-qingdao |
华东6(福州) | cn-fuzhou |
华东(南通) | cn-nantong |
中国香港 | cn-hongkong |
日本(东京) | ap-northeast-1 |
新加坡 | ap-southeast-1 |
马来西亚(吉隆坡) | ap-southeast-3 |
印度尼西亚(雅加达) | ap-southeast-5 |
菲律宾(马尼拉) | ap-southeast-6 |
泰国(曼谷) | ap-southeast-7 |
韩国(首尔) | ap-northeast-2 |
德国(法兰克福) | eu-central-1 |
英国(伦敦) | eu-west-1 |
操作步骤
步骤一:授予 RAM 用户查询权限
确保执行查询的 RAM 用户或 RAM 角色拥有所有待查询 Logstore 的读取权限。缺少任一 Logstore 的读取权限都将导致整个查询失败。
关于如何为 RAM 用户或 RAM 角色授权,请参见创建RAM用户及授权或创建可信实体为阿里云服务的RAM角色及授权。您可以选择以下任一方式进行授权:
(推荐)授予自定义策略:创建并授予一个仅包含目标 Logstore 读取及其他必要权限的自定义策略。核心策略示例如下,请将
${projectName}、${logstoreName}替换为您的实际 Project和待查询Logstore的名称:{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:ListProject", ], "Resource": "acs:log:*:*:project/*" }, { "Effect": "Allow", "Action": "log:GetProject", "Resource": "acs:log:*:*:project/${projectName}" }, { "Effect": "Allow", "Action": "log:ListLogStores", "Resource": "acs:log:*:*:project/${projectName}/logstore/*" }, { "Effect": "Allow", "Action": [ "log:GetLogStore", "log:GetLogStoreHistogram", "log:GetIndex", "log:GetLogStoreLogs" ], "Resource": [ "acs:log:*:*:project/${projectName}/logstore/${logstoreName}", "acs:log:*:*:project/${projectName}/logstore/${logstoreName}" ] } ] }授予系统策略:直接授予
AliyunLogReadOnlyAccess。此策略操作简单,但授权范围较广,包含了日志服务所有资源的只读权限。
步骤二:进入多库查询页面
在日志服务控制台,进入多库查询分析页面。
登录日志服务控制台;
在Project列表,点击目标Project名称;
在左侧目录中选择日志存储(
),在日志库列表中,点击任意待查询的Logstore,进入查询页面;在查询页面,点击多库查询分析;

步骤三:选择要多库查询的 Logstore
选择本次查询需要覆盖的多个 Logstore。
单击添加;
在弹出的添加 Store页面中,将需要查询的多个 Logstore(最多50个),从源logstore列表添加到应用logstore列表中;
单击确定添加。
步骤四:编写查询分析语句并执行
编写查询语句,对选定的所有 Logstore 执行统一的查询和分析。在查询/分析页面的搜索栏,输入查询或分析语句,并单击查询/分析。
示例
假设您有两个应用的访问日志分别存储在 access-log-app1 和 access-log-app2 两个 Logstore 中,现在需要快速统计两个应用的总访问量,使用多库查询分析功能,输入如下查询分析语句:
* | SELECT __logstore__, count(*) AS pv GROUP BY __logstore__
预期结果:
查询结果将以表格形式展示,其中包含两行数据,分别列出 access-log-app1 和 access-log-app2 的访问量(pv)。__logstore__ 是系统内置的元数据字段,用于在结果中标识每条日志的来源 Logstore。
logstore | pv |
access-log-app1 | 10520 |
access-log-app2 | 8790 |
步骤五(可选):另存为数据集
如果当前 Logstore 组合需要频繁查询,建议将其保存为数据集,以便后续复用。
在步骤一:授予 RAM 用户查询权限配置的策略中新增数据集权限,新增授权如下:
{ "Effect": "Allow", "Action": [ "log:ListStoreViews", "log:CreateStoreView", "log:GetStoreViewIndex", "log:GetStoreView" ], "Resource": "acs:log:*:*:/project/${projectName}/storeview/*" }单击另存为数据集;
在弹出的对话框中,输入Storeview 名称;
单击确定。
配额与限制
Project 范围:仅支持查询同一个 Project 内的多个 Logstore。
Logstore 数量:单次查询最多支持 50 个 Logstore。
权限要求:执行查询的 RAM 用户或 RAM 角色必须拥有所有被选 Logstore 的
log:GetLogStoreLogs权限。任意 Logstore 权限不足,整个查询都将失败。索引要求:所有被选 Logstore 都必须开启索引。如果查询语句中的字段在某个 Logstore 中未配置索引,查询将失败并报错
index not configured for field。
计费说明
多库查询分析功能本身不产生额外费用。
常见问题
Q:查询报错 Query failed, index not configured for field: [xxx] 怎么办?
A:此错误表示查询语句中使用的字段 xxx 未在全部 Logstore 中配置字段索引。请根据错误提示,检查并为相关 Logstore 的该字段开启索引和统计功能。
Q:为什么查询失败,提示权限不足?
A:多库查询分析要求您对所有选择的 Logstore 都具有读取权限。请参考本文“步骤一:授予 RAM 用户查询权限”的指引,确保您的 RAM 用户或 RAM 角色拥有所有目标 Logstore 的读取权限。
排查建议:可以尝试逐一减少 Logstore 的方式进行查询,以定位到具体是哪个 Logstore 存在权限问题。
Q:如何对分布在不同 Project 的 Logstore 进行联合查询?
A:多库查询分析功能仅支持同一个 Project 内的 Logstore。如果您的 Logstore 分布在不同 Project,建议您使用跨域查询与分析。