使用工作空间构建数据开发环境
基本概念
工作空间(workspace)是 Lakehouse 产品中的核心概念之一。它用于组织 Lakehouse 资源对象(如数据对象、计算资源),并提供相对隔离的数据开发和调度任务管理运维环境。
为了实现一个服务实例内的工作空间既相互隔离,又便于进行数据交换,不同工作空间之间的权限相互隔离:一个服务实例用户需要被某个工作空间的空间管理员角色(workspace_admin)添加进入该工作空间,才可被授权并使用工作空间内的数据或计算资源。
当一个用户具备某工作空间内的数据对象权限时,可以在其他工作空间对这些数据对象进行跨空间的查询或其他权限范围内的操作。
如上图所示,一个Lakehouse服务实例内可以创建多个工作空间。一个服务实例用户可以被同时添加进入多个工作空间内并被授予该工作空间内对象的权限。
以上图中的对象为例,介绍工作空间的隔离和数据互通方式:
当上图中的用户user_a同时被加入了工作空间A(workspace_a)和工作空间B(workspace_b),并被授予了A和B两个工作空间的计算集群使用、数据对象查询等所需的权限。那么user_a在工作空间A内的任务脚本demo_script_ws_a和工作空间B内的任务脚本demo_script_ws_b中执行以下语句均可正常得到查询结果。
而用户user_b仅被加入了工作空间B(workspace_b),并授予了工作空间B内的一系列权限,当执行任务脚本demo_script_ws_b对workspace_a.schema_a.table_a进行查询时,会提示user_b并不具备该表的select权限。
使用场景
一个服务实例(instance)中可以创建多个工作空间,你可以根据自身业务需要选择使用单一工作空间或多个工作空间。单一工作空间有利于管理更方便对数据资产和计算资源进行统一管理;多个工作空间有利于多个团队或项目间实现天然的权限、数据和计算资源边界。
使用单一工作空间
当你处于以下使用场景时,推荐仅使用默认开通的工作空间作为单一工作空间使用Lakehouse:
- 个人或小型团队:团队人数较少,数据与计算规模也不庞大,希望在同一个环境内进行协作和管理。
- 单一产品线或业务部门:只需管理一个业务域的数据与数据处理流程,对数据与访问控制的精细拆分需求相对较低。
服务实例开通后,系统默认会创建一个名为“quick_start”的工作空间。您可以直接使用此工作空间进行任务开发等工作。
在管控中心的“账户主页”中,点击开通的服务实例,可进入服务实例的首页。
在服务实例的首页,点击左侧功能菜单中的“开发”、“计算”、“运维监控”等任意功能,在页面右上角会列出当前账号具备权限访问的工作空间,支持切换。使用单一工作空间时,默认处于服务实例内仅有的一个工作空间内。此时所有的任务脚本、调度作业都处于该工作空间内。
创建并使用多个工作空间
当你处于以下使用场景时,推荐创建并使用多个工作空间:
- 跨部门或多项目隔离:当业务部门或项目之间需要隔离的数据和资源访问时,可通过多个工作空间实现天然的权限边界。
- 安全与合规要求高:金融、医疗、政府机构等对数据安全、合规和可审计性要求很高的行业场景,需要通过强隔离的方式加强数据安全。
- 不同的计费或预算中心:如果多个部门或项目分别承担预算,则各自独立的工作空间可便于进行财务结算和成本追踪。
服务实例的实例管理员(instance_admin)角色可以创建工作空间。操作方式如下:
进入“管理-工作空间”菜单,在工作空间管理页面中点击“新建空间”,填写所需信息后进行创建。
工作空间的名称一经创建后不允许变更。新的工作空间会默认创建一个名为“public”的schema,和3个不同类型的计算集群(通用型计算集群,分析型计算集群和同步型计算集群),便于快速在工作空间中开始操作。
新建工作空间的用户会默认被授予这个工作空间的空间管理员(workspace_admin)角色。
使用多个工作空间时,可在“开发”、“计算”、“运维监控”等功能页面中,通过右上角的工作空间按钮,切换不同工作空间环境进行使用。
一个服务实例用户,如需使用某个工作空间中的数据和计算资源,需要被加入该工作空间并被授予相应的权限。这一操作需要具备该工作空间的空间管理员角色(workspace_admin)用户来执行。更多操作说明请参考“访问控制”-“配置访问控制”中的工作空间级管理的相关内容。