Ограничения бессерверных вычислений

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

Поддержка языка и API

  • R не поддерживается.
  • Поддерживаются только API Spark Connect. API-интерфейсы Spark RDD не поддерживаются.
  • Spark Connect, который используется бессерверными вычислениями, откладывает анализ и разрешение имен во время выполнения, что может изменить поведение кода. См . статью "Сравнение Spark Connect с классической версией Spark".
  • ANSI SQL — это значение по умолчанию при написании SQL. Чтобы отключить режим ANSI, установите для spark.sql.ansi.enabled значение false.
  • При создании DataFrame из локальных данных с помощью spark.createDataFrame размеров строк не может превышать 128 МБ.

Доступ к данным и хранилище

  • Для подключения к внешним источникам данных необходимо использовать каталог Unity. Используйте внешние местоположения для доступа к облачному хранилищу.
  • Доступ к DBFS ограничен. Вместо этого используйте тома каталога Unity или файлы рабочей области .
  • Координаты Maven не поддерживаются.
  • Глобальные временные представления не поддерживаются. Если требуется передача данных между сеансами, Databricks рекомендует использовать временные представления сеанса или создавать таблицы.

Пользовательские функции

  • Определяемые пользователем функции (UDFS) не могут получить доступ к Интернету. Из-за этого команда CREATE FUNCTION (внешний) не поддерживается. Databricks рекомендует использовать CREATE FUNCTION (SQL и Python) для создания UDF.
  • Пользовательский код, такой как UDF, map и mapPartitions, не должен превышать 1 ГБ в использовании памяти.
  • Нельзя использовать Scala UDF внутри функций высшего порядка.

Пользовательский интерфейс и ведение журнала

  • Пользовательский интерфейс Spark недоступен. Вместо этого используйте профиль запроса для просмотра сведений о запросах Spark. См. раздел Профиль запроса.
  • Журналы Spark недоступны. Пользователи имеют доступ только к журналам приложений на стороне клиента.

Доступ к сети и рабочей области

  • Доступ между рабочими областями разрешен только в том случае, если рабочие области находятся в одном регионе, а в целевой рабочей области не настроены IP ACL или фронтальная PrivateLink.
  • Службы контейнеров Databricks не поддерживаются.

Ограничения потоковой передачи

Бессерверные вычисления поддерживают следующие структурированные триггеры потоковой передачи:

  • Trigger.AvailableNow(). Databricks рекомендует этот режим триггера для бессерверных вычислений.
  • Trigger.Once(). Этот устаревший режим поддерживается, но не рекомендуется.

Следующие триггеры не поддерживаются в бессерверных вычислениях:

  • Trigger.Continuous(interval).
  • Trigger.ProcessingTime(interval).
    • По умолчанию, если вы не указываете режим триггера, Apache Spark задает для триггера значение Trigger.ProcessingTime("0 seconds"). Необходимо задать поддерживаемый триггер для бессерверных вычислений.

Если вы пытаетесь использовать неподдерживаемый триггер, запрос вызывает ошибку INFINITE_STREAMING_TRIGGER_NOT_SUPPORTED.

Для рабочих нагрузок непрерывной потоковой передачи используйте режим триггера и непрерывного конвейера в бессерверном режиме или непрерывное использование Trigger.AvailableNow() в заданиях выполнения.

Чтобы ознакомиться с руководством по выбору, которое помогает подобрать подходящий бессерверный продукт для сценариев потоковой передачи, см. Потоковая передача на бессерверных вычислениях.

Все ограничения потоковой передачи в стандартном режиме доступа также применяются. См. ограничения потоковой передачи.

Ограничения ноутбуков

  • Scala и R не поддерживаются в ноутбуках.
  • Библиотеки JAR не поддерживаются в записных книжках. Сведения об обходных решениях см. в рекомендациях по бессерверным вычислениям. Поддерживаются задачи JAR в заданиях. Смотрите задачу JAR для заданий.
  • Библиотеки с привязкой к записной книжке не кэшируются между сеансами разработки.
  • Общий доступ к таблицам и представлениям TEMP при совместном использовании записной книжки среди пользователей не поддерживается.
  • Автозавершение и Эксплорер переменных для фреймов данных в записных книжках не поддерживаются.
  • По умолчанию новые записные книжки сохраняются в .ipynb формате. Если записная книжка сохраняется в исходном формате, бессерверные метаданные могут быть неправильно записаны, а некоторые функции могут не функционировать должным образом.
  • Теги записной книжки не поддерживаются. Используйте политики использования для бессерверной архитектуры для маркировки использования бессерверной архитектуры.

Ограничения заданий

  • Журналы задач не изолированы по каждому выполнению задачи. Журналы будут содержать выходные данные из нескольких задач.
  • Библиотеки задач не поддерживаются для задач записной книжки. Вместо этого используйте библиотеки, специфичные для ноутбука. См. Библиотеки Python в пределах ноутбука.
  • По умолчанию бессерверные задания не имеют времени ожидания выполнения запроса. Вы можете задать тайм-аут выполнения для запросов заданий с помощью свойства spark.databricks.execution.timeout. Дополнительные сведения см. в разделе "Настройка свойств Spark для бессерверных записных книжек и заданий".

Ограничения для конкретных вычислений

Следующие функции для вычислений не поддерживаются.

Ограничения кэширования

Ограничения в Hive

  • Таблицы Hive SerDe не поддерживаются. Кроме того, соответствующая команда LOAD DATA, которая загружает данные в таблицу Hive SerDe, не поддерживается. Использование команды приведет к исключению.

    Поддержка источников данных ограничена AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEXT и XML.

  • Переменные Hive (например, ${env:var}, ${configName}, ${system:var} и spark.sql.variable) или ссылки на конфигурационные переменные с использованием синтаксиса ${var} не поддерживаются. Использование переменных Hive приведет к исключению.

    Вместо этого используйте DECLARE VARIABLESET VARIABLEссылки на переменные сеанса SQL и маркеры параметров ("?" или ":var") для объявления, изменения и ссылочного состояния сеанса. Также можно использовать предложение IDENTIFIER для параметризации имен объектов во многих случаях.

Поддерживаемые источники данных

Бессерверные вычисления поддерживают следующие источники данных для операций DML (запись, обновление, удаление):

  • CSV
  • JSON
  • AVRO
  • DELTA
  • KAFKA
  • PARQUET
  • ORC
  • TEXT
  • UNITY_CATALOG
  • BINARYFILE
  • XML
  • SIMPLESCAN
  • ICEBERG

Бессерверные вычисления поддерживают следующие источники данных для операций чтения:

  • CSV
  • JSON
  • AVRO
  • DELTA
  • KAFKA
  • PARQUET
  • ORC
  • TEXT
  • UNITY_CATALOG
  • BINARYFILE
  • XML
  • SIMPLESCAN
  • ICEBERG
  • MYSQL
  • POSTGRESQL
  • SQLSERVER
  • REDSHIFT
  • SNOWFLAKE
  • SQLDW (Azure Synapse)
  • DATABRICKS
  • BIGQUERY
  • ORACLE
  • SALESFORCE
  • SALESFORCE_DATA_CLOUD
  • TERADATA
  • WORKDAY_RAAS
  • MONGODB