SQLAlchemy ORM для 12 дублирующих таблиц в каждой из 6 баз данных шарда

Ситуация:

У меня есть набор из 12 таблиц одинаковой структуры (представляющих данные по месяцам), которые существуют на каждом из 6 шардов в разных базах данных. Мне нужно получить набор данных для любой из этих баз данных за любой заданный набор месяцев.

База данных определяется идентификатором записи, таблица определяется месяцем значения даты в записи.

Вопрос:

Каков наилучший способ настроить SQLAlchemy ORM для этого?

Изначально мне нужно было запрашивать данные только один месяц за раз, поэтому я настроил ShardedSession, отображающий мой класс Data в одну из двенадцати таблиц данных, игнорируя существование тех, которые мне не нужны. Теперь мне нужно выбрать случайные наборы данных за 3 разных месяца в любой момент времени. Есть ли способ, которым я могу отобразить один и тот же класс на 3 разных таблицы одинаковой структуры, чтобы они все рассматривались как один? Так что я могу получить случайный выбор записей за эти 3 месяца.

Ранее я задавал похожий вопрос и опубликовал решение, которое придумал здесь: Классическая модель сопоставления SQLAlchemy для сегментированных баз данных Postgres. Я использую классическую модель сопоставления, я не уверен, что это лучше, но это был единственный способ, которым я мог бы понять, как заставить вещи работать.

Я немного читал об наследовании конкретных таблиц и имени объекта, но в прошлый раз я не смог заставить работать решение по имени объекта.

Любые указатели будут с благодарностью! Спасибо!

0 ответов

Другие вопросы по тегам