Что такое 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.
- Прогнозный ввод-вывод для чтения и записи. См. сведения о прогнозных ввода-выводах.
- Геопространственные выражения H3. См. раздел Геопространственные функции H3.
- Динамическое удаление файлов в инструкциях
MERGE
,UPDATE
иDELETE
. См. раздел Динамическое удаление файлов.
Ограничения
- Структурированная потоковая передача: Photon в настоящее время поддерживает потоковую передачу без отслеживания состояния с помощью Delta, Parquet, CSV и JSON. Потоковая передача Kafka и Kinesis без отслеживания состояния поддерживается при записи в приемник Delta или Parquet.
- Photon не поддерживает UDF, RDD или интерфейсы программирования набора данных.
- Фотон не влияет на запросы, которые обычно выполняются в течение двух секунд.
Если рабочая нагрузка попадает в неподдерживаемую операцию, вычислительный ресурс переключается на стандартный модуль среды выполнения для остальной части рабочей нагрузки.