Где azure Databricks записывает данные?
В этой статье описаны расположения Azure Databricks для записи данных с помощью повседневных операций и конфигураций. Так как Azure Databricks имеет набор средств, охватывающих множество технологий и взаимодействующих с облачными ресурсами в модели общей ответственности, расположения по умолчанию, используемые для хранения данных, зависят от среды выполнения, конфигураций и библиотек.
Сведения в этой статье предназначены для понимания путей по умолчанию для различных операций и способа изменения конфигураций по умолчанию. Администраторы и администраторы данных ищут рекомендации по настройке и управлению доступом к данным, которые должны видеть управление данными с помощью каталога Unity.
Сведения о настройке хранилища объектов и других источников данных см. в статье "Подключение к источникам данных".
Что такое хранилище объектов?
В облачных вычислениях хранилище объектов или хранилище BLOB-объектов относится к контейнерам хранилища, которые хранят данные как объекты, с каждым объектом, состоящим из данных, метаданных и глобально уникальным идентификатором ресурса (URI). Операции обработки данных хранилища объектов часто ограничиваются созданием, чтением, обновлением и удалением (CRUD) через интерфейс REST API. Некоторые предложения хранилища объектов включают такие функции, как управление версиями и жизненным циклом. Хранилище объектов имеет следующие преимущества:
- Высокий уровень доступности, устойчивость и надежность.
- Более низкие затраты на хранение по сравнению с большинством других вариантов хранения.
- Бесконечно масштабируемый (ограничивается общим объемом хранилища, доступным в определенном облачном регионе).
Большинство облачных озер данных основаны на открытый код форматах данных в облачном хранилище объектов.
Как Azure Databricks использует хранилище объектов?
Хранилище объектов — это основная форма хранения, используемая Azure Databricks для большинства операций. Вы настраиваете доступ к облачному хранилищу объектов с помощью учетных данных хранилища каталога Unity и внешних расположений. Затем эти расположения используются для хранения файлов данных резервных таблиц и томов. См. статью "Подключение к облачному хранилищу объектов и службам с помощью каталога Unity".
Если таблица не настроена для внешней системы данных, все таблицы, созданные в Azure Databricks, хранят данные в облачном хранилище объектов.
Файлы Delta Lake, хранящиеся в облачном хранилище объектов, предоставляют основу данных для Databricks lakehouse.
Что такое хранилище блоков?
В облачных вычислениях блочное хранилище или хранилище дисков относится к томам хранилища, которые соответствуют традиционным жестким дискам (HDD) или твердотельным дискам (SSD), также называемым "жесткими дисками". При развертывании блочного хранилища в облачной вычислительной среде логический раздел одного или нескольких физических дисков обычно развертывается. Реализации немного различаются между предложениями продуктов и поставщиками облачных решений, но следующие характеристики обычно находятся в различных реализациях:
- Для всех виртуальных машин (виртуальных машин) требуется подключенный том блочного хранилища.
- Файлы и программы, установленные в том блочного хранилища, сохраняются до тех пор, пока сохраняется том блочного хранилища.
- Тома блочного хранилища часто используются для временного хранилища данных.
- Блочные тома хранилища, подключенные к виртуальным машинам, обычно удаляются вместе с виртуальными машинами.
Как Azure Databricks использует хранилище блоков?
При включении вычислительных ресурсов Azure Databricks настраивает и развертывает виртуальные машины и подключает тома блочного хранилища. Это хранилище блоков используется для хранения временных файлов данных в течение всего времени существования вычислительного ресурса. К этим файлам относятся операционная система, установленные библиотеки и данные, используемые кэшем дисков. Хотя Apache Spark использует блочное хранилище в фоновом режиме для эффективной параллелизации и загрузки данных, большинство кодов, выполняемых в Azure Databricks, не сохраняет или не загружает данные для блокировки хранилища.
Вы можете выполнить произвольный код, например команды Python или Bash, использующие хранилище блоков, подключенное к узлу драйвера. См. статью " Работа с файлами в эфемерном хранилище, подключенном к узлу драйвера".
Где каталог Unity хранит файлы данных?
Каталог Unity использует администраторов для настройки связей между облачным хранилищем и реляционными объектами. Точное расположение, в котором находятся данные, зависит от того, как администраторы настроили отношения.
Данные, записанные или отправленные в объекты, управляемые каталогом Unity, хранятся в одном из следующих расположений:
- Расположение управляемого хранилища, связанное с хранилищем метаданных, каталогом или схемой. Данные, записанные или отправленные в управляемые таблицы и управляемые тома, используют управляемое хранилище. См. раздел "Указание расположения управляемого хранилища" в каталоге Unity.
- Внешнее расположение, настроенное с учетными данными хранения. Данные, записанные или отправленные во внешние таблицы и внешние тома, используют внешнее хранилище. См. статью "Подключение к облачному хранилищу объектов и службам с помощью каталога Unity".
Где Databricks SQL хранит резервные таблицы данных?
При запуске инструкции с databricks SQL, настроенной CREATE TABLE
с помощью каталога Unity, поведение по умолчанию — хранить файлы данных в управляемом расположении хранилища, настроенном с помощью каталога Unity. См. раздел " Где каталог Unity хранит файлы данных?".
Каталог прежних версий hive_metastore
следует разным правилам. См. статью " Работа с каталогом Unity" и устаревшим хранилищем метаданных Hive.
Где разностные динамические таблицы хранят файлы данных?
Databricks рекомендует использовать каталог Unity при создании конвейеров DLT. Данные хранятся в каталогах в расположении управляемого хранилища, связанном с целевой схемой.
При необходимости можно настроить конвейеры DLT с помощью хранилища метаданных Hive. При настройке хранилища метаданных Hive можно указать расположение хранилища в DBFS или облачном хранилище объектов. Если расположение не указано, то для конвейера назначается расположение в корневом каталоге DBFS.
Где Apache Spark записывает файлы данных?
Databricks рекомендует использовать имена объектов с каталогом Unity для чтения и записи данных. Вы также можете записывать файлы в тома каталога Unity с помощью следующего шаблона: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
Необходимо иметь достаточные привилегии для отправки, создания, обновления или вставки данных в объекты, управляемые каталогом Unity.
При необходимости можно использовать универсальные индикаторы ресурсов (URI), чтобы указать пути к файлам данных. URI зависят от поставщика облачных служб. Необходимо также иметь разрешения на запись, настроенные для текущего вычислительного ресурса для записи в облачное хранилище объектов.
Azure Databricks использует файловую систему Databricks для сопоставления команд Apache Spark с чтением и записью обратно в облачное хранилище объектов. Каждая рабочая область Azure Databricks имеет расположение корневого хранилища DBFS, настроенное в облачной учетной записи, выделенной для рабочей области, доступ ко всем пользователям для чтения и записи данных. Databricks не рекомендует использовать корневой каталог DBFS для хранения любых рабочих данных. См. сведения о том, что такое DBFS? и рекомендации по работе с корнем DBFS.
Где pandas записывает файлы данных в Azure Databricks?
В Databricks Runtime 14.0 и выше текущий рабочий каталог по умолчанию (CWD) для всех локальных операций чтения и записи Python — это каталог, содержащий записную книжку. Если вы предоставляете только имя файла при сохранении файла данных, pandas сохраняет этот файл данных в виде файла рабочей области параллельно с текущей записной книжкой.
Не все версии среды выполнения Databricks поддерживают файлы рабочей области, а некоторые версии среды выполнения Databricks отличаются в зависимости от того, используются ли записные книжки или папки Git. См. раздел " Что такое текущий рабочий каталог по умолчанию?".
Где следует записывать временные файлы в Azure Databricks?
Если вы не хотите сохранять временные файлы после завершения работы кластера, запись временных файлов $TEMPDIR
для повышения производительности, чем запись в текущий рабочий каталог (CWD), если CWD находится в файловой системе рабочей области. Кроме того, можно избежать превышения ограничений размера ветви, если код выполняется в репозитории. Дополнительные сведения см. в разделе "Ограничения файлов и репозитория".
/local_disk0
Запись в том случае, если объем записываемых данных велик и требуется, чтобы хранилище было автомасштабированием.