Итак, у меня есть интересная проблема, которая стала плодом большого количества хороших дискуссий в моей группе на работе.
У нас есть научное программное обеспечение, создающее файлы SQLlite, и это программное обеспечение, по сути, представляет собой черный ящик. Мы не контролируем его дизайн таблиц, форматы и т. д. Вполне возможно, что вывод этого черного ящика может измениться, и наш дизайн должен быть в состоянии справиться с этим.
Файлы SQLlite — это целые базы данных, которые наш пользователь хотел бы запрашивать по всем. Есть два способа (мы видим) реализовать это: один — создать единую базу данных и серверную часть на Python, которая добавляет таблицы из каждой базы данных в главную базу данных, и два — выполнять запросы к таблицам отдельных баз данных и унифицировать результаты в Python. .
Оба метода сталкиваются с проблемами, когда черный ящик изменяет структуру своей таблицы, например, переименовывает столбец, разделяет таблицу и т. д. Мы должны принять это во внимание, и мы обсуждали таблицы преобразования, которые переводят запросы столбцов из одного формата таблицы в другой.
Нас интересует простота реализации, насколько хорошо дизайн справляется с изменениями в макете базы данных/таблицы и скорость. Кроме того, последнее измерение заключается в том, насколько хорошо он будет работать с существующими веб-фреймворками Python (Django не поддерживает запросы между базами данных, как и SQLAlchemy, поэтому мы знаем, что нам предстоит много программирования).