Interface SQL aberta

A camada de modelagem semântica LookML do Looker permite que um analista de dados defina dimensões, agregações, cálculos e relações de dados em um banco de dados SQL. Os modelos da LookML oferecem reutilização de código e integração com o Git. Um modelo LookML bem estruturado permite que os usuários façam a própria exploração e geração de relatórios de dados de autoatendimento.

O modelo LookML é a base de todos os dados solicitados ao Looker, seja pela interface de análise detalhada do Looker na interface do usuário do Looker, uma visualização incorporada no portal da empresa ou outro aplicativo de terceiros, ou um aplicativo personalizado desenvolvido com a API do Looker. A interface Open SQL oferece acesso aos modelos da LookML para qualquer aplicativo de terceiros que seja compatível com a Java Database Connectivity (JDBC). Os aplicativos podem se conectar a um modelo do LookML como se fosse um banco de dados. Assim, os usuários aproveitam todo o trabalho feito pelos analistas de dados no modelo do LookML, usando as ferramentas com que têm mais familiaridade.

Como a interface Open SQL mostra elementos do projeto LookML

Para entender como a interface Open SQL mostra os elementos de um projeto do LookML, é importante saber como os projetos do LookML são estruturados.

Um projeto do LookML é uma coleção de arquivos que descrevem os objetos, as conexões de banco de dados e os elementos da interface do usuário usados para realizar consultas SQL no Looker. Consulte Termos e conceitos do LookML para mais informações. Os seguintes conceitos do projeto LookML estão relacionados à interface Open SQL:

  • Um modelo do LookML especifica uma conexão de banco de dados e uma ou mais Análises. A interface Open SQL mostra modelos como esquemas de banco de dados.
  • Uma Análise é um agrupamento lógico de uma ou mais visualizações e as relações de junção entre elas. A interface Open SQL mostra as análises detalhadas como tabelas de banco de dados.
  • Uma visualização define uma coleção de campos (dimensões e métricas). Uma visualização geralmente é baseada em uma tabela no seu banco de dados ou em uma tabela derivada. As visualizações podem conter as colunas da tabela de banco de dados subjacente, bem como dimensões ou métricas personalizadas que os usuários finais podem precisar. A interface Open SQL mostra a combinação de um nome de visualização e um nome de campo como um nome de coluna de banco de dados. Por exemplo, a dimensão id na visualização order_items é apresentada pela interface Open SQL como uma coluna de banco de dados chamada order_items.id.

Uma análise detalhada do Looker pode definir relações de junção entre várias visualizações. Como é possível que uma visualização tenha um campo com o mesmo nome de um campo em outra visualização, a interface SQL aberta inclui o nome da visualização e o nome do campo ao fazer referência a uma coluna. Portanto, use este formato para referenciar um nome de coluna ao enviar consultas para a interface SQL aberta:

`<view_name>.<field_name>`

Por exemplo, se houver uma análise detalhada chamada order_items que une uma visualização chamada customer com outra chamada product, e ambas tiverem uma dimensão id, você se referirá aos dois campos id como `customer.id` e `product.id`, respectivamente. Para usar o nome completo com o nome da análise detalhada também, você se referirá aos dois campos como `order_items`.`customer.id` e `order_items`.`product.id`. Consulte Usar crases em torno de identificadores de banco de dados para saber onde colocar as crases ao se referir a identificadores de banco de dados.

Como configurar a interface Open SQL

Para usar a interface Open SQL, siga estas etapas:

  1. Verifique se os requisitos foram atendidos.
  2. Faça o download do arquivo de driver JDBC da interface Open SQL.

As seções a seguir descrevem essas etapas.

Requisitos

Os seguintes componentes são necessários para usar a interface Open SQL:

Baixar o driver JDBC da interface Open SQL

O driver JDBC da interface SQL aberta do Looker é chamado de avatica-<release_number>-looker.jar. Faça o download da versão mais recente no GitHub em https://github.com/looker-open-source/calcite-avatica/releases.

O driver JDBC espera o seguinte formato de URL:

jdbc:looker:url=https://Looker instance URL

Exemplo:

jdbc:looker:url=https://myInstance.cloud.looker.com

A classe do driver JDBC é:

org.apache.calcite.avatica.remote.looker.LookerDriver

Como autenticar na interface Open SQL

A interface Open SQL é compatível com três métodos de autenticação:

OAuth

Os clientes JDBC que oferecem suporte ao OAuth podem ser configurados para usar o servidor OAuth de uma instância do Looker. Siga as etapas para configurar a autenticação OAuth:

  1. Use a extensão do API Explorer para registrar o cliente OAuth do JDBC na sua instância do Looker para que ela possa reconhecer solicitações OAuth. Consulte Registrar um aplicativo cliente OAuth para instruções.
  2. Faça login no Looker com o OAuth para solicitar um token de acesso. Consulte Como fazer login do usuário usando o OAuth para ver um exemplo.
  3. Use um objeto Properties para transmitir as credenciais do OAuth ao abrir a conexão JDBC com a interface Open SQL.

Confira um exemplo usando DriverManager#getConnection(<String>, <Properties>`):

String access_token = getAccessToken() //uses the Looker OAuth flow to get a token
String URL = "jdbc:looker:url=https://myInstance.cloud.looker.com"
Properties info = new Properties( );
info.put("token", access_token);
Connection conn = DriverManager.getConnection(URL, info);

Gerar um token de acesso usando chaves de API

Em vez de usar o fluxo OAuth padrão para gerar um token de acesso, siga estas etapas para usar a API Looker e gerar um token de acesso que pode ser transmitido ao driver JDBC da interface Open SQL:

  1. Gere chaves de API para seu usuário do Looker, conforme descrito na página Configurações de admin - Usuários.
  2. Use o endpoint de API login para sua instância do Looker. A resposta inclui um token de acesso no formato Authorization: token <access_token>. Confira abaixo um exemplo do comando curl que pode ser usado para fazer essa solicitação:

      curl -k -d "client_id=<client_id>&client_secret=<client_secret>" https://<looker_host>/login\
    
  3. Transmita o valor <access_token> da resposta como o token no objeto de propriedades para transmitir as credenciais do OAuth ao abrir a conexão JDBC com a interface Open SQL.

Chaves de API

Você também pode usar chaves de API para autenticar em vez de um nome de usuário e senha. As chaves de API são consideradas menos seguras do que o OAuth e podem estar disponíveis apenas durante a prévia da interface Open SQL. Consulte Chaves de API para saber como criar chaves de API para sua instância do Looker.

Use a parte ID do cliente da chave de API Looker como nome de usuário. Use a parte Chave secreta do cliente para a senha.

Executar consultas com a interface Open SQL

Observe as seguintes diretrizes ao executar consultas com a interface Open SQL:

Limitações do SQL

Observe as seguintes limitações do SQL ao enviar consultas para a interface Open SQL:

Use crase em identificadores de banco de dados

Ao enviar consultas para a interface Open SQL, use crases em torno dos identificadores de esquema, tabela e coluna. Veja como especificar elementos de banco de dados usando crases com termos do Looker:

  • schema: `<model_name>`.
  • tabela: `<explore_name>`
  • coluna: `<view_name>.<field_name>`

Confira um exemplo de formato de instrução SELECT usando esses elementos:

SELECT `view.field`
  FROM `model`.`explore`
  LIMIT 10;