Symfony-Doctrine - лучший способ импортировать данные из разных баз данных

0

Я использую Symfony 3.4, мне нужно ежедневно импортировать некоторые данные из таблицы в другую. Исходная таблица хранится в БД в SQL Server. Таблица назначения хранится в базе данных MySql.

Каков наилучший способ реализовать это? Я думал о команде с cron, которые выполняют импорт, но я не знаю, следует ли использовать Doctrine Entities или SQL и хранить данные в массиве, а затем скопировать его в таблицу назначения... какое-то предложение? Спасибо

  • 3
    Сколько строк вы должны перенести в день? Если возможно, лучше сохранить сущности доктрины для согласованности объектов. Но если вам нужно перенести много строк в день, вы можете использовать собственный SQL-запрос, чтобы повысить производительность и избежать процесса гидратации сущностей доктрины :)
  • 1
    В дополнение к @Mcsky docs.doctrine-project.org/projects/doctrine-orm/en/latest/… (вы можете опубликовать это как ответ)
Показать ещё 2 комментария
Теги:
doctrine2

1 ответ

2
Лучший ответ

В общем, лучше использовать сущности doctrine, потому что у них есть свои бизнес-правила (например, пользовательские методы с некоторыми логиками)

Кроме того, вы можете частично загружать объекты с помощью EntityManager->createNativeQuery(...) выбирая только свойства/отношения, которые вам нужны, поэтому процесс гидратации доктрины займет меньше памяти.

Поскольку @goto упоминается в комментарии, пакетный процесс является ключевым при манипулировании большим набором объектов доктрины (без этого требуется столько памяти)

Нет ни одного хорошего решения, зависящего от количества строк, которые вы должны перенести в день. Если вам нужно обрабатывать очень большой набор данных, вы можете использовать собственный SQL-запрос для простого заполнения массива для производительности.

Надеюсь, это помогло :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню