Snowflake

Siga estas etapas para conectar o Looker ao Snowflake:

  1. Crie um usuário do Looker no Snowflake e provisione 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 seu 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 seguintes comandos para criar o usuário do Looker. Execute cada linha individualmente.

Opcionalmente, adicione a palavra-chave ON FUTURE para manter instruções GRANT em objetos recém-criados. Recomendamos executar isso para tabelas em todos os esquemas que o Looker usará para que não seja necessário executar novamente instruções GRANT à medida que novas tabelas forem criadas.

-- 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;

Se você colar os comandos anteriores como um lote no painel de conexões do Snowflake, marque a caixa de seleção Todas as consultas para garantir que todas as linhas sejam executadas. Por padrão, o Snowflake executa apenas as linhas selecionadas.

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

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

Preencher os detalhes de conexão. A maioria das configurações é comum à 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. Algumas das configurações são descritas a seguir:

  • Nome: dê um nome à conexão. É assim que o modelo LookML vai referenciar a conexão.
  • Dialeto: selecione Snowflake.
  • Host: digite o nome do host do Snowflake. Ele terá esta aparência: <account_name>.snowflakecomputing.com. Confira os exemplos de nomes de contas do Snowflake por região para garantir que você está usando o valor correto na sua implantação.
  • Porta: o padrão é 443.
  • Banco de dados: informe o banco de dados padrão a ser usado. Este campo diferencia maiúsculas de minúsculas.
  • Esquema: insira o esquema padrão.
  • Authentication: selecione Database Account ou OAuth:
    • Use Database Account para especificar o nome de usuário e a senha da conta de usuário do Snowflake que será usada para se conectar ao Looker.
    • Use OAuth se quiser configurar o OAuth para a conexão.
  • Ativar TDPs: use essa opção para ativar as tabelas derivadas persistentes (TDPs). A ativação de TDPs revela outros campos de TDP e a seção Substituições de TDP para a conexão.
  • Banco de dados temporário: se as TDPs estiverem ativadas, defina esse campo como um esquema em que o usuário tenha privilégios totais para criar, descartar, renomear e alterar tabelas.
  • Máximo de conexões por nó: inicialmente, é possível manter o valor padrão. Leia mais sobre essa configuração na seção Máximo de conexões por nó da página de documentação Como conectar o Looker ao banco de dados.
  • Estimativa de custo: ativa estimativas de custo para consultas do recurso Analisar, estimativas de custo para consultas do SQL Runner e estimativas de economia de computação para consultas de reconhecimento agregadas na conexão.
  • Fuso horário do banco de dados: o fuso horário usado pelo banco de dados do Snowflake para armazenar datas e horas. O padrão é UTC. Isso é opcional.
  • Fuso horário da consulta: o fuso horário em que você quer exibir suas consultas. Por exemplo, leste dos EUA (América – Nova York). Isso é opcional.
  • Parâmetros JDBC adicionais: adicione mais parâmetros JDBC usando o driver JDBC do Snowflake.

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

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

      É possível modificar 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 Como testar a conectividade do banco de dados para ver informações sobre solução de problemas.

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

Designar armazéns do Snowflake por grupo ou por usuário

É possível usar atributos de usuário do Looker para atribuir armazéns separados do Snowflake a usuários ou grupos individuais do Looker. Isso é útil, por exemplo, quando você tem usuários que precisam de diferentes níveis de capacidade de computação. É possível atribuir um warehouse com maiores recursos de computação apenas aos usuários que precisam dele e atribuir um warehouse com menos recursos a usuários com menos necessidades.

Para designar warehouses por grupo ou por usuário:

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

  3. No atributo do usuário que você acabou de definir, atribua os valores do nome do warehouse aos grupos ou aos usuários.

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

      warehouse={{ _user_attributes['snowflake_warehouse'] }}
    

    Exemplo:

  5. Para testar as configurações de conexão individuais, sudo como um usuário a quem você atribuiu um valor de nome de warehouse.

Veja instruções mais detalhadas sobre este procedimento no blog Red Pill Analytics (em inglês).

Recurso de suspensão automática do Snowflake

Os warehouses do Snowflake têm um recurso de suspensão automática ativado por padrão. Depois de um período especificado, o warehouse será suspenso automaticamente. Se o warehouse estiver suspenso, todas as consultas vão produzir um erro. Esse erro não aparece nos dashboards (normalmente, nenhum dado é mostrado), mas é mostrado nas consultas com a página "Explore".

O Snowflake também tem um recurso de retomada automática que retomará o warehouse quando ele for consultado. No entanto, a retomada do warehouse pode levar até cinco minutos, fazendo com que as consultas travem por cinco minutos antes de retornarem. Esses recursos não podem ser configurados no Looker. Ative esses recursos na guia Armazenamentos da interface do Snowflake.

Suporte a TDPs

Para suporte a tabela derivada persistente, crie uma conta de usuário do Snowflake para TDPs com acesso de gravação ao seu banco de dados e o esquema temporário que o Looker vai usar para criar TDPs. Na página Configurações de conexões do Looker, na seção Tabelas derivadas persistentes (TDPs), ative a opção Ativar TDPs. Em seguida, no campo Banco de dados temporário, insira o nome do esquema temporário que o Looker vai usar para criar TDPs. Em seguida, na seção Substituições de TDP, digite o nome de usuário e a senha do usuário da TDP. Para mais informações, consulte a página de documentação Como conectar o Looker ao banco de dados.

As TDPs não são compatíveis com as conexões do Snowflake que usam OAuth.

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

Como configurar o OAuth para conexões do Snowflake

O Looker oferece suporte para conexões OAuth para Snowflake, o que significa que cada usuário do Looker faz a autenticação no Snowflake e autoriza o Looker a executar consultas no banco de dados com a própria conta de usuário do Snowflake.

O OAuth permite que os administradores de banco de dados:

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

Com as conexões do Snowflake que usam OAuth, os usuários precisam fazer login de novo periodicamente quando os tokens OAuth expiram. A duração da validade dos tokens OAuth do Snowflake é definida pelo próprio Snowflake.

Observe o seguinte para o Snowflake com OAuth:

  • Se um usuário permitir que o token do Snowflake expire, todas as programações ou alertas dele serão afetados. Para evitar isso, o Looker vai enviar um e-mail de notificação ao proprietário de cada programação e cada alerta antes que o token OAuth ativo do Snowflake expire. O Looker vai enviar esses e-mails de notificação 14 dias, 7 dias e 1 dia antes da expiração do token. O usuário pode acessar a página do Looker para autorizar novamente o acesso do Looker ao banco de dados e evitar interrupções nas programações e nos 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 do Snowflake que usam 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, em vez de usar resultados armazenados em cache sempre que a mesma consulta for executada no período, o Looker só vai usá-los se o mesmo usuário tiver feito a mesma consulta nesse período. Para mais informações sobre armazenamento em cache, consulte a página de documentação Consultas em cache.
  • Ao usar o OAuth, não é possível alternar para diferentes papéis na conta de usuário do Snowflake. Conforme descrito na documentação do Snowflake, o Snowflake usa o papel padrão da conta do usuário do Snowflake, a menos que o papel padrão seja ACCOUNTADMIN ou SECURITYADMIN. Como esses papéis estão bloqueados para o OAuth, o Snowflake usará o papel PUBLIC. Consulte a documentação do Snowflake para mais informações.
  • As tabelas derivadas persistentes (TDPs) não são compatíveis com conexões do Snowflake com o OAuth.
  • Os administradores, ao executarem o sudo como outro usuário, vão usar o token de acesso OAuth desse usuário. Se o token de acesso do usuário expirar, o administrador não poderá criar um novo token em nome do usuário com o sudo. O usuário terá que fazer login no Snowflake e autorizar o Looker novamente. Consulte a página de documentação Usuários para informações sobre como usar o comando sudo.

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, configure a integração OAuth no Snowflake. Isso requer uma conta de usuário do Snowflake com a permissão ACCOUNTADMIN.

  1. Execute o seguinte comando no Snowflake, em que <looker_hostname> é o nome do host da sua 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. Receba o ID e a chave secreta do cliente OAuth executando o seguinte comando:

      SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('LOOKER');
    

    A resposta terá um OAUTH_CLIENT_ID e um OAUTH_CLIENT_SECRET que serão necessários mais adiante neste procedimento.

  3. No Looker, crie uma nova conexão com o warehouse do Snowflake, conforme descrito na página de documentação Como conectar o Looker ao banco de dados. 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 extraídos do banco de dados no início deste procedimento.

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

Depois de configurar a conexão do Looker com seu banco de dados, você pode testar a conexão seguindo um destes procedimentos:

  • Selecione o botão Testar na parte de baixo da página Configurações de conexão, conforme descrito na página de documentação Como conectar o Looker ao banco de dados.
  • Selecione o botão Testar ao lado da listagem da conexão na página do administrador 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 da seguinte maneira:

  1. No Looker, entre em Modo de desenvolvimento.
  2. Acesse os arquivos do projeto do Looker que usa sua conexão do Snowflake.
  3. Abra um arquivo de modelo, substitua o valor connection do modelo pelo nome da nova conexão do Snowflake e salve o arquivo.
  4. Abra uma das Análises ou dashboards do modelo e execute uma consulta. Quando você tentar executar uma consulta, o Looker solicitará que você faça login no Snowflake.
  5. Siga as solicitações de login do Snowflake e insira suas credenciais.

Depois de fazer login no Snowflake, o Looker retornará à sua consulta. Se a consulta for executada corretamente, confirme o novo valor de conexão e implante as alterações na produção.

Como fazer login no Snowflake para executar consultas

Depois que a conexão do Snowflake estiver configurada para o OAuth, os usuários precisarão fazer login no Snowflake antes de executar consultas. Isso inclui consultas de Explores, dashboards, Looks e SQL Runner.

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

Para fazer login na sua conta do Snowflake usando o Looker:

  1. Clique no menu do usuário do Looker.
  2. Selecione Conta.
  3. Na página Conta, role para baixo até a seção Credenciais de conexão OAuth e selecione o botão Fazer login no banco de dados do Snowflake que você quiser.

Isso exibirá uma janela pop-up de login do Snowflake. Digite suas credenciais do Snowflake, selecione Fazer login e Permitir para dar ao Looker acesso à sua conta do Snowflake.

Depois de fazer login no Snowflake com o Looker, é possível sair ou autorizar novamente suas credenciais a qualquer momento na página Conta, conforme descrito na 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 seu banco de dados também precisa oferecer suporte a eles.

O Snowflake oferece suporte aos seguintes recursos a partir do Looker 24.8:

Engenharia de Compatível?
Nível do suporte
Compatível
Looker (Google Cloud Core)
Sim
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas de SQL permanentes
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Sim
Encerramento da consulta
Sim
Tabelas dinâmicas baseadas em SQL
Sim
Fusos horários
Sim
SSL
Sim
Subtotais
Sim
Parâmetros adicionais do JDBC
Sim
Diferenciar maiúsculas e minúsculas
Sim
Tipo de local
Sim
Tipo de lista
Sim
Percentil
Sim
Percentil distinto
No
Processos da exibição do SQL Runner
No
Tabela de descrição do executor do SQL
Sim
Índices de exibição do SQL Runner
No
Seleção do SQL Runner 10
Sim
Contagem de executores do SQL
Sim
Explicação do SQL
Sim
Credenciais OAuth
Sim
Comentários do contexto
Sim
Pooling de conexão
Sim
Esboços do HLL
Sim
Reconhecimento agregado
Sim
TDPs incrementais
Sim
Milissegundos
Sim
Microssegundos
Sim
Visualizações materializadas
No
Contagem aproximada distinta
No

Próximas etapas

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