Тестирование атомарности дельта-таблиц с использованием Delta-RS: неожиданные файлы, записанные несмотря на исключениеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Тестирование атомарности дельта-таблиц с использованием Delta-RS: неожиданные файлы, записанные несмотря на исключение

Сообщение Anonymous »

Я изучаю Delta-RS для преобразования фреймов данных Pandas в дельта-таблицы и использования его соответствия ACID, в частности, тестирования атомарности. Атомарность гарантирует, что либо вся операция будет завершена, либо изменения вообще не будут внесены.
Чтобы проверить это, я написал функцию, которая намеренно вызывает исключение перед вызов write_deltalake. Я ожидал, что в случае возникновения исключения никаких изменений не произойдет и файлы не будут записаны. Однако это не то, что я наблюдал, и мне нужно уточнить, почему такое поведение происходит.
Вот функция, которую я использовал:

Код: Выделить всё

def create_dim(df: pd.DataFrame, table_path: str):
raise Exception("Raising Error")  # Intentionally raise an exception before writing
write_deltalake(table_path, df, mode="overwrite", storage_options=STORAGE_OPTIONS)
Ожидаемый результат:
Поскольку оператор поднять исключение выполняется перед вызовом write_deltalake , я ожидал, что:
Никакая папка не будет создана по пути table_path в моей корзине S3.
Ни один журнал Delta или файл Parquet не будут записаны.
Актуально Результат:
Когда я выполнил функцию (вызвав create_dim(..., ...)), произошло следующее:
A папка была создана по указанному table_path.
И журнал Delta, и файл Parquet были записаны в корзину S3.
Такое поведение кажется нелогичным, как я и ожидал от атомарности< Delta Lake. /strong> гарантирует, что никакие изменения не произойдут, если вся транзакция прошла успешно.
Почему файлы записываются, хотя исключение возникает до вызова функции write_deltalake? Я неправильно понимаю поведение Delta-RS или модель выполнения Python?
Будем очень признательны за любые рекомендации!

Подробнее здесь: https://stackoverflow.com/questions/792 ... tten-despi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»