Para aumentar nossos conhecimentos, fizemos alguns testes utilizando Multi Tenant com Pentaho 5.1.
A idéia é fazer com que o Pentaho identifique qual Banco de Dados deve ser utilizado de acordo com o usuário logado.
Encontramos alguns artigos utilizando Pentaho 4.8, mas sem muita documentação sobre o 5.
Ainda não conseguimos fazer o Saiku remover o cache em caso de mudança de Banco de Dados, porém, ao limpar o cache, funciona normalmente. Se alguém tiver alguma sugestão, sobre esse assunto, por favor, coloque nos comentários.
Segue os passos:
Configuração de arquivo
Edite o arquivo pentaho-solutions/system/pentahoObjects.spring.xml
substitua o trecho:
<
bean
id
=
"IDBDatasourceService"
class
=
"org.pentaho.platform.engine.services.connection.datasource.dbcp.DynamicallyPooledOrJndiDatasourceService"
scope
=
"singleton"
>
<
property
name
=
"pooledDatasourceService"
ref
=
"pooledOrJndiDatasourceService"
/>
<
property
name
=
"nonPooledDatasourceService"
ref
=
"nonPooledOrJndiDatasourceService"
/>
</
bean
>
por:
<!--Inicio Tenant -->
<
br
>
<
bean
id
=
"IDBDatasourceService"
class
=
"org.pentaho.platform.engine.services.connection.datasource.dbcp.tenantaware.TenantAwareLoginParsingDatasourceService"
scope
=
"singleton"
><
br
><
br
> <
property
name
=
"requireTenantId"
value
=
"false"
/> <
br
><
br
> <
property
name
=
"datasourceNameFormat"
value
=
"{0}-{1}"
/><
br
><
br
> <
property
name
=
"tenantSeparator"
value
=
"@"
/><
br
><
br
> <
property
name
=
"tenantOnLeft"
value
=
"false"
/> <
br
><
br
> </
bean
><
br
><
br
>
<!-- Fim Tenant -->
Configuração de ambiente
No Pentaho, crie um Datasource para cada Banco de Dados, utilizando o formato [CODIGO]-[NOME]. Por exemplo: 1-Conexao, 2-Conexao, etc..
É importante que todos tenham o mesmo NOME, modificando apenas o código.
Após a criação dos DataSources, crie usuários no formato [USUARIO]@[CODIGO]. Por exemplo: knowsolution@1, knowsolution@2, etc…
O código no nome do usuário deve corresponder ao código do Datasource. No exemplo anterior, o usuário knowsolution@1 irá acessar o DataSource 1-Conexao, equanto o usuário knowsolution@2, o DataSource 2-Conexao
Testando
Para testar, logue com um dos usuário no Pentaho, crie uma nova visualização no saiku, limpe o cache e veja os dados. Faça logout e conecte com o outro usuário (ou utilize outro navegador), e faça o mesmo processos no Saiku. Você verá que os dados são os referentes ao outro banco de dados.
Outra forma de testar é utilizando um Dashboard no CDE, marque a opção cache do Datasource no CDE como false e faça o login com os diferentes usuários.
O que o site do Pentaho diz:
Multi-Tenancy in Pentaho
Pentaho has three categories of multi-tenancy:
- Data multi-tenancy allows developers and integrators to apply custom security and business rules to control access to data.
- Content multi-tenancy separates content, such as reports and folders, among tenants.
- UI multi-tenancy presents different styles of the user interface for each tenant.
There are two required components to make multi-tenancy work. Users need to be associated with tenants via roles, tenant IDs, or other identifiers which indicate what content and data users see. Similarly, there must be something in the data that can be used to restrict access. The combination of user information and data make the multi-tenancy approaches described here possible. Since these approaches are data model and data-driven, they are very flexible.
Preparing for Multi-Tenancy in Pentaho
Before you can apply multi-tenancy to your Pentaho system, you need to associate users to a tenant. The most likely methods are to assign a specific role to users who belong to the same tenant or to designate a session variable which identifies the tenant ID. Other approaches include associating users with some data, such as geographic region or business unit. The association of a user with tenant identifiers is accomplished through one of the following approaches:
- The user information can be set via single sign-on if it is used. This approach has the advantage of requiring a single point to set user ID, roles, and tenant info. However, if users will be scheduling their own content, this approach will not work because the SSO filter is not called by the scheduler.
- A session startup action that is run when a user session is created. The advantage to this approach is that the action is called by the scheduler. The downside is that an action sequence is required, which means understanding a new technology.
You can use an action sequence to add an indicator to the user’s session which identifies the user as a member of the tenant. The following document illustrates techniques for controlling access to data used in action sequences in the Pentaho BI Platform. You should be familiar with the Pentaho BI Platform, creating action sequences and SQL database queries.
For more information, see: https://bit.ly/3sNTYpA
Data Multi-Tenancy and Supported Methods
The most common category of multi-tenancy is data multi-tenancy. Data multi-tenancy allows developers to apply their own custom data access rules at run time. For example, each tenant might only be allowed to see data which is associated with their tenant ID. Here are the most common methods for data multi-tenancy in Pentaho Business Analytics.
- Sharding: Each tenant has its own database or schema. This approach has the advantage of controlling per database and ensuring data is separated. Note that with this approach, multiple databases and servers will need to be managed.
- Striping: Tenants share a database, but the tables have a tenant ID column to indicate which tenant can see the specified data. This approach has the advantage of managing only a single database. Note that with this approach, databases can become very large.
- Data Models: Tenancy is controlled at the data level where different tenants (or sub-tenants) are only able to see certain data. This approach is very flexible, but the data to restrict on must usually be known in advance.
- Hybrid: Combinations of sharding, striping, and data model. Each of the approaches above can be combined into a single, flexible solution to data multi-tenancy.
Each database implementation has advantages and disadvantages, based on factors of performance management, maintenance, security, efficiency, available resources, and database vendor features. For best practices in database architecture, Pentaho recommends working with an expert in your chosen database and data modeling.
Sharding Data Multi-Tenancy
Sharding involves separating data by database or by database connection properties. The Pentaho Business Analytics platform manages access to database connections through a central mechanism called a data source. The platform delegates to the IDBDatasource object whenever a connection is requested to a given data source. Through Java code and Pentaho configuration files, developers can plug in their own object to apply rules at run time as shown in the following example.
Caso não consiga ou identifique algum problema neste pequeno tutorial, deixe nos comentários!
Materia muito interessante
Obrigada pelo artigo 🙂 Acho que eu tenho uma equipe que pode obter cada sucesso 🙂 Mas sem kanbantool.com, nao conseguimos arranjar e controlar todas tarefas. Ferramentas digitais podem ajudar bastante – tal como manager ou teamledaer, mas mais suave 🙂 Eu planejo o dia do trabalho com kanban e todas tarefas sao cumpridas. Eu sei que nao cada um gosta trabalhar assim, mas comigo funciona 🙂
Parabéns por trazer a CRISP-DM de volta ao tablado. O “produtocentrismo” que assola o mercardo de BI pressiona os players a comprar o último brinquedo, a seguir a última moda, quando quase tudo que tem algum uso prático já existe há décadas – como o CRISP-DM
Seria legal um artigo um artigo comparando-o com SEMMA. Pode ser muito interessante para quem entrou na área há menos de 20 anos.
Gostaria de entender se a utilização da Big data nas empresas gera algum tipo de desvantagem nas pessoas que lá trabalham ?
Sobre o comentário do João Kechichian, concordo em relação às empresas não terem claro o que querem, e concordo com o Leandro sobre a abordagem de “Qual o seu problema” para dar as sugestões.
Mas vale ressaltar que as empresas não conseguem identificar o que querem por não terem claro um Planejamento Estratégico e objetivos bem descritos. Isso facilita muito perceber quais indicadores serão necessários acompanhar para atingir os resultados esperados.
Bom dia,
Há muita diferença das versões do livro The Data Warehouse Toolkit?
Vejo que ele esta na 3 edição.
Posso comprar apenas a 3 ou devo comprar todas?
Oi Marcos!
Há algumas atualizações com conceitos mais atuais. Não precisa comprar todas as edições não, apenas a 3a já cobre tudo que precisa.
Sim e não. A maior diferença é entre a primeira edição e as restantes. Da segunda edição em diante, quando a Margy Ross assumiu o livro, é tudo mais ou menos o mesmo.
A primeira edição, que por acaso chegou a ser publicada em português, é a melhor, na minha opinião. Ela é mais concreta, menor e mais focada. Se conseguir achá-la, compre. Vale ouro.
eu precisava para compor você uma pouco de note ajudar diga obrigado again com o extraordinário conselhos você compartilhado nesta página . Foi certamente maravilhosamente generoso com você dando abertamente tudo o que muitas pessoas {poderiam ter | poderiam possivelmente ter | poderiam ter | teriam | distribuído para um ebook para gerar alguma massa para eles mesmos , especialmente considerando que you poderia ter tried it se você nunca desejado . Those estratégias também agido como outras pessoas tenha semelhante desire como my own entender bom negócio mais relacionado este assunto . Eu tenho certeza há alguns mais agradáveis ocasiões ahead para pessoas que ver seu site
[…] de BI — Business Intelligence ou, traduzindo, Inteligência Empresarial — é justamente o diferencial que uma empresa precisa para tratar dados gerados por vários meios. Veja alguns contextos que podem servir de […]
[…] para aumentar seu lucro ou diminuir seus custos operacionais. Esse é o conceito básico de Business Intelligence utilizado como diferencial […]
Olá Leandro.
Acredito que o potencial da área de Business Intelligence dentro das empresas pode ser maior do que se imagina hoje.
Trabalho com consultoria de B.I. para agencias e empresas, e enfrentamos diariamente dois grandes problemas.
1- Padronização dos dados: Como utilizamos muitas fontes de dados, todo o processo, desde o que a implementação, até a parte operacional, precisa ser muito bem estruturada. Sem o padrão das informações perde-se muito tempo com “correção”, sendo que “tempo” não é o que temos para identificar um padrão, pois no dia seguinte ele pode mudar se não o tratarmos.
2- Pessoas que não sabem o que querem: Corporações não sabem o que querem, logo querem tudo. O problema é que sabemos que não tudo não é necessário, se consegue identificar padrões e otimizações com metade do volume. Sendo assim o processo de otimização passa a ser inteligente para ser operacional.
O futuro da área esta encaminhando para segmentações e clusterizações dinâmicas para analise de Big Data, mas se o processo de todos envolvidos precisa ser muito bem desenhado e a área de B.I. precisa ter este knowhow também.
Obrigado e muito bom seus artigos.
Oi João, obrigado pelo seu comentário! Concordo com você!
Realmente, a padronização dos dados é o ponto mais sensível mesmo. Aqui estimamos em torno de 60% a 70% do tempo em um projeto de BI apenas para esta parte.
Sobre as pessoas não saberem o que querem, aqui vemos como uma certa vantagem. Muitas vezes não é nem exatamente não saber o que querem, mas não saberem o que é possível fazer. Com isso, parte do nosso trabalho aqui é exatamente entender do que o cliente sofre aí então sugerir algumas coisas. Tentamos não ir para uma abordagem de “o que você quer” mas sim de “quais são seus problemas”.
Isso me deu até a ideia de criar um post focado nisso, vou deixar anotado para o futuro!
Existe uma técnica chamada Árvore de Realidade Presente, da Teoria das Restrições, que lida justamente com essa barafunda de problemas e entendimentos. Eu experimentei a mesma frustração que você, João, e decidi resolver esse problema. A imagem https://geekbi.files.wordpress.com/2020/10/bi_toc-crt-x.png é um resumo do que eu tenho até agora.
Adoraria uma contribuição. “O cliente não sabe o que quer” já está lá. “Dados são sujos” e “Dados são bagunçados” me parecem boas adições.
O que você acha? E você, Leandro?