AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.04.2021, 17:29   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от George Nordic Посмотреть сообщение
Если чуть экстраполировать вопрос до как "правильно регулярно передавать много элементов коллекции", то ответ только один - change data capture. Добро пожаловать во взрослый мир к Informatica PEC, Oracle GoldenGate, Qlik Data Integration и Debezeum. Вариантов, увы, нет.
прирожденный продавец

мы уже давно во взрослом мире.
и как я говорил, решение уже есть.

давай лучше поговорим как правильно? и как правильно делают упомянутые тобой решения?
__________________
полезное на axForum, github, vk, coub.
Старый 06.04.2021, 17:56   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от mazzy Посмотреть сообщение
прирожденный продавец
Не только. Более того, продажами софта я не занимаюсь. Я за всеобщую цифровую грамотность.
Цитата:
Сообщение от mazzy Посмотреть сообщение
и как правильно делают упомянутые тобой решения?
упомянутые мною решения, как платные так и open source, делают одно - он реплицируют данные из системы А в систему В. В режиме, близком в режиму реального времени, хотя временной лаг все равно есть. Да, и это требует включения режима расширенного логирования, так как они читают логи, что BDA не всегда по нраву. И, некоторые, установки агента, что уже не по нраву и безопасникам.
  • Если задача стоит "надо сделать так, чтобы в системе В мгновенно отображались данные системы А" - горячее копирование, личный кабинет, репликация баз данных и т.п. - то это только CDC.
  • Если изменений не так много и скорость репликации не так важна, но тоже критична, то можно обойтись брокером сообщений.
  • Если изменения необходимо синхронизировать раз в день или раз в неделю, то можно реплицировать таблицы bulk load или просто инкрементом передавать новые / измененые / удаленные данные.

Какое именно решение считать "правильным" зависит от задачи и от критичности скорости изменений. Да, еще есть критерий гарантированной доставки сообщений и двухсторонней репликации / разруливания конфликтов репликации, но это за рамками обсуждения, иначе еще про шины данных придется рассказывать, такие как IBM WebSphere.

С Уважением,
Георгий
За это сообщение автора поблагодарили: mazzy (2).
Старый 06.04.2021, 18:12   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от George Nordic Посмотреть сообщение
Не только. Более того, продажами софта я не занимаюсь. Я за всеобщую цифровую грамотность.
я тоже!

- пойдем простым логическим путём
- пойдем вместе!
https://www.youtube.com/watch?v=wK1fq2QZbRk

Цитата:
Сообщение от George Nordic Посмотреть сообщение
Да, и это требует включения режима расширенного логирования, так как они читают логи, что BDA не всегда по нраву.
во-первых, я уже говорил, что прямой доступ к запросам и/или к структуре таблиц - это плохо с точки зрения изолированности систем

во-вторых, я не зря упомянул ax2009 и ax2012
в ax2012 (в той самой, где перехерачили главную книгу) перехерачили очень много других таблиц. в результате ОЧЕНЬ много таблиц в ax2012 не совпадают с ax2009

взять тривиальную таблицу единиц измерения.
в единицах измерения разное все - количество таблиц, количество полей, ограничения на поля. даже одинаковые по смыслу enum'ы разные!

Нажмите на изображение для увеличения
Название: ax2009.PNG
Просмотров: 34
Размер:	48.3 Кб
ID:	13155 Нажмите на изображение для увеличения
Название: ax2012.PNG
Просмотров: 36
Размер:	70.6 Кб
ID:	13156

Да, я понял что ты хотел сказать про синхронизацию баз данных.
я не считаю этот способ правильным ни для Аксапт, ни для других разнородных клиентов.

Цитата:
Сообщение от George Nordic Посмотреть сообщение
Какое именно решение считать "правильным" зависит от задачи и от критичности скорости изменений. Да, еще есть критерий гарантированной доставки сообщений и двухсторонней репликации / разруливания конфликтов репликации, но это за рамками обсуждения, иначе еще про шины данных придется рассказывать, такие как IBM WebSphere.
начинается...
да, я тоже за грамотность.

но если зависит, то скажи как и на что.
про гарантированность - отдельный вопрос. реализаутся за счет отправки специальных подтверждений в той же самой передаваемой коллекции

я думаю, что для аксапты не актуально горячее копирование.
я думаю, что для аксапты актуальны эти варианты:
Цитата:
Сообщение от George Nordic Посмотреть сообщение
  • Если изменений не так много и скорость репликации не так важна, но тоже критична, то можно обойтись брокером сообщений.
  • Если изменения необходимо синхронизировать раз в день или раз в неделю, то можно реплицировать таблицы bulk load или просто инкрементом передавать новые / измененые / удаленные данные.
Причём, ни фига НЕ "инкрементом"!
инкремент за dDOS'ит системы нафиг. Для аксапты характерны таблицы, в которых поля обновляются часто. Какая-нибудь последняя себестоимость в карточках номенклатуры, например.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 06.04.2021 в 18:19.
Старый 06.04.2021, 18:42   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от mazzy Посмотреть сообщение
во-первых, я уже говорил, что прямой доступ к запросам и/или к структуре таблиц - это плохо с точки зрения изолированности систем
Это не совсем так, есть класс задач, когда по-другому - никак. Например, отображение проводки в личном кабинете. Это или CDC, или триггер на таблице. И там и там есть нюансы. Пример 2 - данные из транзакционных систем в MPP DB для решения оптимизационных задач - next best offer, подбор такси, "рекомендуем посмотреть", контекстная реклама и т.д.
Цитата:
Сообщение от mazzy Посмотреть сообщение
Да, я понял что ты хотел сказать про синхронизацию баз данных. я не считаю этот способ правильным ни для Аксапт, ни для других разнородных клиентов.
Для DAX - да, согласен и даже рассказал почему. Про "других разнородных клиентов" - я бы на был настолько категоричен, честно.
Цитата:
Сообщение от mazzy Посмотреть сообщение
инкремент за dDOS'ит системы нафиг. Для аксапты характерны таблицы, в которых поля обновляются часто. Какая-нибудь последняя себестоимость в карточках номенклатуры, например.
а насколько нужно ее часто реплицировать? Это и брокера убьет нафик. Плюс возможны будут варианты, когда изменение со старой себестоимостью придет позже сообщения с новой себестоимостью - не факт что брокер будет успевать доставить все по очереди(!) или приёмник - обрабатывать по очереди отправки. Значит, еще и версионность вводить и проверять. Оно точно надо?

С Уважением,
Георгий
Старый 06.04.2021, 18:49   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от George Nordic Посмотреть сообщение
а насколько нужно ее часто реплицировать? Это и брокера убьет нафик. Плюс возможны будут варианты, когда изменение со старой себестоимостью придет позже сообщения с новой себестоимостью - не факт что брокер будет успевать доставить все по очереди(!). Значит, еще и версионность вводить и проверять. Оно точно надо?
воооот! прекрасные вопросы.
а какие есть варианты решений?

как технарь со знанием, можешь выделить важные параметры и граничные значения и как они влияют?

повторю, вопрос, в котором я постарался зафиксировать действительно важные на мой взгляд параметры:

ax2012,ax2009: как правильно передать 100500 элементов коллекции через WCF?

готов послушать для вариантов, где используется не WCF. но все остальные слова остаются в вопросе.

готов принять вводные характерные для аксапты. например, это точно не "горячее копирование". например, нормальная скорость 1 изменение в секунду. например, размер элемента в коллекции до 8кб, а число элементов измеряется скорее сотнями тысяч, но никак не сотнями миллионов. и другие характерные для аксапты вводные.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 06.04.2021 в 18:55.
Старый 06.04.2021, 18:53   #6  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от mazzy Посмотреть сообщение
1К изменений в секунду.
Это кто-то погорячился. Я такие скорости только в большом телекоме видел. Поправь, плиз.

С Уважением,
Георгий
Старый 06.04.2021, 18:56   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от George Nordic Посмотреть сообщение
Это кто-то погорячился. Я такие скорости только в большом телекоме видел. Поправь, плиз.

С Уважением,
Георгий
легко. пусть будет 1 изменение в секунду.
если кому-то хочется другую границу - вводите в свое обсуждение и вперед.

хотя, конечно, 1000 проводок в секунду для аксапты легко.
ну, пусть будет 1 (одна).
не принципиально для данного обсуждения, на мой взгляд.
__________________
полезное на axForum, github, vk, coub.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Denis Trunin's Blogs: Examples of AX2012/ AX2009 performance problems Blog bot DAX Blogs 0 12.01.2020 05:02
Перенос и адаптация кода с Ax2009 на Ax2012 R3 matew DAX: Прочие вопросы 10 23.01.2015 19:52
как передать значение из диалога в форму, вызываемую через menuItem? алька DAX: Программирование 9 25.06.2007 16:46
Передать контейнер в job через COM sao DAX: Программирование 5 21.02.2006 19:34
Как в параметрах подпрограммы передать массив элементов. Yuri Safronov DAX: Программирование 3 14.10.2002 16:35

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:42.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.