PrestoDB e Trino

Estas páginas abordam a forma de associar o Looker ao PrestoDB ou ao Trino.

Encriptar o tráfego de rede

É uma prática recomendada encriptar o tráfego de rede entre a aplicação Looker e a sua base de dados. Considere uma das opções descritas na página de documentação Ativar o acesso seguro à base de dados.

Criar a ligação do Looker à sua base de dados

Na secção Administração do Looker, selecione Ligações e, de seguida, clique em Adicionar ligação.

Preencha os detalhes da ligação. A maioria das definições é comum à maioria dos dialetos de bases de dados. Consulte a página de documentação Associar o Looker à sua base de dados para ver informações. Algumas das definições são descritas a seguir:

  • Dialeto: selecione PrestoDB ou Trino.

    O PrestoSQL mudou de marca e passou a chamar-se Trino. Se estiver a usar uma versão do Trino anterior à 352, selecione PrestoSQL no menu de dialetos do Looker.

  • Anfitrião: o nome do anfitrião da base de dados.

  • Porta: a porta da base de dados. A porta predefinida é 8080.

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

  • Nome de utilizador: o nome de utilizador do utilizador que vai executar consultas.

    Estas informações só são enviadas para o servidor da base de dados se o SSL estiver ativado.

  • Palavra-passe: palavra-passe do utilizador que vai executar consultas.

    Estas informações só são enviadas para o servidor da base de dados se o SSL estiver ativado.

  • Esquema: o esquema predefinido a usar quando não é especificado nenhum esquema.

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

    • Use Conta da base de dados para especificar o Nome de utilizador e a Palavra-passe da conta de utilizador da base de dados que vai ser usada para estabelecer ligação ao Looker.
    • Use o OAuth se quiser configurar o OAuth para a ligação.
  • Ativar PDTs: use este botão para ativar as tabelas derivadas persistentes (PDTs). Esta ação revela campos PDT adicionais e a secção Substituições de PDT para a associação.

  • Base de dados temporária: o esquema para escrever PDTs. (A versão 3.50 adicionou suporte PDT ao Presto. Consulte a secção Configurar o PrestoDB ou o Trino para PDTs nesta página para mais informações sobre como configurar o Presto para suporte de PDTs.)

  • Parâmetros JDBC adicionais: quaisquer parâmetros adicionais do controlador JDBC do PrestoDB, do controlador JDBC do Trino ou do controlador JDBC do Starburst.

  • SSL: selecione esta opção para ativar as ligações SSL.

  • Verify SSL: ignore este campo. Todas as ligações SSL usam o Java Truststore predefinido, a menos que seja indicado o contrário com os parâmetros JDBC do PrestoDB, o controlador JDBC do Trino ou o controlador JDBC do Starburst. Introduza estes parâmetros no campo Parâmetros JDBC adicionais.

Para verificar se a associação foi bem-sucedida, clique em Testar. Consulte a página de documentação Testar a conetividade da base de dados para ver informações de resolução de problemas.

Para guardar estas definições, clique em Associar.

Para mais informações sobre as definições de ligação, consulte a página de documentação Ligar o Looker à sua base de dados.

Configurar o PrestoDB ou o Trino para PDTs

As PDTs não são suportadas para associações que usam o OAuth.

O suporte de PDT depende do conetor que está a usar com o PrestoDB ou o Trino . Esta secção explica as definições de configuração necessárias para uma base de dados temporária. Este exemplo parte do princípio de que o conetor que está a usar é o hive.

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

O seguinte é necessário porque o Presto armazena em cache os resultados da metastore do Hive e o Looker tem de poder ver as tabelas imediatamente:

hive.metastore-cache-ttl = 0s

Estas duas propriedades são obrigatórias porque o Looker tem de poder eliminar e mudar o nome das PDTs:

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

Para referência, nos nossos servidores de testes internos do Presto, usamos o seguinte ficheiro 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

Configurar o OAuth para ligações do Trino

O Looker suporta o OAuth para ligações ao Trino, o que significa que cada utilizador do Looker se autentica na base de dados e autoriza o Looker a executar consultas na base de dados com a sua própria conta de utilizador do OAuth.

O OAuth permite que os administradores da base de dados realizem as seguintes tarefas:

  • Audite que utilizadores do Looker estão a executar consultas na base de dados
  • Aplique controlos de acesso baseados em funções através de autorizações ao nível da base de dados
  • Use tokens OAuth para todos os processos e ações que acedem à base de dados, em vez de incorporar IDs e palavras-passe da base de dados em vários locais
  • Revogue a autorização de um determinado utilizador diretamente através da base de dados

Com as ligações do Trino que usam o OAuth, os utilizadores têm de iniciar sessão novamente periodicamente quando os respetivos tokens OAuth expiram.

Tenha em atenção o seguinte para as ligações OAuth ao nível da base de dados:

  • Se um utilizador deixar o respetivo token OAuth expirar, todos os agendamentos ou alertas que detém são afetados. Para se proteger contra esta situação, o Looker envia um email de notificação ao proprietário de cada agendamento e de cada alerta antes de o token OAuth ativo atual expirar. O Looker envia estes emails de notificação 14 dias, 7 dias e 1 dia antes de o token expirar. O utilizador pode aceder à respetiva página de utilizador do Looker para voltar a autorizar o Looker na base de dados e evitar interrupções nos respetivos agendamentos e alertas. Consulte a página de documentação Personalizar as definições da conta de utilizador para ver detalhes.
  • Uma vez que as ligações à base de dados que usam o OAuth são "por utilizador", as políticas de colocação em cache também são por utilizador e não apenas por consulta. Isto significa que, em vez de usar resultados em cache sempre que a mesma consulta é executada no período de colocação em cache, o Looker usa resultados em cache apenas se o mesmo utilizador tiver executado a mesma consulta no período de colocação em cache. 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) não são suportadas para associações do Trino com OAuth.
  • Quando um administrador do Looker usa o comando sudo como outro utilizador, o administrador usa o token de acesso OAuth desse utilizador. Se o token de acesso do utilizador tiver expirado, o administrador não pode criar um novo token em nome do utilizador com privilégios de superutilizador. Consulte a página de documentação Utilizadores para ver informações sobre a utilização do comando sudo.
  • Quando inicia sessão no Azure AD a partir do Looker através do OAuth, o Looker não apresenta uma caixa de diálogo de consentimento do utilizador explícita. Ao configurar o OAuth com o Looker, consente implicitamente que a sua instância do Looker aceda aos seus dados do Trino.

Registar uma aplicação

Para ativar o OAuth para o Trino, comece por registar uma aplicação através de um fornecedor de identidade suportado. O Looker só suporta o Microsoft Entra ID (anteriormente conhecido como Azure AD) para o OAuth com o Trino.

Pré-requisitos

  • Tem de ter uma subscrição do Azure.
  • Tem de ter autorizações administrativas no Microsoft Entra ID.

Para registar uma aplicação, siga estes passos:

  1. Aceda ao portal do Azure e inicie sessão com as suas credenciais.
  2. Na barra de pesquisa do portal do Azure, pesquise "Microsoft Entra ID" e selecione-o nos resultados.
  3. No serviço Microsoft Entra ID, clique em Novo registo na secção Registos de apps da categoria Gerir.
  4. Preencha o formulário de registo da seguinte forma:
    • Nome: indique um nome descritivo para a aplicação, como Looker Trino Connection.
    • Tipos de contas suportados: selecione a opção adequada com base na forma como quer restringir o acesso. Para um exemplo de utilização interno, pode selecionar Apenas contas neste diretório organizacional.
    • URI de redirecionamento: selecione a plataforma Web e, de seguida, introduza o URI de redirecionamento do Looker. Deve ter este aspeto: https://YOUR_LOOKER_HOSTNAME/external_oath/redirect.
  5. Clique em Registar.
  6. Reúna o ID de cliente, o ID do inquilino e o segredo do cliente para introduzir posteriormente na sua ligação do Looker.
    • Pode encontrar o ID de cliente e o ID do inquilino na página Vista geral.
    • Se não souber qual é o seu segredo do cliente, tem de criar um novo. Clique em Certificados e segredos na secção Gerir e, de seguida, clique em Novo segredo do cliente.
  7. Clique em Expor uma API na secção Gerir.
  8. Junto a URI do ID da aplicação, clique em Adicionar.
  9. Introduza o seu ID de cliente. Deve estar no seguinte formato: api://CLIENT_ID.

Em seguida, siga estes passos no portal do Azure para criar um novo âmbito a usar com o Looker:

  1. Clique em Adicionar um âmbito na secção Âmbitos definidos por esta API.
  2. Adicione um Nome do âmbito para o novo âmbito. O Looker espera que o nome do âmbito seja: TrinoUsers.Read.All.

    O nome TrinoUsers.Read.All implica autorizações apenas de leitura, mas o nome em si não define nem aplica autorizações. Certifique-se de que configura o âmbito para permitir apenas o acesso de leitura à sua base de dados.

  3. Adicione um Nome a apresentar e uma Descrição.

  4. No seletor Quem pode dar consentimento?, selecione Administradores e utilizadores.

  5. Clique em Adicionar âmbito.

  6. Na secção Aplicações cliente autorizadas, clique em Adicionar uma aplicação cliente.

  7. Introduza o seu ID de cliente e o âmbito recém-criado.

  8. Clique em Add application.

Em seguida, para conceder ao Looker as autorizações de API necessárias, siga estes passos:

  1. Na secção Gerir, clique em Autorizações da API.
  2. Clique em Adicionar uma autorização.
  3. Selecione o separador As minhas APIs na parte superior.
  4. Na lista de registos de apps, selecione o registo que acabou de criar, como Looker Trino Connection.
  5. Selecione a caixa de verificação Autorizações delegadas.
  6. Selecione a caixa de verificação TrinoUsers.Read.All.
  7. Selecione Adicionar autorização.

Configurar a base de dados para usar o OAuth

Em seguida, para configurar a sua base de dados Trino para usar o OAuth, adicione as seguintes linhas ao ficheiro config.properties do Trino. (Substitua as primeiras cinco 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

Iniciar sessão para executar consultas

Assim que a ligação à base de dados estiver configurada para usar o OAuth, os utilizadores são convidados a iniciar sessão no Microsoft Entra ID antes de executar consultas. Isto inclui consultas de Explorar, painéis de controlo, Looks e SQL Runner.

Os utilizadores também podem iniciar sessão no Microsoft Entra ID a partir da secção Credenciais da ligação OAuth na respetiva página Conta.

Para iniciar sessão no Microsoft Entra ID através do Looker:

  1. Clique no menu de utilizador do Looker.
  2. Selecione Conta.
  3. Na página Conta, clique em Iniciar sessão na secção Credenciais da ligação OAuth.

Esta ação apresenta uma caixa de diálogo de início de sessão. Introduza as suas credenciais do Microsoft Entra ID e selecione Iniciar sessão para conceder ao Looker acesso à sua conta da base de dados.

Depois de iniciar sessão no Microsoft Entra ID através do Looker, pode terminar sessão ou voltar a autorizar as suas credenciais em qualquer altura através da página Conta, conforme descrito na página de documentação Personalizar a sua conta de utilizador.

Referência

Para mais informações sobre a configuração do conetor do Hive, consulte PrestoDB Hive Connector, Trino Hive Connector ou Starburst Hive Connector.

Suporte de funcionalidades

Para que o Looker suporte algumas funcionalidades, o dialeto da base de dados também tem de as suportar.

O PrestoDB suporta as seguintes funcionalidades a partir do Looker 25.14:

Funcionalidade Compatível?
Nível de apoio técnico
Suportado
Looker (Google Cloud Core)
Sim
Dados agregados simétricos
Sim
Tabelas derivadas
Sim
Tabelas derivadas SQL persistentes
Sim
Tabelas derivadas nativas persistentes
Sim
Vistas 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 JDBC adicionais
Sim
Sensível a maiúsculas e minúsculas
Sim
Tipo de localização
Sim
Tipo de lista
Sim
Percentil
Sim
Percentil distinto
Não
Execução de SQL Mostrar processos
Sim
Execução de SQL Describe Table
Sim
Execução de SQL Mostrar índices
Não
Execução de SQL Select 10
Sim
Contagem da execução de SQL
Sim
SQL Explain
Sim
Credenciais do OAuth 2.0
Não
Comentários de contexto
Sim
Agrupamento de ligações
Não
Esboços HLL
Sim
Notoriedade agregada
Sim
PDTs incrementais
Não
Milissegundos
Sim
Microssegundos
Não
Vistas materializadas
Não
Medidas de comparação de períodos
Não
Contagem distinta aproximada
Sim

O Trino suporta as seguintes funcionalidades a partir do Looker 25.14:

Funcionalidade Compatível?
Nível de apoio técnico
Suportado
Looker (Google Cloud Core)
Sim
Dados agregados simétricos
Sim
Tabelas derivadas
Sim
Tabelas derivadas SQL persistentes
Sim
Tabelas derivadas nativas persistentes
Sim
Vistas 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 JDBC adicionais
Sim
Sensível a maiúsculas e minúsculas
Sim
Tipo de localização
Sim
Tipo de lista
Sim
Percentil
Sim
Percentil distinto
Não
Execução de SQL Mostrar processos
Sim
Execução de SQL Describe Table
Sim
Execução de SQL Mostrar índices
Não
Execução de SQL Select 10
Sim
Contagem da execução de SQL
Sim
SQL Explain
Sim
Credenciais do OAuth 2.0
Sim
Comentários de contexto
Sim
Agrupamento de ligações
Não
Esboços HLL
Sim
Notoriedade agregada
Sim
PDTs incrementais
Não
Milissegundos
Sim
Microssegundos
Não
Vistas materializadas
Não
Medidas de comparação de períodos
Não
Contagem distinta aproximada
Sim

Passos seguintes

Depois de associar a sua base de dados ao Looker, configure as opções de início de sessão para os seus utilizadores.