Floco de neve

Para associar o Looker ao Snowflake, siga estes passos:

  1. Crie um utilizador do Looker no Snowflake e forneça acesso.
  2. Configure uma ligação de base de dados no Looker.

Encriptar o tráfego de rede

É uma prática recomendada encriptar o tráfego de rede entre a aplicação Looker e a sua base de dados. Considere uma das opções descritas na página de documentação Ativar o acesso seguro à base de dados.

Criar um utilizador do Looker no Snowflake

Recomendamos os seguintes comandos para criar o utilizador do Looker. Certifique-se de que executa cada linha individualmente ou selecione a opção Todas as consultas no painel de ligação do Snowflake para garantir que todas as linhas são executadas (por predefinição, o Snowflake executa apenas as linhas selecionadas):

A consola do Snowflake com a caixa de verificação Todas as consultas selecionada.

Recomendamos que adicione a palavra-chave ON FUTURE a cada declaração GRANT para que os objetos recém-criados tenham as mesmas autorizações sem que sejam necessárias mais ações.

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

Criar a ligação do Looker à sua base de dados

Na secção Administração do Looker, selecione Ligações e, de seguida, clique em Adicionar ligação.

Preencha os detalhes da ligação. A maioria das definições é comum à maioria dos dialetos de bases de dados. Consulte a página de documentação Associar o Looker à sua base de dados para ver informações. As descrições das definições seguintes contêm notas específicas do Snowflake:

Definições da base de dados – Anfitrião: introduza o nome do anfitrião do Snowflake. Vai ter o aspeto <account_name>.snowflakecomputing.com. Consulte exemplos de nomes de contas do Snowflake por região para se certificar de que usa o valor correto para a sua implementação.

Definições da base de dados – Método de autenticação: selecione um dos seguintes métodos de autenticação:

  • A conta de base de dados só deve ser usada por clientes existentes que precisem de tempo para fazer a transição para um método de autenticação multifator antes do prazo de novembro de 2025 da Snowflake. Especifique o nome de utilizador e a palavra-passe da conta de utilizador do Snowflake que vai ser usada para estabelecer ligação ao Looker.

  • O par de chaves deve ser usado por clientes que queiram implementar a autenticação de par de chaves do Snowflake para estabelecer ligação à respetiva base de dados. Especifique a conta de utilizador que vai ser usada para estabelecer ligação ao Snowflake no campo Nome de utilizador. Carregue um ficheiro de chave formatado em p8 sem encriptação no campo Ficheiro de par de chaves. Os ficheiros de chave encriptados não são suportados. A documentação do Snowflake descreve como criar um ficheiro de chave privada.

  • O OAuth deve ser usado por clientes que não precisam de tabelas derivadas persistentes (PDTs) e querem configurar o OAuth para a ligação.

Definições opcionais – Ativar PDTs: as PDTs não são suportadas para ligações do Snowflake que usam a autenticação OAuth. Se forem necessárias PDTs, use a opção de autenticação Par de chaves.

Definições opcionais – Parâmetros JDBC adicionais: adicione parâmetros JDBC adicionais a partir do controlador JDBC do Snowflake.

  • Adicione warehouse=<YOUR WAREHOUSE NAME>.
  • Além disso, por predefiniçã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

      Pode substituir cada um destes parâmetros definindo um valor alternativo no campo Parâmetros JDBC adicionais, por exemplo: &AUTOCOMMIT=FALSE

Para verificar se a associação foi bem-sucedida, clique em Testar. Consulte a página de documentação Testar a conetividade da base de dados para ver informações de resolução de problemas.

Para guardar estas definições, clique em Associar.

Designar armazéns do Snowflake por grupo ou por utilizador

Pode usar os atributos do utilizador do Looker para atribuir armazéns de dados do Snowflake separados a utilizadores ou grupos individuais do Looker. Isto é útil, por exemplo, se tiver utilizadores que requerem diferentes níveis de capacidade de processamento. Pode atribuir um armazém com mais recursos de computação apenas aos utilizadores que precisam dele, enquanto atribui um armazém com menos recursos aos utilizadores com menos necessidades.

Para designar armazéns por grupo ou por utilizador, siga estes passos:

  1. Adicione os grupos ou os utilizadores no Looker.
  2. Defina um atributo do utilizador no Looker onde os nomes do armazém de dados do Snowflake vão ser armazenados. Pode atribuir qualquer nome a este atributo, como snowflake_wh.

    A página Atributos do utilizador no Looker, que mostra o atributo do utilizador do armazém de dados do Snowflake.

  3. No atributo do utilizador que acabou de definir, atribua os valores do nome do armazém aos grupos ou utilizadores que vão precisar de um acesso diferente ao armazém.

    A página Atributos do utilizador no Looker, que mostra o atributo do utilizador do armazém de dados do Snowflake com valores atribuídos a um grupo.

  4. No campo Parâmetros JDBC adicionais na página Definições de ligação, adicione o seguinte, substituindo snowflake_warehouse pelo nome do atributo do utilizador que definiu:

      warehouse={{ _user_attributes['snowflake_warehouse'] }}
    
  5. Para testar as definições de ligação individuais, pode usar o comando sudo como um utilizador ao qual atribuiu um valor de nome do armazém.

Gerir a funcionalidade de suspensão automática do Snowflake

Os armazéns de dados do Snowflake têm uma funcionalidade de suspensão automática ativada por predefinição. Após um período especificado, o armazém é automaticamente suspenso. Se o armazém estiver suspenso, todas as consultas produzem um erro. Este erro não é visível nos painéis de controlo (normalmente, estes erros resultam na não apresentação de dados), mas é visível para qualquer utilizador que consulte a página Explorar.

Normalmente, são usados dois métodos para gerir esta situação:

  1. O Snowflake tem uma funcionalidade de retoma automática que retoma o armazém quando é consultado. No entanto, a retoma do armazém pode demorar até cinco minutos, o que faz com que as consultas deixem de responder durante cinco minutos antes de serem devolvidas. Não é possível configurar a retoma automática no Looker. Ative estas funcionalidades no separador Armazéns na IU do Snowflake:

    O separador Armazéns na IU do Snowflake, que mostra as caixas de verificação de suspensão automática e retoma automática.

  2. Se as tabelas derivadas persistentes (PDTs) tiverem sido ativadas, a predefinição do Looker é verificar a regeneração das tabelas derivadas a cada 5 minutos. Esta verificação mantém os armazéns de dados do Snowflake ativos. No entanto, pode querer que o Snowflake suspenda os armazéns durante as horas fora do horário de trabalho para reduzir os custos. Pode fazê-lo modificando a programação de reemissão do PDT, conforme descrito na documentação da programação de manutenção.

Suporte de PDT

As PDTs não são suportadas para associações do Snowflake que usam o OAuth.

Para a compatibilidade com tabelas derivadas persistentes, crie uma conta de utilizador do Snowflake para PDTs que tenha acesso de escrita à sua base de dados e ao esquema temporário que o Looker vai usar para criar PDTs. Na página Definições de ligações do Looker, no separador Definições opcionais na secção Definições de tabelas derivadas persistentes (PDTs), ative/desative o botão Ativar PDTs. Em seguida, no campo Base de dados temporária, introduza o nome do esquema temporário que o Looker vai usar para criar PDTs.

Tenha em atenção que as substituições de PDT não estão disponíveis para ligações do Snowflake que usam a autenticação por par de chaves.

Para as ligações Snowflake, o Looker define o valor do parâmetro AUTOCOMMIT do Snowflake como TRUE, que é o valor predefinido do Snowflake. AUTOCOMMIT é necessário para os comandos SQL que o Looker executa para manter o respetivo sistema de registo de PDT.

Configurar o OAuth para ligações Snowflake

O Looker suporta o OAuth para ligações ao Snowflake, o que significa que cada utilizador do Looker autentica-se na base de dados com a sua própria conta de utilizador do OAuth.

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

  • Audite que utilizadores do Looker estão a executar consultas na base de dados
  • Aplique controlos de acesso baseados em funções através de autorizações ao nível da base de dados
  • Use tokens OAuth para todos os processos e ações que acedem à base de dados, em vez de incorporar IDs e palavras-passe da base de dados em vários locais
  • Revogue a autorização de um determinado utilizador diretamente através da base de dados

Com as ligações do Snowflake que usam o OAuth, os utilizadores têm de iniciar sessão novamente periodicamente quando os respetivos tokens OAuth expiram. A idade máxima dos tokens OAuth do Snowflake é definida através do próprio Snowflake.

Tenha em atenção o seguinte para as ligações OAuth ao nível da base de dados:

  • As tabelas derivadas persistentes (PDTs) não são suportadas para associações do Snowflake com OAuth.
  • Se um utilizador deixar o respetivo token OAuth expirar, todos os agendamentos ou alertas do Looker que lhe pertencem são afetados. Para se proteger contra esta situação, o Looker envia um email de notificação ao proprietário de cada agendamento e cada alerta 14 dias, 7 dias e 1 dia antes de o token expirar. O utilizador pode aceder à respetiva página de utilizador do Looker para voltar a autorizar o Looker na base de dados e evitar interrupções nos respetivos agendamentos e alertas. Consulte a página de documentação Personalizar as definições da conta de utilizador para ver detalhes.
  • Uma vez que as ligações à base de dados que usam o OAuth são "por utilizador", as políticas de colocação em cache também são por utilizador e não apenas por consulta. Isto significa que o Looker usa os resultados em cache apenas se o mesmo utilizador tiver executado a mesma consulta dentro do período de colocação em cache. Para mais informações sobre o armazenamento em cache, consulte a página de documentação Consultas de armazenamento em cache.
  • Quando usa o OAuth, não pode mudar para funções diferentes na conta de utilizador do Snowflake. Conforme descrito na documentação do Snowflake, o Snowflake usa a função predefinida da conta do utilizador do Snowflake, a menos que a função predefinida seja ACCOUNTADMIN ou SECURITYADMIN. Uma vez que estas funções estão bloqueadas para o OAuth, o Snowflake vai usar a função PUBLIC. Consulte a documentação do Snowflake para ver informações.
  • Quando um administrador do Looker usa o comando sudo como outro utilizador, o administrador usa o token de acesso OAuth desse utilizador. Se o token de acesso do utilizador tiver expirado, o administrador não pode criar um novo token em nome do utilizador com privilégios de superutilizador. Consulte a página de documentação Utilizadores para ver informações sobre a utilização do comando sudo.

Configurar uma base de dados do Snowflake para OAuth com o Looker

Para criar uma ligação do Snowflake ao Looker através do OAuth, tem de configurar a integração do OAuth no Snowflake. Isto requer uma conta de utilizador do Snowflake com autorização ACCOUNTADMIN.

  1. Execute o seguinte comando no Snowflake, onde <looker_hostname> é o nome do anfitrião 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. Obtenha o ID de cliente e o segredo do cliente OAuth executando o seguinte comando:

    SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('LOOKER');
    

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

  3. No Looker, crie uma nova ligação ao seu armazém de dados do Snowflake, conforme descrito na secção Criar a ligação do Looker à sua base de dados desta página. Quando criar a nova associação, selecione a opção OAuth no campo Autenticação. Quando seleciona a opção OAuth, o Looker apresenta os campos ID de cliente OAuth e Segredo do cliente OAuth.

  4. Cole os valores OAUTH_CLIENT_ID e OAUTH_CLIENT_SECRET que obteve da sua base de dados anteriormente neste procedimento.

  5. Conclua o resto do procedimento para associar o Looker à sua base de dados.

Testar a ligação OAuth

Depois de configurar a ligação do Looker à sua base de dados, pode testar a ligação através de uma das seguintes opções:

  • Selecione o botão Testar na parte inferior da página Definições de associações, conforme descrito na página de documentação Associar o Looker à sua base de dados.
  • Selecione o botão Testar junto à ficha da associação na página de administração Associações, conforme descrito na página de documentação Associações.

Além disso, pode testar a associação e implementá-la num modelo através destes passos:

  1. No Looker, aceda ao modo de programação.
  2. Navegue para os ficheiros do projeto de um projeto do Looker que use a sua ligação ao Snowflake.
  3. Abra um ficheiro de modelo e substitua o valor connection do modelo pelo nome da nova ligação ao Snowflake e, em seguida, guarde o ficheiro de modelo.
  4. Abra uma das explorações ou painéis de controlo do modelo e execute uma consulta. Quando tenta executar uma consulta, o Looker pede-lhe que inicie sessão no Snowflake.
  5. Siga as indicações de início de sessão do Snowflake e introduza as suas credenciais do Snowflake.

Depois de iniciar sessão com êxito no Snowflake, o Looker redireciona-o de volta para a sua consulta. Se a consulta for executada corretamente, pode confirmar o novo valor de associação e implementar as alterações na produção.

Iniciar sessão no Snowflake para executar consultas

Assim que a ligação do Snowflake estiver configurada para o OAuth, os utilizadores são convidados a iniciar sessão no Snowflake antes de executar consultas. Isto inclui consultas de Explorar, painéis de controlo, Looks e SQL Runner.

A IU do Looker, que mostra o pedido de início de sessão do OAuth.

Os utilizadores também podem iniciar sessão no Snowflake a partir da secção Credenciais da ligação OAuth na página Conta.

Para iniciar sessão na sua conta do Snowflake através do Looker, siga estes passos:

A página Conta no Looker, que mostra a secção Credenciais da ligação OAuth.

  1. Clique no menu de utilizador do Looker.
  2. Selecione Conta.
  3. Na página Conta, aceda à secção Credenciais de ligação OAuth e selecione o botão Iniciar sessão para a base de dados Snowflake adequada.

Se selecionar Iniciar sessão, é apresentada uma caixa de diálogo de início de sessão do Snowflake. Introduza as suas credenciais da Snowflake, selecione Iniciar sessão e, de seguida, selecione Permitir para conceder ao Looker acesso à sua conta da Snowflake.

Depois de iniciar sessão no Snowflake através do Looker, pode terminar sessão ou voltar a autorizar as suas credenciais em qualquer altura através da página Conta, conforme descrito na página de documentação Personalizar a sua conta de utilizador.

Suporte de funcionalidades

Para que o Looker suporte algumas funcionalidades, o dialeto da base de dados também tem de as suportar.

O Snowflake suporta as seguintes funcionalidades a partir do Looker 25.14:

Funcionalidade Compatível?
Nível de apoio técnico
Suportado
Looker (Google Cloud Core)
Sim
Dados agregados simétricos
Sim
Tabelas derivadas
Sim
Tabelas derivadas SQL persistentes
Sim
Tabelas derivadas nativas persistentes
Sim
Vistas estáveis
Sim
Interrupção de consultas
Sim
Tabelas dinâmicas baseadas em SQL
Sim
Fusos horários
Sim
SSL
Sim
Subtotais
Sim
Parâmetros JDBC adicionais
Sim
Sensível a maiúsculas e minúsculas
Sim
Tipo de localização
Sim
Tipo de lista
Sim
Percentil
Sim
Percentil distinto
Não
Execução de SQL Mostrar processos
Não
Execução de SQL Describe Table
Sim
Execução de SQL Mostrar índices
Não
Execução de SQL Select 10
Sim
Contagem da execução de SQL
Sim
SQL Explain
Sim
Credenciais do OAuth 2.0
Sim
Comentários de contexto
Sim
Agrupamento de ligações
Sim
Esboços HLL
Sim
Notoriedade agregada
Sim
PDTs incrementais
Sim
Milissegundos
Sim
Microssegundos
Sim
Vistas materializadas
Não
Medidas de comparação de períodos
Sim
Contagem distinta aproximada
Não

Passos seguintes

Depois de associar a sua base de dados ao Looker, configure as opções de início de sessão para os seus utilizadores.