Поделиться через


Заметки о выпуске бессерверных вычислений

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

Дополнительные сведения о бессерверных вычислениях см. в разделе "Подключение к бессерверным вычислениям".

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

версии бессерверной среды

Бессерверные вычисления Databricks для записных книжек и заданий поддерживают архитектуру на основе Spark Connect, что позволяет независимо обновлять подсистему без влияния на приложение. Чтобы обеспечить совместимость приложений, бессерверные рабочие нагрузки используют версионные API, известные как версия среды или клиент, которые остаются совместимыми с более новыми версиями сервера.

Последняя версия среды продолжает получать обновления до выпуска новой версии. Пользователи могут выполнить действие select из любой из поддерживаемых версий среды:

Заметки о выпуске

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

Версия 15.4

28 октября 2024 г.

Этот бессерверный выпуск вычислений примерно соответствует Databricks Runtime 15.4

Новые возможности

  • Функции проверки UTF-8: в этом выпуске представлены следующие функции для проверки строк UTF-8:
    • is_valid_utf8 проверяет, является ли строка допустимой строкой UTF-8.
    • make_valid_utf8 преобразует потенциально недопустимую строку UTF-8 в допустимую строку UTF-8 с помощью символов подстановки.
    • validate_utf8 вызывает ошибку, если входные данные не являются допустимой строкой UTF-8.
    • try_validate_utf8 возвращаетсяNULL, если входные данные не являются допустимой строкой UTF-8.
  • Enable UniForm Iceberg using ALTER TABLE: Теперь можно включить UniForm Iceberg в существующей tables без перезаписи файлов данных. См. Включить чтение Iceberg в существующем table.
  • функция try_url_decode: в этом выпуске представлена функция try_url_decode , которая декодирует строку, закодированную URL-адресом. Если строка не имеет правильного формата, функция возвращается NULL вместо того, чтобы вызывать ошибку.
  • По желанию можно позволить оптимизатору полагаться на непринудительные ограничения внешнего ключа: Для повышения производительности запросов теперь можно указать ключевое слово RELY для ограничений FOREIGN KEY при CREATE или ALTERtable.
  • параллельные задания выполняются для выборочных перезаписей: выборочные перезаписи с помощью replaceWhere теперь выполняют задания, которые удаляют данные и insert новые данные параллельно, повышая производительность запросов и использование кластера.
  • повышенная производительность канала данных изменений с выборочными перезаписями: выборочные перезаписи с использованием replaceWhere на tables с каналом данных изменений больше не записывают отдельные файлы данных изменений для вставленных данных. Эти операции используют скрытый _change_typecolumn, присутствующий в базовых файлах данных Parquet, чтобы фиксировать изменения без умножения записи.
  • Улучшенная задержка запроса для COPY INTO команды: этот выпуск включает изменение, которое улучшает задержку запроса для COPY INTO команды. Это улучшение реализуется путем загрузки состояния в хранилище состояний RocksDB асинхронно. При этом изменении вы увидите улучшение времени начала запросов с большими состояниями, например запросы с большим количеством уже полученных файлов.
  • Поддержка удаления ограничений проверки table: теперь можно удалить функцию checkConstraintstable из Delta table с помощью ALTER TABLE table_name DROP FEATURE checkConstraints. См. раздел "Отключить ограничения проверки".

Изменения в работе

  • Schema изменение привязки для views: Если типы данных в базовом запросе представления изменяются с тех, которые использовались при создании представления, Databricks больше не вызывает ошибок в ссылках на представление, если безопасное приведение невозможно.

    Вместо этого представление компенсирует с помощью регулярных правил приведения , возможных where. Это изменение позволяет Databricks лучше переносить изменения tableschema.

  • Запретить недокументированную ! синтаксисную терпимость для NOT внешней логической логики: Databricks больше не допускает использование ! в качестве синонима за NOT пределами логической логики. Это изменение уменьшает путаницу, соответствует стандарту SQL и делает SQL более переносимым. Например:

    CREATE ... IF ! EXISTS, НЕ NULL, ! NULLcolumn или свойство поля, ! IN и НЕ МЕЖДУ необходимо заменить следующими значениями:

    CREATE ... IF NOT EXISTS, IS NOT NULL, NOT NULLcolumn или свойства поля, NOT IN и NOT BETWEEN.

    Логический ! префикса (например!is_mgr, или!(true AND false)) не влияет на это изменение.

  • Запретить незадокументированные и необработанные части синтаксиса определения column в views: Databricks поддерживает CREATE VIEW с именованными columns и комментариями column.

    Спецификация типов column, ограничений NOT NULL или DEFAULT разрешена в синтаксисе, без having какого-либо эффекта. Databricks будет поддерживать remove этот синтаксис. Это снижает путаницу, соответствует стандарту SQL и обеспечивает будущие улучшения.

  • Согласованная обработка ошибок для декодирования Base64 в Spark и Photon: в этом выпуске изменяется способ обработки ошибок декодирования Base64 в соответствии с обработкой этих ошибок Spark. Перед этими изменениями путь создания кода Photon и Spark иногда не удалось вызвать исключения синтаксического анализа, а выполнение Spark интерпретировалось IllegalArgumentException правильно или ConversionInvalidInputErrorне удалось. Это update гарантирует, что Photon постоянно создает те же исключения, что и Spark во время декодирования Base64, обеспечивая более прогнозируемую и надежную обработку ошибок.

  • Добавление CHECKconstraint для недопустимого column теперь возвращает UNRESOLVED_COLUMN. класс ошибок WITH_SUGGESTION: Для предоставления более полезных сообщений об ошибках в Databricks Runtime 15.3 и более поздних версий оператор ALTER TABLE ADD CONSTRAINT, содержащий CHECKconstraint ссылки на недопустимое имя column возвращает UNRESOLVED_COLUMN. класс ошибок WITH_SUGGESTION. Ранее возвращался объект INTERNAL_ERROR .

JDK обновляется с JDK 8 до JDK 17

15 августа 2024 г.

Бессерверные вычисления для записных книжек и рабочих процессов перенесены из пакета разработки Java (JDK) 8 в JDK 17 на стороне сервера. Это обновление включает следующие изменения поведения:

Исправления ошибок

Правильный анализ шаблонов regex с отрицанием в вложенной группировке символов. С помощью этого обновления Azure Databricks теперь поддерживает правильный анализ шаблонов regex с отрицанием в вложенной группировке символов. Например, [^[abc]] будет проанализирован как "любой символ, который не является одним из "abc".

Кроме того, поведение Фотона было несогласовано с Spark для вложенных классов символов. Шаблоны regex, содержащие вложенные классы символов, больше не будут использовать Photon, а вместо этого будут использовать Spark. Вложенный класс символов — это любой шаблон, содержащий квадратные скобки в квадратных скобках, например [[a-c][1-3]].

Версия 15.1

23 июля 2024 г.

Этот бессерверный выпуск вычислений примерно соответствует Databricks Runtime 15.1

Новые возможности

синтаксис поддержки звездочки (*) в предложении WHERE: теперь можно использовать синтаксис звездочки (*) в предложении WHERE для ссылки на все columns из SELECTlist.

Например, SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*).

Изменения

Улучшено восстановление ошибок для синтаксического анализа JSON: средство синтаксического анализа JSON, используемое для from_json() выражений пути JSON, теперь восстанавливается быстрее из неправильно сформированного синтаксиса, что приводит к снижению потери данных.

При обнаружении неправильно сформированного синтаксиса JSON в поле структуры, значении массива, ключа карты или значения карты средство синтаксического анализа JSON теперь возвращается NULL только для непрочитаемого поля, ключа или элемента. Последующие поля, ключи или элементы будут правильно проанализированы. До этого изменения средство синтаксического анализа JSON отказался от анализа массива, структуры или карты и вернулся для оставшегося NULL содержимого.

Версия 14.3

15 апреля 2024 г.

Это исходная версия бессерверных вычислений. Эта версия примерно соответствует Databricks Runtime 14.3 с некоторыми изменениями, которые remove поддержку некоторых несерверных и устаревших функций.

конфигурация, поддерживаемая Spark parameters

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

  • spark.sql.legacy.timeParserPolicy (значение по умолчанию — CORRECTED);
  • spark.sql.session.timeZone (значение по умолчанию — Etc/UTC);
  • spark.sql.shuffle.partitions (значение по умолчанию — auto);
  • spark.sql.ansi.enabled (значение по умолчанию — true);

Выполнение задания на бессерверных вычислениях завершится ошибкой, если set конфигурацию Spark, которая не находится в этой list.

Дополнительные сведения о настройке свойств Spark см. в разделе Set свойства конфигурации Spark в Azure Databricks.

input_file функции устарели

Функции input_file_name(), input_file_block_length()и input_file_block_start() устарели. Использование этих функций очень не рекомендуется.

Вместо этого используйте метаданные файла column для получения сведений о файле.

Изменения поведения

Бессерверные вычислительные ресурсы версии 2024.15 включают следующие изменения поведения:

  • unhex(hexStr) всегда слева на целый байт. Ранее функция unhex проигнорировала первую половину байта. Например: unhex('ABC') теперь производится x'0ABC' вместо x'BC'.
  • автоматически созданные псевдонимы column теперь стабильны: Если результат выражения ссылается без заданного пользователем псевдонима column, то этот автоматически созданный псевдоним теперь будет стабильным. Новый алгоритм может привести к изменению ранее автоматически сгенерированных имён, используемых в таких функциях, как материализованные представления views.
  • Table сканирования с полями типа CHAR теперь всегда заполнены: Delta tables, некоторые JDBC tablesи внешние источники данных хранят данные типа CHAR в незаполненном виде. При чтении Azure Databricks теперь будет заполнять данные пробелами в объявленную длину, чтобы обеспечить правильную семантику.
  • Приведение из BIGINT/DECIMAL в TIMESTAMP создает исключение для переполненных значений values: Azure Databricks позволяет приведение из BIGINT и DECIMAL в TIMESTAMP, рассматривая значение как количество секунд с эпохи Unix. Ранее Azure Databricks возвращал переполненные values, но теперь вызывает исключение в случаях переполнения. Используется try_cast для возврата NULL вместо исключения.
  • Выполнение UDF PySpark было улучшено, чтобы соответствовать точному поведению выполнения UDF при вычислении одного пользователя: были внесены следующие изменения:
    • Пользовательские функции с возвращаемым типом строки больше не преобразуют нестроковые values в строки. Ранее определяемые пользователем элементы с возвращаемым типом str применяют str(..) оболочку к результату независимо от фактического типа данных возвращаемого значения.
    • Определяемые пользователем функции с timestamp возвращаемыми типами больше не выполняют неявное преобразование timezone для меток времени.