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

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:

The template uses a string value, rather than identifier, for a column or table name. This happens when the template doesn’t properly convert string variables into identifiers by using either the sqlsafe filter or the IDENTIFIER function.

For example, passing in p.col1 to my_column to the template SELECT {{ my_column }} ... resolves to SELECT "p.col1" .... «p.col1» is a string, not a valid identifier (and p. is interpreted as a URL prefix).

Solução:

Apply either the IDENTIFIER function (preferred) or the sqlsafe filter to the variable:

  • SELECT IDENTIFIER({{ my_column }}) ... (Preferred)

  • SELECT {{ my_column | sqlsafe }} ...


 

Erro:

**FAILURE**: Unauthorized columns: column_name

Causa:

Your query uses a column of collaborator data that is not part of the collaborator’s usage policy in the clean room. For example, you are trying to SELECT a column of collaborator data that is not in their column policy.

Solução:

Use a column that your collaborator has approved for projection, joining, or activation in your query. Inspect the template for policy filters by calling consumer.view_template_definition, then see which columns the provider allows you to project or join by calling consumer.view_provider_join_policy or consumer.view_provider_column_policy. Finally either update your query to pass in an approved column, or ask your collaborator to adjust their usage policy to include the column that you want to use.


 

Erro:

**FAILURE**: Invalid aliases: P.column name' or **FAILURE**: Invalid aliases: C.column name'

Causa:

You are using uppercase P or C table aliases to scope a column name. You must use lowercase p or c aliases when scoping a column name. (The template itself can use either uppercase or lowercase when declaring the alias.)

Solução:

Always use a lowercase alias when scoping a column.

Example:

-- 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;
Copy

 

Erro:

**FAILURE**: Invalid aliases: database name.schema name.column name

Causa:

You must always reference columns using the p or c alias declared for a table. Columns can’t reference a table by its full path.

Invalid: SELECT hashed_email FROM mydb.mysch.t1;

Solução:

Use the p or c (lowercase!) table alias when referencing a column:

Valid: SELECT p.hashed_email FROM mydb.mysch.t1 AS p;

Problemas entre nuvens

Erro:

Analysis Execution Failure: 'SnowparkSQLException' due to Database Listing Conflict em 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_account durante 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

General guidelines about data access issues

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 used error 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_policy e consumer.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);
Copy

Você também pode ter esgotado seu orçamento de privacidade:

CALL samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
Copy

 

Erro:

When the consumer calls any procedure that takes a clean room name and gets Application 'SAMOOHA_CLEANROOM_APP<some name>' does not exist or not authorized.

Causa:

If the clean room name is reported as SAMOOHA_CLEANROOM_APP<cleanroom name> rather than SAMOOHA_CLEANROOM_APP_<cleanroom name>, (missing the underscore after SAMOOHA_CLEANROOM_APP), the provider did not install the clean rooms environment in the correct way in their account.

Solução:

Tell the provider that they should install the clean rooms environment in their account by following the instructions here: Instalação do ambiente Snowflake Data Clean Rooms. After that, the provider can re-create and share the clean room.

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 table ao 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.