Устранение распространенных проблем с общим доступом в OpenSharing

В следующих разделах описываются распространенные ошибки, которые могут возникать при попытке доступа к данным в общей папке.

Ошибки, связанные с превышением лимита ресурсов

Проблема. Запрос к общей таблице возвращает ошибку 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"

Возможные причины. Существуют ограничения на количество файлов в метаданных, разрешенных для общей таблицы:

  • Активные файлы: общая таблица поддерживает не более 400 000 активных файлов (действия AddFile). Если число активных файлов превышает это ограничение, запросы возвращают ошибку "число файлов, превышенных".
  • Удаление действий с файлами: общая таблица поддерживает не более 100 000 действий RemoveFile в журнале Delta. Если количество действий RemoveFile превышает это ограничение, запросы возвращают ошибку "Превышен размер метаданных".

Вы можете запросить увеличение ограничения для активных файлов. См. Ограничения ресурсов.

Рекомендуемое исправление. Обратитесь к поставщику данных и попросите их оптимизировать общую таблицу путем выполнения OPTIMIZE и VACUUM сжатия небольших файлов и удаления устаревших записей RemoveFile из журнала Delta. Дополнительные рекомендации см. в ошибке RESOURCE_LIMIT_EXCEEDED при запросе таблицы Delta Sharing в базе знаний Databricks.

Проблема с файлом данных в вакууме

Проблема. Отображается сообщение об ошибке, которое вызывает исключение "404 Указанное [путь|ключ] не существует".

Примеры ошибок Spark:

java.lang.Throwable: HTTP request failed with status: HTTP/1.1 404 The specified path does not exist.

или

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>

Возможная причина. Как правило, эта ошибка возникает из-за того, что файл данных, соответствующий предварительно подписанному URL-адресу, вакуумируется в общей таблице, а файл данных принадлежит к версии исторической таблицы.

Обходной путь: Запросите последний моментальный снимок.

Ошибка несоответствия схемы с Open Source Spark

Проблема. При использовании Spark с открытым исходным кодом (OSS) при чтении таблиц OpenSharing отображается ошибка несоответствия схемы.

Пример ошибки:

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

Возможная причина: схема или столбцы раздела таблицы Delta изменились после формирования DataFrame.

Рекомендуемое исправление. Задайте для флага spark.delta.sharing.client.useStructuralSchemaMatch конфигурации Spark значение true.

Note

Конфигурация spark.delta.sharing.client.useStructuralSchemaMatch доступна только в delta-sharing-client версии 1.2.3 или выше, для которой требуется Apache Spark 4.0.0 или более поздней версии.

spark.conf.set("spark.delta.sharing.client.useStructuralSchemaMatch", "true")

Проблема с конфигурацией сети хранилища

Проблема: отображается сообщение об ошибке, которое создает SSLCertVerificationErrorисключение.

Пример ошибки Spark:

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)

Возможная причина. Как правило, эта ошибка возникает из-за ограничения сети в расположении хранилища общей таблицы или тома.

Рекомендуемое исправление. В интерфейсе поставщика хранилища разрешите доступ к расположению хранилища, разрешая IP-адрес клиента в параметрах брандмауэра учетной записи хранения.

Проблема доступа к ресурсу общей материализации

Проблема. Запрос к общему представлению, материализованному представлению или таблице потоковой передачи возвращает ошибку DS_MATERIALIZATION_QUERY_FAILED.

"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."

Возможные причины: у поставщика нет доступа на чтение и запись к ресурсу, к которым они пытаются предоставить общий доступ.

Рекомендуемое исправление. Обратитесь к поставщику данных, чтобы убедиться, что у них есть доступ на чтение и запись к общему ресурсу данных.

Ошибка доступа к сети во время материализации данных

Проблема. Запрос к общему ресурсу данных возвращает ошибку о доступе к облачному хранилищу поставщика данных.

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.

Возможные причины: Расположение хранилища для материализованных данных имеет сетевые ограничения (например, брандмауэр или частную ссылку), которые не позволяют вычислительным ресурсам без сервера Azure Databricks получить доступ к нему. При совместном использовании представлений, материализованных представлений или потоковых таблиц данные временно материализуются на стороне поставщика. Расположение хранилища материализации — это родительское расположение ресурса или расположение хранилища каталога.

Рекомендуемое исправление. Поставщик данных должен разрешать бессерверные IP-адреса вычислений соответствующего региона для доступа к расположению хранилища зависимых таблиц представления. Чтобы настроить брандмауэр, см. Настройка периметра сетевой безопасности (NSP) Azure для ресурсов Azure.

Ошибка актива данных "не существует"

Если щелкнуть общий ресурс и столкнуться с ошибкой "не существует," владелец общего ресурса на стороне поставщика может не иметь достаточных разрешений на ресурс. Обратитесь к поставщику данных и попросите его убедиться, что владелец общего доступа имеет необходимые разрешения для всех совместно используемых ресурсов. Дополнительные сведения о разрешениях, необходимых владельцу ресурса для обмена для того, чтобы поделиться ресурсом данных, см. в разделе "Требования" и "Обеспечение доступа получателей к обмену".