
大数据云平台Greenplum多租户篇.doc
5页大数据云平台Greenplum多租户篇Greenpl是最出色的开源数据库,经过1年的发展,从数据仓库发展成了云时代的理想大数据平台本系列文章将从各个方面介绍Greenplum寸云的支持本篇侧重多租户1什么是多租户多租户指一套系统能够支撑多个租户一个租户通常是具有相似访问模式和权限的一组用户,典型的租户是同一个组织或者公司的若干用户要实现多租户,首先需要考虑的是数据层面的多租户数据层的多租户模型对上层服务和应用的多租户实现有突出影响本文重点介绍数据层多租户及Greenplun数据库对各种多租户模型的支持权衡不同的多租户实现方式时,需要考虑如下因素:•扩展性:租户数量级别,以及未来发展趋势•安全性:租户之间数据隔离级别要求-资源共享:多租户通常有某种形式的资源共享,需要避免某个租户的糟糕吃掉系统资源,影响其他租户的响应时间-灵活性:不同租户可能有不同的需求,对特定租户需求的扩展能力*跨租户分析和优化:对全部租户或者多个租户的数据和行为进行分析的能力•运维和管理:运维管理的复杂度和便宜性,包括监控、修改数据库模式、创建索引、收集统计数据、数据加载等•成本:总体拥有成本,包括方案实现成本、运维成本等2.多租户模型多租户模型描述了租户和该租户的数据之间的映射关系。
不同的多租户模型会影响数据库和应用程序的设计、管理和维护使用较多的多租户模型有三种Gree叩lum对这三种模型都有出色的支持2.1一租户一数据库最简单的多租户实现方式是为每一个租户创建一个Greenplun集群,如下图所示应用程序为每个租户分配一个租户,并为每个租户配置相应的数据库连接信息(包括数据库、端口等)应用程序根据租户连接到为其分配的数据库这种模型中不同租户的数据物理隔离,安全级别高如果每个租户的eep集U群使用不同的硬件,则他们之间的资源使用也是物理隔离的;如果租户的eep集U群共用同一套硬件,则需要对资源进行合理分配和管理,避免相互影响由于不同租户使用独立的数据库,灵活性好,容易满足不同租户的特定需求(譬如需要额外的字段)出现故障时影响面小缺点是数据库数量大,维护复杂,拥有成本高适合租户数目比较少的场景2.2—租户一名字空间(Schema/Namespa)ce多个租户共享同一个数据库,每个租户拥有独立的名字空间(或模式)应用程序为每个租户分配一个,并把每个租户的所有操作限制在为其分配的名字空间/模式之中如下图所示这种多租户模型下,不同租户的数据逻辑上相互隔离,安全控制相对简单。
不同租户有不同的模式,可以简便的满足不同租户的特定需求,灵活性高对资源管理能力要求高,以避免不同租户竞争资源结合eep的mepaceaesp特性,可以把不同租户的数据存储在不同的磁盘上,降低了对磁盘的竞争运维和管理较复杂,不易实现大量租户的跨租户分析适合租户数目适中的场景2・3全共享方式不同租户共享同一个数据库、同一个名字空间不同租户的数据在同一组表中共存,通过租户标记和访问不同租户的数据(应用需要调整访问数据的以包含租户)如下图所示这种多租户模型中,不同租户的数据物理存储在一起,对系统的资源隔离和安全隔离要求很高运维相对简单扩展能力好,可以支持较多数量租户由于租户数据存储在一起,跨租户数据分析和优化非常简单成本低,可以较低的代价支持更多的租户全共享模型中,很多数据库采用添加大量自定义字段的方式满足不同租户的特定需求,以提高灵活性这种方式有诸多局限性,譬如字段数目不能太多、管理复杂等自5.开始支持更多半结构化数据,包括、等,通过这种半结构化数据,可以更灵活、高效、便捷的满足不同租户的特定需求2.4混合模型这种模型不是一个新的实现方式,而是混合前面介绍的三种模型以满足不同用户的服务级别需求。
譬如对于最大的少数几个租户采用一租户一数据库的模型,其他租户采用全共享方式或者对资源隔离级别要求高、服务响应时间要求高的客户采用一租户一数据库的模型,其他租户采用一租户一名字空间方式或者全共享方式2.5对比下表列出了不同模式的特点混合模型兼具不同模型的优缺点,不再单独列出根据不同需求可以采用不同的实现方式特性一租户一数据库一租户一名字空间全共享扩展性、租户数量低中高安全隔离物理隔离逻辑隔离依赖数据库和应用安全控制资源隔离若用不同集群,则高;赖数据库资源管理特性否则依依赖数据库资源管理特性依赖数据库资源管理特性灵活性高高通过等半结构化数据跨租户分析很难,需要跨库查询难,需要跨模式查询类型提供较高灵活性容易运维管理复杂度高复杂度中复杂度低对应用影响低较高成本高中低3.Greenplum资源管理上面提到,不管使用何种多租户模型(除非是不同的物理集群),否则都涉及到资源管理的问题,以满足不同租户的不同资源使用需求,避免某个租户过度使用资源,影响其他租户Greenplum设计实现了一个全新的基于资源组的资源管理器,相比之前的资源队列,可以做到灵活高效的资源管理下表对资源组和资源队列进行了对比:特性资源组e并发控制事务级别死锁无ureGr资源队列Ueureueue语句级别极端情况下会出现管理基于比例、基于空闲利用率可以充分利用空闲up基于粗粒度的优先级U部分利用内存限制精细粒度粗组内内存共享是动态修改资源配置是部分排队无并发槽位或者内存配额时无并发槽位时管理、语句是eme级别监控管理是基于规则的资源管理是Greenplum可以实现细粒度的资源管理,在云上多租户场景下,非常适合实现租户的资源隔离,避免某个租户过度占用资源,确保资源合理使用。
4总结多租户是云数据库的基本要求,本文介绍了Greenplum的四种多租户实现方式,并对之进行了对比还介绍了Greenplum新的基于资源组的资源管理器,以实现多租户的资源共享和隔离。












