PrestoDB e Trino

Esta página discute 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:

  • Dialecto: 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", em termos do Presto.

  • Nome de usuário: o nome de usuário do usuário que vai executar 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 de 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 Conta de 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 TDP e a seção Substituições de TDP da conexão.

  • Banco de dados temporário: o esquema para gravar PDTs. A versão 3.50 adicionou suporte ao 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 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 esse campo. Todas as conexões SSL vão usar a loja de certificados Java padrão, a menos que sejam instruídas a fazer 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 adicionais do JDBC.

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.

Para mais informações sobre as configurações de conexão, consulte a página de documentação Como conectar o Looker ao seu 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 . Esta seção explica as configurações necessárias para um banco de dados do zero. Neste exemplo, consideramos que o conector que você está usando é hive.

O arquivo de propriedades do catálogo do Hive precisa 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 poder soltar 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 ao OAuth para conexões do Trino, 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.

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
  • 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 pelo banco de dados

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

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 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 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 Como personalizar as configurações de contas 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 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 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 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 exibe uma caixa de diálogo de consentimento explícita 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 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, pesquise "ID do Microsoft Entra" 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 contas compatíveis: selecione a opção adequada 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. Colete o ID do cliente, o ID do locatário e a chave secreta do cliente para inserir na conexão do Looker mais tarde.
    • Você encontra o ID do cliente e o ID do locatário na página Visão geral.
    • Se você não souber o secreto do cliente, crie um novo. Clique em Certificados e secrets 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 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 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 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 o OAuth, adicione as linhas abaixo 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

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, 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 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 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 oferecer suporte a eles.

O PrestoDB oferece suporte aos seguintes recursos a partir do Looker 24.16:

Recurso Compatível?
Nível de suporte
Compatível
Looker (Google Cloud Core)
Sim
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas SQL persistentes
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Sim
Consulta de interrupção
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
Não
Processos de exibição do SQL Runner
Sim
Tabela de descrição do executor do SQL
Sim
Mostrar índices do SQL Runner
Não
Seleção do SQL Runner 10
Sim
Contagem de executores do SQL
Sim
Explicação do SQL
Sim
Credenciais OAuth
Não
Comentários de contexto
Sim
Pool de conexão
Não
Esboços HLL
Sim
Conscientização agregada
Sim
TDPs incrementais
Não
Milissegundos
Sim
Microssegundos
Não
Visualizações materializadas
Não
Contagem aproximada distinta
Sim

O Trino oferece suporte aos seguintes recursos a partir do Looker 24.16:

Recurso Compatível?
Nível de suporte
Compatível
Looker (Google Cloud Core)
Sim
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas SQL persistentes
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Não
Consulta de interrupção
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
Não
Processos de exibição do SQL Runner
Sim
Tabela de descrição do executor do SQL
Sim
Mostrar índices do SQL Runner
Não
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
Não
Esboços HLL
Sim
Conscientização agregada
Sim
TDPs incrementais
Não
Milissegundos
Sim
Microssegundos
Não
Visualizações materializadas
Não
Contagem aproximada distinta
Sim

Próximas etapas

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