OGoogle Cloud permite compartilhar dados do BigQuery com o SAP Business Data Cloud (BDC) sem copiá-los. Para publicar dados no SAP BDC, configure um endpoint de catálogo REST do Apache Iceberg no catálogo do ambiente de execução do Lakehouse ou configure um Knowledge Catalog Data Product.
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 conta do Google Cloud . Se você começou a usar o Google Cloudagora, 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 sem custos financeiros.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake and Dataplex APIs, if any are not already enabled.
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, if any are not already enabled.
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 estar na mesma região para evitar falhas no pipeline de configuração.
- Endpoint do catálogo REST do Apache Iceberg: configure um endpoint do catálogo REST do Apache Iceberg no catálogo do ambiente de execução do Lakehouse com a venda de credenciais ativada, contendo os namespaces e as tabelas que você quer compartilhar. Esse catálogo usa o bucket do Cloud Storage como warehouse. Para instruções, consulte Configurar o endpoint do catálogo REST do Apache Iceberg.
- Catálogo de conexões do Delta Sharing: prepare um catálogo de conexões 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 pessoais compartilhados do SAP BDC com o BigQuery. Não é necessário criar um novo. Para instruções, consulte Configurar a conexão entre nuvens para o SAP Business Data Cloud.
- 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 próxima seção.
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 de pool de Identidade da carga de trabalho do IAM (
roles/iam.workloadIdentityPoolAdmin) -
Publicar produtos de dados:
Administrador do BigLake (
roles/biglake.admin) -
Acessar metadados do catálogo (concedido ao principal da WIF):
Leitor do BigLake (
roles/biglake.viewer) -
Consumir cota de serviço (concedida ao principal da WIF):
Consumidor do Service Usage (
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 usando 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 do OIDC do SAP BDC.
- Conceder papéis ao principal federado:conceda à identidade federada permissões para visualizar metadados do catálogo e consumir cotas de serviço.
- Publicar dados:publique seu endpoint do 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 seus recursos do Lakehouse sem fronteiras sem exigir chaves de conta de serviço exportadas, configure a federação de identidade da carga de trabalho (WIF, na sigla em inglês). Isso estabelece confiança entre o Google Cloud e o emissor do OIDC do SAP BDC.
Siga estas etapas para configurar o pool e o provedor de WIF:
Acessar o URI do emissor
Recupere o URI do emissor do OIDC no catálogo de conexões do Delta Sharing. Você precisa desse URI para configurar o provedor de WIF.
gcloud 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 do 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 todo o pool.
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 endpoint de catálogo REST do Apache Iceberg ou um produto de dados do Knowledge Catalog que contenha tabelas do Iceberg usando o console do Google Cloud ou a Google Cloud CLI.
Catálogo REST do Iceberg
Antes de publicar, verifique se as tabelas do Iceberg têm chaves primárias definidas
usando identifier-field-ids nos metadados da tabela do Iceberg e
pelo menos uma linha, porque o SAP BDC exige as duas para consultas. Qualquer coluna
referenciada em identifier-field-ids precisa ser definida como
required: true (não anulável) no esquema do Iceberg. Se a tabela não tiver chaves primárias ou contiver campos de chave anuláveis, consulte Atualizar o esquema da tabela do Iceberg para chaves primárias para atualizá-las usando a API REST do BigLake.
Console
No console do Google Cloud , acesse a página Catálogo do ambiente de execução do Lakehouse.
No painel de navegação, expanda seu projeto e selecione o Catálogo Delta (catálogo de conexão) que 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 confira os detalhes dele:
gcloud biglake iceberg catalogs describe ICEBERG_CATALOG_ID \ --project="PROJECT_ID"
Publique o endpoint do 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 precisam estar na mesma região.
gcloud 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 endpoint do 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ões do Delta Sharing inscrito 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 projeto do Google Cloud . A flag--sap-federated-identity-providerprecisa usar o número do projeto, não o ID do projeto.POOL_ID: o ID do pool de WIF.PROVIDER_ID: o ID do provedor de WIF.TITLE_TEXTeSHORT_DESCRIPTION_TEXT: valores de exibição obrigató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 curta e a descrição detalhada, porque isso é rejeitado pelo SAP. A operação de publicação também será rejeitada se a descrição detalhada contiver a descrição curta exata como uma substring. Por exemplo, se a descrição curta 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" é 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) empacotados 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.
Console
No console do Google Cloud , acesse a página Knowledge Catalog.
No menu de navegação, selecione Produtos de dados.
Clique no produto de dados que você quer publicar para abrir a página de detalhes.
Clique em Compartilhar e selecione Publicar no SAP.
No painel Publicar produto de dados no SAP, configure os seguintes campos:
- Nome do compartilhamento: insira o nome do compartilhamento no SAP BDC.
- Catálogo Delta: selecione o catálogo de conexão do Delta Sharing inscrito.
- Identidade da carga de trabalho: selecione ou insira o provedor do pool de Identidade da carga de trabalho.
Clique em Publicar.
gcloud
Crie o produto de dados:
gcloud 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 o--descriptioné mapeado para oshort_description.Vincule um recurso de tabela do Apache Iceberg gerenciado pelo Lakehouse ao produto de dados:
gcloud 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 definidas usando
identifier-field-idsnos metadados da tabela do Iceberg (com todas as colunas de identificador marcadas comorequired: true) e pelo menos uma linha. Se a tabela não tiver chaves primárias ou contiver campos de chave anuláveis, consulte Atualizar o esquema da tabela do Iceberg para chaves primárias para atualizá-las usando a API REST do BigLake. 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 console do Google Cloud imediatamente.Opcional: verifique os recursos no seu produto de dados:
gcloud 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ões, o produto de dados e os recursos relacionados estão na mesma região.
gcloud 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 instalado no SAP Datasphere como uma tabela remota. No SAP BDC, o produto de dados publicado herda o título e a descrição curta definidos ao criar o produto de dados do Knowledge Catalog.
Substitua:
CONNECTION_CATALOG_ID: o catálogo de conexões do Delta Sharing inscrito 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 projeto do Google Cloud. Osap-federated-identity-providerprecisa usar o número do projeto, não o ID do projeto.POOL_ID: o ID do pool de WIF.PROVIDER_ID: o ID do provedor de WIF.DATA_PRODUCT_ID: o ID do seu 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.
Acessar dados do Google Cloud no SAP BDC
Depois de publicar seus dados no SAP BDC, você pode acessar os dados do Google Cloud nativamente no ambiente SAP. Para mais informações sobre como instalar e consumir produtos de dados no SAP como tabelas remotas, consulte Como instalar produtos de dados na documentação do SAP.
A seguir
- Resolver problemas de acesso ao SAP BDC.
- Como instalar produtos de dados na documentação do SAP.