QuickBI关于业务分析人员连接MaxCompute数据源权限控制问题解决方案及常见报错解析

简介: 企业上云,maxcompute数仓结合quickbi智能报表的组合较为常见,使用广泛。maxcompute权限管理较为精细化,部分权限缺失常常导致bi端相关数据应用报错,权限过高又会有潜在的风险暴露。本文针对上述问题提出相关的解决方案及常见的报错解析,当前方案已得到较多的应用。

一、高频问题及痛点

quickbi官网显示配置maxcompute数据源提示需要购买实例的账号ak

根据用户所在企业所承担的角色责任不同,问题分为 1.业务分析人员 和 2.数据管理或架构人员 两种情况:

  1. 管理员不提供主账号ak;多次索取主账号ak,易泄露,多个项目数据安全无法保证。(主账号拥有多个maxcompute项目、及项目下所有对象的所有权限,泄露风险较高)
  1. 有且仅有子账号ak,公司仅一个quickbi实例,多条业务线、总分公司分析人员通过工作空间区分
  2. 能否和rds-mysql一样通过子(其他)账号的ak配置数据源?
  3. 子账号ak可以通过联通性测试但数据表列表为空或不全,怎么配置权限?
  1. 管理员负责配置主账号ak的数据源,提供数据集供使用
  1. 分析师对业务分析宽表维度要求高,需求多变,如通过“数据集”模块控制权限,授予qbi分析师角色的人员需提工单到开发角色生成数据集后并授权,时效过长,灵活性差。
  2. 给予分析人员开发角色可以改善数据宽表灵活性的问题,但主账号配置的数据源权限过大,会看到数仓dws层以外的明细表并创建新的数据集,导致“数据集”模块行级权限失效;同时“数据准备”模块拥有所有表的写入权限,可能会存在操作不规范、意外清空库表的情况。

二、解决方案

  1. 数据源连接串配置使用maxcompute项目中的RAM子账号的ak进行连接串配置
  2. 在quickbi“用户管理”模块中用户类型设置为“开发者”,相应工作空间成员设置为“开发权限”
  3. 根据使用quickbi的不同功能在maxcompute项目中授权给子账号不同quickbi功能所需要的权限(权限及说明见下表)
  1. 项目级权限CreateInstance,List,CreateTable
  2. 表级权限仅授权dws层的指标汇总表、dwd层的事实及事件明细表、维度码表的Describe及Select权限(尽量授权个人ACL权限且不授权公共角色的Policy权限确保权限控制精准)
  1. 需要用到数据准备模块的业务线同事仅进行新建表的数据库写入

这样配置在可以同时兼顾主账号及库表安全性,分析所用数据集宽表的灵活性,下级分公司行级权限的约束性

权限级别

权限名

权限说明

qbi对应模块需要

项目级

CreateInstance

执行实例SQL作业

数据集及仪表板等报表模块

List

查看项目类型列表,show tables

数据源、数据集

CreateTable|Write

建表权限

数据准备

表级

Describe

元数据信息

数据源、数据集

Select

查询

数据集及仪表版等报表模块

ALL

全部权限,主要是写

数据准备

三、实现案例

1、账号及mc项目基础配置

  • maxcompute项目:quickbi_odps_test
  • 阿里云主账号:ALIYUN$liupai.lp
  • bi分析及报表专用-阿里云RAM子账号:RAM$liupai.lp:xiaos
  • 创建maxcompute分析及报表用专用角色“biuser”
  • 创建dataworks自定义角色“报表用户”并配置maxcompute项目中的角色“biuser”
  • 在quickbi组织成员中添加RAM用户xiaos,并授予“开发者”权限
  • 新建工作空间bi_works(若存在则跳过)
  • 在bi_works的工作空间内添加用户xiaos,并赋予开发权限
  • 使用RAM账号xiaos的accessid和accesskey配置odps数据源
  • 项目中存在 d_cust 客户表、d_sales_amt 销售表、table_main 主账号临时测试表均为高权限主账号创建
-- 客户表
CREATE TABLE IF NOT EXISTS d_cust(
    cust_id INT 
    ,cust_name STRING 
    ,level STRING 
    ,randn FLOAT 
) PARTITIONED BY (dt STRING );
-- 销售表
CREATE TABLE IF NOT EXISTS d_sales_amt(
    event_id INT 
    ,cust_id int
    ,pay_time DATETIME 
) PARTITIONED BY (dt STRING );
-- 主账号创建临时测试表
CREATE TABLE IF NOT EXISTS table_main (
    col1 String
    ,col2 STRING
    ,col3 INT
)partitioned by (dt STRING);


2、权限配置操作

a、数据源模块

  • 授予数据源模块可用数据表清单的相关权限
-- 授予project List
-- 授予table d_cust和d_sales_amt Describe 权限
GRANT List ON PROJECT quickbi_odps_test to USER RAM$liupai.lp:xiaos;
GRANT Describe ON table d_cust to USER RAM$liupai.lp:xiaos;
GRANT Describe ON table d_sales_amt to USER RAM$liupai.lp:xiaos;

-- 查看用户的权限
SHOW GRANTS for RAM$liupai.lp:xiaos;
  • 可以看到xiaos存在项目的List的查看项目类型列表权限以及[d_cust,d_sales_amt]的获取元数据权限

  • 在点击数据源同步按钮并同步完成后,可以看到该数据源根据用户的权限匹配出了[d_cust,d_sales_amt]两张表

b、数据集模块

  • 授予数据集模块预览数据的相关权限
-- 授予用户 创建实例 的权限
GRANT CreateInstance ON PROJECT quickbi_odps_test to USER RAM$liupai.lp:xiaos;
-- 授予用户 相关业务表 查询的权限
GRANT Select ON table d_cust to USER RAM$liupai.lp:xiaos;
-- 查看用户的权限
SHOW GRANTS for RAM$liupai.lp:xiaos;
  • 可以查看xiaos存在项目的CreateInstance的创建实例的权限及相关业务表的查询权限

  • 可以正常预览并创建数据集进行报表及图表的加工

c、数据准备模块

  • 授予该用户 CreateTable
-- 授予客户物理表创建的权限
GRANT CreateTable ON PROJECT quickbi_odps_test to USER RAM$liupai.lp:xiaos;
GRANT Write ON PROJECT quickbi_odps_test to USER RAM$liupai.lp:xiaos;
  • 利用数据准备模块,根据已有权限的表进行轻量级ETL的加工,手动或周期性写入数据库表中:写入表需宣导分析师用户使用自建表

  • 该RAM用户仅作为数据准备所创建的表[qbi_etl_test]的ObjectCreator,数仓中其余的明细表或维度表并无写入、删除等高危权限

四、常见报错解析

1、数据源模块

  • 重复提交同步元数据请求

maxcompute数据源受到源端限制,同步速度较慢,周期为1小时自动更新一次;手动点击同步按钮一段时候后刷新页面即可显示同步结果,同步时常与配置数据源中项目内物理表的数量有关。

2、数据集模块

  • 数据预览失败

数据集的预览相当于数据库客户端,需要RAM用户具备项目执行实例[CreateInstance]及相关表的查询[Select]权限才能查询数据结果并展示。

对于maxcompute数据源分区表在数据预览时被限制不允许全表扫描[specify partition predicates],可以通过如下三种方式:

  1. 直接从左侧数据表拖拽的数据源,可以通过配置过滤条件正常预览

  1. 直接从左侧数据表拖拽的数据源,直接点击保存,在数据集模块找到该数据集,将数据集属性中的“全表扫描”功能打开

  1. 可以通过配置自定义sql结合where条件的方式指定分区键的取值以跳过全表扫描的限制

由于quickbi侧数据预览模块limit关键词的限制,通过设置会话级参数set odps.sql.allow.fullscan=true;的方式不能达到全表扫描的效果

3、数据准备模块

  • ETL作业执行失败:the agent task execution failed

maxcompute数据源相关数据处理都要注意分区表fullscan的问题,上述etl任务执行失败需在源端数据配置模块按分区键进行设置,并确认“输入过滤”模块右下角的语法正确性检测为绿色对勾

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
7月前
|
数据采集 人工智能 大数据
10倍处理效率提升!阿里云大数据AI平台发布智能驾驶数据预处理解决方案
阿里云大数据AI平台推出智能驾驶数据预处理解决方案,助力车企构建高效稳定的数据处理流程。相比自建方案,数据包处理效率提升10倍以上,推理任务提速超1倍,产能翻番,显著提高自动驾驶模型产出效率。该方案已服务80%以上中国车企,支持多模态数据处理与百万级任务调度,全面赋能智驾技术落地。
1019 0
|
7月前
|
存储 SQL 分布式计算
MaxCompute x 聚水潭:基于近实时数仓解决方案构建统一增全量一体化数据链路
聚水潭作为中国领先的电商SaaS ERP服务商,致力于为88,400+客户提供全链路数字化解决方案。其核心ERP产品助力企业实现数据驱动的智能决策。为应对业务扩展带来的数据处理挑战,聚水潭采用MaxCompute近实时数仓Delta Table方案,有效提升数据新鲜度和计算效率,提效比例超200%,资源消耗显著降低。未来,聚水潭将进一步优化数据链路,结合MaxQA实现实时分析,赋能商家快速响应市场变化。
344 0
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
877 3
|
12月前
|
传感器 监控 大数据
指挥学校大数据系统解决方案
本系统集成九大核心平台,包括中心化指挥、数据处理、学生信息、反校园欺凌大数据、智慧课堂、学生行为综合、数据交换及其他外部系统云平台。通过这些平台,系统实现对学生行为、课堂表现、校园安全等多维度的实时监控与数据分析,为教育管理、执法机关、心理辅导等提供强有力的数据支持。特别地,反校园欺凌平台利用多种传感器和智能设备,确保及时发现并处理校园霸凌事件,保障学生权益。同时,系统还涵盖超市、食堂、图书馆、消防安全等辅助云平台,全面提升校园智能化管理水平。
|
10月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
12月前
|
存储 SQL 数据挖掘
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
湖仓一体架构融合了数据湖的低成本、高扩展性,以及数据仓库的高性能、强数据治理能力,高效应对大数据时代的挑战。为助力企业实现湖仓一体的建设,Apache Doris 提出了数据无界和湖仓无界核心理念,并结合自身特性,助力企业加速从 0 到 1 构建湖仓体系,降低转型过程中的风险和成本。本文将对湖仓一体演进及 Apache Doris 湖仓一体方案进行介绍。
1180 1
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
|
11月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
11月前
|
算法 前端开发 定位技术
地铁站内导航系统解决方案:技术架构与核心功能设计解析
本文旨在分享一套地铁站内导航系统技术方案,通过蓝牙Beacon技术与AI算法的结合,解决传统导航定位不准确、路径规划不合理等问题,提升乘客出行体验,同时为地铁运营商提供数据支持与增值服务。 如需获取校地铁站内智能导航系统方案文档可前往文章最下方获取,如有项目合作及技术交流欢迎私信我们哦~
878 1
|
Serverless 对象存储 人工智能
智能文件解析:体验阿里云多模态信息提取解决方案
在当今数据驱动的时代,信息的获取和处理效率直接影响着企业决策的速度和质量。然而,面对日益多样化的文件格式(文本、图像、音频、视频),传统的处理方法显然已经无法满足需求。
487 4
智能文件解析:体验阿里云多模态信息提取解决方案
|
文字识别 开发者 数据处理
多模态数据信息提取解决方案评测报告!
阿里云推出的《多模态数据信息提取》解决方案,利用AI技术从文本、图像、音频和视频中提取关键信息,支持多种应用场景,大幅提升数据处理效率。评测涵盖部署体验、文档清晰度、模板简化、示例验证及需求适配性等方面。方案表现出色,部署简单直观,功能强大,适合多种业务场景。建议增加交互提示、多语言支持及优化OCR和音频转写功能...
442 3
多模态数据信息提取解决方案评测报告!

推荐镜像

更多
  • DNS