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.

Criptografar o tráfego de rede

É uma prática recomendada criptografar o tráfego de rede entre o aplicativo do 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.

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 All Queries 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 seja necessário realizar outras 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;

Se você quiser ativar as Análises independentes na sua conexão, também precisará conceder CREATE STAGE ao papel do Looker:

GRANT CREATE STAGE ON SCHEMA looker_scratch TO ROLE looker_role;

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. 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á semelhante a <account_name>.snowflakecomputing.com. Confira exemplos de nomes de contas do Snowflake por região para garantir que você use o valor certo para sua implantação.

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

    • A Conta do banco de dados só deve ser usada por clientes que precisam de tempo para fazer a transição para um método de autenticação multifator antes do prazo do Snowflake em novembro de 2025. Especifique o Nome de usuário e a Senha da conta de usuário do Snowflake que será usada para se conectar ao Looker.

    • Par de chaves: deve ser usado por clientes que querem implementar a autenticação de par de chaves do Snowflake para se conectar ao banco de dados. Especifique a conta de usuário que será usada para se conectar ao Snowflake no campo Nome de usuário. Faça upload de um arquivo de chave criptografado ou não criptografado no formato p8 no campo Arquivo do par de chaves. A documentação do Snowflake descreve como criar um arquivo de chave privada. Se você estiver fazendo upload de um arquivo p8 criptografado, faça o seguinte:

      • Ative a opção O par de chaves está criptografado.
      • Especifique a senha do arquivo p8 no campo Senha de descriptografia do arquivo de par de chaves.
    • O OAuth deve ser usado por clientes que não precisam de tabelas derivadas persistentes (PDTs) e querem configurar o OAuth para a conexão.

  • Configurações opcionais: parâmetros JDBC adicionais: adicione outros parâmetros JDBC do driver JDBC do Snowflake. Consulte a seção Parâmetros JDBC compatíveis nesta página para ver uma lista de parâmetros compatíveis.

    • 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

  • Configurações opcionais - Ativar TDPs: as TDPs não são compatíveis com conexões do Snowflake que usam autenticação OAuth. Se as TDPs forem necessárias, use a opção de autenticação de par de chaves.

  • Configurações opcionais: ativar substituições de TDP: as substituições de TDP são compatíveis com conexões do Snowflake para que você possa inserir parâmetros JDBC separados específicos para processos de TDP, como host, porta, banco de dados, nome de usuário, senha, esquema, parâmetros adicionais e valores para o campo Substituir a TDP após as instruções de conexão. É possível usar a autenticação de par de chaves nas substituições de TDP fazendo o seguinte:

    • Faça upload de um arquivo de chave criptografado ou não criptografado no formato p8 no campo Arquivo do par de chaves de substituição da TDP. A documentação do Snowflake descreve como criar um arquivo de chave privada.
    • Se você estiver fazendo upload de um arquivo p8 criptografado, especifique a senha dele no campo Senha de substituição da TDP.

Para verificar se a conexão foi bem-sucedida, clique no botão Testar conexão na seção Detalhes do status na parte de baixo da página Configurações de conexões.

Se o Looker exibir Pode se conectar, pressione Conectar para criar a conexão.

A conexão do banco de dados é adicionada à lista na página Administrador de Conexões do Looker.

Designar warehouses do Snowflake por grupo ou por usuário

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

Para designar 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 warehouses do Snowflake serão armazenados. Você pode dar qualquer nome a esse atributo, como snowflake_wh.

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

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

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

  4. No campo Parâmetros JDBC adicionais da 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, use sudo como um usuário a quem você atribuiu um valor de nome de warehouse.

Gerenciar o recurso de suspensão automática do Snowflake

Os warehouses do Snowflake têm um recurso de suspensão automática que é ativado por padrão. Após um período especificado, o warehouse será suspenso automaticamente. Se o warehouse for suspenso, todas as consultas vão produzir um erro. Esse erro não é visível nos dashboards (normalmente, esses erros resultam em nenhum dado sendo mostrado), mas é visível para qualquer usuário que faça consultas com a página "Análise".

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

  1. O Snowflake tem um recurso de retomada automática que retoma o warehouse quando ele é consultado. No entanto, a retomada do 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 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 (TDPs) estiverem ativadas, a configuração padrão do Looker será verificar a regeneração da tabela derivada a cada cinco minutos. Essa verificação vai manter os warehouses do Snowflake ativos. No entanto, talvez você queira que o Snowflake suspenda os warehouses durante o horário não comercial para reduzir custos. Para isso, modifique a programação de regeneração da TDP, conforme descrito na documentação da programação de manutenção.

Suporte a TDP

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

Para oferecer suporte a tabelas derivadas persistentes, crie uma conta de usuário do Snowflake para TDPs que tenha acesso de gravação ao seu banco de dados e ao esquema temporário que o Looker vai usar para criar TDPs. Na página Configurações de conexões do Looker, na guia Configurações opcionais, na seção Configurações da tabela derivada persistente (TDP), 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.

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 os 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 é compatível com o 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 do banco de dados em vários lugares
  • Revogar a autorização de um usuário diretamente pelo banco de dados

Com as conexões do Snowflake que usam OAuth, os usuários precisam fazer login novamente de forma periódica quando os tokens 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 compatíveis com conexões do Snowflake com OAuth.
  • Se um usuário deixar o token OAuth expirar, todas as programações ou alertas do Looker que ele possui 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 autorizar novamente o Looker no 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 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 armazenamento em cache, consulte a página de documentação Como armazenar consultas em cache.
  • Ao usar o OAuth, não é possível alternar 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 do usuário do Snowflake, 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 PUBLIC. Consulte a documentação do Snowflake para mais informações.
  • Quando um administrador do Looker usa o comando sudo como outro usuário, ele usa o token de acesso OAuth desse usuário. Quando os usuários autorizam uma conexão OAuth no Looker, uma caixa de diálogo Autorizar conexão OAuth notifica que usuários privilegiados do Looker, como administradores ou desenvolvedores, podem ter visibilidade dos dados deles. Se o token de acesso do usuário estiver 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 saber 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, é preciso configurar a integração do OAuth no Snowflake. Para isso, é preciso ter 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 receber o ID do cliente 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 warehouse 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 de 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.

Como testar a conexão OAuth

Depois de configurar a conexão do Looker com seu banco de dados, você pode testá-la de duas maneiras:

  • 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 listagem da conexão na página 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 seguindo estas etapas:

  1. No Looker, acesse o Modo de Desenvolvimento.
  2. Acesse os arquivos 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 uma das análises ou um dos painéis do modelo e execute uma consulta. Quando você tentar executar uma consulta, o Looker vai pedir para você fazer 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 à sua 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 o OAuth, os usuários precisarão fazer login no Snowflake antes de executar consultas. Isso inclui consultas de Análises, dashboards, 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 do banco de dados do Snowflake apropriado.

Ao selecionar Fazer login, uma caixa de diálogo Autorizar conexão OAuth é exibida no Looker, notificando que a autorização da conexão permite que a instância do Looker acesse dados em seu nome e que usuários privilegiados do Looker, como administradores ou desenvolvedores, podem ter visibilidade dos seus dados. Selecione Autorizar para continuar na caixa de diálogo de login do Snowflake. O Looker armazena esse consentimento no armazenamento local do navegador. Se você limpar o armazenamento local, a caixa de diálogo vai aparecer novamente na próxima vez que você iniciar um fluxo de autorização do OAuth. Insira suas credenciais do Snowflake, selecione Fazer login e clique em Permitir para que o Looker acesse sua conta do Snowflake.

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

Comentários de contexto para conexões do Snowflake

Para a maioria dos dialetos de banco de dados, o Looker adiciona comentários de contexto SQL ao início de cada consulta SQL de saída. Para conexões do Snowflake, o Looker adiciona comentários de contexto ao final de cada consulta SQL, em vez de ao início, porque o Snowflake remove os comentários iniciais.

Para mais informações sobre comentários de contexto e os campos que eles incluem, consulte Comentários de contexto para consultas SQL.

Parâmetros JDBC compatíveis

Para o Snowflake, o Looker aceita os seguintes parâmetros JDBC no campo Parâmetros JDBC adicionais para a conexão. Consulte a documentação do seu banco de dados para mais informações sobre esses parâmetros.

  • account
  • allowUnderscoresInHost
  • application
  • authenticator
  • AUTOCOMMIT
  • CLEAR_BATCH_ONLY_AFTER_SUCCESSFUL_EXECUTION
  • CLIENT_SESSION_KEEP_ALIVE
  • db
  • disableGcsDefaultCredentials
  • disableOCSPChecks
  • disableSamlURLCheck
  • disableSocksProxy
  • ENABLE_WILDCARDS_IN_SHOW_METADATA_COMMANDS
  • enablePatternSearch
  • HTTP_CLIENT_CONNECTION_TIMEOUT
  • HTTP_CLIENT_SOCKET_TIMEOUT
  • IMPLICIT_SERVER_SIDE_QUERY_TIMEOUT
  • insecureMode
  • JDBC_DEFAULT_FORMAT_DATE_WITH_TIMEZONE
  • JDBC_GET_DATE_USE_NULL_TIMEZONE
  • jdbc_use_session_timezone
  • JDBC_TREAT_DECIMAL_AS_INT
  • loginTimeout
  • MAX_TLS_VERSION
  • maxHttpRetries
  • MIN_TLS_VERSION
  • MULTI_STATEMENT_COUNT
  • networkTimeout
  • nonProxyHosts: para instâncias públicas do Looker, o valor do parâmetro nonProxyHosts precisa ser o endereço IP público da instância.
  • oauthAuthorizationUrl: para instâncias públicas do Looker, o valor do parâmetro oauthAuthorizationUrl precisa ser o endereço IP público da instância.
  • oauthClientId
  • oauthClientSecret
  • oauthScope
  • oauthTokenRequestUrl: para instâncias públicas do Looker, o valor do parâmetro oauthTokenRequestUrl precisa ser o endereço IP público da instância.
  • ocspFailOpen
  • OWNER_ONLY_STAGE_FILE_PERMISSIONS_ENABLED
  • passcode
  • passcodeInPassword
  • password
  • private_key
  • private_key_base64
  • private_key_pwd
  • privatekey
  • proxyHost: para instâncias públicas do Looker, o valor do parâmetro proxyHost precisa ser o endereço IP público da instância.
  • proxyPassword
  • proxyPort
  • proxyProtocol
  • proxyUser
  • QUERY_TAG
  • queryTimeout
  • QUOTED_IDENTIFIERS_IGNORE_CASE
  • ROLE
  • schema
  • STATEMENT_QUEUED_TIMEOUT_IN_SECONDS
  • STATEMENT_TIMEOUT_IN_SECONDS
  • stringsQuotedForColumnDef
  • TIMESTAMP_INPUT_FORMAT
  • TIMESTAMP_TYPE_MAPPING
  • TIMEZONE
  • token
  • tracing
  • useProxy
  • user
  • warehouse
  • WEEK_OF_YEAR_POLICY
  • WEEK_START
  • workloadIdentityProvider

Suporte a recursos

Para que o Looker seja compatível com alguns recursos, o dialeto do banco de dados também precisa ser compatível com eles.

O Snowflake é compatível com os seguintes recursos a partir do Looker 26.20:

Recurso Compatível?
Looker (Google Cloud Core)
Conjuntos simétricos
Tabelas derivadas
Tabelas derivadas persistentes em SQL
Tabelas derivadas nativas persistentes
Visualizações estáveis
Encerramento de consultas
Tabelas dinâmicas baseadas em SQL
Fusos horários
SSL
Subtotais
Parâmetros adicionais da JDBC
Diferencia maiúsculas de minúsculas
Tipo de local
Tipo de lista
Percentil
Percentil distinto
Mostrar processos do SQL Runner
Tabela de descrição do SQL Runner
Mostrar índices do SQL Runner
SQL Runner Select 10
Contagem do SQL Runner
Explicação do SQL
Credenciais do OAuth 2.0
Comentários de contexto
Pooling de conexão
Esboços HLL
Reconhecimento agregado
TDPs incrementais
Milissegundos
Microssegundos
Visualizações materializadas
Medidas de comparação de períodos
Contagem aproximada aproximada
Modelos analíticos no banco de dados
Agendas personalizadas

Próximas etapas

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