Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описаны уровни изоляции и поведение конфликтов при записи для таблиц Delta Lake в Azure Databricks.
Delta Lake обеспечивает гарантии транзакций ACID между чтением и записью:
- Писатели: несколько писателей в нескольких кластерах могут одновременно изменять раздел таблицы. Писатели видят согласованное моментальное отображение таблицы, и запись данных осуществляется в последовательном порядке.
- Читатели: читатели продолжают видеть согласованное представление снимка таблицы, с которым началась работа Azure Databricks, даже при изменении таблицы в течение выполнения задания.
См. Что такое гарантии ACID в Azure Databricks?.
Замечание
Azure Databricks использует Delta Lake для всех таблиц по умолчанию.
Темы изоляции
| Тема | Описание |
|---|---|
| Уровни изоляции (WriteSerializable и Serializable) | Как два уровня изоляции влияют на одновременные операции и как их настроить. |
| Параллелизм на уровне строк | Как обнаружение конфликтов на уровне строк уменьшает конфликты записи для параллельных операций с теми же файлами данных. |
Сведения об изоляции транзакций, поведении моментальных снимков и обработке конфликтов см. раздел Изоляция транзакций.
Конфликты изменений метаданных
Изменения метаданных вызывают сбой всех одновременных операций записи. Эти операции включают изменения в протокол таблицы, свойства таблицы или схему данных.
Потоковое чтение завершается сбоем при обнаружении коммита, который изменяет метаданные таблицы. Если вы хотите продолжить поток, необходимо перезапустить его. Рекомендуемые методы см. в разделе "Производственные соображения для структурированной потоковой передачи".
Ниже приведены примеры запросов, которые изменяют метаданные:
-- Set a table property
ALTER TABLE table_name SET TBLPROPERTIES ('delta.isolationLevel' = 'Serializable')
-- Enable a feature using a table property and update the table protocol
ALTER TABLE table_name SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);
-- Drop a table feature
ALTER TABLE table_name DROP FEATURE deletionVectors;
-- Upgrade to UniForm
REORG TABLE table_name APPLY (UPGRADE UNIFORM(ICEBERG_COMPAT_VERSION=2));
-- Update the table schema
ALTER TABLE table_name ADD COLUMNS (col_name STRING);