Este documento explica como configurar Google Cloud para permitir que o SAP Business Data Cloud (BDC) acesse dados do BigQuery sem copiá-los. Para isso, configure o endpoint do catálogo REST do Apache Iceberg no catálogo de ambiente de execução do Lakehouse para Apache Iceberg ou um produto de dados do Knowledge Catalog para compartilhar com o SAP.
Para uma visão geral dessa integração e dos casos de uso dela, consulte Sobre a integração do SAP BDC.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake and Dataplex APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake and Dataplex APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- Bucket do Cloud Storage: crie um bucket do Cloud Storage para armazenar os metadados e arquivos de dados do Iceberg. Para instruções, consulte Criar buckets. Todos os recursos, incluindo o bucket de back-end, precisam existir na mesma região para evitar falhas no pipeline de configuração.
- Catálogo REST do Apache Iceberg: configure um endpoint do catálogo REST do Apache Iceberg no catálogo de ambiente de execução do Lakehouse com a distribuição de credenciais ativada, contendo os namespaces e tabelas que você quer compartilhar. Esse catálogo usa o bucket do Cloud Storage como armazém. Para instruções, consulte Configurar o catálogo REST do Iceberg.
- Catálogo de conexão do Delta Sharing: prepare um catálogo de conexão do Delta Sharing registrado para sua conexão do SAP BDC. Esse é o mesmo catálogo criado durante a configuração inicial para compartilhar dados do SAP BDC com o BigQuery. Não é necessário criar um novo. Para instruções, consulte Configurar o Lakehouse entre nuvens para o SAP BDC.
- Federação de identidade da carga de trabalho (WIF): prepare-se para configurar a WIF para confiar no emissor de autenticação do SAP BDC. Você vai configurar isso na seção a seguir.
Funções exigidas
Para receber as permissões necessárias para configurar a federação de identidade da carga de trabalho e publicar dados, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Gerenciar a federação de identidade da carga de trabalho:
administrador do pool de identidade da carga de trabalho do IAM (
roles/iam.workloadIdentityPoolAdmin) -
Publicar produtos de dados:
administrador do BigLake (
roles/biglake.admin) -
Visualizar metadados do catálogo (concedido ao principal da WIF):
leitor do BigLake (
roles/biglake.viewer) -
Consumir cota de serviço (concedido ao principal da WIF):
Consumidor de uso do serviço (
roles/serviceusage.serviceUsageConsumer)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Fluxo de trabalho geral
Para publicar dados no SAP BDC, siga estas etapas:
- Configurar a federação de identidade da carga de trabalho:crie um pool e um provedor de federação de identidade da carga de trabalho para estabelecer confiança com o emissor OIDC do SAP BDC.
- Conceder papéis ao principal federado:conceda permissões de identidade federada para visualizar metadados do catálogo e consumir cota de serviço.
- Publicar dados:publique o catálogo REST do Apache Iceberg ou um produto de dados do Knowledge Catalog no SAP BDC usando a CLI
gcloud.
Configurar a federação de identidade da carga de trabalho
Para permitir que o SAP BDC acesse os recursos do Lakehouse sem exigir chaves de conta de serviço exportadas, configure a federação de identidade da carga de trabalho (WIF). Isso estabelece confiança entre Google Cloud o emissor OIDC do SAP BDC.
Siga estas etapas para configurar o pool e o provedor da WIF:
Acessar o URI do emissor
Recupere o URI do emissor OIDC do catálogo de conexão do Delta Sharing. Você precisa desse URI para configurar o provedor da WIF.
gcloud alpha biglake delta-sharing catalogs describe CONNECTION_CATALOG_ID \ --project="PROJECT_ID"
Na resposta ao comando, localize o campo federatedIdentityIssuer, que contém o URI do emissor.
Criar o pool de identidade da carga de trabalho
Crie um pool de identidade da carga de trabalho para agrupar identidades externas.
gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --display-name="POOL_DISPLAY_NAME" \ --project="PROJECT_ID"
Criar o provedor OIDC
Crie um provedor OIDC no pool para definir a confiança e mapear as declarações de token.
gcloud iam workload-identity-pools providers create-oidc PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="ISSUER_URI" \ --attribute-mapping="google.subject=assertion.sub.split('://')[1].split('.')[0]" \ --project="PROJECT_ID"
Conceder papéis ao principal federado
Autorize a identidade federada do pool confiável a chamar as APIs do Google necessárias. É possível autorizar um UUID de assunto específico ou o pool inteiro.
Para autorizar um assunto específico (recomendado):
gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/biglake.viewer" \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/WIF_SUBJECT" gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/serviceusage.serviceUsageConsumer" \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/WIF_SUBJECT"
Substitua WIF_SUBJECT pelo UUID emitido pelo emissor do lado do SAP para a carga de trabalho.
Para autorizar todas as identidades no pool (menos restritivo, adequado para ambientes de teste):
gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/biglake.viewer" \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*" gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/serviceusage.serviceUsageConsumer" \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*"
Publicar dados no SAP BDC
É possível publicar um catálogo REST do Apache Iceberg usando o Google Cloud console ou a Google Cloud CLI, ou publicar um produto de dados do Knowledge Catalog que contenha tabelas do Iceberg usando a CLI gcloud. A publicação de um produto de dados não é compatível com o Google Cloud console.
Catálogo REST do Iceberg
Antes de publicar, verifique se as tabelas do Iceberg têm chaves primárias e pelo menos uma linha, já que o SAP BDC exige as duas para consultas.
Console
No Google Cloud console, acesse a página Catálogo de ambiente de execução do Lakehouse.
No painel de navegação, expanda o projeto e selecione o catálogo Delta (catálogo de conexão) a ser usado para publicação.
Clique em Publicar produto de dados.
Insira os detalhes de compartilhamento necessários, incluindo a seleção do catálogo REST do Iceberg a ser publicado.
Clique em Publicar.
gcloud
Verifique se o endpoint do catálogo REST do Apache Iceberg existe e acesse os detalhes dele:
gcloud alpha biglake iceberg catalogs describe ICEBERG_CATALOG_ID \ --project="PROJECT_ID"
Publique o catálogo REST do Apache Iceberg no SAP BDC. O catálogo de conexão, o catálogo do Iceberg e o bucket do Cloud Storage subjacente precisam estar na mesma região.
gcloud alpha biglake data-product-sharing publish \ --connection-catalog="projects/PROJECT_ID/catalogs/CONNECTION_CATALOG_ID" \ --share="SAP_SHARE_NAME" \ --sap-federated-identity-provider="projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID" \ --iceberg-catalog="projects/PROJECT_ID/catalogs/ICEBERG_CATALOG_ID" \ --title="TITLE_TEXT" \ --short-description="SHORT_DESCRIPTION_TEXT" \ --description="DETAILED_DESCRIPTION_TEXT" \ --project="PROJECT_ID"
O catálogo REST do Apache Iceberg publicado pode ser descoberto no SAP BDC e instalado no SAP Datasphere como uma tabela remota.
Substitua:
CONNECTION_CATALOG_ID: o catálogo de conexão do Delta Sharing registrado que foi criado durante a configuração inicial para compartilhar dados do SAP BDC com o BigQuery. É o mesmo catálogo do Delta Sharing mencionado nas instruções de configuração. Não é necessário criar outro para publicar de volta.PROJECT_NUMBER: o número do seu Google Cloud projeto. Osap-federated-identity-providerprecisa usar o número do projeto, não o ID do projeto.POOL_ID: o ID do pool da WIF.PROVIDER_ID: o ID do provedor da WIF.TITLE_TEXTeSHORT_DESCRIPTION_TEXT: valores de exibição necessários para o compartilhamento no SAP BDC.DETAILED_DESCRIPTION_TEXT: uma descrição detalhada opcional. Não insira o mesmo texto para a descrição breve e a descrição detalhada, porque isso será rejeitado pelo SAP. A operação de publicação também será rejeitada se a descrição detalhada contiver a descrição breve exata como uma substring. Por exemplo, se a descrição breve forSales Data, uma descrição detalhada deLonger Sales Data detailsserá rejeitada porque contémSales Data. No entanto, uma descrição detalhada de "Informações de vendas mais longas" será aceita.
Produto de dados do Knowledge Catalog
Como alternativa, é possível publicar um produto de dados do Knowledge Catalog. Um produto de dados é um agrupamento lógico e selecionado de recursos de dados (como tabelas ou visualizações) agrupados para resolver problemas de negócios específicos. Em vez de publicar um catálogo completo, é possível selecionar tabelas específicas do Apache Iceberg, agrupá-las em um produto de dados e publicar essa coleção selecionada no SAP BDC.
Crie o produto de dados:
gcloud alpha dataplex data-products create DATA_PRODUCT_ID \ --location="LOCATION" \ --display-name="TITLE_TEXT" \ --description="SHORT_DESCRIPTION_TEXT" \ --owner-emails="OWNER_EMAIL" \ --project="PROJECT_ID"
O
--display-nameé mapeado para otitleno SAP BDC, e--descriptioné mapeado para oshort_description.Vincule um recurso de tabela do Iceberg do Lakehouse ao produto de dados:
gcloud alpha dataplex data-products data-assets create DATA_ASSET_ID \ --data_product="DATA_PRODUCT_ID" \ --location="LOCATION" \ --resource="//biglake.googleapis.com/projects/PROJECT_ID/catalogs/ICEBERG_CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME" \ --project="PROJECT_ID"
Ao configurar recursos em um produto de dados, os recursos de tabela precisam ter chaves primárias e pelo menos uma linha. Todos os recursos de dados em um único produto de dados precisam pertencer ao mesmo catálogo REST do Apache Iceberg. Um produto de dados pode ter no máximo 50 tabelas e precisa conter pelo menos um recurso de dados válido para publicação. As tabelas do Iceberg podem não aparecer no Google Cloud console imediatamente.
Opcional: verifique os recursos no produto de dados:
gcloud alpha dataplex data-products data-assets list \ --data_product="DATA_PRODUCT_ID" \ --location="LOCATION" \ --project="PROJECT_ID"
Publique o produto de dados no SAP BDC. Verifique se o catálogo de conexão, o produto de dados e os recursos subjacentes estão na mesma região.
gcloud alpha biglake data-product-sharing publish \ --connection-catalog="projects/PROJECT_ID/catalogs/CONNECTION_CATALOG_ID" \ --share="SAP_SHARE_NAME" \ --sap-federated-identity-provider="projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID" \ --data-product="projects/PROJECT_ID/locations/LOCATION/dataProducts/DATA_PRODUCT_ID" \ --project="PROJECT_ID"
O produto de dados publicado pode ser descoberto no SAP BDC e pode ser instalado no SAP Datasphere como uma tabela remota. No SAP BDC, o produto de dados publicado herda o título e a descrição breve definidos ao criar o produto de dados do Knowledge Catalog.
Substitua:
CONNECTION_CATALOG_ID: o catálogo de conexão do Delta Sharing registrado que foi criado durante a configuração inicial para compartilhar dados do SAP BDC com o BigQuery. É o mesmo catálogo do Delta Sharing mencionado nas instruções de configuração. Não é necessário criar outro para publicar de volta.PROJECT_NUMBER: o Google Cloud número do seu projeto. Osap-federated-identity-providerprecisa usar o número do projeto, não o ID do projeto.POOL_ID: o ID do pool da WIF.PROVIDER_ID: o ID do provedor da WIF.DATA_PRODUCT_ID: o ID do produto de dados do Knowledge Catalog.LOCATION: o local do produto de dados do Knowledge Catalog.SAP_SHARE_NAME: o nome do compartilhamento no SAP BDC.
Acessando Google Cloud dados no SAP BDC
Depois de publicar os dados no SAP BDC, é possível acessar Google Cloud dados nativamente no ambiente SAP. Para mais informações sobre como instalar e consumir produtos de dados no SAP como tabelas remotas, consulte Instalar produtos de dados na documentação do SAP.
A seguir
- Solucionar problemas do Lakehouse entre nuvens para o SAP BDC.
- Instalar produtos de dados na documentação do SAP.