Я обращаюсь к дельта-таблицам Databricks из Azure фабрики данных, у которой нет собственного соединителя с таблицами Databricks. Поэтому в качестве обходного пути я создаю таблицы с ключевым словом LOCATION, чтобы хранить их в Azure Data Lake. Затем, поскольку я знаю местоположение файла таблицы, я просто читаю основные файлы Parquet из фабрики данных. Это прекрасно работает.
Но ... что если в журнале транзакций Delta есть кэшированная информация, которая еще не была записана на диск? Скажем, приложение обновило строку в таблице, а диск еще не отражает этот факт. Тогда мое чтение из фабрики данных будет неправильным.
Итак, два вопроса ...
- Может ли это случиться? Сохраняются ли изменения в журнале до записи?
- Могу ли я принудительно вызвать журнал транзакций flu sh, чтобы я знал, что копия диска обновлена?