PrestoDB e Trino

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

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

  • Dialeto: selecione PrestoDB ou Trino.

    O PrestoSQL foi renomeado como Trino (link em inglês). 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", nos termos do Presto.

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

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

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

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

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

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

    • Use Database Account 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 esse botão para ativar as tabelas derivadas persistentes (PDTs). Isso revela outros campos de TDP e a seção Substituições de TDP para a conexão.

  • Banco de dados temporário: o esquema para gravar PDTs. A versão 3.50 adicionou compatibilidade com PDT ao 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 compatibilidade com PDT.

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

  • SSL: marque essa opção para ativar conexões SSL.

  • Verificar SSL: ignore este campo. Todas as conexões SSL usarão o Java Truststore padrão, a menos que haja uma instrução diferente para isso 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 adicionais do JDBC.

Para verificar se a conexão foi bem-sucedida, clique em Testar. Consulte a página de documentação Como 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 configurações de conexão, consulte a página de documentação Como conectar o Looker ao banco de dados.

Como configurar o PrestoDB ou o Trino para PDTs

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

A compatibilidade com a TDP depende do conector usado com o PrestoDB ou o Trino . Nesta seção, explicamos as definições de configuração necessárias para um banco de dados de rascunho. Neste exemplo, consideramos que o conector que você está usando é hive.

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

Os itens a seguir são necessários porque o Presto armazena em cache os resultados do metastore do Hive, e o Looker precisa ver as tabelas imediatamente:

hive.metastore-cache-ttl = 0s

Essas duas propriedades são necessárias porque o Looker precisa descartar e renomear PDTs:

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

Para referência, em nossos servidores de teste internos do Presto, usamos o seguinte arquivo hive.properties, que é usado para 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 para conexões OAuth para Trino, o que significa que cada usuário do Looker se autentica no banco de dados e autoriza o Looker a executar consultas no banco de dados com a própria conta de usuário OAuth.

O OAuth permite que os administradores de bancos de dados executem as seguintes tarefas:

  • Auditar quais usuários do Looker estão executando consultas no banco de dados
  • Aplicar controles de acesso baseados em funções 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 de bancos de dados em vários locais
  • Revogar a autorização de um determinado usuário diretamente pelo banco de dados

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

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

  • Se um usuário permitir que o token OAuth expire, as programações ou os alertas dele serão afetados. Para se proteger contra 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 dias e 1 dia antes do token expirar. O usuário pode acessar a página de usuário do Looker para reautorizar o Looker no banco de dados e evitar interrupções nas programações e 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 de banco de dados 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 de armazenamento em cache, o Looker usará os resultados armazenados em cache somente se o mesmo usuário tiver executado a mesma consulta nesse período. Para mais informações sobre o armazenamento em cache, consulte a página de documentação Consultas de armazenamento em cache.
  • As tabelas derivadas persistentes (PDTs, na sigla em inglês) não são compatíveis com conexões do Trino com OAuth.
  • Quando um administrador do Looker executa 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 o sudoed. 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 de consentimento explícito do usuário. Ao configurar o OAuth com o Looker, você consente implicitamente que a instância do Looker acesse os dados do Trino.

Como registrar um aplicativo

Para ativar o OAuth para Trino, primeiro registre um aplicativo usando um provedor de identidade compatível. O Looker só oferece suporte ao ID do Microsoft Entra (antigo AD do Azure) para OAuth com 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, pesquise "Microsoft Entra ID" e selecione essa opção nos resultados.
  3. No serviço do Microsoft Entra ID, clique em Novo registro na seção Registros de apps da categoria Gerenciar.
  4. Preencha o formulário de registro da seguinte forma:
    • Nome: forneça um nome descritivo para o aplicativo, como Looker Trino Connection.
    • Tipos de conta compatíveis: selecione a opção apropriada com base em como você quer restringir o acesso. Em um caso de uso interno, você pode selecionar Contas apenas neste diretório organizacional.
    • URI de redirecionamento: selecione a plataforma Web e insira o URI de redirecionamento do Looker. Ele terá esta aparência: 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.
    • Você encontra o ID do cliente e o ID do locatário na página Visão geral.
    • Crie uma chave secreta do cliente caso você não saiba essa informação. Clique em Certificados e chaves secretas na seção Gerenciar e clique 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 no seguinte formato: api://CLIENT_ID.

Em seguida, siga estas etapas no Portal do Azure para criar um escopo para usar 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 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 permissões. Configure 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 consentir?, 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 que você acabou de criar.

  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 registro 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.

Como configurar o banco de dados para usar o OAuth

Em seguida, para configurar o banco de dados do Trino para usar OAuth, adicione as seguintes linhas ao arquivo config.properties do Trino. (Substitua as cinco primeiras linhas das variáveis em maiúsculas por 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

Como fazer login para executar consultas

Depois que a conexão do banco de dados estiver configurada para usar o OAuth, os usuários precisarão fazer login no Microsoft Entra ID antes de executar consultas. Isso inclui consultas de Análises, dashboards, Looks e SQL Runner.

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

Para fazer login no Microsoft Entra ID usando o Looker:

  1. Clique no menu do usuário 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 exibirá 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 do banco de dados.

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

Referência

Para mais informações sobre como configurar o conector do Hive, consulte Conector do Hive do PrestoDB, Conector do Treino Hive 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 24.10:

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 persistentes
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Sim
Eliminação de consultas
Sim
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 de exibição do SQL Runner
Sim
Tabela de descrição do executor do SQL
Sim
Mostrar índices do SQL Runner
No
Seleção do SQL Runner 10
Sim
Contagem de executores do SQL
Sim
Explicação do SQL
Sim
Credenciais OAuth
No
Comentários de contexto
Sim
Pool de conexão
No
Esboços do HLL
Sim
Agregar reconhecimento
Sim
TDPs incrementais
No
Milissegundos
Sim
Microssegundos
No
Visualizações materializadas
No
Contagem aproximada diferente
Sim

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

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 persistentes
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
No
Eliminação de consultas
Sim
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 de exibição do SQL Runner
Sim
Tabela de descrição do executor do SQL
Sim
Mostrar índices 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 de contexto
Sim
Pool de conexão
No
Esboços do HLL
Sim
Agregar reconhecimento
Sim
TDPs incrementais
No
Milissegundos
Sim
Microssegundos
No
Visualizações materializadas
No
Contagem aproximada diferente
Sim

Próximas etapas

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