PrestoDB e Trino

Nesta página, explicamos como conectar o Looker ao PrestoDB ou ao Trino.

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.

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 Conectar o Looker ao seu banco de dados para mais informações. Algumas das configurações são descritas a seguir:

  • Dialeto: selecione PrestoDB ou Trino.

    O PrestoSQL mudou de nome para Trino. Se você estiver usando uma versão do Trino anterior à 352, selecione PrestoSQL no menu de dialetos do Looker.

  • Host: o nome do host do banco de dados.

  • Porta: a porta do banco de dados. A porta padrão é 8080.

  • Banco de dados: o "catálogo" ou "conector", em termos do Presto.

  • Nome de usuário: o nome de usuário da pessoa que vai executar as consultas.

    Essas informações só são enviadas ao servidor de banco de dados se o SSL estiver ativado.

  • Senha: a senha do usuário que vai executar consultas.

    Essas informações só são enviadas ao servidor de banco de dados se o SSL estiver ativado.

  • Esquema: o esquema padrão a ser usado quando nenhum esquema é especificado.

  • Autenticação: selecione Conta de banco de dados ou OAuth:

    • Use Conta do banco de dados para especificar o Nome de usuário e a Senha da conta de usuário do banco de dados 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). Isso revela outros campos de PDT e a seção Substituições de PDT da conexão.

  • Banco de dados temporário: o esquema para gravar PDTs. A versão 3.50 adicionou suporte a PDTs no Presto. Consulte a seção Como configurar o PrestoDB ou o Trino para PDTs nesta página para mais informações sobre como configurar o Presto para oferecer suporte a PDTs.

  • Parâmetros JDBC adicionais: qualquer parâmetro adicional do driver JDBC do PrestoDB, do driver JDBC do Trino ou do driver JDBC do Starburst.

  • SSL: marque para ativar as conexões SSL.

  • Verificar SSL: ignore este campo. Todas as conexões SSL vão usar o Truststore Java padrão, a menos que seja indicado o contrário com os parâmetros JDBC do PrestoDB, o driver JDBC do Trino ou o driver JDBC do Starburst. Insira esses parâmetros no campo Parâmetros JDBC adicionais.

Para verificar se a conexão foi bem-sucedida, 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.

Para mais informações sobre as configurações de conexão, consulte a página de documentação Como conectar o Looker ao banco de dados.

Configurar o PrestoDB ou o Trino para PDTs

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

O suporte a PDTs depende do conector que você está usando com o PrestoDB ou o Trino . Esta seção explica as configurações necessárias para um banco de dados temporário. Neste exemplo, presumimos que o conector usado seja hive.

O arquivo de propriedades do catálogo do Hive precisa conter algumas propriedades de configuração, que são descritas nesta seção.

O seguinte é necessário porque o Presto armazena em cache os resultados do metastore do Hive, e o Looker precisa conseguir ver as tabelas imediatamente:

hive.metastore-cache-ttl = 0s

Essas duas propriedades são obrigatórias porque o Looker precisa poder descartar e renomear PDTs:

hive.allow-rename-table=true
hive.allow-drop-table=true

Para referência, nos nossos servidores internos de teste do Presto, usamos o seguinte arquivo hive.properties, que é usado em todos os esquemas do Hive:

hive.s3.connect-timeout=1m
hive.s3.max-backoff-time=10m
hive.s3.max-error-retries=50
hive.metastore-cache-ttl = 0s
hive.metastore-refresh-interval = 5s
hive.s3.max-connections=500
hive.s3.max-client-retries=50
connector.name=hive-hadoop2
hive.s3.socket-timeout=2m
hive.s3.staging-directory=/mnt/tmp/
hive.s3.use-instance-credentials=true
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
hive.parquet.use-column-names=true
hive.allow-drop-table=true
hive.metastore.uri=thrift://<metastore-server>:9083
hive.storage-format=ORC
hive.allow-rename-table=true

Como configurar o OAuth para conexões do Trino

O Looker oferece suporte ao OAuth para conexões do Trino. Isso significa que cada usuário do Looker se autentica no banco de dados e autoriza o Looker a executar consultas nele com a própria conta de usuário do OAuth.

Com o OAuth, os administradores de banco de dados podem realizar as seguintes tarefas:

  • Auditar quais usuários do Looker estão executando consultas no banco de dados
  • Impor controles de acesso baseados em papéis usando permissões no nível do banco de dados
  • Use tokens OAuth em 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 determinado usuário diretamente no banco de dados

Com as conexões do Trino que usam o OAuth, os usuários precisam fazer login novamente periodicamente quando os tokens do OAuth expiram.

Observações sobre conexões OAuth no nível do banco de dados:

  • Se um usuário deixar o token do OAuth expirar, todos os programações ou alertas de propriedade dele 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. O Looker vai enviar esses e-mails de notificação 14, 7 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 acesso ao banco de dados e evitar interrupções nos programações e 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 cache também são por usuário, e não apenas por consulta. Isso significa que, em vez de usar resultados em cache sempre que a mesma consulta for executada dentro do período de armazenamento em cache, o Looker usará resultados em cache apenas 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 Armazenar consultas em cache.
  • Tabelas derivadas persistentes (PDTs) não são compatíveis com conexões do Trino com OAuth.
  • Quando um administrador do Looker usa o comando 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.
  • Ao fazer login no Azure AD pelo Looker usando o OAuth, o Looker não mostra uma caixa de diálogo explícita de consentimento do usuário. Ao configurar o OAuth com o Looker, você concorda implicitamente que sua instância do Looker acesse seus dados do Trino.

Como registrar um aplicativo

Para ativar o OAuth no Trino, primeiro registre um aplicativo usando um provedor de identidade compatível. O Looker só é compatível com o ID do Microsoft Entra (antigo Azure AD) para OAuth com o Trino.

Pré-requisitos

  • Você precisa ter uma assinatura do Azure.
  • Você precisa ter permissões administrativas no Microsoft Entra ID.

Para registrar um aplicativo, siga estas etapas:

  1. Acesse o portal do Azure e faça login com suas credenciais.
  2. Na barra de pesquisa do portal do Azure, procure "Microsoft Entra ID" e selecione o resultado.
  3. No serviço Microsoft Entra ID, clique em Novo registro na seção Registros de apps da categoria Gerenciar.
  4. Preencha o formulário de inscrição da seguinte maneira:
    • Nome: forneça um nome descritivo para o aplicativo, como Looker Trino Connection.
    • Tipos de contas compatíveis: selecione a opção adequada com base em como você quer restringir o acesso. Para um caso de uso interno, selecione Somente contas neste diretório organizacional.
    • URI de redirecionamento: selecione a plataforma Web e insira o URI de redirecionamento do Looker. Ele vai ficar assim: https://YOUR_LOOKER_HOSTNAME/external_oath/redirect.
  5. Clique em Registrar.
  6. Reúna o ID do cliente, o ID do locatário e a chave secreta do cliente para inserir na sua conexão do Looker mais tarde.
    • É possível encontrar o ID do cliente e o ID do locatário na página Visão geral.
    • Se você não souber o segredo do cliente, crie um novo. Clique em Certificados e chaves secretas na seção Gerenciar e depois em Nova chave secreta do cliente.
  7. Clique em Expor uma API na seção Gerenciar.
  8. Ao lado de URI do ID do aplicativo, clique em Adicionar.
  9. Insira seu ID do cliente. Ele precisa estar neste formato: api://CLIENT_ID.

Em seguida, siga estas etapas no portal do Azure para criar um novo escopo a ser usado com o Looker:

  1. Clique em Adicionar um escopo na seção Escopos definidos por esta API.
  2. Adicione um nome de escopo para o novo escopo. O Looker espera que o nome do seu escopo seja: TrinoUsers.Read.All.

    O nome TrinoUsers.Read.All implica permissões somente leitura, mas o nome em si não define nem aplica nenhuma permissão. Defina o escopo para permitir apenas acesso de leitura ao banco de dados.

  3. Adicione um Nome de exibição e uma Descrição.

  4. No seletor Quem pode dar consentimento?, selecione Administradores e usuários.

  5. Clique em Adicionar escopo.

  6. Na seção Aplicativos cliente autorizados, clique em Adicionar um aplicativo cliente.

  7. Insira seu ID do cliente e o escopo recém-criado.

  8. Clique em Adicionar aplicativo.

Em seguida, para conceder ao Looker as permissões de API necessárias, siga estas etapas:

  1. Na seção Gerenciar, clique em Permissões da API.
  2. Clique em Adicionar uma permissão.
  3. Selecione a guia Minhas APIs na parte de cima.
  4. Na lista de registros de apps, selecione o que você acabou de criar, como Looker Trino Connection.
  5. Marque a caixa de seleção Permissões delegadas.
  6. Marque a caixa de seleção TrinoUsers.Read.All.
  7. Selecione Adicionar permissão.

Configurar o banco de dados para usar o OAuth

Em seguida, para configurar seu banco de dados do Trino para usar o OAuth, adicione as seguintes linhas ao arquivo config.properties do Trino. Substitua as cinco primeiras linhas de variáveis em maiúsculas pelos seus próprios valores.

  • YOUR_HTTPS_PORT
  • PATH_TO_YOUR_SSL_CERTIFICATE
  • YOUR_TENANT_ID
  • YOUR_CLIENT_ID
  • YOUR_SHARED_SECRET
# enable SSL for OAuth
http-server.https.enabled=true
http-server.https.port=YOUR_HTTPS_PORT
http-server.https.keystore.path=PATH_TO_YOUR_SSL_CERTIFICATE

# enable OAuth 2.0
http-server.authentication.type=oauth2
http-server.authentication.oauth2.issuer=https://sts.windows.net/YOUR_TENANT_ID/
http-server.authentication.oauth2.client-id=NA_required_but_not_used
http-server.authentication.oauth2.client-secret=NA_required_but_not_used

# turn off oidc discovery - Trino will inspect tokens locally instead
http-server.authentication.oauth2.oidc.discovery=false

# URLs that Trino requires for OAuth
http-server.authentication.oauth2.jwks-url=https://login.microsoftonline.com/common/discovery/v2.0/keys
http-server.authentication.oauth2.auth-url=NA_required_but_not_used
http-server.authentication.oauth2.token-url=NA_required_but_not_used

# add audience that matches the Azure AD's Application ID URI
http-server.authentication.oauth2.additional-audiences=api://YOUR_CLIENT_ID

# set shared-secret required for internal Trino communication when authentication is enabled, see: https://github.com/trinodb/trino/issues/12397
# can be generated with the following Linux command: openssl rand 512 | base64
internal-communication.shared-secret=YOUR_SHARED_SECRET

# optionally, allow some insecure http traffic
# http-server.authentication.allow-insecure-over-http=true

Fazer login para executar consultas

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

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

Para fazer login no Microsoft Entra ID usando o Looker:

  1. Clique no menu de usuários do Looker.
  2. Selecione Conta.
  3. Na página Conta, clique em Fazer login na seção Credenciais de conexão OAuth.

Essa ação vai mostrar uma caixa de diálogo de login. Insira suas credenciais do Microsoft Entra ID e selecione Fazer login para conceder ao Looker acesso à sua conta de banco de dados.

Depois de fazer login no Microsoft Entra ID 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.

Referência

Para mais informações sobre como configurar o conector do Hive, consulte Conector do Hive do PrestoDB, Conector do Hive do Trino ou Conector do Hive do Starburst.

Suporte a recursos

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

O PrestoDB é compatível com os seguintes recursos a partir do Looker 25.10:

Recurso Compatível?
Nível de suporte
Com suporte
Looker (Google Cloud Core)
Sim
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas persistentes com base em SQL
Sim
Tabelas derivadas nativas persistentes
Sim
Visualizações 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 adicionais do JDBC
Sim
Diferenciação entre maiúsculas e minúsculas
Sim
Tipo de local
Sim
Tipo de lista
Sim
Percentil
Sim
Percentil distinto
Não
Mostrar processos do SQL Runner
Sim
Descrever tabela do SQL Runner
Sim
Mostrar índices do SQL Runner
Não
Selecionar 10 no SQL Runner
Sim
Contagem do SQL Runner
Sim
Explicação do SQL
Sim
Credenciais do OAuth 2.0
Não
Comentários de contexto
Sim
Pooling de conexão
Não
Esboços HLL
Sim
Reconhecimento agregado
Sim
TDPs incrementais
Não
Milissegundos
Sim
Microssegundos
Não
Visualizações materializadas.
Não
Medidas de comparação de períodos
Não
Contagem aproximada aproximada
Sim

O Trino é compatível com os seguintes recursos a partir do Looker 25.10:

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

Próximas etapas

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