Multiple Tenant Support
Posted by Dylan Wan on November 30, 2015
The definition of multi-tenancy varies. Some people think that the tenants are data stripping and adding a tenant ID to every table is to support multiple tenants.
One of such example is Oracle BI Applications. We added the tenant_id everywhere and assume that we can use it later to partition the data.
In the cloud apps, multiple tenants can mean different clients. Whether the clients share the same software or not is the choice of the hosting service provider. It is a balance of the customization and the sharing of resources and thus the cost and efficiency.
The issue becomes more complicated for BI solution as it is a reporting service that can be provided on top of other services, which can have the multi-tenancy support. A critical question to ask is how the source system supports multi-tenancy and how the BI will be embedded in the flow of the integrated system. I think that here are the requirements for BI to support multiple tenants:
- Software package can be installed and patched together for multiple tenants
- Data can be isolated by tenants without any data security concerns. When the volume of data grows over time, we should be able to move the data into different devices easily.
- BI metadata, such as the metadata defined in OBIEE RPD files, Web Catalog, Informatica mapping, ODI repository, DAC metadata, etc, should be easily shared across multiple tenants, while each tenant should have their own space to build their custom objects. Some kind of isolation or even a publish – subscription model should be provided.
- Minimum downtime is a general requirement regardless whether multiple tenancy is supported. In the other word, patching and changing the metadata should not affect the individual tenant. However, if downtime is required, the downtime should be isolated when possible.
OBIEE provides the multiple tenancy support by first allowing each tenant to see different parts of web catalog. By securing the folders and sharing the RPD file, each tenant can have their own reports and dashboard. Multiple tenancy becomes a data security issue.
For the source system that can support multiple tenants, one possible solution is to externalized or parameter the connection information. some RPD file can be used, but the users from different tenants can be redirected to access different sources.
The lack of the container concept like DAC and the shortcut feature like Informatica and ODI, providing the tenant specific metadata is probably the challenge of supporting multiple tenants using OBIEE.