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

É recomendável 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 Ativar o acesso seguro ao banco de dados.

Criar um usuário do Looker no Snowflake

Recomendamos os comandos a seguir para criar o usuário do Looker. Execute cada linha individualmente.

Opcionalmente, adicione a palavra-chave ON FUTURE para manter as instruções GRANT em objetos recém-criados. Recomendamos executar isso em tabelas em todos os esquemas que o Looker vai usar para que você não precise executar novamente as 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ão do Snowflake, selecione 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.

O console do Snowflake com a caixa de seleção &quot;Todas as consultas&quot; selecionada.

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 para a maioria dos dialetos de banco de dados. Consulte a página de documentação Como conectar o Looker ao seu banco de dados para mais informações. Confira a seguir a descrição de algumas configurações:

  • Nome: dê um nome à conexão. É assim que o modelo do LookML vai fazer referência à conexão.
  • Dialecto: selecione Snowflake.
  • Host: insira o nome do host do Snowflake. Ele vai ficar assim: <account_name>.snowflakecomputing.com. Consulte Exemplos de nome de conta do Snowflake por região para garantir que você use o valor certo para sua implantação.
  • Porta: o padrão é 443.
  • Banco de dados: insira o banco de dados padrão a ser usado. Esse campo diferencia maiúsculas de minúsculas.
  • Esquema: insira o esquema padrão.
  • Autenticação: selecione Conta de banco de dados ou OAuth:
    • Use Conta de banco de dados 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). Ativar as TDPs revela outros campos de TDP e a seção Substituições de TDP para a conexão.

  • Banco de dados temporário: se os PDTs estiverem ativados, defina esse campo como um esquema em que o usuário tenha todos os privilégios para criar, excluir, renomear e alterar tabelas.

  • Conexões máximas por nó: essa configuração pode ser deixada com o valor padrão inicialmente. Leia mais sobre essa configuração na seção Conexões máximas por nó da página de documentação Como conectar o Looker ao seu banco de dados.

  • Estimativa de custo: ativa as estimativas de custo para consultas do recurso Explorar, as estimativas de custo para consultas do SQL Runner e as estimativas de economia de computação para consultas de consciência agregada 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 horários. O padrão é UTC. Isso é opcional.

  • Fuso horário da consulta: o fuso horário em que você quer que as consultas sejam exibidas. Por exemplo, "Horário da Costa Leste dos EUA (América – Nova York)". Isso é opcional.

  • Parâmetros JDBC adicionais: adicione parâmetros JDBC do driver JDBC do Snowflake.

    • Adicione warehouse=<YOUR WAREHOUSE NAME>.
    • Além disso, por padrão, o Looker define 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 bem-sucedida, clique em Testar. Consulte a página de documentação Teste de conectividade do banco de dados para informações sobre solução de problemas.

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

Designar data warehouses do Snowflake por grupo ou usuário

É possível usar os atributos do usuário do Looker para atribuir armazéns do Snowflake a usuários ou grupos individuais do Looker. Isso é útil, por exemplo, se você tem usuários que exigem diferentes níveis de capacidade de computação. Você pode atribuir um repositório com recursos de computação maiores apenas aos usuários que precisam dele, enquanto atribui um repositório com recursos menores aos usuários com necessidades menores.

Para designar armazéns por grupo ou usuário, siga estas etapas:

  1. Adicione os grupos ou usuários no Looker.
  2. Defina um atributo do usuário no Looker para armazenar os nomes dos armazéns do Snowflake. Você pode dar a esse atributo qualquer nome, como snowflake_wh.

    Página &quot;Atributos do usuário&quot; no Looker, mostrando o atributo do usuário do depósito do Snowflake.

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

    Página &quot;Atributos do usuário&quot; no Looker, mostrando o atributo do usuário do depósito 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 do usuário que você definiu:

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

    Exemplo:

    Página &quot;Connection Settings&quot; no Looker, mostrando o campo &quot;Additional JDBC parameters&quot; com o parâmetro de atributo de usuário do depósito.

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

Confira instruções mais detalhadas sobre esse procedimento no blog da Red Pill Analytics.

Recurso de suspensão automática do Snowflake

Os repositórios do Snowflake têm um recurso de suspensão automática ativado por padrão. Após um período especificado, o depósito será suspenso automaticamente. Se o data warehouse for suspenso, todas as consultas vão gerar um erro. Esse erro não aparece nos painéis (normalmente, nenhum dado é mostrado), mas fica visível quando você consulta com a página "Explorar".

O Snowflake também tem um recurso de retomada automática que retoma o data warehouse quando ele é consultado. No entanto, a retomada do repositório pode levar até cinco minutos, fazendo com que as consultas parem de responder por cinco minutos antes de retornar. Não é possível configurar esses recursos no Looker. Ative esses recursos na guia Warehouses da interface do Snowflake.

Guia &quot;Warehouses&quot; na interface do Snowflake, mostrando as caixas de seleção &quot;Autosuspend&quot; e &quot;Autoresume&quot;

Suporte a TDP

Para ter suporte a tabelas derivadas permanentes, crie uma conta de usuário do Snowflake para PDTs com 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 seção 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. Em seguida, na seção Substituições de PDT, insira o nome de usuário e a senha do usuário do PDT. Consulte a página de documentação Como conectar o Looker ao seu banco de dados para mais informações.

Os TDPs não são compatíveis com 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 PDT.

Como configurar o OAuth para conexões do Snowflake

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

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 função usando permissões no nível do banco de dados
  • Use 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 no banco de dados

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

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

  • Se um usuário deixar o token OAuth expirar, todas as programações ou alertas do Looker que ele tiver serão afetados. Para evitar isso, o Looker envia um e-mail de notificação ao proprietário de cada programação e alerta antes que o token OAuth ativo atual expire. A Looker vai enviar esses e-mails de notificação 14 dias, 7 dias e 1 dia antes do token expirar. O usuário pode acessar a página de usuário do Looker para reautorizar o acesso ao banco de dados e evitar interrupções nas programações e nos alertas. Consulte a página de documentação 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, em vez de usar os resultados em cache sempre que a mesma consulta for executada dentro do período de armazenamento em cache, o Looker vai usar os resultados 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 Armazenamento em cache de consultas.

  • Ao usar o OAuth, não é possível alternar para diferentes funções 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, a menos que o papel padrão seja ACCOUNTADMIN ou SECURITYADMIN. Como esses papéis estão bloqueados para OAuth, o Snowflake vai usar o papel PÚBLICO. Consulte a documentação do Snowflake para mais informações.

  • As tabelas derivadas persistentes (PDTs) não são compatíveis com conexões do Snowflake com OAuth.

  • Quando um administrador do Looker usa o sudo como outro usuário, ele 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 com sudo. 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, é necessário configurar 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. Para conferir 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 adiante neste procedimento.

  3. No Looker, crie uma nova conexão com o repositório do Snowflake, conforme descrito na seção Como criar a conexão do Looker com seu 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 seu banco de dados.

Depois de configurar a conexão do Looker ao seu banco de dados, você pode testar a conexão fazendo o seguinte:

  • 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 seu banco de dados.
  • Selecione o botão Testar ao lado da lista de conexões na página de administrador Conexões, conforme descrito na página de documentação Conexões.

Além disso, você pode 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 do 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. Em seguida, salve o arquivo de modelo.
  4. Abra um dos painéis ou análises detalhadas do modelo e execute uma consulta. Quando você tenta executar uma consulta, o Looker solicita que você faça login no Snowflake.
  5. Siga as instruções de login do Snowflake e insira suas credenciais.

Depois que você fizer 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.

Fazer login no Snowflake para executar consultas

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

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 da página Conta.

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

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 Account, acesse a seção OAuth Connection Credentials e selecione o botão Log In para o banco de dados do Snowflake apropriado.

Selecionar Log In vai exibir uma caixa de diálogo de login do Snowflake. Insira suas credenciais do Snowflake, selecione Fazer login e Permitir para conceder acesso do Looker à 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 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 é compatível com os seguintes recursos a partir do Looker 24.20:

Recurso Compatível?
Nível de suporte
Compatível
Looker (Google Cloud Core)
Sim
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas persistentes do SQL
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Sim
Consulta de interrupção
Sim
Pivots baseados 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
Não
SQL Runner Show Processes
Não
Tabela de descrição do SQL Runner
Sim
Índices de exibição do SQL Runner
Não
SQL Runner Select 10
Sim
Contagem do SQL Runner
Sim
SQL Explain
Sim
Credenciais do OAuth
Sim
Comentários de contexto
Sim
Pooling de conexão
Sim
Esboços HLL
Sim
Conscientização agregada
Sim
PDTs incrementais
Sim
Milissegundos
Sim
Microssegundos
Sim
Visualizações materializadas
Não
Contagem aproximada de valores distintos
Não

Próximas etapas

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