Como exportar recomendações para o BigQuery

Visão geral

Com a exportação do BigQuery, é possível ver snapshots diários de recomendações para sua organização. Para isso, basta usar o serviço de transferência de dados do BigQuery. É possível exportar os seguintes insights e recomendações:

Nome ID do recomendador
Recomendador do IAM google.iam.policy.Recommender
Recomendador do tipo de máquina de VM google.compute.instance.MachineTypeRecommender
Recomendador do tipo de máquina do grupo gerenciado de instâncias google.compute.instanceGroupManager.MachineTypeRecommender
Recomendador de DP inativo google.compute.disk.IdleResourceRecommender
Recomendador de VM ociosa google.compute.instance.IdleResourceRecommender

Antes de começar

É recomendado que você conclua estas etapas antes de criar uma transferência de dados para recomendações:

  • Permita que o serviço de transferência de dados do BigQuery gerencie sua transferência de dados. Se você usar a IU da Web do BigQuery para criar a transferência, precisa permitir que os pop-ups do console.cloud.google.com no seu navegador consigam visualizar as permissões. Para mais detalhes, consulte ativar um serviço de transferência de dados do BigQuery.
  • Crie um conjunto de dados do BigQuery para armazenar os dados.
    • Todas as recomendações são movidas para um conjunto de dados nos EUA. Isso ocorre porque os conjuntos de dados somente nos EUA são compatíveis no momento.
    • A transferência de dados usa a mesma região em que o conjunto de dados é criado. O local ficará imutável depois que o conjunto de dados e a transferência forem criados.

Preços

A exportação de recomendações para o BigQuery está disponível para todos os clientes do Recomendador sem custo durante a Visualização. Quando ficar disponível para o público em geral, os clientes poderão usá-la com base no Nível de preços do recomendador.

Permissões necessárias

As permissões a seguir são necessárias para os envolvidos no projeto em que você cria uma transferência de dados:

  • bigquery.transfers.update: permite criar a transferência
  • bigquery.datasets.update: permite atualizar ações no conjunto de dados de destino

A seguinte permissão é necessária no nível da organização. Ela corresponde à organização que está sendo configurada para a exportação.

  • recommender.exporter: permite exportar recomendações para o BigQuery

Como conceder permissões

Você precisa conceder qualquer um dos seguintes papéis no projeto em que a transferência de dados será criada:

  • Papel de administrador do BigQuery: roles/bigquery.admin
  • Papéis personalizados contendo as permissões acima.

É possível conceder a permissão recommender.exporter no nível da organização de uma das seguintes maneiras:

  • Adicione o papel Exportador de recomendações no Console do Google Cloud.
  • Execute este comando:

    gcloud organizations add-iam-policy-binding *<organization_id>* --member='user:*<user_name>*' --role='roles/recommender.exporter'

Limitações

As limitações a seguir são válidas até que o recurso de exportação do BigQuery seja disponibilizado para todos os usuários:

  • Para permitir que você exporte recomendações para o BigQuery, adicione a permissão recommender.exporter usando apenas o gcloud.
  • Apenas recomendações no nível do projeto estão sendo exportadas. A exportação de recomendações de CUD de conta de faturamento será compatível com o GA.

Como criar uma transferência de dados para recomendações

  1. Fazer login no Console do Google Cloud.

    Fazer login no Console do Cloud

  2. Na Página inicial, clique na guia Recomendações.

  3. Clique em Exportar para visualizar o formulário de exportação do BigQuery.

  4. Selecione um Projeto de destino para armazenar os dados de recomendação e clique em Próximo.

  5. Clique em Ativar APIs para ativar as APIs do BigQuery para exportação. Esse processo pode levar alguns segundos para ser concluído. Quando terminar, clique em Continuar.

  6. No formulário Configurar transferência, forneça os seguintes detalhes:

    • No campo Nome de exibição, na seção Transferir nome da configuração, insira um nome para a transferência. Ele pode ter qualquer valor que identifique facilmente a transferência, caso seja necessário modificá-la no futuro.

    • Na seção Opções de programação, em Programação, deixe o valor padrão (Começar agora) ou clique em Começar no horário definido.

      • Em Repetições, escolha uma opção para a frequência de execução da transferência.

        • Diário (padrão)
        • Semanal
        • Mensal
        • Personalizada
        • Sob demanda
      • Em Data e hora de início, insira a data e a hora para iniciar a transferência. Se você escolher Iniciar agora, essa opção ficará desativada.

    • Na seção Configurações de destino, em Conjunto de dados de destino, escolha o ID do conjunto de dados criado para armazenar seus dados.

    • Na seção Detalhes da fonte de dados:

      • O valor padrão de organization_id é a organização para a qual você está visualizando as recomendações. Se você quiser exportar recomendações para outra organização, isso pode ser alterado na parte superior do console no visualizador da organização.

    • Opcional: na seção Opções de notificação:

      • Clique no botão para ativar as notificações por e-mail. Quando você ativa essa opção, o administrador de transferência recebe uma notificação por e-mail se uma execução de transferência falhar.
      • Em Selecionar um tópico do Pub/Sub, escolha o nome do tópico ou clique em Criar um tópico. Essa opção configura notificações de execução do Pub/Sub da sua transferência.

  7. Clique em Criar para criar a transferência.

  8. Clique em Permitir no pop-up de consentimento.

  9. Quando a transferência for criada, você será redirecionado de volta para o Hub de recomendações. Você pode clicar no link para acessar os detalhes da configuração de transferência. Também é possível acessar as transferências fazendo o seguinte:

    • Acesse a página do BigQuery no Console do Cloud.

      Acesse a página do BigQuery

    • Clique em Transferências de dados. Você poderá ver todas as transferências de dados disponíveis.

Como visualizar o histórico de execução de uma transferência

Para visualizar o histórico de execução de uma transferência, faça o seguinte:

  1. Acesse a página do BigQuery no Console do Cloud.

    Acesse a página do BigQuery

  2. Clique em Transferências de dados. Você poderá ver todas as transferências de dados disponíveis.

  3. Clique na transferência apropriada na lista.

  4. Na lista de transferências de execução exibida na guia HISTÓRICO DE EXECUÇÃO, selecione a transferência cujos detalhes você quer visualizar.

  5. O painel Detalhes da execução é exibido para a transferência de execução individual que você selecionou. Alguns dos possíveis detalhes de execução exibidos são:

    • Transferência adiada devido a dados de origem indisponíveis.
    • Job que indica o número de linhas exportadas para uma tabela
    • Permissões ausentes para uma origem de dados que você precisa conceder e posteriormente programar um preenchimento.

Quando seus dados são exportados?

Quando você cria uma transferência de dados, leva dois dias para que a primeira exportação ocorra. Depois disso, os jobs de exportação são executados diariamente. Aplicam-se as seguintes condições:

  • O job de exportação diário exporta os dados do dia anterior para o conjunto de dados do BigQuery.
  • O job de exportação diário não é executado até que os dados do dia anterior estejam disponíveis. Isso pode resultar em pequenas variações no horário do dia em que seu conjunto de dados é atualizado.

Como visualizar tabelas de uma transferência

Quando você exporta recomendações para o BigQuery, o conjunto de dados contém duas tabelas particionadas por data:

  • recommendations_export
  • insight_export

Para mais detalhes sobre tabelas e esquema, consulte Como criar e usar tabelas e Como especificar um esquema.

Para visualizar as tabelas de uma transferência de dados, faça o seguinte:

  1. Acesse a página do BigQuery no Console do Cloud.

    Acesse a página do BigQuery

  2. Clique em Transferências de dados. Você poderá ver todas as transferências de dados disponíveis.

  3. Clique na transferência apropriada na lista.

  4. Clique em CONFIGURAÇÃO e depois no conjunto de dados.

  5. No painel Explorer, expanda o projeto e selecione um conjunto de dados. A descrição e os detalhes são exibidos no painel de detalhes. As tabelas de um conjunto de dados são listadas com o nome do conjunto de dados no painel Explorador.

Como programar um preenchimento

As recomendações de uma data no passado (posterior à data em que a organização foi ativada para a exportação) podem ser exportadas programando um preenchimento. Para programar um preenchimento, faça o seguinte:

  1. Acesse a página do BigQuery no Console do Cloud.

    Acesse a página do BigQuery

  2. Clique em Transferências de dados.

  3. Na página Transferências, clique em uma transferência apropriada na lista.

    1. Clique em Programar preenchimento.

    2. Na caixa de diálogo Programar preenchimento, escolha a Data de início e a Data de término.

Para mais informações sobre como trabalhar com transferências, consulte Como trabalhar com transferências.

Exemplo de consultas

Use as consultas de amostra a seguir para analisar os dados exportados.

Visualização da economia de custos para recomendações em que a duração da recomendação é exibida em dias

SELECT name, recommender, target_resources,
  case primary_impact.cost_projection.cost.units is null
       when true then round(primary_impact.cost_projection.cost.nanos * power(10,-9),2)
       else
       round( primary_impact.cost_projection.cost.units +
       (primary_impact.cost_projection.cost.nanos * power(10,-9)), 2)
   end
   as dollar_amt,
   primary_impact.cost_projection.duration.seconds/(60*60*24) as duration_in_days
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and primary_impact.category = "COST"

Como visualizar a lista de papéis do IAM não utilizados

SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and recommender = "google.iam.policy.Recommender"
and recommender_subtype = "REMOVE_ROLE"

Como visualizar uma lista de papéis concedidos que precisam ser substituídos por papéis menores

SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and recommender = "google.iam.policy.Recommender"
and recommender_subtype = "REPLACE_ROLE"

Como visualizar insights de uma recomendação

SELECT recommendations.name as recommendation_name,
insights.name as insight_name,
recommendations.cloud_entity_id,
recommendations.cloud_entity_type,
recommendations.recommender,
recommendations.recommender_subtype,
recommendations.description,
recommendations.target_resources,
recommendations.recommendation_details,
recommendations.state,
recommendations.last_refresh_time as recommendation_last_refresh_time,
insights.insight_type,
insights.insight_subtype,
insights.category,
insights.description,
insights.insight_details,
insights.state,
insights.last_refresh_time as insight_last_refresh_time
FROM `<project>.<dataset>.recommendations_export` as recommendations,
   `<project>.<dataset>.insights_export` as insights
WHERE DATE(recommendations._PARTITIONTIME) = "<date>"
and DATE(insights._PARTITIONTIME) = "<date>"
and insights.name in unnest(recommendations.associated_insights)

Como visualizar recomendações de projetos pertencentes a uma pasta específica

Essa consulta retorna pastas pai com até cinco níveis do projeto.

SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and "<folder_id>" in unnest(ancestors.folder_ids)