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


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

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

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

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

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

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

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

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

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

Высокий уровень памяти, доступный для бессерверных записных книжек (общедоступная предварительная версия)

7 февраля 2025 г.

Теперь можно настроить больший объём памяти для рабочих нагрузок бессерверных вычислительных нотбуков. Этот параметр можно применить как к интерактивным, так и запланированным рабочим нагрузкам записной книжки.

Бессерверное использование с высокой памятью имеет более высокую скорость выбросов DBU, чем стандартная память.

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

Версия 16.1

5 февраля 2025 г.

Этот бессерверный релиз примерно соответствует Databricks Runtime 16.0 и Databricks Runtime 16.1.

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

  • Поддержка Avro для рекурсивной схемы: теперь можно использовать параметр recursiveFieldMaxDepth с функцией from_avro и источником данных avro. Этот параметр задает максимальную глубину рекурсии схемы в источнике данных Avro. См. статью "Чтение и запись потоковых данных Avro".

  • расширенная поддержка реестра схем Confluent для Avro: бессерверные теперь поддерживают ссылку на схему Avro с реестром схем Confluent. Ознакомьтесь с проверкой подлинности во внешнем реестре схем Confluent.

  • Принудительное рекластеризация в таблицах с жидкой кластеризацией: теперь можно использовать синтаксис OPTIMIZE FULL для принудительной рекластеризации всех записей в таблице с включенной жидкой кластеризацией. См. раздел Принудительная перекластеризация для всех записей.

  • API Delta для Python теперь поддерживают столбцы удостоверений: теперь можно использовать API Delta для Python для создания таблиц с столбцами удостоверений. См. статью "Использование столбцов удостоверений" в Delta Lake.

  • создание кластеризованных таблиц в ходе потоковой записи: теперь можно использовать clusterBy для включения кластеризации жидкости при создании таблиц с помощью структурированных потоковых операций записи. См. раздел "Включить кластеризацию жидкости".

  • Поддержка предложения OPTIMIZE FULL: бессерверные вычисления теперь поддерживают предложение OPTIMIZE FULL. Это предложение оптимизирует все записи в таблице, использующей кластеризацию жидкости, включая данные, которые ранее были кластеризованы.

  • Поддержка спецификации параметров WITH в INSERT и справочнике по таблицам: бессерверные вычисления теперь поддерживают спецификацию параметров для ссылок на таблицы и имен таблиц инструкции INSERT, которая может использоваться для управления поведением источников данных.

  • Новые функции SQL: следующие функции SQL теперь доступны в бессерверных вычислениях:

    • try_url_decode — это терпимая к ошибке версия url_decode.
    • zeroifnull возвращает значение 0, если входное выражение функции zeroifnull()NULL.
    • nullifzero возвращает NULL, если входные данные равны 0, или своё собственное значение, если не равны 0.
    • dayname(expr) возвращает трехбуквенный английский акроним для дня недели для указанной даты.
    • uniform(expr1, expr2 [,seed]) возвращает случайное значение с независимыми и идентичными распределенными значениями в указанном диапазоне чисел.
    • randstr(length) возвращает случайную строку length буквенно-числовых символов.
  • Включить автоматическую эволюцию схемы при слиянии данных в таблицу Delta: добавлена поддержка для элемента withSchemaEvolution() класса DeltaMergeBuilder. Используется withSchemaEvolution() для включения автоматической эволюции схемы во время MERGE операций. Например, mergeBuilder.whenMatched(...).withSchemaEvolution().execute()}}.

  • Поддержка колляций в Apache Spark доступна в общедоступной предварительной версии: теперь можно назначать колляции с учетом языка, нечувствительные к регистру и доступу, для STRING столбцов и выражений. Эти сортировки используются для сравнения строк, сортировки, операций группировки и многих строковых функций. См. сортировки.

  • поддержка параметров сортировки в Delta Lake доступна в общедоступной предварительной версии: теперь можно определить параметры сортировки для столбцов при создании или изменении таблицы Delta. См. поддержку сортировки для Delta Lake.

  • режим LITE для вакуума находится в общедоступной предварительной версии: теперь можно использовать VACUUM table_name LITE для выполнения более легкой операции вакуума, которая использует метаданные в журнале транзакций Delta. См. полный и легкий режим и VACUUM.

  • Поддержка параметризации предложения USE CATALOG with IDENTIFIER: предложение IDENTIFIER теперь поддерживается для инструкции USE CATALOG. С помощью этой поддержки можно параметризовать текущий каталог на основе строковой переменной или маркера параметров.

  • COMMENT ON COLUMN поддержка таблиц и представлений: оператор COMMENT ON теперь поддерживает изменения комментариев для столбцов в представлениях и таблицах.

  • Вызов именованных параметров для дополнительных функций: следующие функции поддерживают вызов именованных параметров:

  • Параметр SYNC METADATA команды REPAIR TABLE поддерживается в хранилище метаданных Hive: теперь можно использовать параметр SYNC METADATA с командой REPAIR TABLE для обновления метаданных управляемой таблицы хранилища метаданных Hive. См. REPAIR TABLE.

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

  • Встроенный драйвер Oracle JDBC: В драйвере Oracle JDBC теперь встроены функции бессерверных вычислений. Если вы используете JAR-файл драйвера JDBC, отправленный клиентом, через DriverManager, необходимо переписать скрипты для явного использования пользовательского JAR-файла. В противном случае используется встроенный драйвер. Этот драйвер поддерживает только Федерацию Lakehouse. Для других вариантов использования необходимо указать собственный драйвер.

  • Более подробные ошибки для таблиц Delta, доступ к которым осуществляется с помощью путей: теперь доступен новый интерфейс сообщения об ошибке для таблиц Delta, доступ к которым осуществляется с помощью путей. Теперь все исключения перенаправляются пользователю. Исключение DELTA_MISSING_DELTA_TABLE теперь зарезервировано для случая, когда базовые файлы не могут быть прочитаны как Delta-таблица.

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

  • Критическое изменение: размещенное RStudio достигло конца своего жизненного цикла.В этом выпуске сервер RStudio, размещенный в Databricks, достиг конца своего жизненного цикла и недоступен в любой рабочей области Azure Databricks, работающей на бессерверных вычислениях. Чтобы узнать больше и ознакомиться со списком альтернатив RStudio, перейдите в раздел о выводе из эксплуатации размещённого RStudio Server .

  • критическое изменение: удаление поддержки для изменения byte, short, int и long типов на более широкие типы: Для обеспечения согласованного поведения в таблицах Delta и Iceberg следующие изменения типа данных больше не могут применяться к таблицам с включенной функцией расширения типа .

    • byte, и shortint в long. decimal
    • byte, и shortint в double.
  • Исправление синтаксического анализа шаблонов регулярных выражений с отрицанием во вложенной группировке символов: Этот выпуск включает изменение, чтобы обеспечить правильный анализ шаблонов регулярных выражений с отрицанием во вложенной группировке символов. Например, [^[abc]] будет проанализирован как "любой символ, который не является одним из "abc".

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

  • Улучшение обнаружения повторяющихся совпадений в Delta Lake MERGE:MERGE теперь учитывает условия, указанные в предложении WHEN MATCHED. Просмотрите Upsert в таблицу Delta Lake с помощью слияния.

  • Функции addArtifact() теперь согласованы между типами вычислений: При использовании addArtifact(archive = True) для добавления зависимости к бессерверным вычислениям архив автоматически распаковается. Это изменение делает поведение addArtifact(archive = True) согласованным с поведением вычислений для одного пользователя, которые уже поддерживают автоматическую распаковку архивов.

  • Тип данных VARIANT больше не может использоваться с операциями, требующими сравнения: нельзя использовать следующие предложения или операторы в запросах, включающих тип данных VARIANT:

    • DISTINCT
    • INTERSECT
    • EXCEPT
    • UNION
    • DISTRIBUTE BY

    Кроме того, эти функции DataFrame нельзя использовать:

    • df.dropDuplicates()
    • df.repartition()

    Эти операции выполняют сравнения и сравнения, использующие тип данных VARIANT, создают неопределенные результаты и не поддерживаются в Databricks. Если вы используете тип VARIANT в рабочих нагрузках или таблицах Azure Databricks, Databricks рекомендует следующие изменения:

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

    См. вариантные данные запроса .

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

  • Смещения часового пояса теперь включают секунды при сериализации в CSV, JSON и XML: Метки времени со смещениями часового пояса, которые включают секунды (что распространено для меток времени до 1900 года), ранее упускали секунды при сериализации в CSV, JSON и XML. Форматирование метки времени по умолчанию было исправлено, и теперь возвращает правильные значения смещения для этих меток времени.

Другие изменения

  • Коды ошибок переименованы для источника структурированной потоковой передачи cloudFiles: были переименованы следующие коды ошибок:
    • _LEGACY_ERROR_TEMP_DBR_0143 переименован в CF_INCORRECT_STREAM_USAGE.
    • _LEGACY_ERROR_TEMP_DBR_0260 переименован в CF_INCORRECT_BATCH_USAGE .

Версия 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.
  • Включить UniForm Iceberg с помощью ALTER TABLE: теперь можно включить UniForm Iceberg в существующих таблицах без перезаписи файлов данных. См. Включение чтения Iceberg на существующей таблице.
  • функция try_url_decode: в этом выпуске представлена функция try_url_decode , которая декодирует строку, закодированную URL-адресом. Если строка не имеет правильного формата, функция возвращается NULL вместо того, чтобы вызывать ошибку.
  • Оптимизатор может при необходимости полагаться на необеспеченные ограничения внешнего ключа: Для повышения производительности запросов теперь можно указать ключевое слово RELY для ограничений FOREIGN KEY при создании таблицы с помощью CREATE или её изменении с помощью ALTER .
  • параллельное задание выполняется для выборочных перезаписей: выборочные перезаписи с помощью replaceWhere теперь выполняют задания, которые удаляют данные и вставляют новые данные параллельно, повышая производительность запросов и использование кластера.
  • улучшенная производительность канала данных изменений с выборочными перезаписями: выборочные перезаписи с использованием replaceWhere на таблицах с каналом данных изменений больше не создают отдельные файлы данных изменений для вставленных данных. Эти операции используют скрытый столбец _change_type, присутствующий в основных файлах данных Parquet, для записи изменений без увеличения объема записи.
  • Улучшенная задержка запроса для COPY INTO команды: этот выпуск включает изменение, которое улучшает задержку запроса для COPY INTO команды. Это улучшение реализуется путем загрузки состояния в хранилище состояний RocksDB асинхронно. При этом изменении вы увидите улучшение времени начала запросов с большими состояниями, например запросы с большим количеством уже полученных файлов.
  • Поддержка удаления функции таблицы ограничений проверки: теперь можно удалить функцию таблицы checkConstraints из таблицы Delta с помощью ALTER TABLE table_name DROP FEATURE checkConstraints. См. раздел "Отключить ограничения проверки".

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

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

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

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

    CREATE ... IF ! EXISTS, IS ! ЗНАЧЕНИЕ NULL, ! NULL столбца или свойства поля, ! IN и ! Между необходимо заменить следующими значениями:

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

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

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

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

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

  • Добавление ограничения CHECK для недопустимого столбца теперь возвращает UNRESOLVED_COLUMN. класс ошибок WITH_SUGGESTION: Для предоставления более полезных сообщений об ошибках в Databricks Runtime 15.3 и более поздних версий оператор ALTER TABLE ADD CONSTRAINT, содержащий ограничение CHECK, ссылающееся на недопустимое имя столбца, возвращает 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, чтобы ссылаться на все столбцы из списка SELECT.

Например, 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 с некоторыми изменениями, которые удаляют поддержку некоторых несерверных и устаревших функций.

поддерживаемые параметры конфигурации Spark

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

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

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

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

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

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

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

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

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

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