Personalizar blocos do Marketplace do Looker

Os Looker Blocks são modelos de dados pré-criados para padrões analíticos e fontes de dados comuns. Nesta página, descrevemos como os desenvolvedores podem personalizar os blocos do Looker instalados no Looker Marketplace. O Marketplace do Looker é um local central para encontrar, implantar e gerenciar vários tipos de conteúdo do Looker, como aplicativos, visualizações e plug-ins.

Para mais informações sobre todos os Blocos do Looker disponíveis e métodos alternativos de personalização de blocos, consulte a página de documentação Blocos do Looker.

Requisitos para instalar e gerenciar blocos do Looker no Marketplace do Looker

Antes de instalar e usar alguns blocos do Looker Marketplace, observe os seguintes requisitos:

  • Se você estiver instalando o bloco pelo Marketplace do Looker, o administrador do Looker precisará ativar o recurso Marketplace.
  • Os usuários precisam ter permissões de develop, manage_models e deploy para instalar e gerenciar pacotes do Marketplace.
  • Se o bloco específico tiver um parâmetro local_dependency, ele vai usar o processo de importação de projeto local. Consulte a página de documentação Importar arquivos de outros projetos para mais detalhes sobre a importação de projetos. Os blocos a seguir contêm um parâmetro local_dependency:

    • Análise de marketing digital
    • Análise de dados de vendas
    • Análise da Web

Consulte a página de documentação do Marketplace da Looker para saber como instalar e gerenciar os blocos da Looker no Marketplace.

Como acessar a LookML de um bloco do Marketplace

Os blocos baseados em projetos que usam refinamentos são instalados no Marketplace como um único projeto CONFIG editável que importa remotamente o projeto CORE, que contém todo o código LookML e a parametrização constante.

Depois que um bloco é instalado no Marketplace, é possível acessar o projeto dele no menu Desenvolver clicando no nome do projeto na lista. O nome de um bloco de refinamentos do Marketplace geralmente é precedido por marketplace_ seguido pelo ID da página "Detalhes do app".

Embora não seja possível modificar diretamente um projeto CORE somente leitura de um bloco, talvez você queira usar a LookML definida nos arquivos CORE somente leitura do bloco como referência ao personalizar os arquivos CONFIG dele. Para ver os arquivos CORE do bloco, navegue até os arquivos de projeto do bloco no IDE e expanda o diretório imported_projects no navegador de arquivos do IDE.

Estrutura de blocos

Quando você instala um bloco criado para refinamentos, esses arquivos são criados automaticamente como parte da seção CONFIG do projeto de bloco:

Nome do arquivo Acesso Função
<model_name>.model.lkml Somente leitura para todos os usuários Arquivo de modelo virtual vinculado à instalação do bloco. Processa a importação de modelos do projeto CORE do bloco. Quando um bloco é desinstalado ou atualizado, o arquivo ou os arquivos de modelo associados são excluídos, evitando conflitos entre várias instalações de blocos.
manifest.lkml Editável para usuários com permissões de develop Descreve o projeto e as dependências externas dele. Contém o ID da página do Marketplace para a instalação do bloco e facilita a importação remota dos arquivos do projeto CORE do bloco usando a palavra-chave marketplace.
marketplace_lock.lkml Somente leitura para todos os usuários Contém uma referência à palavra-chave marketplace_ref do arquivo de manifesto que processa a importação remota do projeto CORE. Fornece as informações específicas de listagem, versão e modelo associadas à instalação. Contém informações sobre constantes configuradas durante a instalação e que podem ser atualizadas usando a opção Gerenciar na interface do Marketplace.
refinements.lkml Editável para usuários com permissões de develop Permite que os desenvolvedores refinem visualizações e análises detalhadas definidas nos arquivos do projeto CORE importado.

Personalizar um bloco do Marketplace

Ative o Modo de desenvolvimento para fazer personalizações nos arquivos editáveis do bloco.

Se você tiver permissões develop, poderá personalizar o LookML no arquivo refinements.lkml do projeto CONFIG do bloco. É possível refinar as visualizações e as análises detalhadas já definidas no projeto CORE do bloco ou até mesmo adicionar novas visualizações e análises detalhadas que ainda não foram definidas no projeto CORE. Tudo o que é possível com refinamentos do LookML em outros projetos do LookML também é possível no arquivo refinements.lkml do bloco. A combinação do refinamento e da LookML original se comporta como se fosse a LookML original do objeto.

Você também pode fazer mudanças no arquivo manifest.lkml do projeto CONFIG para especificar as dependências que precisam ser capturadas para esse bloco.

Você não precisa se limitar a modificar esses arquivos para fazer as personalizações que quer. Também é possível criar arquivos no projeto CONFIG. Basta include os novos arquivos no arquivo refinements.lkml.

Personalizar o arquivo de refinamentos

Se você tiver permissões develop, poderá adicionar LookML personalizada ao projeto CONFIG para incluir mais dados ou mudar o modelo analítico principal do bloco. É possível criar novas visualizações e uni-las às análises detalhadas atuais, definir novos campos ou redefinir os atuais, ou aplicar rótulos conforme necessário para criar um modelo para a análise que você quer fornecer. Se você criou novos arquivos no projeto CONFIG, include no arquivo de refinamentos.

Por exemplo, digamos que você tenha instalado um bloco e o arquivo refinements.lkml dele contenha a seguinte LookML:

include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"

em que listing_id é o valor do parâmetro listing do arquivo manifest.lkml.

Você pode usar refinamentos para adicionar uma nova dimensão a uma visualização chamada flights:

include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"

view: +flights {
  dimension: air_carrier {
    type: string
    sql: ${TABLE}.air_carrier ;;
  }
}

Ou você pode aplicar um rótulo a uma análise detalhada chamada aircraft para que ela apareça na UI como Aeronaves simplificado:

include: "//<listing_id>/**/*.view.lkml"
include: "//<listing_id>/**/*.explore.lkml"

explore: +aircraft {
  label: "Aircraft Simplified"
}

O arquivo refinements.lkml é incluído automaticamente no arquivo de modelo "virtual" do bloco, que importa os modelos do projeto CORE.

Consulte a documentação sobre refinamentos da LookML para mais informações sobre esse tópico avançado.

Personalizar o arquivo de manifesto editável

Em blocos que usam refinamentos, os projetos CORE e CONFIG têm arquivos de manifesto. No entanto, apenas o arquivo de manifesto do projeto CONFIG pode ser editado.

É possível editar o arquivo CONFIG manifest.lkml para adicionar parâmetros do projeto aos que já aparecem no arquivo de manifesto do projeto CORE. Por exemplo, você pode adicionar uma local_dependency para unir seu bloco a outro na mesma instância do Looker.

Atualizar valores de constantes

As constantes do bloco são definidas no arquivo de manifesto do projeto CORE importado. A substituição do valor de uma constante, se permitida, precisa ser feita na interface do Marketplace durante a configuração ou atualizando o bloco. Para atualizar um bloco, os usuários precisam ter as permissões develop, manage_models e deploy.

Para substituir o valor de uma constante atualizando um bloco, siga estas etapas:

  1. No Looker Marketplace, navegue até o bloco que você quer atualizar.
  2. Clique no botão Gerenciar.
  3. Ao lado do nome do bloco que você quer atualizar, clique no ícone de engrenagem. Isso abre a janela de configuração do bloco.
  4. Faça mudanças nos valores constantes conforme necessário.
  5. Clique em Atualizar para fechar a janela de configuração do bloco e atualizar o bloco com suas mudanças.

As mudanças são refletidas no arquivo marketplace_lock.lkml somente leitura do projeto instalado.

Preservar as personalizações de um bloco do Marketplace que usa extensões

Alguns dos blocos disponíveis no Marketplace do Looker foram compostos por projetos que usam o extends do LookML. O Looker está convertendo todos os blocos do Marketplace para instâncias no Looker 21.8 ou mais recente em uma estrutura de projeto que usa refinamentos do LookML e vai remover o suporte para blocos baseados em extends.

O Looker recomenda que você instale a versão baseada em refinamentos de todos os blocos do Marketplace que tiver na sua instância à medida que eles forem disponibilizados, substituindo os blocos criados com extensões. Embora esse processo de substituição seja simples (você pode instalar o novo bloco de refinamentos na página do bloco do Looker Marketplace e desinstalar o bloco original de extensões na página Gerenciar do Looker Marketplace), ele não preserva nenhuma das personalizações que podem ter sido feitas no bloco criado com extensões. O Looker também não vai transferir nenhum conteúdo ou função baseada nesse conteúdo (painéis, análises detalhadas, entregas de conteúdo programadas, alertas) do bloco original para o novo.

Esta seção descreve como preservar personalizações em um bloco criado com projetos que usam extensões, o que seria difícil ou demorado replicar do zero.

Para preservar as personalizações do bloco, um usuário com a capacidade de instalar e gerenciar pacotes do Marketplace precisa seguir estas etapas:

  1. Atualizar o projeto CONFIG do bloco original para se preparar para a migração
  2. Instale a nova versão do bloco no Looker Marketplace
  3. Transfira as personalizações para o novo bloco do Marketplace
  4. Recriar o conteúdo do Looker com base no bloco original
  5. Desinstalar a versão do bloco criada com "extends"

Atualizar um bloco personalizado para preparar a migração

Esta seção descreve como atualizar os principais arquivos de projeto em um bloco criado com extensões para que você possa copiar as personalizações do bloco para uma nova versão baseada em refinamentos. Um bloco baseado em um projeto que usa extensões é instalado no Marketplace como um projeto CORE somente leitura e um projeto CONFIG editável.

  1. Navegue até o projeto CONFIG do bloco na seção Desenvolver de uma das seguintes maneiras:

    • Clique na opção Projetos e depois no nome do projeto.
    • Clique no nome do projeto CONFIG do bloco na lista de projetos.

    Os nomes de projetos CONFIG geralmente terminam em _config, enquanto o nome do projeto CORE geralmente não tem um sufixo.

  2. Abra o arquivo de modelo do projeto, que pode ser parecido com isto:


    explore: ga_sessions_config {
      extends: [ga_sessions_core]
      extension: required
      join: user_sales_data {
        sql_on: ${user_sales_data.full_visitor_id} = ${ga_sessions.full_visitor_id} ;;
      }
      join: sales__by__category {
        sql: LEFT JOIN UNNEST(${user_sales_data.sales_by_category}) as sales__by__category;;
      }
    }

    explore: future_input_config {
      extends: [future_input_core]
      extension: required
      join: future_purchase_prediction {
        type: left_outer
        sql_on: ${future_input.full_visitor_id} = ${future_purchase_prediction.full_visitor_id} ;;
        relationship: one_to_one
      }
    }

  1. Em Modo de desenvolvimento, siga estas etapas:

    1. Exclua todas as linhas extends e extension.
    2. Exclua _config dos nomes de explore.
    3. Adicione + ao início dos nomes explore.

    O exemplo de arquivo de modelo anterior ficaria assim:


    explore: +ga_sessions {
      join: user_sales_data {
        sql_on: ${user_sales_data.full_visitor_id} = ${ga_sessions.full_visitor_id} ;;
      }
      join: sales__by__category {
        sql: LEFT JOIN UNNEST(${user_sales_data.sales_by_category}) as sales__by__category;;
      }
    }

    explore: +future_input {
      join: future_purchase_prediction {
        type: left_outer
        sql_on: ${future_input.full_visitor_id} = ${future_purchase_prediction.full_visitor_id} ;;
        relationship: one_to_one
      }
    }

  1. Copie e mantenha o conteúdo desse arquivo para uma etapa futura.

Instalar o novo bloco do Marketplace

Um bloco baseado em um projeto que usa refinamentos é instalado no Marketplace como um único projeto do LookML editável que importa remotamente o projeto com toda a parametrização constante e do LookML.

  1. Selecione o ícone de loja na barra de menu do Looker para acessar o Looker Marketplace.
  2. Clique na listagem do novo bloco do Marketplace com base em refinamentos. Esse bloco tem o mesmo nome do bloco criado com "extends".
  3. Clique em Instalar para instalar o novo bloco. Depois que esse bloco for instalado, você vai encontrar duas fichas idênticas na página Gerenciar do Looker Marketplace.

Transferência de personalizações para o novo bloco do Marketplace

Esta seção descreve como transferir as atualizações feitas no bloco original (extensões) para o novo bloco (refinamentos).

  1. Na seção Desenvolver, abra o projeto do novo bloco de uma das seguintes maneiras:

    • Clique na opção Projetos e depois no nome do projeto.
    • Clique no nome do projeto do bloco na lista de projetos.

    O nome de um bloco de refinamentos do Marketplace geralmente é precedido por marketplace_ seguido pelo ID da página "Detalhes do app".

  2. No arquivo refinements.lkml, cole o conteúdo atualizado do arquivo de modelo do bloco original (extends). Mantenha todas as instruções include que já estão no arquivo de refinamentos.

Recriar conteúdo do Looker com base no bloco original

A última etapa para adotar a versão de um bloco do Marketplace baseada em refinamentos é desinstalar a versão original baseada em extensões. Alguns blocos baseados em extensões contêm painéis e análises detalhadas do LookML pré-criados. Se os usuários tiverem criado alertas ou entregas programadas com base em painéis do LookML definidos no bloco original (extends), esses alertas ou programações serão desativados ou falharão, respectivamente, quando o bloco for desinstalado do Looker Marketplace.

Você precisa recriar esses alertas ou entregas programadas nos dashboards do LookML do novo bloco (refinamentos). Os administradores do Looker e os usuários com as permissões adequadas para programações e alertas podem usar as páginas Alertas e programações na seção de administração para pesquisar os nomes dos painéis do bloco (extends) e criar alertas ou entregas programadas conforme necessário nos painéis correspondentes do bloco (refinements).

Você também precisa modificar qualquer outro conteúdo do Looker que faça referência às análises detalhadas ou aos painéis do LookML do bloco original (extensões) para apontar para o novo bloco (refinamentos), conforme necessário.

Desinstalar o bloco original

Para desinstalar a versão do bloco criada com "extends", siga estas etapas:

  1. Selecione o ícone de loja na barra de menu do Looker para acessar o Looker Marketplace.

  2. No Looker Marketplace, selecione Gerenciar na navegação à esquerda para abrir a página Gerenciar.

  3. Na página Gerenciar, clique no ícone da lixeira para desinstalar o bloco original (extensão). Para diferenciar a lista de bloqueio de extensões da lista de bloqueio de refinamentos, confira os números das versões. O bloco "extends" vai ficar uma versão principal atrás do bloco "refinements". Por exemplo, o bloco "extends" pode ser a versão 1.0.4 e o bloco "refinements" pode ser a versão 2.0.0.

Resolver problemas com um bloqueio

Se um bloco do Marketplace mostrar erros, é possível que seu esquema não corresponda à estrutura do bloco.

Também é recomendável verificar se as constantes fornecidas durante a instalação do bloco, que representam a conexão, o banco de dados ou o esquema dele, foram definidas corretamente. Para isso, siga estas etapas:

  1. Selecione o ícone de loja na barra de menu do Looker para acessar o Looker Marketplace.

  2. No Looker Marketplace, selecione Gerenciar no painel de navegação principal para abrir a página Gerenciar.

  3. Na página Gerenciar, clique no ícone de engrenagem do bloco para conferir as configurações de configuração.

  4. Na janela Atualizar configurações, confirme se o bloco está configurado corretamente. Clique em Atualizar depois de fazer as mudanças para salvar as atualizações e fechar a janela de configuração de bloqueio.