Solucionar problemas comuns de compartilhamento no OpenSharing
As seções a seguir descrevem erros comuns que podem ocorrer ao tentar acessar dados em um compartilhamento.
Erros de limite de recurso excedido
Problema : Sua consulta em uma tabela compartilhada retorna o erro RESOURCE_LIMIT_EXCEEDED.
"RESOURCE_LIMIT_EXCEEDED","message":"The table metadata size exceeded limits""RESOURCE_LIMIT_EXCEEDED","message":"The number of files in the table to return exceeded limits, consider contact your provider to optimize the table"
**Possíveis causas**: Há limites para o número de arquivos em metadados permitidos para uma tabela compartilhada:
- Arquivos ativos : Uma tabela compartilhada suporta um máximo de 400.000 arquivos ativos (ações AddFile). Se o número de arquivos ativos exceder este limite, as consultas retornarão o erro "número de arquivos excedido".
- Ações de RemoveFile : Uma tabela compartilhada oferece suporte a um máximo de 100.000 ações de RemoveFile no log Delta. Se o número de ações de RemoveFile exceder este limite, as consultas retornarão o erro "tamanho de metadados excedido".
É possível solicitar um aumento para o limite de arquivos ativos. Consulte Limites de recurso.
Correção recomendada: Entre em contato com seu provedor de dados e peça que otimizem a tabela compartilhada executando OPTIMIZE e VACUUM para compactar arquivos pequenos e remover entradas RemoveFile obsoletas do log Delta. Para obter orientação adicional, consulte erro RESOURCE_LIMIT_EXCEEDED ao consultar uma tabela do Delta Sharing na Base de Conhecimento do Databricks.
Problema de nome do bucket do AWS S3
Problema : você vê uma mensagem de erro que lança uma exceção de arquivo não encontrado ou de certificado.
Exemplo de erro do Spark:
FileReadException: Error while reading file delta-sharing:/%252Ftmp%252Fexample.share%2523example.tpc_ds.example/XXXXXXXXXXXXX/XXXXXXXX.
Caused by: SSLPeerUnverifiedException: Certificate for - <[workspace name].cloud.databricks.com.s3.us-east-1.amazonaws.com> doesn't match any of the subject alternative names [s3.amazonaws.com, *.s3.amazonaws.com…]:
Exemplo de erro do Pandas:
FileNotFoundError(path)
FileNotFoundError: https://xxxx.xxxxxx.s3.xx-xxxx-1.amazonaws.com/xxxxxx/part-00000-xxxxx-Amz-Algorithm=Axxxxxx-Amz-Date=xxxxxxxx&X-Amz-SignedHeaders=host&X-Amz-Expires=xxx&X-Amz-Credential=xxxxxxx_request&X-Amz-Signature=xxxxx
Exemplo de erro do Power BI:
DataSource.Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Details:
https://xxxx.xxxxxxxxx.s3.xx-xxxx-1.amazonaws.com/xxxxxxxx/part-00000-xxxxxxx.snappy.parquet
Causa possível : Geralmente, este erro aparece porque o nome do seu bucket usa notação de ponto (por exemplo, incorrect.bucket.name.notation). Esta é uma limitação da AWS. Consulte as regras de nomenclatura de buckets da AWS.
Você pode receber este erro mesmo que o nome do seu bucket esteja formatado corretamente. Por exemplo, você pode encontrar um erro de SSL (SSLCertVerificationError) ao executar código no PyCharm.
Correção recomendada : Se o nome do seu bucket usar uma notação de nomenclatura de bucket AWS inválida, use um bucket diferente para Unity Catalog e OpenSharing.
Se seu bucket usa convenções de nomenclatura válidas e você ainda enfrenta um(a) FileNotFoundError em Python, habilite o registro de depuração para ajudar a isolar o problema:
import logging
logging.basicConfig(level=logging.DEBUG)
Problema de arquivo de dados do vacuum
Problema : Você vê uma mensagem de erro que exibe uma exceção “404 O [caminho|key] especificado não existe”.
Exemplos de erro do Spark:
java.lang.Throwable: HTTP request failed with status: HTTP/1.1 404 The specified path does not exist.
ou
HTTP request failed with status: HTTP/1.1 404 Not Found <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message>
Causa possível : Geralmente, esse erro ocorre porque o arquivo de dados correspondente à URL pré-assinada é submetido à operação de *vacuum* na tabela compartilhada e pertence a uma versão histórica da tabela.
Solução alternativa : Consulte o Snapshot mais recente.
Erro de incompatibilidade de esquema com o Spark de código aberto
**Problema**: Ao usar o Apache Spark de código aberto (OSS), é exibido um erro de discrepância de esquema ao ler tabelas OpenSharing.
Exemplo de erro:
py4j.protocol.Py4JJavaError: An error occurred while calling o85.count.: org.apache.spark.SparkException: The schema or partition columns of your Delta table has changed since your DataFrame was created. Please redefine your DataFrame
Causa provável : O esquema ou as colunas de partição da tabela Delta mudaram após a criação do DataFrame.
Correção recomendada : Defina o sinalizador de configuração do Spark spark.delta.sharing.client.useStructuralSchemaMatch para true.
A configuração spark.delta.sharing.client.useStructuralSchemaMatch está disponível apenas em delta-sharing-client 1.2.3 ou acima, que requer Apache Spark 4.0.0 ou acima.
spark.conf.set("spark.delta.sharing.client.useStructuralSchemaMatch", "true")
Problema de acesso a ativo de materialização compartilhada
Problema: Sua consulta em uma view compartilhada, view materializada ou tabela de transmissão retorna o DS_MATERIALIZATION_QUERY_FAILED erro.
"DS_MATERIALIZATION_QUERY_FAILED": "The shared asset could not be materialized due to the asset not being accessible in the materialization workspace. Please ask data provider to contact :re[DB] support to override the materialization workspace."
Causas possíveis : O provedor não tem acesso de leitura e gravação ao ativo que está tentando compartilhar.
Correção recomendada : entre em contato com seu provedor de dados para garantir que eles tenham acesso de leitura e gravação ao ativo de dados compartilhado.
Erro de acesso à rede durante a materialização de dados
Problema : Sua consulta em um ativo de dados compartilhado retorna um erro sobre o acesso ao armazenamento na cloud do provedor de dados.
There was an issue accessing the data provider's cloud storage. Shared view materialization uses the Serverless compute of data provider's region to perform the materialization. Please contact the data provider to allowlist Serverless compute IPs of their corresponding region to access the view's dependent tables storage location.
Possíveis causas : O local de armazenamento dos dados materializados tem restrições de rede (como um firewall ou link privado) que impedem o acesso do compute serverless Databricks. Ao compartilhar views, views materializadas ou tabelas de transmissão, os dados são materializados temporariamente no lado do provedor. O local de armazenamento da materialização é o esquema pai do ativo ou o local de armazenamento do catálogo.
**Correção recomendada**: O provedor de dados precisa adicionar à lista de permissões os IPs de compute serverless de sua região correspondente para acessar o local de armazenamento das tabelas dependentes da view. Para configurar seu firewall, consulte configuração de firewall de compute serverless.
Erro de ativo de dados "não existe"
Se você clicar em um ativo compartilhado e encontrar um erro de objeto "não existe", o proprietário do compartilhamento, no lado do provedor, pode não ter permissões suficientes sobre o ativo. Entre em contato com seu provedor de dados e peça para que eles verifiquem se o proprietário do compartilhamento tem as permissões necessárias em todos os ativos compartilhados. Para obter mais informações sobre as permissões exigidas para que o proprietário de um compartilhamento compartilhe um ativo de dados, consulte Requisitos e Conceder acesso ao destinatário para compartilhar.