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


Что такое Photon?

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

Photon — это высокопроизводительный модуль векторных запросов Azure Databricks, который выполняет рабочие нагрузки SQL и вызовы API кадра данных быстрее, чтобы сократить общую стоимость каждой рабочей нагрузки. Photon совместим с API Apache Spark, поэтому он работает с существующим кодом.

Функции фотона

Ниже приведены ключевые функции и преимущества использования Photon.

  • Поддержка операций SQL и эквивалентных операций DataFrame с таблицами Delta и Parquet.
  • Ускоренные запросы, которые обрабатывают данные быстрее и включают агрегаты и соединения.
  • Более высокая производительность при многократном обращении к данным из кэша диска.
  • Надежная производительность сканирования в таблицах с большим количеством столбцов и большим количеством небольших файлов.
  • Быстрая запись данных Delta и Parquet с помощью UPDATE, DELETE, MERGE INTO, INSERTи CREATE TABLE AS SELECT, включая широкие таблицы, содержащие тысячи столбцов.
  • Заменяет объединения с сортировкой и слиянием хэш-соединениями.
  • Для рабочих нагрузок искусственного интеллекта и машинного обучения Photon повышает производительность приложений с помощью Spark SQL, Кадров данных Spark, инженерии функций, GraphFrames и xgboost4j.

Включение фотона

Включение фотонаправки зависит от типа вычислений:

  • Фотона выполняется по умолчанию в хранилищах SQL и бессерверных вычислительных ресурсах для записных книжек и рабочих процессов.

  • Фотона включена по умолчанию для вычислений, работающих под управлением Databricks Runtime 9.1 LTS и более поздних версий.

  • Фотон можно включить вручную для вычислений, работающих Databricks Runtime 15.2 для машинного обучения (EoS) или более поздней версии.

Настройка включения Photon

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

Фотона не включена по умолчанию для каких-либо вычислений, созданных с помощью API кластеров или API заданий. Чтобы включить Photon, необходимо задать для атрибута runtime_engine значение PHOTON.

Поддерживаемые типы экземпляров

Photon поддерживает ряд типов экземпляров на драйвере и рабочих узлах. Скорость потребления DBU у типов экземпляров Photon отличается от скорости таких же типов экземпляров, работающих не в среде Photon. Дополнительные сведения об экземплярах Photon и потреблении DBU см. на странице цен Azure Databricks.

Поддерживаемые операторы, выражения и типы данных

Ниже приведены операторы, выражения и типы данных, охватывающие Фотон.

Операторы

  • Сканирование, фильтрация, проект
  • Хэш агрегирование/присоединение/перетасовка
  • Nested-Loop Присоединение
  • Null-Aware антиприсоединения
  • Объединение, развертывание, скалярный вложенный запрос
  • Приемник записи Delta/Parquet
  • Сортировать
  • Функция окна

Выражения

  • Сравнение и логика
  • Арифметические / математические (большинство)
  • Условные (IF, CASE и т. д.)
  • Строковые (распространенные)
  • Приведения
  • Агрегаты (наиболее распространенные)
  • Дата/метка времени

Типы данных

  • Byte/Short/Int/Long
  • Логический
  • Строковые и двоичные типы
  • Десятичное число
  • Float/Double
  • Дата/метка времени
  • Структура
  • Массив
  • Карта

Функции, требующие Фотона

Ниже приведены функции, требующие Photon.

Ограничения

  • Структурированная потоковая передача: Photon в настоящее время поддерживает потоковую передачу без отслеживания состояния с помощью Delta, Parquet, CSV и JSON. Потоковая передача Kafka и Kinesis без отслеживания состояния поддерживается при записи в приемник Delta или Parquet.
  • Photon не поддерживает UDF, RDD или интерфейсы программирования набора данных.
  • Фотон не влияет на запросы, которые обычно выполняются в течение двух секунд.

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