Snowflake

Para conectar o Looker ao Snowflake, siga estas etapas:

  1. Crie um usuário do Looker no Snowflake e provisione o acesso.
  2. Configure uma conexão de banco de dados no Looker.

Como criptografar o tráfego de rede

Uma prática recomendada é criptografar o tráfego de rede entre o aplicativo Looker e o banco de dados. Considere uma das opções descritas na página de documentação Como ativar o acesso seguro ao banco de dados.

Como criar um usuário do Looker no Snowflake

Recomendamos os comandos a seguir para criar o usuário do Looker. Execute cada linha individualmente ou selecione a opção Todas as consultas no painel de conexão do Snowflake para garantir que todas as linhas sejam executadas. Por padrão, o Snowflake executa apenas as linhas selecionadas:

O console do Snowflake com a caixa de seleção "Todas as consultas" marcada.

Recomendamos adicionar a palavra-chave ON FUTURE a cada instrução GRANT para que os objetos recém-criados tenham as mesmas permissões sem que nenhuma outra ação seja necessária.

-- change role to ACCOUNTADMIN
use role ACCOUNTADMIN;

-- create role for looker
create role if not exists looker_role;
grant role looker_role to role SYSADMIN;
    -- Note that we are not making the looker_role a SYSADMIN,
    -- but rather granting users with the SYSADMIN role to modify the looker_role

-- create a user for looker
create user if not exists looker_user
password = <enter password here>;
grant role looker_role to user looker_user;
alter user looker_user
set default_role = looker_role
default_warehouse = looker_wh;

-- change role
use role SYSADMIN;

-- create a warehouse for looker (optional)
create warehouse if not exists looker_wh

-- set the size based on your dataset
warehouse_size = medium
warehouse_type = standard
auto_suspend = 1800
auto_resume = true
initially_suspended = true;
grant all privileges
on warehouse looker_wh
to role looker_role;

-- grant read only database access (repeat for all database/schemas)
grant usage on database <database> to role looker_role;
grant usage on schema <database>.<schema> to role looker_role;

-- rerun the following any time a table is added to the schema
grant select on all tables in schema <database>.<schema> to role looker_role;
-- or
grant select on future tables in schema <database>.<schema> to role looker_role;

-- create schema for looker to write back to
use database <database>;
create schema if not exists looker_scratch;
use role ACCOUNTADMIN;
grant ownership on schema looker_scratch to role SYSADMIN revoke current grants;
grant all on schema looker_scratch to role looker_role;

Como criar a conexão do Looker com o banco de dados

Na seção Admin do Looker, selecione Conexões e clique em Adicionar conexão.

Preencher os detalhes de conexão. A maioria das configurações é comum para a maioria dos dialetos de banco de dados. Consulte a página de documentação Como conectar o Looker ao banco de dados para mais informações. As descrições de configuração a seguir contêm observações específicas do Snowflake:

Configurações do banco de dados: host: insira o nome do host do Snowflake. Ele será parecido com <account_name>.snowflakecomputing.com. Confira exemplos de nomes de contas do Snowflake por região para garantir que você use o valor correto para sua implantação.

Configurações do banco de dados: método de autenticação: selecione um dos seguintes métodos de autenticação:

Configurações opcionais: ativar PDTs: as PDTs não são aceitas para conexões do Snowflake que usam a autenticação OAuth. Se as PDTs forem necessárias, use a opção de autenticação Par de chaves.

Configurações opcionais: parâmetros JDBC adicionais: adicione outros parâmetros JDBC do driver JDBC do Snowflake.

  • Adicione warehouse=<YOUR WAREHOUSE NAME>.
  • Além disso, por padrão, o Looker vai definir os seguintes parâmetros do Snowflake em cada sessão:

    • TIMESTAMP_TYPE_MAPPING=TIMESTAMP_LTZ
    • JDBC_TREAT_DECIMAL_AS_INT=FALSE
    • TIMESTAMP_INPUT_FORMAT=AUTO
    • AUTOCOMMIT=TRUE

      É possível substituir cada um desses parâmetros definindo um valor alternativo no campo Parâmetros JDBC adicionais, por exemplo: &AUTOCOMMIT=FALSE

Para verificar se a conexão foi estabelecida, clique em Testar. Consulte a página de documentação Testar a conectividade do banco de dados para informações sobre solução de problemas.

Para salvar essas configurações, clique em Conectar.

Como designar data warehouses do Snowflake por grupo ou usuário

É possível usar atributos de usuário do Looker para atribuir data warehouses separados do Snowflake a usuários ou grupos individuais do Looker. Isso é útil, por exemplo, se você tiver usuários que exigem diferentes níveis de poder de computação. É possível atribuir um data warehouse com mais recursos de computação apenas aos usuários que precisam dele, enquanto atribui um data warehouse com menos recursos a usuários com menos necessidades.

Para designar data warehouses por grupo ou usuário, siga estas etapas:

  1. Adicione os grupos ou usuários no Looker.
  2. Defina um atributo de usuário no Looker em que os nomes dos data warehouses do Snowflake serão armazenados. Você pode dar a esse atributo qualquer nome, como snowflake_wh.

    A página &quot;Atributos do usuário&quot; no Looker, mostrando o atributo do usuário do data warehouse do Snowflake.

  3. No atributo de usuário que você acabou de definir, atribua os valores de nome do data warehouse aos grupos ou usuários que precisarão de acesso a data warehouses diferentes.

    A página &quot;Atributos do usuário&quot; no Looker, mostrando o atributo do usuário do data warehouse do Snowflake com valores atribuídos a um grupo.

  4. No campo Parâmetros JDBC adicionais na página Configurações de conexão, adicione o seguinte, substituindo snowflake_warehouse pelo nome do atributo de usuário que você definiu:

      warehouse={{ _user_attributes['snowflake_warehouse'] }}
    
  5. Para testar as configurações de conexão individuais, você pode usar o comando sudo como um usuário a quem atribuiu um valor de nome de data warehouse.

Como gerenciar o recurso de suspensão automática do Snowflake

Os data warehouses do Snowflake têm um recurso de suspensão automática ativado por padrão. Após um período especificado, o data warehouse será suspenso automaticamente. Se o data warehouse estiver suspenso, todas as consultas vão gerar um erro. Esse erro não fica visível nos painéis (normalmente, esses erros resultam na ausência de dados), mas fica visível para qualquer usuário que consulte a página Explorar.

Dois métodos são usados normalmente para gerenciar isso:

  1. O Snowflake tem um recurso de retomada automática que vai retomar o data warehouse quando ele for consultado. No entanto, a retomada do data warehouse pode levar até cinco minutos, fazendo com que as consultas parem de responder por cinco minutos antes de serem retornadas. A retomada automática não pode ser configurada no Looker. Ative esses recursos na guia Data warehouses na interface do Snowflake:

    A guia &quot;Warehouses&quot; na interface do Snowflake, mostrando as caixas de seleção de suspensão e retomada automáticas.

  2. Se as tabelas derivadas persistentes (PDTs) estiverem ativadas, a configuração padrão do Looker será verificar a regeneração da tabela derivada a cada 5 minutos. Essa verificação vai manter os data warehouses do Snowflake ativos. No entanto, talvez você queira que o Snowflake suspenda os data warehouses durante o horário não comercial para reduzir o custo. Isso pode ser feito modificando a programação de regeneração de TDPs, conforme descrito na documentação da programação de manutenção.

Suporte a TDPs

As TDPs não são aceitas para conexões do Snowflake que usam o OAuth.

Para oferecer suporte a tabelas derivadas persistentes, crie uma conta de usuário do Snowflake para PDTs que tenha acesso de gravação ao banco de dados e ao esquema temporário que o Looker vai usar para criar PDTs. Na página Configurações de conexões do Looker, na guia Configurações opcionais , na seção Configurações de tabelas derivadas persistentes (PDTs) , ative a opção Ativar PDTs. Em seguida, no campo Banco de dados temporário, insira o nome do esquema temporário que o Looker vai usar para criar PDTs.

Para conexões do Snowflake, o Looker define o valor do parâmetro AUTOCOMMIT do Snowflake como TRUE, que é o valor padrão do Snowflake. AUTOCOMMIT é necessário para comandos SQL que o Looker executa para manter o sistema de registro de TDPs.

Como configurar o OAuth para conexões do Snowflake

O Looker oferece suporte ao OAuth para conexões do Snowflake, o que significa que cada usuário do Looker se autentica no banco de dados com a própria conta de usuário do OAuth.

O OAuth permite que os administradores de banco de dados realizem as seguintes tarefas:

  • Auditar quais usuários do Looker estão executando consultas no banco de dados
  • Aplicar controles de acesso baseados em papéis usando permissões no nível do banco de dados
  • Usar tokens OAuth para todos os processos e ações que acessam o banco de dados, em vez de incorporar IDs e senhas de banco de dados em vários lugares
  • Revogar a autorização de um determinado usuário diretamente pelo banco de dados

Com conexões do Snowflake que usam o OAuth, os usuários precisam fazer login novamente periodicamente quando os tokens do OAuth expiram. A idade máxima dos tokens OAuth do Snowflake é definida pelo próprio Snowflake.

Observe o seguinte para conexões OAuth no nível do banco de dados:

  • As tabelas derivadas persistentes (PDTs) não são aceitas para conexões do Snowflake com o OAuth.
  • Se um usuário deixar o token OAuth expirar, todas as programações ou alertas do Looker que ele possuir serão afetados. Para evitar isso, o Looker vai enviar um e-mail de notificação ao proprietário de cada programação e alerta 14 dias, 7 dias e 1 dia antes da expiração do token. O usuário pode acessar a página de usuário do Looker para reautorizar o Looker no banco de dados e evitar interrupções nas programações e alertas. Consulte a página de documentação Como personalizar as configurações da conta de usuário para mais detalhes.
  • Como as conexões de banco de dados que usam o OAuth são "por usuário", as políticas de armazenamento em cache também são por usuário e não apenas por consulta. Isso significa que o Looker vai usar resultados armazenados em cache somente se o mesmo usuário tiver executado a mesma consulta dentro do período de armazenamento em cache. Para mais informações sobre o armazenamento em cache, consulte a página de documentação Consultas de armazenamento em cache.
  • Ao usar o OAuth, não é possível mudar para papéis diferentes na conta de usuário do Snowflake. Conforme descrito na documentação do Snowflake, o Snowflake usa o papel padrão da conta de usuário do Snowflake, a menos que o papel padrão seja ACCOUNTADMIN ou SECURITYADMIN. Como esses papéis são bloqueados para o OAuth, o Snowflake vai usar o papel PUBLIC. Consulte a documentação do Snowflake para mais informações.
  • Quando um administrador do Looker usa o comando sudo como outro usuário, o administrador usa o token de acesso OAuth desse usuário. Se o token de acesso do usuário tiver expirado, o administrador não poderá criar um novo token em nome do usuário sudo. Consulte a página de documentação Usuários para informações sobre como usar o sudo comando.

Como configurar um banco de dados do Snowflake para OAuth com o Looker

Para criar uma conexão do Snowflake com o Looker usando o OAuth, é necessário configurar a integração do OAuth no Snowflake. Isso requer uma conta de usuário do Snowflake com permissão ACCOUNTADMIN.

  1. Execute o comando a seguir no Snowflake, em que <looker_hostname> é o nome do host da instância do Looker:

    CREATE SECURITY INTEGRATION LOOKER
      TYPE = OAUTH
      ENABLED = TRUE
      OAUTH_CLIENT = LOOKER
      OAUTH_REDIRECT_URI = 'https://<looker_hostname>/external_oauth/redirect';
    
  2. Para receber o ID e a chave secreta do cliente OAuth, execute o seguinte comando:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('LOOKER');
    

    A resposta terá um OAUTH_CLIENT_ID e um OAUTH_CLIENT_SECRET que você vai precisar mais tarde neste procedimento.

  3. No Looker, crie uma nova conexão com o data warehouse do Snowflake, conforme descrito na seção Como criar a conexão do Looker com o banco de dados desta página. Ao criar a nova conexão, selecione a opção OAuth no campo Autenticação. Quando você seleciona a opção OAuth, o Looker mostra os campos ID do cliente OAuth e Chave secreta do cliente OAuth.

  4. Cole os valores OAUTH_CLIENT_ID e OAUTH_CLIENT_SECRET que você recebeu do banco de dados anteriormente neste procedimento.

  5. Conclua o restante do procedimento para conectar o Looker ao banco de dados.

Como testar a conexão OAuth

Depois de configurar a conexão do Looker com o banco de dados, você pode testar a conexão fazendo uma das seguintes ações:

  • Selecione o botão Testar na parte de baixo da página Configurações de conexões, conforme descrito na página de documentação Como conectar o Looker ao banco de dados.
  • Selecione o botão Testar na listagem da conexão na página de administração Conexões, conforme descrito na página de documentação Conexões.

Além disso, é possível testar a conexão e implantá-la em um modelo seguindo estas etapas:

  1. No Looker, acesse o Modo de Desenvolvimento.
  2. Navegue até os arquivos de projeto de um projeto do Looker que usa sua conexão do Snowflake.
  3. Abra um arquivo de modelo e substitua o valor connection do modelo pelo nome da nova conexão do Snowflake e salve o arquivo de modelo.
  4. Abra uma das análises ou painéis do modelo e execute uma consulta. Ao tentar executar uma consulta, o Looker vai pedir que você faça login no Snowflake.
  5. Siga as instruções de login do Snowflake e insira suas credenciais do Snowflake.

Depois de fazer login no Snowflake, o Looker vai retornar à consulta. Se a consulta for executada corretamente, você poderá confirmar o novo valor de conexão e implantar as mudanças na produção.

Como fazer login no Snowflake para executar consultas

Depois que a conexão do Snowflake for configurada para o OAuth, os usuários vão receber uma solicitação para fazer login no Snowflake antes de executar consultas. Isso inclui consultas de análises, painéis, Looks e SQL Runner.

A interface do Looker mostrando a solicitação de login do OAuth.

Os usuários também podem fazer login no Snowflake na seção Credenciais de conexão OAuth na página Conta.

Para fazer login na sua conta do Snowflake usando o Looker, siga estas etapas:

A página &quot;Conta&quot; no Looker, mostrando a seção &quot;Credenciais de conexão OAuth&quot;.

  1. Clique no menu do usuário do Looker.
  2. Selecione Conta.
  3. Na página Conta , acesse a seção Credenciais de conexão OAuth e selecione o botão Fazer login para o banco de dados do Snowflake apropriado.

Ao selecionar Fazer login , uma caixa de diálogo de login do Snowflake será exibida. Insira suas credenciais do Snowflake e selecione Fazer login e, em seguida, selecione Permitir para dar ao Looker acesso à sua conta do Snowflake.

Depois de fazer login no Snowflake pelo Looker, você pode sair ou reautorizar suas credenciais a qualquer momento na página Conta, conforme descrito na página de documentação Como personalizar sua conta de usuário.

Suporte a recursos

Para que o Looker ofereça suporte a alguns recursos, o dialeto do banco de dados também precisa oferecer suporte a eles.

O Snowflake oferece suporte aos seguintes recursos do Looker 25.20:

Recurso Compatível?
Looker (Google Cloud Core)
Conjuntos simétricos
Tabelas derivadas
Tabelas derivadas persistentes com base em SQL
Tabelas derivadas nativas persistentes
Visualizações estáveis
Eliminação de consultas
Tabelas dinâmicas baseadas em SQL
Fusos horários
SSL
Subtotais
Parâmetros adicionais da JDBC
Diferenciação entre maiúsculas e minúsculas
Tipo de local
Tipo de lista
Percentil
Percentil distinto
Mostrar processos do SQL Runner
Descrever tabela do SQL Runner
Mostrar índices do SQL Runner
Selecionar 10 do SQL Runner
Contagem do SQL Runner
Explicar SQL
Credenciais do OAuth 2.0
Comentários de contexto
Pooling de conexão
Esboços HLL
Reconhecimento agregado
PDTs incrementais
Milissegundos
Microssegundos
Visualizações materializadas
Medidas de comparação de períodos
Contagem aproximada aproximada

Próximas etapas

Depois de conectar o banco de dados ao Looker, configure as opções de login para os usuários.