Consultas federadas do SAP Datasphere
Como analista de dados, pode consultar dados relacionais no SAP Datasphere a partir do BigQuery através de consultas federadas.
A federação do SAP Datasphere do BigQuery permite que o BigQuery consulte dados residentes no SAP Datasphere em tempo real, sem copiar nem mover dados.
Para executar uma consulta SQL no SAP Datasphere, especifique essa consulta SQL no BigQuery numa função EXTERNAL_QUERY
. Em seguida, os resultados são transferidos do SAP Datasphere para o BigQuery.
Limitações
- Só pode consultar vistas relacionais que estejam expostas para consumo. Outros objetos no SAP Datasphere não estão acessíveis à consulta federada através do
EXTERNAL_QUERY
. - A latência da consulta federada pode ser visivelmente superior à da mesma consulta se fosse executada diretamente no SAP Datasphere.
- A primeira consulta que usa a ligação do SAP Datasphere num determinado projeto pode demorar mais de um minuto a ser executada.
- Não são suportados SQL pushdowns adicionais para o SAP Datasphere.
- A consulta SQL do SAP Datasphere tem de especificar alias para colunas que contenham resultados de funções.
- Quando a utilização da API Compute Engine no projeto de consulta é restrita pelos VPC Service Controls, a consulta federada falha.
Antes de começar
Certifique-se de que o administrador do BigQuery criou uma associação do SAP Datasphere e a partilhou consigo.
Funções necessárias
Para receber as autorizações de que precisa para consultar o SAP Datasphere,
peça ao seu administrador para lhe conceder a função de IAM de
utilizador da ligação do BigQuery (roles/bigquery.connectionUser
) no projeto.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Consultar dados
Para enviar uma consulta federada para o SAP Datasphere a partir de uma consulta GoogleSQL, use a função EXTERNAL_QUERY.
O exemplo seguinte é uma consulta federada que junta uma tabela no SAP Datasphere denominada ORDERS
e uma tabela no BigQuery denominada 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;
Veja um esquema de tabela do SAP Datasphere
Os exemplos seguintes usam a função EXTERNAL_QUERY para obter metadados da base 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 da execução de uma consulta federada baseia-se 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 com o SAP Datasphere dependem do tipo de serviço SAP que usa. Para limitar o custo da largura de banda, recomendamos que escreva a consulta no elemento EXTERNAL_QUERY
para que exclua todas as colunas e linhas que não sejam necessárias para calcular o resultado final.
Não existe um custo adicional para executar consultas federadas no BigQuery. Para mais informações acerca dos preços do BigQuery, consulte a secção Preços.
O que se segue?
- Saiba mais acerca das consultas federadas.
- Saiba mais sobre os tipos de dados não suportados.