Elimine os silos de dados e evite alternar entre ferramentas usando um conector do Knowledge Catalog (antigo Dataplex Universal Catalog) para importar metadados do Snowflake Horizon diretamente para o Google Cloud.
Esse conector é compatível com instâncias do Snowflake Horizon hospedadas no Google Cloud, no Microsoft Azure ou na Amazon Web Services (AWS).
A tabela a seguir lista os metadados que o conector do Snowflake Horizon captura:
| Categoria | Metadados capturados |
|---|---|
| Técnico |
|
| Operacional |
|
| Negócios |
|
| Semântica |
|
Limitações
O conector do Snowflake Horizon tem as seguintes limitações:
- Não há suporte para linhagem.
- O conector importa os metadados das tabelas do Iceberg, mas não os vincula automaticamente às tabelas físicas subjacentes no Iceberg REST Catalog (IRC).
- Tags, resultados de qualidade de dados e criação de perfil, resultados de classificação,
mesclagens de histórico de consultas e insights de uso que leem
ACCESS_HISTORY(usuários frequentes e tabelas mescladas com frequência) exigem o Snowflake Enterprise Edition ou superior.
Antes de começar
Antes de importar metadados do Snowflake Horizon, conclua as seguintes tarefas:
- Conceda os papéis e as permissões necessários.
- Ative a API Dataplex e a API do serviço de transferência de dados do BigQuery.
- Atenda aos pré-requisitos do Snowflake Horizon.
- Atenda aos pré-requisitos de rede.
Permissões e papéis do IAM
Para criar e gerenciar um job do conector do Knowledge Catalog, você precisa de papéis do Identity and Access Management (IAM) que concedem permissões para o Knowledge Catalog e o serviço de transferência de dados do BigQuery.
Para receber as permissões necessárias para configurar um conector do Snowflake Horizon, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Para criar e gerenciar grupos de entrada:
Administrador do Dataplex Catalog
(
roles/dataplex.catalogAdmin), Editor do Dataplex Catalog (roles/dataplex.catalogEditor) ou Proprietário do grupo de entrada do Dataplex (roles/dataplex.entryGroupOwner) no projeto. - Para acessar os metadados do Snowflake Horizon:
Leitor do Dataplex Catalog
(
roles/dataplex.catalogViewer) no projeto. - Para criar e gerenciar jobs de transferência do serviço de transferência de dados do BigQuery:
Administrador do BigQuery
(
roles/bigquery.admin) no projeto. - Para ver registros no Cloud Logging:
Visualizador de registros
(
roles/logging.viewer) no projeto.
Você também precisa conceder ao agente de serviço do serviço de transferência de dados do BigQuery
(service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com)
os dois papéis a seguir:
- Importador de grupo de entrada do Dataplex
(
roles/dataplex.entryGroupImporter), no grupo de entrada de destino ou no projeto que o contém. Esse papel permite que o agente de serviço importe metadados para o grupo de entrada (dataplex.entryGroups.import). Proprietário de entradas e links de entradas do Dataplex (
roles/dataplex.entryOwner), no projeto que contém o grupo de entrada de destino. Esse papel permite que o agente de serviço importe metadados de uso, negócios e qualidade de dados, além de links de entrada. Ele inclui as seguintes permissões:dataplex.entryGroups.useDataProfileAspectdataplex.entryGroups.useDataQualityScorecardAspectdataplex.entryGroups.useManagedConnectorTypesdataplex.entryGroups.useReferenceEntryLinkdataplex.entryGroups.useSchemaAspectdataplex.entryGroups.useSchemaJoinAspectdataplex.entryGroups.useSchemaJoinEntryLinkdataplex.entryGroups.useUsageAspectdataplex.entryLinks.reference
Conceda esse papel no projeto, não apenas no grupo de entrada, porque a importação verifica a permissão
dataplex.entryLinks.referenceno projeto. Se o agente de serviço não tiver essa permissão no projeto, a execução da transferência vai falhar com um erro comoPermission 'dataplex.entryLinks.reference' denied, e nenhum metadado será importado.
Em vez de conceder esses dois papéis, é possível conceder o papel de
Proprietário do grupo de entrada do Dataplex
(roles/dataplex.entryGroupOwner) no projeto que contém o
grupo de entrada de destino. Esse papel inclui as permissões de ambos os papéis e
também permite que o agente de serviço crie, exclua e gerencie o acesso a todos os grupos de entrada
no projeto.
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Ativar APIs
Ative a API Dataplex e a API serviço de transferência de dados do BigQuery.
Pré-requisitos do Snowflake Horizon
Se você também quiser executar consultas SQL ou jobs do Spark no catálogo remoto do Snowflake, consulte Configurar uma conexão entre nuvens para o catálogo do Snowflake Horizon.
O conector faz login no Snowflake como um usuário do Snowflake com autenticação de par de chaves e lê metadados do esquema SNOWFLAKE.ACCOUNT_USAGE. A autenticação por senha não é aceita. Um
administrador do Snowflake, como um usuário com o papel ACCOUNTADMIN,
precisa concluir as seguintes etapas:
Crie um papel para o conector e conceda a ele acesso ao
ACCOUNT_USAGEe a um warehouse que executa as consultas de metadados:CREATE ROLE IF NOT EXISTS DATAPLEX_CATALOG_READER; GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE DATAPLEX_CATALOG_READER; GRANT USAGE ON WAREHOUSE WAREHOUSE_NAME TO ROLE DATAPLEX_CATALOG_READER;Substitua
WAREHOUSE_NAMEpelo nome do warehouse do Snowflake que executa as consultas de metadados.Crie um usuário de serviço para o conector ou use um usuário atual e conceda a ele o papel:
CREATE USER IF NOT EXISTS USERNAME TYPE = SERVICE DEFAULT_ROLE = DATAPLEX_CATALOG_READER DEFAULT_WAREHOUSE = WAREHOUSE_NAME; GRANT ROLE DATAPLEX_CATALOG_READER TO USER USERNAME;Substitua
USERNAMEpelo nome do usuário do Snowflake para o conector.Gere um par Chave RSA com a chave privada no formato PKCS#8:
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pubPara criptografar a chave privada, substitua
-nocryptpor-v2 aes-256-cbce forneça a senha longa ao configurar o conector. Mantenha o arquivo de chave privada (rsa_key.p8) seguro, porque você o fornecerá ao configurar o conector.Atribua a chave pública ao usuário do Snowflake:
ALTER USER USERNAME SET RSA_PUBLIC_KEY='PUBLIC_KEY';Substitua
PUBLIC_KEYpelo conteúdo dersa_key.pub, exceto as linhas-----BEGIN PUBLIC KEY-----e-----END PUBLIC KEY-----.Opcional: para importar outros metadados, conceda ao papel do conector os seguintes privilégios:
Perfis de dados e resultados de qualidade de dados: conceda o papel de aplicativo
SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER:GRANT APPLICATION ROLE SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER TO ROLE DATAPLEX_CATALOG_READER;Os resultados de qualidade de dados são importados apenas para as verificações que o papel pode visualizar, o que requer
USAGEno banco de dados e no esquema,SELECTna tabela eUSAGEem funções de métricas de dados personalizadas.Chaves primárias e chaves estrangeiras: conceda
USAGEno banco de dados e no esquema, eSELECTouREFERENCESnas tabelas.Valores de amostra e instruções personalizadas de visualizações semânticas: conceda
REFERENCESnas visualizações semânticas.
Para encontrar o identificador da conta que você insere ao configurar o conector, execute a seguinte consulta no Snowflake:
SELECT CURRENT_ORGANIZATION_NAME() || '-' || CURRENT_ACCOUNT_NAME();
Pré-requisitos de rede
Para permitir que o serviço de transferência de dados do BigQuery se conecte com segurança a bancos de dados externos ou fontes de dados em nuvem de terceiros com um endereço IP privado dentro de uma rede privada, configure um anexo de rede pelo Private Service Connect.
Se você se conectar a um ambiente local ou a uma instância hospedada na nuvem usando um endereço IP público, não será necessário um anexo de rede.
Configurar um conector do Snowflake Horizon
Configure um conector do Snowflake Horizon usando o console doGoogle Cloud ou a API REST.
Console
No console Google Cloud , acesse a página do Knowledge Catalog.
No menu de navegação, na seção Gerenciar, clique em Conectores e em Adicionar conexão.
Na lista Conectores, selecione o card Snowflake Horizon.
Na seção Detalhes da fonte de dados, forneça os detalhes de conexão da sua conta do Snowflake:
- Em Anexo de rede, selecione um anexo de rede existente, se necessário, ou crie um.
- Em Identificador da conta, insira o identificador da sua conta do Snowflake sem
.snowflakecomputing.com(por exemplo,myorg-myaccount). Também é possível inserir um localizador de conta, comoxy12345.us-east-2.aws. - Em Nome de usuário, insira o usuário do Snowflake que você configurou para a autenticação de par de chaves.
- Em Chave privada, insira a chave privada PKCS#8 do usuário, como
o conteúdo do arquivo
rsa_key.p8. - Opcional: em Senha longa da chave privada, se a chave privada estiver criptografada, insira a senha longa dela.
- Opcional: em Warehouse, insira o warehouse que executa as consultas de metadados. Se você não especificar um warehouse, o conector usará o warehouse padrão do usuário.
- Opcional: em Papel, insira o papel que o conector usa, como
DATAPLEX_CATALOG_READER. Se você não especificar um papel, o conector vai usar o papel padrão do usuário. Em Objetos do Snowflake para transferência, clique em Procurar para selecionar os bancos de dados, esquemas ou objetos individuais (tabelas, visualizações, visualizações semânticas, estágios, funções e procedimentos) a serem importados. Selecionar um banco de dados ou esquema importa todos os objetos nele. As funções e os procedimentos são listados com os tipos de argumento, como
CALC(NUMBER, VARCHAR).Também é possível inserir objetos manualmente no formato
TYPE:ACCOUNT/DATABASE[/SCHEMA[/OBJECT]], em queTYPEéCATALOG(ouDATABASE),SCHEMA,TABLE,VIEW,SEMANTIC-MODEL,FILESET,FUNCTIONouPROCEDURE(por exemplo,SCHEMA:myorg-myaccount/SALES/PUBLIC). InsiraACCOUNTno formatoORG_NAME-ACCOUNT_NAMEem letras minúsculas, conforme mostrado em Procurar. Os nomes de bancos de dados, esquemas e objetos diferenciam maiúsculas de minúsculas. Não há suporte para padrões de nome.
Na seção Configurações de destino:
- Clique em Procurar e selecione um grupo de entradas do Knowledge Catalog para armazenar os metadados importados ou clique em Criar novo grupo de entradas.
- Selecione se você quer definir as permissões no grupo de entrada agora ou mais tarde.
Para permitir que os usuários vejam os metadados importados, defina permissões no
grupo de entrada. Se você não concedeu o papel de
Importador de grupo de entrada do Dataplex
(
roles/dataplex.entryGroupImporter) ou a permissãodataplex.entryGroups.importao agente de serviço do serviço de transferência de dados do BigQuery no nível do projeto, conceda-o nesse grupo de entrada. Ainda é necessário conceder o papel de Proprietário de entradas e links de entradas do Dataplex (roles/dataplex.entryOwner) no projeto, porque a permissãodataplex.entryLinks.referenceé verificada no nível do projeto. Para mais informações, consulte Papéis e permissões do IAM.
No campo Nome de exibição da seção Nome de configuração da transferência, insira um nome para o job de importação de metadados.
Na seção Opções de programação, configure a frequência do job de importação de metadados. Se você selecionar On demand, o job só será executado quando você o acionar manualmente.
Opcional: na seção Opções de notificação, configure uma notificação por e-mail ou Pub/Sub para falhas de job.
Opcional: na seção Opções avançadas, defina as configurações de criptografia. Se você selecionar uma chave de criptografia gerenciada pelo cliente (CMEK), ela vai criptografar todos os dados temporários preparados antes de iniciar os jobs de importação de metadados do Knowledge Catalog. A chave não criptografa os metadados no grupo de entrada de destino do Knowledge Catalog.
Clique em Salvar.
REST
Use o método projects.locations.transferConfigs.create. No recurso
TransferConfig,
configure os seguintes campos:
- Defina o campo
dataSourceIdcomo"snowflake_horizon" - No campo
metadataDestination, preencha o campodataplexConfiguration.entryGroupcom o caminho do recurso do grupo de entrada de destino do Knowledge Catalog:projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID. - No campo
params, defina os seguintes parâmetros:connector.accountIdentifier(obrigatório): o identificador da sua conta do Snowflake sem.snowflakecomputing.com(por exemplo,myorg-myaccount) ou um localizador de conta (comoxy12345.us-east-2.aws).connector.authentication.username(obrigatório): o usuário do Snowflake.connector.authentication.privateKey(obrigatório): a chave privada do usuário no formato PKCS#8 PEM.connector.authentication.privateKeyPassphrase(opcional): a senha longa da chave privada, se ela estiver criptografada.connector.warehouse(opcional): o warehouse que executa as consultas de metadados. Se você omitir esse parâmetro, o conector vai usar o warehouse padrão do usuário.connector.role(opcional): o papel que o conector usa. Se você omitir esse parâmetro, o conector vai usar o papel padrão do usuário.connector.networkAttachment(opcional): o anexo de rede no formatoprojects/PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT_ID.assets(obrigatório): a lista de objetos do Snowflake a serem importados no formatoTYPE:ACCOUNT/DATABASE[/SCHEMA[/OBJECT]], como["SCHEMA:myorg-myaccount/SALES/PUBLIC"].
- Opcional: para manter a chave privada fora da configuração de transferência,
armazene-a no Secret Manager:
- Defina
connector.authentication.privateKey(econnector.authentication.privateKeyPassphrase, se você usar um) como o nome do recurso da versão do secret no formatoprojects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/VERSION_IDe adicione esses nomes de parâmetro ao campoparamConfig.secretManagerManagedParams. - Conceda o papel de
Acessador de secrets do Secret Manager
(
roles/secretmanager.secretAccessor) em cada secret ao agente de serviço do serviço de transferência de dados do BigQuery do projeto que contém a configuração de transferência (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com). Os secrets podem estar em um projeto diferente. Se o agente de serviço não conseguir ler um secret, a execução vai falhar antes de começar com um erro comoFailed to retrieve secret ... Permission 'secretmanager.versions.access' denied. O serviço de transferência de dados do BigQuery lê os secrets no início de cada execução. Portanto, se você definirVERSION_IDcomolatest, uma chave alternada será usada a partir da próxima execução.
- Defina
O exemplo a seguir mostra um corpo de solicitação TransferConfig:
{
"displayName": "snowflake-metadata-import",
"dataSourceId": "snowflake_horizon",
"schedule": "every 24 hours",
"params": {
"connector.accountIdentifier": "myorg-myaccount",
"connector.authentication.username": "USERNAME",
"connector.authentication.privateKey": "PRIVATE_KEY",
"connector.warehouse": "WAREHOUSE_NAME",
"connector.role": "DATAPLEX_CATALOG_READER",
"assets": [
"SCHEMA:myorg-myaccount/SALES/PUBLIC"
]
},
"metadataDestination": {
"dataplexConfiguration": {
"entryGroup": "projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID"
}
}
}
O job é executado automaticamente com base na sua programação, ou você pode acioná-lo manualmente.
Monitorar um job do conector do Snowflake Horizon
Monitore um job do conector do Snowflake Horizon usando o console doGoogle Cloud ou a API REST.
Console
- No console do Google Cloud , na página Conectores, clique no Nome de exibição do job de transferência do Snowflake Horizon.
- Na guia Histórico de execução, clique em Ver detalhes para conferir os registros.
- Para ver as entradas criadas, clique na guia Detalhes e, em seguida, no link do grupo de entradas Destino de metadados.
REST
- Para listar as execuções de uma configuração de transferência e conferir o estado delas, use o método
projects.locations.transferConfigs.runs.list. Cada execução importa os metadados coletados para o Knowledge Catalog com um job de importação de metadados com o ID
dts-run-RUN_ID. Para ver o resultado da importação, como o número de entradas criadas, filtre os registros do job no Logging usando a seguinte consulta:logName="projects/PROJECT_ID/logs/dataplex.googleapis.com%2Fmetadata_job" AND resource.labels.metadata_job_id="dts-run-RUN_ID"Para ver o resultado de uma importação sem usar o Logging, chame o método
projects.locations.metadataJobs.getemprojects/PROJECT_ID/locations/LOCATION/metadataJobs/dts-run-RUN_ID. O campoimportResultmostra o número de entradas e links de entrada criados, atualizados, inalterados e excluídos.
Pesquisar e visualizar metadados do Snowflake Horizon
No console Google Cloud , acesse a página Pesquisa do Knowledge Catalog.
No painel Filtros, filtre os recursos do Snowflake Horizon usando as seções Projeto, Sistemas e Aliases de tipo. Para filtrar todos os metadados do Snowflake Horizon, na seção Sistemas, selecione Contexto importado e, na subseção Conectores gerenciados, selecione Snowflake Horizon.
No campo de pesquisa, digite uma palavra-chave ou uma consulta de pesquisa com linguagem natural. Por exemplo, para ver todos os recursos do Snowflake Horizon usando a pesquisa por palavra-chave, digite
system=SNOWFLAKE.Para saber mais sobre como pesquisar recursos, consulte Pesquisar recursos no Knowledge Catalog. Para saber mais sobre as expressões que podem ser usadas no campo de pesquisa, consulte Sintaxe de pesquisa do Knowledge Catalog.
Também é possível usar a API
LookupContext
para recuperar o contexto do LLM para recursos específicos do Snowflake
Horizon. Para mais informações, consulte Recuperar contexto para recursos de dados.
A seguir
- Saiba como gerenciar jobs de conector.