Solução de problemas da Snowflake Data Clean Rooms¶
Esta página é um guia geral de solução de problemas ao usar salas limpas. Se você estiver usando a API, leia a documentação de referência para quaisquer procedimentos que você chamar, bem como as diretrizes de caso de uso, para ver se o seu problema está coberto lá.
Se você for um desenvolvedor, consulte as diretrizes de solução de problemas do desenvolvedor para obter informações adicionais.
Problemas de instalação¶
Consulte a seção de solução de problemas de instalação.
Confirme se você atualizou sua política de redes para permitir que a UI acesse seus dados.
Analysis and template issues¶
- Erro:
Falha durante a expansão da exibição compartilhada <CLEAN ROOM VIEW NAME> como proprietário da exibição: Permissão insuficiente para resolver a tabela externa/iceberg <TABLE_NAME> compartilhada pelo aplicativo SAMOOHA_CLEANROOM_APP_<CLEAN ROOM ID>- Causa:
Você está tentando acessar tabelas externas ou Iceberg, mas elas não estão habilitadas nas contas do provedor e do consumidor.
- Solução:
Certifique-se de que as contas do provedor e do consumidor tenham :ref:` tabelas externas e Iceberg habilitadas <label-cleanrooms_external_iceberg_tables>`.
- Erro:
Erro de compilação
SQL: Falha durante a expansão da exibição compartilhada "<CLEAN ROOM VIEW NAME>" como proprietário da exibição: O objeto "<some object name>" não existe ou não está autorizado.- Causa:
As concessões de salas limpas não existem mais no conjunto de dados que você está tentando acessar. Muito provavelmente isso ocorre porque o objeto de origem foi renomeado ou substituído.
- Solução:
Se a tabela foi renomeada, altere o nome de volta para o que está vinculado na sala limpa. Você também pode precisar registrar o objeto novamente.
Se a tabela foi recriada, registre o objeto novamente na sala limpa.
- Erro:
Query returns zero results and you think that’s wrong.
- Possíveis causas e soluções:
Confirme se nenhum dos lados tem uma política de mascaramento nos dados que possa impedir a junção ou exibição.
Confirme se as colunas de junção estão formatadas da mesma maneira.
Confirm that you are not falling below any fixed threshold settings. The audience overlap has a default threshold of five, meaning that fewer than five rows will be omitted from the results. Ask the provider what the threshold is, and confirm whether you have any overlaps greater than that number; temporarily modify the overlap specifications to guarantee large segment groups to see whether you get results then.
- Erro:
Uncaught exception of type 'STATEMENT_ERROR' ... SQL compilation error: invalid URL prefix found ...- Causa:
O modelo usa um valor de cadeia de caracteres, em vez de identificador, para o nome da coluna ou da tabela. Isso acontece quando o modelo não converte corretamente as variáveis de cadeia de caracteres em identificadores usando o filtro
sqlsafeou a funçãoIDENTIFIER.Por exemplo, se
p.col1é passado paramy_columnno modelo,SELECT {{ my_column }} ...é resolvido comoSELECT "p.col1" .... «p.col1» é uma cadeia de caracteres, e não um identificador válido (ep.é interpretado como um prefixo de URL).- Solução:
Aplique a função IDENTIFIER (preferencial) ou o filtro
sqlsafeà variável:SELECT IDENTIFIER({{ my_column }}) ...(preferencial)SELECT {{ my_column | sqlsafe }} ...
- Erro:
**FAILURE**: Unauthorized columns: column_name- Causa:
Sua consulta usa uma coluna de dados do colaborador que não faz parte da política de uso do colaborador na sala limpa. Por exemplo, você está tentando SELECT uma coluna de dados do colaborador que não está na política de coluna dele.
- Solução:
Use uma coluna que o seu colaborador tenha aprovado para projeção, junção ou ativação em sua consulta. Inspecione filtros de política no modelo chamando
consumer.view_template_definitione veja quais colunas o provedor permite a você projetar ou unir chamandoconsumer.view_provider_join_policyouconsumer.view_provider_column_policy. Por fim, atualize sua consulta para passar uma coluna aprovada ou peça que seu colaborador ajuste a política de uso dele para incluir a coluna que você deseja usar.
- Erro:
**FAILURE**: Invalid aliases: P.column name'ou**FAILURE**: Invalid aliases: C.column name'- Causa:
Você está usando aliases de tabela
PouCem maiúscula para definir o escopo de um nome de coluna. Você deve usar aliasespoucem letra minúscula para definir o escopo de um nome de coluna. O próprio modelo pode usar maiúsculas ou minúsculas ao declarar o alias.- Solução:
Sempre use um alias em letra minúscula para definir o escopo de uma coluna.
Exemplo:
-- Always scope the column name with a lowercase alias. -- The casing of the alias declared for the table doesn't matter. -- These will fail. SELECT P.hashed_email FROM mydb.mysch.t1 AS P; SELECT P.hashed_email FROM mydb.mysch.t1 AS p; -- These will succeed. SELECT p.hashed_email FROM mydb.mysch.t1 AS P; SELECT p.hashed_email FROM mydb.mysch.t1 AS p;
- Erro:
**FAILURE**: Invalid aliases: database name.schema name.column name- Causa:
Você sempre deve fazer referência às colunas usando o alias
poucdeclarado para uma tabela. As colunas não podem fazer referência a uma tabela pelo caminho completo.Inválido:
SELECT hashed_email FROM mydb.mysch.t1;- Solução:
Use o alias de tabela
pouc(em letra minúscula) para fazer referência a uma coluna:Válido:
SELECT p.hashed_email FROM mydb.mysch.t1 AS p;
Problemas entre nuvens¶
- Erro:
Analysis Execution Failure: 'SnowparkSQLException' due to Database Listing Conflictem uma sala limpa de teste de conta única- Causa:
O preenchimento automático entre nuvens não é compatível com salas limpas de teste de conta única.
- Solução:
Desabilite o preenchimento automático entre nuvens nesta conta de sala limpa chamando
library.disable_laf_on_accountdurante o teste ou não tente fazer chamadas de procedimento entre nuvens nesta sala limpa.
Problemas com o conector de dados na nuvem¶
Se você estiver com problemas com um conector de dados externo para AWS, Azure ou Google Cloud Storage, consulte Snowflake Data Clean Rooms:solução de problemas de conectores de dados externos.
Problemas com o log de solicitações¶
- Erro:
**Failure**: Request logs unable to be mounted. Try again.- Causa:
A montagem dos logs de solicitações foi bem-sucedida para a sala limpa interna, mas falhou para a sala limpa externa na mesma conta. As salas limpas internas têm menos requisitos do que as externas. Sua instalação atendeu aos requisitos para o uso de salas limpas internas, mas não para externas.
- Solução:
Confirme se seu e-mail foi validado pelas salas limpas e se você atende a todos os requisitos da conta de salas limpas.
Problemas de acesso aos dados¶
Diretrizes gerais sobre problemas de acesso a dados¶
Você pode receber uma mensagem de erro relatando a impossibilidade de acessar uma fonte de dados em vários pontos do fluxo de uso:
Se o erro ocorreu durante o processo de registro:
Você digitou incorretamente o nome ou o caminho da tabela, se estiver usando a API.
Se esta for uma tabela externa ou Iceberg, confirme se você atendeu aos :ref:` requisitos e ao procedimento <label-cleanrooms_external_iceberg_tables>` para registrar uma tabela desse tipo.
Confirme se sua função atual tem privilégio OWNERSHIP no objeto que está sendo registrado.
Se o erro ocorreu durante o processo de vinculação:
Na API, você pode estar usando a função incorreta.
O objeto pode não ter sido registrado. Na API, se você tentar vincular um objeto que não está registrado, verá um erro. Na UI, você deverá ver apenas os objetos que foram registrados como disponíveis para vinculação.
Confirme se SAMOOHA_APP_ROLE tem os privilégios USAGE e SELECT no seu objeto.
A tabela pode ter sido movida, renomeada ou ter tido as permissões dela (ou quaisquer permissões de política do Snowflake) alteradas desde o registro. Quando isso acontece, você também pode ver o erro
SQL access control error: Insufficient privileges to operate on table...
Se o erro ocorreu após os dados terem sido registrados e vinculados com sucesso:
Se estiver usando a API, confirme se você digitou o nome completo da tabela corretamente.
Data access errors¶
- Erro:
Object '<some_object_name>' does not exist or not authorized- Causa:
A tabela de origem pode ter sido movida, renomeada ou ter tido as permissões dela (ou permissões em uma política ou objeto ancestral do qual ela depende) alteradas.
- Solução:
Tente registrar e vincular novamente o objeto em sua conta, mova o objeto de volta para a localização antiga ou reverta quaisquer permissões adicionais adicionadas.
- Erro:
Insufficient permission to resolve external/iceberg table- Causa:
Se uma tabela externa ou Iceberg estiver envolvida em sua consulta, a tabela não foi registrada corretamente.
- Solução:
Consulte Habilitação de tabelas externas e Apache Iceberg™ para garantir que você atenda aos requisitos e procedimentos para usar esses tipos de tabela. Às vezes, você pode resolver isso concedendo explicitamente SELECT na tabela para SAMOOHA_BY_SNOWFLAKE.
- Erro:
not approved:unauthorized columns usederror as a result of run analysis- Causa:
Você está unindo ou projetando a coluna de um colaborador em relação à política de junção ou coluna do colaborador.
- Solução:
Veja as políticas de junção e coluna definidas pelo seu colaborador chamando
consumer.view_provider_column_policyeconsumer.view_provider_join_policy.CALL samooha_by_snowflake_local_db.consumer.view_provider_join_policy($cleanroom_name); CALL samooha_by_snowflake_local_db.consumer.view_provider_column_policy($cleanroom_name);
Você também pode ter esgotado seu orçamento de privacidade:
CALL samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
- Erro:
Quando o consumidor chama um procedimento que usa o nome de uma sala limpa e recebe o erro
Application 'SAMOOHA_CLEANROOM_APP<algum nome>' does not exist or not authorized.- Causa:
Se o nome da sala limpa for relatado como
SAMOOHA_CLEANROOM_APP<cleanroom name>em vez deSAMOOHA_CLEANROOM_APP_<cleanroom name>, (sem o sublinhado apósSAMOOHA_CLEANROOM_APP), o provedor não instalou o ambiente de salas limpas da maneira correta na conta dele.- Solução:
Informe ao provedor que ele deve instalar o ambiente de salas limpas na conta seguindo estas instruções: Instalação do ambiente Snowflake Data Clean Rooms. Depois disso, o provedor poderá recriar e compartilhar a sala limpa.
Problemas com tabelas externas e Iceberg¶
- Erro:
Falha durante a expansão da exibição compartilhada <CLEAN ROOM VIEW NAME> como proprietário da exibição: Permissão insuficiente para resolver a tabela externa/iceberg <TABLE_NAME> compartilhada pelo aplicativo SAMOOHA_CLEANROOM_APP_<CLEAN ROOM ID>- Causa:
Tabelas externas ou Iceberg não estão habilitadas nas contas do provedor e do consumidor.
- Solução:
Certifique-se de que as contas do provedor e do consumidor tenham :ref:` tabelas externas e Iceberg habilitadas <label-cleanrooms_external_iceberg_tables>`.
- Erro:
O consumidor recebe o erro
Invalid restricted feature 'external_data'ao vincular uma tabela externa ou Iceberg.- Causa:
O provedor ainda não habilitou tabelas externas e Iceberg.
- Solução:
O provedor deve concluir o processo de habilitação de tabelas externas e Iceberg para a conta dele. Se estiver fazendo isso em código, o provedor deverá conferir os resultados da verificação de segurança e, se bem-sucedido, atualizar a versão padrão.
- Erro:
Erro
Insufficient permission to resolve external/iceberg tableao executar uma análise envolvendo uma tabela externa ou Iceberg.- Causa:
A tabela provavelmente não foi registrada corretamente pelo provedor e pelo consumidor.
- Solução:
Leia as informações de registro de tabela externa e Iceberg e siga todas as instruções tanto do lado do provedor quanto do consumidor.