Análise entre locatários usando dados extraídos - aplicativo de locatário único

Aplica-se a:Banco de Dados SQL do Azure

Neste tutorial, você percorre um cenário de análise completo para uma implementação de locatário único. O cenário demonstra como a análise pode permitir que as empresas tomem decisões inteligentes. Usando dados extraídos de cada banco de dados de locatário, você usa análises para obter informações sobre o comportamento do locatário, incluindo o uso do aplicativo SaaS de tíquetes Wingtip de exemplo. Este cenário envolve três etapas:

  1. Extraia dados de cada banco de dados de locatário e carregue em um repositório de análise.
  2. Transforme os dados extraídos para processamento analítico.
  3. Use ferramentas de business intelligence para extrair insights úteis, que podem orientar a tomada de decisões.

Neste tutorial, ficará a saber como:

  • Crie o repositório de análise de locatário para extrair os dados.
  • Use trabalhos elásticos para extrair dados de cada banco de dados de locatário para o repositório de análise.
  • Otimize os dados extraídos (reorganize em um esquema em estrela).
  • Consulte o banco de dados de análise.
  • Use o Power BI para visualização de dados para destacar tendências nos dados do locatário e fazer recomendações para melhorias.

Diagram shows an overview of the architecture used for this article.

Padrão de análise de locatário offline

Os aplicativos SaaS multilocatários normalmente têm uma grande quantidade de dados de locatários armazenados na nuvem. Esses dados fornecem uma fonte rica de informações sobre a operação e o uso de seu aplicativo e o comportamento de seus locatários. Esses insights podem orientar o desenvolvimento de recursos, melhorias de usabilidade e outros investimentos no aplicativo e na plataforma.

O acesso aos dados de todos os locatários é simples quando todos os dados estão em apenas um banco de dados multilocatário. Mas o acesso é mais complexo quando distribuído em escala por potencialmente milhares de bancos de dados. Uma maneira de domar a complexidade e minimizar o impacto das consultas de análise em dados transacionais é extrair dados para um banco de dados analítico ou data warehouse projetado para finalidade.

Este tutorial apresenta um cenário de análise completo para o aplicativo SaaS Wingtip Tickets. Primeiro, o Elastic Jobs é usado para extrair dados de cada banco de dados de locatário e carregá-los em tabelas de preparo em um repositório de análise. O repositório de análise pode ser um Banco de Dados SQL ou um pool SQL dedicado. Para extração de dados em grande escala, o Azure Data Factory é recomendado.

Em seguida, os dados agregados são transformados em um conjunto de tabelas de esquema em estrela. As tabelas consistem em uma tabela central de fatos mais tabelas de dimensões relacionadas. Para bilhetes Wingtip:

  • A tabela de fatos central no esquema de estrelas contém dados de ingressos.
  • As tabelas de dimensões descrevem locais, eventos, clientes e datas de compra.

Em conjunto, as tabelas centrais de factos e dimensões permitem um processamento analítico eficiente. O esquema de estrelas usado neste tutorial é mostrado na imagem a seguir:

architectureOverView

Por fim, o repositório de análise é consultado usando o Power BI para destacar informações sobre o comportamento do locatário e seu uso do aplicativo Wingtip Tickets. Você executa consultas que:

  • Mostrar a popularidade relativa de cada local
  • Padrões de destaque na venda de ingressos para diferentes eventos
  • Mostrar o relativo sucesso de diferentes locais na lotação do seu evento

Entender como cada locatário está usando o serviço é usado para explorar opções para monetizar o serviço e melhorar o serviço para ajudar os locatários a serem mais bem-sucedidos. Este tutorial fornece exemplos básicos dos tipos de informações que podem ser obtidas a partir dos dados do locatário.

Configurar

Pré-requisitos

Para concluir este tutorial, devem ser cumpridos os seguintes pré-requisitos:

  • O aplicativo Wingtip Tickets SaaS Database Per Tenant é implantado. Para implantar em menos de cinco minutos, consulte Implantar e explorar o aplicativo SaaS Wingtip
  • Os scripts Wingtip Tickets SaaS Database Per Tenant e o código-fonte do aplicativo são baixados do GitHub. Consulte as instruções de download. Certifique-se de desbloquear o arquivo zip antes de extrair seu conteúdo. Confira as orientações gerais para conhecer as etapas para baixar e desbloquear os scripts SaaS do Wingtip Tickets.
  • O Power BI Desktop está instalado. Baixar o Power BI Desktop
  • O lote de locatários adicionais foi provisionado, consulte o tutorial Provisionar locatários.
  • Uma conta de trabalho e um banco de dados de conta de trabalho foram criados. Consulte as etapas apropriadas no tutorial Gerenciamento de esquema.

Criar dados para a demonstração

Neste tutorial, a análise é realizada em dados de vendas de ingressos. Na etapa atual, você gera dados de tíquete para todos os locatários. Posteriormente estes dados são extraídos para análise. Certifique-se de ter provisionado o lote de locatários conforme descrito anteriormente, para que você tenha uma quantidade significativa de dados. Uma quantidade suficientemente grande de dados pode expor uma série de diferentes padrões de compra de bilhetes.

  1. No ISE do PowerShell, abra ...\Learning Modules\Operational Analytics\Tenant Analytics\Demo-TenantAnalytics.ps1 e defina o seguinte valor:
    • = $DemoScenario 1 Compre bilhetes para eventos em todos os locais
  2. Pressione F5 para executar o script e criar o histórico de compra de ingressos para cada evento em cada local. O script é executado por vários minutos para gerar dezenas de milhares de ingressos.

Implantar o repositório de análises

Muitas vezes, existem vários bancos de dados transacionais que, juntos, armazenam todos os dados do locatário. Você deve agregar os dados do locatário dos vários bancos de dados transacionais em um repositório de análise. A agregação permite uma consulta eficiente dos dados. Neste tutorial, um Banco de Dados SQL do Azure é usado para armazenar os dados agregados.

Nas etapas a seguir, você implanta o repositório de análise, que é chamado tenantanalytics. Você também implanta tabelas predefinidas que são preenchidas posteriormente no tutorial:

  1. No ISE do PowerShell, abra ...\Learning Modules\Operational Analytics\Tenant Analytics\Demo-TenantAnalytics.ps1
  2. Defina a variável $DemoScenario no script para corresponder à sua escolha de armazenamento de análise:
    • Para usar o Banco de dados SQL sem armazenamento de colunas, defina $DemoScenario = 2
    • Para usar o Banco de dados SQL com armazenamento de colunas, defina $DemoScenario = 3
  3. Pressione F5 para executar o script de demonstração (que chama o script Deploy-TenantAnalytics<XX.ps1>) que cria o repositório de análise de locatário.

Agora que você implantou o aplicativo e o preencheu com dados de locatário interessantes, use o SQL Server Management Studio (SSMS) para conectar servidores tenants1-dpt-User e catalog-dpt-User<><> usando Login = developer, Password = P@ssword1. Consulte o tutorial introdutório para obter mais orientações.

Screenshot that shows the information needed to connect to SQL Server.

No Pesquisador de Objetos, execute as seguintes etapas:

  1. Expanda o servidor tenants1-dpt-User><.
  2. Expanda o nó Bancos de dados e veja a lista de bancos de dados de locatário.
  3. Expanda o servidor catalog-dpt-User><.
  4. Verifique se você vê o repositório de análise e o banco de dados da conta de trabalho.

Consulte os seguintes itens de banco de dados no Pesquisador de Objetos do SSMS expandindo o nó do repositório de análises:

  • Tabelas TicketsRawData e EventsRawData armazenam dados extraídos brutos dos bancos de dados do locatário.
  • As tabelas de esquema em estrela são fact_Tickets, dim_Customers, dim_Venues, dim_Events e dim_Dates.
  • O procedimento armazenado é usado para preencher as tabelas de esquema em estrela das tabelas de dados brutos.

Screenshot of the database items shown in the SSMS Object Explorer.

Extração de dados

Criar grupos-alvo

Antes de continuar, certifique-se de ter implantado a conta de trabalho e o banco de dados de conta de trabalho. No próximo conjunto de etapas, o Elastic Jobs é usado para extrair dados de cada banco de dados de locatário e para armazenar os dados no repositório de análise. Em seguida, o segundo trabalho destrói os dados e os armazena em tabelas no esquema em estrela. Esses dois trabalhos são executados em dois grupos-alvo diferentes, ou seja, TenantGroup e AnalyticsGroup. O trabalho de extração é executado no TenantGroup, que contém todos os bancos de dados do locatário. O trabalho de destruição é executado no AnalyticsGroup, que contém apenas o repositório de análises. Crie os grupos-alvo usando as seguintes etapas:

  1. No SSMS, conecte-se ao banco de dados jobaccount em catalog-dpt-User<>.
  2. No SSMS, abra ...\Learning Modules\Operational Analytics\Tenant Analytics\ TargetGroups.sql
  3. Modifique a @User variável na parte superior do script, substituindo <User> pelo valor de usuário usado quando você implantou o aplicativo SaaS Wingtip.
  4. Pressione F5 para executar o script que cria os dois grupos de destino.

Extrair dados brutos de todos os locatários

Modificações de dados extensas podem ocorrer com mais frequência para dados de tíquetes e clientes do que para dados de eventos e locais. Portanto, considere extrair dados de tíquetes e clientes separadamente e com mais frequência do que extrair dados de eventos e locais. Nesta seção, você define e agenda dois trabalhos separados:

  • Extraia dados de tíquetes e clientes.
  • Extraia dados de eventos e locais.

Cada trabalho extrai seus dados e os publica no repositório de análises. Lá, um trabalho separado destrói os dados extraídos no esquema de estrela de análise.

  1. No SSMS, conecte-se ao banco de dados jobaccount no servidor catalog-dpt-User<>.
  2. No SSMS, abra ...\Learning Modules\Operational Analytics\Tenant Analytics\ExtractTickets.sql.
  3. Modifique @User na parte superior do script e substitua <User> pelo nome de usuário usado quando você implantou o aplicativo SaaS Wingtip
  4. Pressione F5 para executar o script que cria e executa o trabalho que extrai tíquetes e dados de clientes de cada banco de dados de locatário. O trabalho salva os dados no repositório de análise.
  5. Consulte a tabela TicketsRawData no banco de dados tenantanalytics para garantir que a tabela seja preenchida com informações de tíquetes de todos os locatários.

Screenshot shows the ExtractTickets database with the TicketsRawData d b o selected in Object Explorer.

Repita as etapas anteriores, exceto desta vez substitua \ExtractTickets.sql por \ExtractVenuesEvents.sql na etapa 2.

A execução bem-sucedida do trabalho preenche a tabela EventsRawData no repositório de análise com novas informações de eventos e locais de todos os locatários.

Reorganização de dados

Destruir dados extraídos para preencher tabelas de esquema de estrelas

A próxima etapa é destruir os dados brutos extraídos em um conjunto de tabelas otimizadas para consultas de análise. Um esquema em estrela é usado. Uma tabela central de fatos contém registros individuais de vendas de ingressos. Outras tabelas são preenchidas com dados relacionados sobre locais, eventos e clientes. E há tabelas de dimensões temporais.

Nesta seção do tutorial, você define e executa um trabalho que mescla os dados brutos extraídos com os dados nas tabelas de esquema em estrela. Após a conclusão do trabalho de mesclagem, os dados brutos são excluídos, deixando as tabelas prontas para serem preenchidas pelo próximo trabalho de extração de dados do locatário.

  1. No SSMS, conecte-se ao banco de dados jobaccount em catalog-dpt-User<>.
  2. No SSMS, abra ...\Learning Modules\Operational Analytics\Tenant Analytics\ShredRawExtractedData.sql.
  3. Pressione F5 para executar o script e definir um trabalho que chame o sp_ShredRawExtractedData procedimento armazenado no repositório de análise.
  4. Dê tempo suficiente para que o trabalho seja executado com êxito.
    • Verifique a coluna Ciclo de vida de jobs.jobs_execution tabela para obter o status do trabalho. Certifique-se de que o trabalho foi bem-sucedido antes de prosseguir. Uma execução bem-sucedida exibe dados semelhantes ao gráfico a seguir:

shredding

Exploração de dados

Visualizar dados do locatário

Os dados na tabela de esquema de estrelas fornecem todos os dados de vendas de ingressos necessários para sua análise. Para facilitar a visualização de tendências em grandes conjuntos de dados, você precisa visualizá-las graficamente. Nesta seção, você aprenderá a usar o Power BI para manipular e visualizar os dados do locatário extraídos e organizados.

Use as seguintes etapas para se conectar ao Power BI e importar os modos de exibição criados anteriormente:

  1. Inicie o Power BI desktop.

  2. Na faixa de opções Página Inicial, selecione Obter Dados e selecione Mais... no menu.

  3. Na janela Obter Dados, selecione Banco de Dados SQL do Azure.

  4. Na janela de login do banco de dados, digite o nome do servidor (catalog-dpt-User.database.windows.net<>). Selecione Importar para o Modo de Conectividade de Dados e clique em OK.

    signinpowerbi

  5. Selecione Banco de dados no painel esquerdo, digite nome de usuário = desenvolvedor e digite senha = P@ssword1. Clique em Ligar.

    Screenshot shows the SQL Server database dialog where you can enter a User name and Password.

  6. No painel Navegador, no banco de dados de análise, selecione as tabelas de esquema em estrela: fact_Tickets, dim_Events, dim_Venues, dim_Customers e dim_Dates. Em seguida, selecione Carregar.

Parabéns! Você carregou com êxito os dados no Power BI. Agora você pode começar a explorar visualizações interessantes para ajudar a obter informações sobre seus inquilinos. Em seguida, você explica como a análise pode permitir que você forneça recomendações orientadas por dados para a equipe de negócios da Wingtip Tickets. As recomendações podem ajudar a otimizar o modelo de negócios e a experiência do cliente.

Você começa analisando os dados de vendas de ingressos para ver a variação no uso entre os locais. Selecione as seguintes opções no Power BI para plotar um gráfico de barras do número total de ingressos vendidos por cada local. Devido à variação aleatória no gerador de bilhetes, seus resultados podem ser diferentes.

Screenshot shows a Power B I visualization and controls for the data visualization on the right side.

O lote anterior confirma que o número de ingressos vendidos por cada local varia. Os locais que vendem mais bilhetes estão a utilizar o seu serviço mais fortemente do que os locais que vendem menos bilhetes. Pode haver aqui uma oportunidade para adaptar a alocação de recursos de acordo com as diferentes necessidades do inquilino.

Você pode analisar ainda mais os dados para ver como as vendas de ingressos variam ao longo do tempo. Selecione as seguintes opções no Power BI para plotar o número total de bilhetes vendidos por dia por um período de 60 dias.

Screenshot shows Power B I visualization titled Ticket Sale Distribution versus Sale Day.

O gráfico anterior mostra que as vendas de ingressos disparam para alguns locais. Esses picos reforçam a ideia de que alguns locais podem estar consumindo recursos do sistema de forma desproporcional. Até agora não há um padrão óbvio de quando os picos ocorrem.

Em seguida, você quer investigar melhor a importância desses dias de pico de vendas. Quando é que estes picos ocorrem depois de os bilhetes serem colocados à venda? Para plotar ingressos vendidos por dia, selecione as seguintes opções no Power BI.

SaleDayDistribution

O enredo anterior mostra que alguns locais vendem muitos ingressos no primeiro dia de venda. Assim que os ingressos começam a ser vendidos nesses locais, parece haver uma corrida louca. Essa explosão de atividade por alguns locais pode afetar o serviço para outros inquilinos.

Você pode detalhar os dados novamente para ver se essa corrida louca é verdadeira para todos os eventos organizados por esses locais. Em parcelas anteriores, você observou que a Contoso Concert Hall vende muitos ingressos e que a Contoso também tem um pico nas vendas de ingressos em determinados dias. Brinque com as opções do Power BI para plotar as vendas cumulativas de ingressos para o Contoso Concert Hall, concentrando-se nas tendências de venda para cada um de seus eventos. Todos os eventos seguem o mesmo padrão de venda?

ContosoSales

O gráfico anterior para o Contoso Concert Hall mostra que a corrida louca não acontece para todos os eventos. Brinque com as opções de filtro para ver as tendências de venda para outros locais.

Os insights sobre os padrões de venda de ingressos podem levar a Wingtip Tickets a otimizar seu modelo de negócios. Em vez de cobrar todos os locatários igualmente, talvez a Wingtip deva introduzir níveis de serviço com tamanhos de computação diferentes. Locais maiores que precisam vender mais ingressos por dia poderiam receber um nível mais alto com um acordo de nível de serviço (SLA) mais alto. Esses locais poderiam ter seus bancos de dados colocados em pool com limites de recursos por banco de dados mais altos. Cada nível de serviço pode ter uma alocação de vendas por hora, com taxas adicionais cobradas por exceder a alocação. Locais maiores que têm explosões periódicas de vendas se beneficiariam dos níveis mais altos, e a Wingtip Tickets pode monetizar seu serviço de forma mais eficiente.

Enquanto isso, alguns clientes da Wingtip Tickets reclamam que têm dificuldade em vender ingressos suficientes para justificar o custo do serviço. Talvez nesses insights haja uma oportunidade de aumentar a venda de ingressos para locais com baixo desempenho. Vendas mais altas aumentariam o valor percebido do serviço. Clique com o botão direito do mouse em fact_Tickets e selecione Nova medida. Insira a seguinte expressão para a nova medida chamada AverageTicketsSold:

AverageTicketsSold = AVERAGEX( SUMMARIZE( TableName, TableName[Venue Name] ), CALCULATE( SUM(TableName[Tickets Sold] ) ) )

Selecione as seguintes opções de visualização para plotar a porcentagem de ingressos vendidos por cada local para determinar seu sucesso relativo.

Screenshot shows Power B I visualization titled Average Tickets Sold By Each Venue.

O enredo anterior mostra que, embora a maioria dos locais venda mais de 80% de seus ingressos, alguns estão lutando para preencher mais da metade dos assentos. Brinque com os Valores Bem para selecionar a porcentagem máxima ou mínima de ingressos vendidos para cada local.

Anteriormente, você aprofundou sua análise para descobrir que as vendas de ingressos tendem a seguir padrões previsíveis. Essa descoberta pode permitir que a Wingtip Tickets ajude locais com baixo desempenho a aumentar as vendas de ingressos, recomendando preços dinâmicos. Essa descoberta pode revelar uma oportunidade de empregar técnicas de aprendizado de máquina para prever a venda de ingressos para cada evento. Também podem ser feitas previsões para o impacto na receita da oferta de descontos na venda de ingressos. O Power BI Embedded pode ser integrado a um aplicativo de gerenciamento de eventos. A integração pode ajudar a visualizar as vendas previstas e o efeito de diferentes descontos. O aplicativo pode ajudar a criar um desconto ideal para ser aplicado diretamente do display de análise.

Você observou tendências nos dados do locatário do aplicativo WingTip. Você pode contemplar outras maneiras pelas quais o aplicativo pode informar decisões de negócios para fornecedores de aplicativos SaaS. Os fornecedores podem atender melhor às necessidades de seus inquilinos. Espero que este tutorial tenha equipado você com as ferramentas necessárias para executar análises nos dados do locatário para capacitar suas empresas a tomar decisões baseadas em dados.

Próximos passos

Neste tutorial, ficou a saber como:

  • Implantou um banco de dados de análise de locatário com tabelas de esquema em estrela predefinidas
  • Trabalhos elásticos usados para extrair dados de todo o banco de dados do locatário
  • Mesclar os dados extraídos em tabelas em um esquema em estrela projetado para análise
  • Consultar um banco de dados de análise
  • Usar o Power BI para visualização de dados para observar tendências nos dados do locatário

Parabéns!

Recursos adicionais