了解更多Greenplum技术干货,欢迎访问Greenplum中文社区网站
Greenplum 是最出色的开源MPP数据库,经过15年的发展,从数据仓库发展成了云时代的理想大数据平台。
1. 什么是多租户
多租户指一套系统能够支撑多个租户。一个租户通常是具有相似访问模式和权限的一组用户,典型的租户是同一个组织或者公司的若干用户。
要实现多租户,首先需要考虑的是数据层面的多租户。数据层的多租户模型对上层服务和应用的多租户实现有突出影响。本文重点介绍数据层多租户及Greenplum数据库对各种多租户模型的支持。
权衡不同的多租户实现方式时,需要考虑如下因素:
-
扩展性:租户数量级别,以及未来发展趋势
-
安全性:租户之间数据隔离级别要求
-
资源共享:多租户通常有某种形式的资源共享,需要避免某个租户的糟糕SQL吃掉系统资源,影响其他租户的响应时间
-
灵活性:不同租户可能有不同的需求,对特定租户需求的扩展能力
-
跨租户分析和优化:对全部租户或者多个租户的数据和行为进行分析的能力
-
运维和管理:运维管理的复杂度和便宜性,包括监控、修改数据库模式、创建索引、收集统计数据、数据加载等
-
成本:总体拥有成本,包括方案实现成本、运维成本等
2. 多租户模型
多租户模型描述了租户和该租户的数据之间的映射关系。不同的多租户模型会影响数据库和应用程序的设计、管理和维