Consultas federadas do SAP Datasphere
Como analista de dados, é possível consultar dados relacionais no SAP Datasphere pelo BigQuery usando consultas federadas.
A federação SAP Datasphere do BigQuery permite que o BigQuery consulte dados que residem no SAP Datasphere em tempo real, sem copiar ou mover dados.
Para executar uma consulta SQL no SAP Datasphere, especifique essa consulta SQL no BigQuery em uma função EXTERNAL_QUERY
. Em seguida, os resultados são transferidos do SAP Datasphere para o BigQuery.
Limitações
- Só é possível consultar visualizações relacionais que estejam expostas para consumo. Outros objetos no SAP Datasphere não podem ser acessados pela consulta federada por
EXTERNAL_QUERY
. - A conexão com o SAP Datasphere pode ser feita de qualquer endereço IP externo que pertença ao Google Cloud, e esse endereço IP pode mudar com o tempo. Portanto, você precisa adicionar todos os endereços IP externos do Google Cloud à lista de permissões no SAP Datasphere.
- A latência da consulta federada pode ser visivelmente maior do que a mesma consulta se ela for executada diretamente no SAP Datasphere.
- A primeira consulta que usa a conexão do SAP Datasphere em um determinado projeto pode levar mais de um minuto para ser executada.
- Não há suporte para Pushdowns SQL adicionais no SAP Datasphere.
- A consulta SQL do SAP Datasphere precisa especificar aliases para as colunas que contêm resultados da função.
- Quando o uso da API Compute Engine no projeto de consulta é restrito pelo VPC Service Controls, a consulta federada falhará.
Antes de começar
Verifique se o administrador do BigQuery criou uma conexão do SAP Datasphere e compartilhou com você.
Funções exigidas
Para ter as permissões necessárias para consultar o SAP Datasphere,
peça ao administrador para conceder a você o papel do IAM de
usuário de conexão do BigQuery (roles/bigquery.connectionUser
) no projeto.
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Consultar dados
Para enviar uma consulta federada para o SAP Datasphere de uma consulta do GoogleSQL, use a função EXTERNAL_QUERY.
O exemplo a seguir é uma consulta federada que mescla uma tabela no SAP Datasphere chamada ORDERS
e uma tabela no BigQuery chamada mydataset.customers
.
SELECT c.customer_id, c.name, rq.first_order_date
FROM mydataset.customers AS c
LEFT OUTER JOIN EXTERNAL_QUERY(
'connection_id',
'''SELECT CUSTOMER_ID, MIN(ORDER_DATE) AS first_order_date
FROM ORDERS
GROUP BY CUSTOMER_ID''') AS rq
ON rq.customer_id = c.customer_id
GROUP BY c.customer_id, c.name, rq.first_order_date;
Conferir um esquema de tabela do SAP Datasphere
Os exemplos a seguir usam a função EXTERNAL_QUERY para recuperar metadados do banco de dados do esquema SYS
no SAP Datasphere.
-- List all views in a schema.
SELECT * FROM EXTERNAL_QUERY(
'connection_id',
'''SELECT VIEW_NAME FROM SYS.VIEWS
WHERE SCHEMA_NAME = 'MY_SCHEMA'''');
-- List all columns in a view.
SELECT * FROM EXTERNAL_QUERY(
'connection_id',
'''SELECT COLUMN_NAME, DATA_TYPE_NAME
FROM SYS.VIEW_COLUMNS
WHERE SCHEMA_NAME = 'MY_SCHEMA' AND
VIEW_NAME = 'my_view'
ORDER BY POSITION''');
Preços
O custo de executar uma consulta federada é baseado em três fatores:
- O custo de computação da execução da consulta no SAP Datasphere.
- O custo da largura de banda da transferência dos resultados da consulta do SAP Datasphere para o BigQuery.
- O custo de computação da execução da consulta no BigQuery.
Todos os custos relacionados ao SAP Datasphere dependem do tipo de serviço SAP que você usa. Para
limitar o custo da largura de banda, recomendamos que você grave a consulta no
EXTERNAL_QUERY
para que exclua todas as colunas e linhas que não sejam necessárias para
calcular o resultado final.
Não há custo adicional para executar consultas federadas no BigQuery. Para mais informações sobre os preços do BigQuery, consulte Preços.
A seguir
- Saiba mais sobre consultas federadas.
- Saiba mais sobre os tipos de dados não compatíveis.