Neste documento, descrevemos como configurar um Lakehouse entre nuvens para consultar dados de um catálogo do Databricks Unity Catalog diretamente noGoogle Cloud. Essa capacidade unifica a análise de dados ao integrar suas fontes de dados externas com o ambienteGoogle Cloud atual.
Depois, use o Lakehouse para Apache Iceberg para gerenciar o acesso aos seus dados federados.
Antes de começar
- Leia a visão geral do Lakehouse para entender como ele gerencia o acesso aos dados.
- Leia Sobre o Lakehouse entre nuvens para entender como ele funciona.
- Revise os catálogos compatíveis para verificar os requisitos de local externo e as configurações aceitas.
- Entenda como usar secrets regionais do Secret Manager. Isso é necessário para configurar um data lakehouse entre nuvens com o Unity Catalog do Databricks usando autenticação baseada em segredos.
- Gere um principal de serviço (ID do cliente e, opcionalmente, chave secreta do cliente) do OAuth no provedor de catálogo remoto com acesso de leitura ao catálogo de destino. Esse processo está fora do escopo desta documentação.
- Opcional: se você planeja rotear consultas por uma interconexão particular entre sua Google Cloud VPC e a VPC do provedor de nuvem remota (por exemplo, AWS), verifique se você tem uma conta ativa com o provedor remoto, provisione uma interconexão dedicada entre nuvens ou uma interconexão de parceiro entre nuvens, estabeleça sessões do BGP com o Cloud Router e verifique se você tem as permissões necessárias do IAM nos dois ambientes de nuvem.
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de 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, Secret Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake, Secret Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Funções exigidas
Para receber as permissões necessárias para configurar o Lakehouse entre nuvens, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Gerenciar catálogos do Lakehouse:
Administrador do BigLake (
roles/biglake.admin) -
Gerenciar secrets:
Administrador do Secret Manager (
roles/secretmanager.admin) (obrigatório apenas se você estiver usando a autenticação baseada em secrets) -
Fazer o roteamento do tráfego por interconexão particular:
Administrador de rede do Compute (
roles/compute.networkAdmin), leitor do Service Directory (roles/servicedirectory.viewer) e serviço autorizado do PSC do Service Directory (roles/servicedirectory.pscAuthorizedService)
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.
Detalhes do catálogo compatíveis
Este guia fornece instruções para configurar um Lakehouse entre nuvens com um catálogo do Databricks Unity Catalog na Amazon Web Services (AWS) ou no Google Cloud. Para informações detalhadas sobre requisitos de local externo e configurações compatíveis, consulte Catálogos compatíveis.
Limitações e considerações
Nesta seção, listamos as limitações e considerações para usar o Lakehouse entre nuvens.
- Provedores de nuvem compatíveis:o uso de uma interconexão particular com seu Lakehouse entre nuvens é compatível com os seguintes provedores de nuvem remotos: Amazon Web Services (AWS). Você pode usar uma Cross-Cloud Interconnect dedicada ou uma Cross-Cloud Interconnect por parceiro.
- Somente catálogos do Databricks Unity Catalog que usam um local externo na AWS ou um local externo no Google Cloud são compatíveis. Os catálogos do Unity Catalog que usam armazenamento padrão na AWS ou armazenamento padrão no Google Cloud não são compatíveis.
- É necessário ativar o acesso aos dados externos no metastore usado pelo Unity Catalog, que está desativado por padrão.
- Roteamento de rede:se uma interconexão privada (como CCI dedicada ou CCI de parceiro) não estiver configurada, as consultas serão roteadas pela Internet pública. Isso pode resultar em taxas de saída mais altas do seu provedor de nuvem remota e em uma performance menos previsível.
- Atualização de dados:a flag
--refresh-intervaldo catálogo federado determina a frequência de sincronização dos metadados. Um intervalo menor fornece dados mais recentes, mas pode gerar custos adicionais de API do provedor de catálogo remoto. Relatórios de métricas do Iceberg:o Relatório de métricas do Iceberg não está disponível para catálogos federados. Defina a propriedade
rest-metrics-reporting-enabledcomofalseno cliente do Iceberg ao acessar um catálogo federado.
Fluxo de trabalho geral
Para configurar e usar o Lakehouse entre nuvens, siga estas etapas gerais:
- Configure o Cross-Cloud Interconnect (opcional): configure uma conexão privada entre a Google Cloud VPC e o provedor de nuvem remota.
- Configurar a federação:configure a autenticação e crie um catálogo federado no Lakehouse.
- OpenID Connect (OIDC) (recomendado): crie o catálogo federado no Lakehouse especificando o ID do aplicativo do principal de serviço remoto e configure uma política de federação no Databricks usando o ID exclusivo da conta de serviço do catálogo do Lakehouse.
- Autenticação baseada em secret:crie um secret no Secret Manager com suas credenciais de catálogo remoto. Em seguida, crie um catálogo federado no Lakehouse e conceda à conta de serviço do catálogo acesso ao secret.
- Verifique a conexão:confira se o Lakehouse consegue se conectar ao catálogo remoto.
- Consultar dados:execute consultas nos seus dados federados usando o BigQuery ou o Serviço Gerenciado para Apache Spark. Para mais informações, consulte Usar Lakehouse entre nuvens.
- Configurar permissões:use o Identity and Access Management (IAM) para gerenciar quem pode visualizar e consultar os dados federados.
Configurar o Interconexão entre nuvens (opcional)
Por padrão, as consultas ao catálogo remoto são transmitidas pela Internet pública. Para ajudar a melhorar a segurança e a conformidade, oferecer desempenho previsível e reduzir os custos de transferência de dados, use uma interconexão privada. Isso estabelece uma conexão de rede dedicada e privada entre sua Google Cloud nuvem privada virtual (VPC) e a rede do provedor de nuvem remota (por exemplo, AWS).
É possível provisionar e configurar uma das seguintes opções de interconexão privada entre sua Google Cloud VPC e a VPC do provedor de nuvem remota (por exemplo, AWS):
- Cross-Cloud Interconnect dedicado: uma conexão física dedicada.
- Cross-Cloud Interconnect por parceiro: uma conexão por um provedor de serviços compatível.
Crie sessões do BGP entre o Cloud Router em Google Cloud e a VPC do provedor de nuvem remota para garantir a troca de rotas.
Para ativar consultas particulares, configure um caminho do Lakehouse para seu bucket de armazenamento remoto (por exemplo, um bucket do Amazon S3 da AWS) usando sua interconexão particular. Há dois fluxos arquitetônicos que você pode seguir para configurar esse roteamento:
- Roteamento do balanceador de carga de rede de proxy interno regional:esse fluxo usa um balanceador de carga de rede de proxy interno regionalGoogle Cloud para distribuir solicitações em grupos de endpoints de rede (NEGs) de conectividade híbrida que apontam para várias interfaces de rede elásticas (ENIs) da AWS. Esse fluxo é essencial para balanceamento de carga, escalonabilidade e alta disponibilidade. É necessário para a CCI de parceiro e recomendado para a CCI dedicada para balanceamento de carga, escalonabilidade e alta disponibilidade.
- Roteamento direto de endpoint:esse fluxo conecta o Diretório de serviços diretamente a um único endereço IP de endpoint de interface da VPC da AWS. Esse fluxo só funciona para CCI dedicado e não é compatível com CCI de parceiro.
Selecione o fluxo de configuração que corresponde aos seus requisitos de arquitetura:
Balanceador de carga de rede de proxy interno regional
Para configurar um balanceador de carga de rede de proxy regional interno para distribuir solicitações em várias ENIs da AWS para alta disponibilidade e balanceamento de carga, siga estas etapas:
Configurar a rede da AWS
Primeiro, crie um endpoint de interface de VPC do Amazon S3 (AWS PrivateLink):
- No console da VPC da AWS, crie um endpoint de interface para o Amazon S3.
- Como nome do serviço, especifique
com.amazonaws.<var>AWS_REGION</var>.s3. - Selecione a VPC e as sub-redes conectadas pelo Direct Connect à sua VPC Google Cloud .
- Anexe grupos de segurança ao endpoint para controlar o acesso de entrada.
- Isso provisiona interfaces de rede elásticas (ENIs, na sigla em inglês) em cada sub-rede selecionada. Anote os endereços IP particulares dessas ENIs.
Em seguida, configure os grupos de segurança:
- Verifique se o grupo ou os grupos de segurança anexados às ENIs do endpoint do Amazon S3 permitem o tráfego TCP de entrada na porta
443dos intervalos de IP relevantes da sua VPC Google Cloud .
Configurar Google Cloud rede
Siga as instruções para configurar um balanceador de carga de rede de proxy interno regional para endpoints híbridos.
Ao seguir as instruções, faça o seguinte:
- Crie NEGs de conectividade híbrida (
NON_GCP_PRIVATE_IP_PORT) e adicione os endereços IP particulares das ENIs da AWS que você criou anteriormente. - Use a porta TCP
443para os NEGs, a verificação de integridade e a regra de encaminhamento. - Configure o balanceador de carga na mesma região Google Cloud do catálogo federado.
Depois de criar a regra de encaminhamento para o balanceador de carga, anote o endereço IP interno atribuído a ele. Esta é sua
ILB_IP_ADDRESS.
Configurar o Service Directory
Registre o endereço IP do ILB no Diretório de serviços para que o Lakehouse possa descobri-lo.
Crie um namespace para sua nuvem remota:
gcloud service-directory namespaces create NAMESPACE \ --project=PROJECT_ID \ --location=REGION
Substitua:
NAMESPACE: um identificador exclusivo para seu namespace.PROJECT_ID: o ID do projeto do Google Cloud .REGION: a Google Cloud região. Por exemplo,us-east4. Precisa ser a mesma região do catálogo federado.
Crie um serviço no namespace do Diretório de serviços:
gcloud service-directory services create SERVICE_NAME \ --namespace=NAMESPACE \ --project=PROJECT_ID \ --location=REGION
Substitua:
SERVICE_NAME: um identificador exclusivo para seu serviço.
Crie um endpoint para o ILB no serviço:
gcloud service-directory endpoints create ENDPOINT_NAME \ --project=PROJECT_ID \ --namespace=NAMESPACE \ --service=SERVICE_NAME \ --location=REGION \ --network=projects/PROJECT_NUMBER/global/networks/VPC_NETWORK \ --address=ILB_IP_ADDRESS \ --port=443
Substitua:
ENDPOINT_NAME: um identificador exclusivo para seu endpoint.PROJECT_NUMBER: o número do projeto do Google Cloud. Use o número do projeto na flag--network.ILB_IP_ADDRESS: o endereço IP interno da regra de encaminhamento do ILB.
Endpoint direto
Para configurar o Diretório de serviços para rotear o tráfego diretamente para um único endereço IP de endpoint da VPC de interface da AWS, siga estas etapas:
- Crie um endpoint de VPC de interface para o Amazon S3 na sua VPC da AWS. Anote o endereço IP e a porta desse endpoint.
Crie um namespace para sua nuvem remota:
gcloud service-directory namespaces create NAMESPACE \ --project=PROJECT_ID \ --location=REGION
Substitua:
NAMESPACE: um identificador exclusivo para seu namespace.PROJECT_ID: o ID do projeto do Google Cloud .REGION: a Google Cloud região. Por exemplo,us-east4. Precisa ser a mesma região do catálogo federado.
Crie um serviço no namespace do Diretório de serviços:
gcloud service-directory services create SERVICE_NAME \ --namespace=NAMESPACE \ --project=PROJECT_ID \ --location=REGION
Substitua:
SERVICE_NAME: um identificador exclusivo para seu serviço.
Crie um endpoint no serviço que contenha as informações de roteamento para o endpoint de VPC de interface do Amazon S3:
gcloud service-directory endpoints create ENDPOINT_NAME \ --service=SERVICE_NAME \ --namespace=NAMESPACE \ --project=PROJECT_ID \ --location=REGION \ --address=S3_VPCE_IP_ADDRESS \ --port=S3_VPCE_PORT \ --network=projects/PROJECT_NUMBER/global/networks/VPC_NETWORK
Substitua:
ENDPOINT_NAME: um identificador exclusivo para seu endpoint.S3_VPCE_IP_ADDRESS: o endereço IP do endpoint da VPC de interface do Amazon S3. Por exemplo,10.0.1.45.S3_VPCE_PORT: o número da porta do endpoint da VPC de interface do Amazon S3. Por exemplo,443.PROJECT_NUMBER: o número do projeto do Google Cloud. Use o número do projeto na flag--network.VPC_NETWORK: o nome da rede VPC Google Cloud associada à sua interconexão particular.
Configurar a federação
Para consultar seus dados, configure um catálogo federado do Lakehouse que se conecte ao catálogo remoto.
Configurar a autenticação
A federação exige autenticação no catálogo remoto como um principal de serviço do Databricks. Escolha uma das seguintes opções de autenticação:
OIDC
O OpenID Connect (OIDC) permite a autenticação sem segredos usando a federação de tokens do OAuth do Databricks.
- Crie um principal de serviço na sua conta do Databricks com acesso de leitura ao catálogo de destino do Unity Catalog.
- Salve o ID do aplicativo (UUID) do principal de serviço. Você vai precisar dele para uma etapa posterior.
Baseado em secrets
Essa opção usa um ID e uma chave secreta do cliente OAuth armazenados com segurança usando secrets regionais do Secret Manager.
Crie um arquivo JSON chamado
credentials.jsoncom seu payload:{ "client_id": "CLIENT_ID", "client_secret": "CLIENT_SECRET" }
Substitua:
CLIENT_ID: o ID do cliente OAuth para seu principal de serviço do Databricks.CLIENT_SECRET: a chave secreta do cliente OAuth para sua entidade de serviço do Databricks.
Configure o endpoint regional do Secret Manager:
Por padrão, o Secret Manager usa um endpoint global. No entanto, o Lakehouse entre nuvens exige que seus secrets sejam armazenados na mesma região do catálogo do Lakehouse. Para interagir com segredos regionais usando a CLI
gcloud, substitua o endpoint da API padrão da sua sessão ou perfil atual. Para evitar problemas de conectividade, o segredo e o catálogo precisam ser criados na mesma região. Por exemplo,secretmanager.us-east4.rep.googleapis.com.gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/
Substitua:
REGION: a Google Cloud região em que seu secret do Secret Manager está armazenado. Por exemplo,us-east4. Para evitar problemas de conectividade, o segredo e o catálogo precisam ser criados na mesma região. Por exemplo,secretmanager.us-east4.rep.googleapis.com.
Faça upload da carga útil para o Secret Manager:
gcloud secrets create DATABRICKS_SECRET_NAME \ --location="REGION" \ --project="PROJECT_ID" \ --data-file=credentials.json
Substitua:
DATABRICKS_SECRET_NAME: um nome para o secret do Databricks.
Criar um catálogo federado
Crie o catálogo federado usando o comando gcloud biglake iceberg catalogs
create.
Considerações:
Somente os catálogos do Unity do Databricks que usam um local externo na AWS ou um local externo no Google Cloud são compatíveis. Os catálogos do Unity Catalog que usam armazenamento padrão na AWS ou armazenamento padrão no Google Cloud não são compatíveis.
Você precisa ativar o acesso aos dados externos no metastore usado pelo Unity Catalog, que fica desativado por padrão.
Console
Para criar um catálogo federado usando a autenticação baseada em secret:
No console Google Cloud , acesse Lakehouse.
Clique em Criar catálogo.
Clique em Catálogo federado.
Os detalhes da Configuração do catálogo aparecem.
Em Origem do catálogo federado, selecione Unity (Databricks).
Em Local dos dados, selecione a região do Lakehouse em que você quer criar o catálogo federado. Por exemplo,
us-east4. Para minimizar a latência (mesmo na Internet pública), faça o seguinte ao selecionar uma região:- Se o catálogo do Unity Catalog estiver na AWS, selecione a regiãoGoogle Cloud mais próxima da sua região da AWS.
- Se o catálogo do Unity Catalog estiver em Google Cloud, selecione a mesma região.
Clique em Continuar.
Os detalhes da conexão aparecem.
Na seção Detalhes do catálogo remoto, no campo Nome da instância do Unity, insira o nome da instância de destino do Databricks. Por exemplo,
abcd.cloud.databricks.com.No campo Nome do Unity Catalog, insira o nome do catálogo de destino do Databricks Unity Catalog para federar.
Selecione uma opção para Método de autenticação:
- Em OIDC, insira o ID do aplicativo para o principal de serviço.
- Em Secret, insira o nome do secret. Use o seguinte formato:
projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME.
Opcional: no campo Nome do diretório de serviços, insira o caminho para seu serviço do Diretório de Serviços. Por exemplo,
projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME. Isso só é necessário se você estiver configurando um Interconexão entre nuvens.Clique em Criar.
CLI da gcloud
OIDC
Se você usar o OIDC, especifique unity-service-principal-application-id.
Internet pública (sem CCI)
gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --primary-location="REGION" \ --catalog-type="federated" \ --federated-catalog-type="unity" \ --unity-service-principal-application-id="UNITY_SERVICE_PRINCIPAL_APPLICATION_ID" \ --unity-instance-name="UNITY_INSTANCE_NAME" \ --unity-catalog-name="UNITY_CATALOG_NAME" \ --refresh-interval="REFRESH_INTERVAL" \ --namespace-filters="NAMESPACE_FILTERS"
Substitua:
PROJECT_ID: o ID do projeto Google Cloud .REGION: a região do Lakehouse em que o catálogo federado é criado. Por exemplo,us-east4. Para minimizar a latência, faça o seguinte ao selecionar uma região:- Se o catálogo do Unity Catalog estiver na AWS, selecione a regiãoGoogle Cloud mais próxima da sua região da AWS.
- Se o catálogo do Unity Catalog estiver em Google Cloud, selecione a mesma região.
UNITY_SERVICE_PRINCIPAL_APPLICATION_ID: o ID do aplicativo (UUID) do principal de serviço do Databricks.UNITY_INSTANCE_NAME: o nome da instância de destino do Databricks. Por exemplo,abcd.cloud.databricks.com.UNITY_CATALOG_NAME: o nome do catálogo de destino do Databricks Unity Catalog a ser federado.REFRESH_INTERVAL: opcional. Especifica a frequência com que as informações do catálogo são atualizadas. Defina esse valor como uma duração, por exemplo,330sou5m30s. Intervalos mais curtos atualizam os dados com mais frequência, mas podem custar mais em chamadas de API. Intervalos mais longos podem custar menos, mas os dados consultados podem não refletir seu conjunto de dados mais atual. Se for omitido ou se o valor for definido como0s, a atualização de metadados em segundo plano não será iniciada. Ele vai permanecer desativado até que o intervalo de atualização seja atualizado para um valor positivo.NAMESPACE_FILTERS(opcional): uma lista separada por vírgulas de namespaces a serem federados. Por exemplo,ns1,ns2. Se omitido, todos os namespaces serão incluídos.
De propriedade do cliente (CCI)
Se você configurou uma interconexão privada (como CCI dedicada ou CCI de parceiro), forneça a referência do serviço do Diretório de serviços para que o Lakehouse roteie o tráfego de forma privada.
gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --primary-location="REGION" \ --catalog-type="federated" \ --federated-catalog-type="unity" \ --unity-service-principal-application-id="UNITY_SERVICE_PRINCIPAL_APPLICATION_ID" \ --unity-instance-name="UNITY_INSTANCE_NAME" \ --unity-catalog-name="UNITY_CATALOG_NAME" \ --refresh-interval="REFRESH_INTERVAL" \ --namespace-filters="NAMESPACE_FILTERS" \ --service-directory-name="projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME"
Substitua:
PROJECT_ID: o ID do projeto Google Cloud .PROJECT_NUMBER: o número do projeto do Google Cloud .REGION: a região do Lakehouse em que o catálogo federado é criado. Por exemplo,us-east4. Para minimizar a latência, faça o seguinte ao selecionar uma região:- Se o catálogo do Unity Catalog estiver na AWS, selecione a regiãoGoogle Cloud mais próxima da sua região da AWS.
- Se o catálogo do Unity Catalog estiver em Google Cloud, selecione a mesma região. Observação: precisa ser a mesma região do namespace do Diretório de Serviços e do secret regional.
UNITY_SERVICE_PRINCIPAL_APPLICATION_ID: o ID do aplicativo (UUID) do principal de serviço do Databricks.UNITY_INSTANCE_NAME: o nome da instância de destino do Databricks. Por exemplo,abcd.cloud.databricks.com.UNITY_CATALOG_NAME: o nome do catálogo de destino do Databricks Unity Catalog a ser federado.REFRESH_INTERVAL: opcional. Especifica a frequência com que as informações do catálogo são atualizadas. Defina esse valor como uma duração, por exemplo,330sou5m30s. Intervalos mais curtos atualizam os dados com mais frequência, mas podem custar mais em chamadas de API. Intervalos mais longos podem custar menos, mas os dados consultados podem não refletir seu conjunto de dados mais atual. Se for omitido ou se o valor for definido como0s, a atualização de metadados em segundo plano não será iniciada. Ele vai permanecer desativado até que o intervalo de atualização seja atualizado para um valor positivo.NAMESPACE_FILTERS(opcional): uma lista separada por vírgulas de namespaces a serem federados. Por exemplo,ns1,ns2. Se omitido, todos os namespaces serão incluídos.NAMESPACE: o namespace do Diretório de serviços que você criou durante a configuração da interconexão particular.SERVICE_NAME: o nome do serviço do Diretório de serviços que você criou durante a configuração da interconexão privada.
Baseado em secrets
Se você usar a autenticação baseada em secret, especifique secret-name.
Internet pública (sem CCI)
gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --primary-location="REGION" \ --catalog-type="federated" \ --federated-catalog-type="unity" \ --secret-name="projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME" \ --unity-instance-name="UNITY_INSTANCE_NAME" \ --unity-catalog-name="UNITY_CATALOG_NAME" \ --refresh-interval="REFRESH_INTERVAL" \ --namespace-filters="NAMESPACE_FILTERS"
Substitua:
PROJECT_ID: o ID do projeto Google Cloud .REGION: a região do Lakehouse em que o catálogo federado é criado. Por exemplo,us-east4. Para minimizar a latência, faça o seguinte ao selecionar uma região:- Se o catálogo do Unity Catalog estiver na AWS, selecione a regiãoGoogle Cloud mais próxima da sua região da AWS.
- Se o catálogo do Unity Catalog estiver em Google Cloud, selecione a mesma região.
DATABRICKS_SECRET_NAME: o nome do seu secret do Databricks.UNITY_INSTANCE_NAME: o nome da instância de destino do Databricks. Por exemplo,abcd.cloud.databricks.com.UNITY_CATALOG_NAME: o nome do catálogo de destino do Databricks Unity Catalog a ser federado.REFRESH_INTERVAL: opcional. Especifica a frequência com que as informações do catálogo são atualizadas. Defina esse valor como uma duração, por exemplo,330sou5m30s. Intervalos mais curtos atualizam os dados com mais frequência, mas podem custar mais em chamadas de API. Intervalos mais longos podem custar menos, mas os dados consultados podem não refletir seu conjunto de dados mais atual. Se for omitido ou se o valor for definido como0s, a atualização de metadados em segundo plano não será iniciada. Ele vai permanecer desativado até que o intervalo de atualização seja atualizado para um valor positivo.NAMESPACE_FILTERS(opcional): uma lista separada por vírgulas de namespaces a serem federados. Por exemplo,ns1,ns2. Se omitido, todos os namespaces serão incluídos.
De propriedade do cliente (CCI)
gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --primary-location="REGION" \ --catalog-type="federated" \ --federated-catalog-type="unity" \ --secret-name="projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME" \ --unity-instance-name="UNITY_INSTANCE_NAME" \ --unity-catalog-name="UNITY_CATALOG_NAME" \ --refresh-interval="REFRESH_INTERVAL" \ --namespace-filters="NAMESPACE_FILTERS" \ --service-directory-name="projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME"
Substitua:
PROJECT_ID: o ID do projeto Google Cloud .PROJECT_NUMBER: o número do projeto do Google Cloud .REGION: a região do Lakehouse em que o catálogo federado é criado. Por exemplo,us-east4. Para minimizar a latência, faça o seguinte ao selecionar uma região:- Se o catálogo do Unity Catalog estiver na AWS, selecione a regiãoGoogle Cloud mais próxima da sua região da AWS.
- Se o catálogo do Unity Catalog estiver em Google Cloud, selecione a mesma região. Observação: precisa ser a mesma região do namespace do Diretório de Serviços e do secret regional.
DATABRICKS_SECRET_NAME: o nome do seu secret do Databricks.UNITY_INSTANCE_NAME: o nome da instância de destino do Databricks. Por exemplo,abcd.cloud.databricks.com.UNITY_CATALOG_NAME: o nome do catálogo de destino do Databricks Unity Catalog a ser federado.REFRESH_INTERVAL: opcional. Especifica a frequência com que as informações do catálogo são atualizadas. Defina esse valor como uma duração, por exemplo,330sou5m30s. Intervalos mais curtos atualizam os dados com mais frequência, mas podem custar mais em chamadas de API. Intervalos mais longos podem custar menos, mas os dados consultados podem não refletir seu conjunto de dados mais atual. Se for omitido ou se o valor for definido como0s, a atualização de metadados em segundo plano não será iniciada. Ele vai permanecer desativado até que o intervalo de atualização seja atualizado para um valor positivo.NAMESPACE_FILTERS(opcional): uma lista separada por vírgulas de namespaces a serem federados. Por exemplo,ns1,ns2. Se omitido, todos os namespaces serão incluídos.NAMESPACE: o namespace do Diretório de serviços que você criou durante a configuração da interconexão particular.SERVICE_NAME: o nome do serviço do Diretório de serviços que você criou durante a configuração da interconexão privada.
Concluir a configuração da autenticação
Conclua a configuração com base na opção de autenticação escolhida:
OIDC
Quando o catálogo é criado, o Lakehouse provisiona uma conta de serviço exclusiva para ele. Recupere o ID numérico exclusivo da conta de serviço e use-o para configurar uma política de federação para o principal de serviço do Databricks.
Recupere o ID numérico exclusivo da conta de serviço do catálogo do Lakehouse:
gcloud biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --location="REGION" \ --format='value(biglake-service-account-id)'
Na sua conta do Databricks, configure uma política de federação para o principal de serviço criado anteriormente. Use os valores a seguir:
- URL do emissor:
https://accounts.google.com - Assunto: o ID numérico exclusivo da conta de serviço do catálogo do Lakehouse recuperado na etapa anterior.
- Público-alvo:
https://accounts.cloud.databricks.com
Verifique se a entidade de serviço do Databricks tem acesso de leitura ao catálogo e ao espaço de trabalho de destino.
- URL do emissor:
Baseado em secrets
Quando o catálogo é criado, o Lakehouse provisiona uma conta de serviço exclusiva para ele (retornada como biglake-service-account na descrição do recurso).
Você precisa conceder a essa conta de serviço permissão para acessar o secret que criou antes. A propagação das políticas do IAM pode levar alguns minutos.
Conceda à conta de serviço do catálogo permissão para acessar o secret.
gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/ gcloud secrets add-iam-policy-binding DATABRICKS_SECRET_NAME \ --project="PROJECT_ID" \ --location="REGION" \ --member="serviceAccount:$(gcloud biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --location="REGION" \ --format='value(biglake-service-account)')" \ --role="roles/secretmanager.secretAccessor"
Para verificar se a conta de serviço do catálogo federado tem acesso ao secret, execute o seguinte comando:
gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/ gcloud secrets get-iam-policy DATABRICKS_SECRET_NAME \ --project="PROJECT_ID" \ --location="REGION"
Na saída, verifique se a conta de serviço biglake-service-account tem o papel
roles/secretmanager.secretAccessor atribuído a ela.
Verifique a conexão
Verifique se o ciclo de atualização dos metadados em segundo plano do catálogo foi concluído e se os namespaces estão sincronizados.
Verifique se o status da atualização indica sucesso:
gcloud biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --location="REGION"
Confirme se os esquemas remotos aparecem como namespaces sincronizados:
gcloud biglake iceberg namespaces list \ --catalog="FEDERATED_CATALOG_NAME" \ --project="PROJECT_ID" \ --location="REGION"