PrestoDB e Trino

Esta página discute como conectar o Looker ao PrestoDB ou ao Trino.

Como criptografar o tráfego de rede

É recomendável 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 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 Como conectar o Looker ao seu banco de dados para mais informações. Confira a seguir a descrição de algumas configurações:

  • Dialecto: selecione PrestoDB ou Trino.

    O PrestoSQL foi renomeado como Trino. Se você estiver usando uma versão do Trino anterior à 352, selecione PrestoSQL no menu de dialeto 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 de banco de dados se o SSL estiver ativado.

  • Senha: senha 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.

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

  • Autenticação: selecione Conta de 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 PDT e a seção Modificações de PDT 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 Configurar o PrestoDB ou o Trino para PDTs nesta página para mais informações sobre como configurar o Presto para 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 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 JDBC adicionais.

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

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

O suporte a PDT 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 inicial. Neste exemplo, pressupomos 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.

O seguinte é necessário porque o Presto armazena em cache os resultados do metastore do Hive, e o Looker precisa acessar 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, nos 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 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 função 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 no 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. A Looker vai enviar esses e-mails de notificação 14 dias, 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 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, em vez de usar os resultados em cache sempre que a mesma consulta for executada dentro do período de armazenamento em cache, 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 o armazenamento em cache, consulte a página de documentação Armazenamento em cache de consultas.
  • 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 usa 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 seus dados do Trino.

Como registrar um aplicativo

Para ativar o OAuth para o 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 de ID da Microsoft Entra, clique em Novo registro na seção Registros de app 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. Que precisa ser semelhante a 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ê pode encontrar 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 chaves secretas na seção Gerenciar e 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 nenhuma permissão. 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 de cliente autorizados, clique em Adicionar um aplicativo de cliente.

  7. Insira o 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.

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 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 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 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 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 Hive, consulte Conector Hive do PrestoDB, Conector Hive do Trino ou Conector 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.20:

Recurso Compatível?
Nível de suporte
Compatível
Looker (Google Cloud Core)
Sim
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas persistentes do SQL
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Sim
Consulta de interrupção
Sim
Pivots baseados 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
SQL Runner Show Processes
Sim
Tabela de descrição do SQL Runner
Sim
Índices de exibição do SQL Runner
Não
SQL Runner Select 10
Sim
Contagem do SQL Runner
Sim
SQL Explain
Sim
Credenciais do OAuth
Não
Comentários de contexto
Sim
Pooling de conexão
Não
Esboços HLL
Sim
Conscientização agregada
Sim
PDTs incrementais
Não
Milissegundos
Sim
Microssegundos
Não
Visualizações materializadas
Não
Contagem aproximada de valores distintos
Sim

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

Recurso Compatível?
Nível de suporte
Compatível
Looker (Google Cloud Core)
Sim
Agregações simétricas
Sim
Tabelas derivadas
Sim
Tabelas derivadas persistentes do SQL
Sim
Tabelas derivadas nativas nativas
Sim
Visualizações estáveis
Não
Consulta de interrupção
Sim
Pivots baseados 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
SQL Runner Show Processes
Sim
Tabela de descrição do SQL Runner
Sim
Índices de exibição do SQL Runner
Não
SQL Runner Select 10
Sim
Contagem do SQL Runner
Sim
SQL Explain
Sim
Credenciais do OAuth
Sim
Comentários de contexto
Sim
Pooling de conexão
Não
Esboços HLL
Sim
Conscientização agregada
Sim
PDTs incrementais
Não
Milissegundos
Sim
Microssegundos
Não
Visualizações materializadas
Não
Contagem aproximada de valores distintos
Sim

Próximas etapas

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