Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как лучше сделать
|
|||
|---|---|---|---|
|
#18+
sherzod_White Owl, Вы понимаете что TransactSQL может все? В том числе обработать любые ошибки в данных. Это полноценный язык программирования предназначенный именно для таких задач. Но даже это не важно. Важно то что в даже рамках ANSI SQL указанная задача преобразования дат решается простым coalesce.То что задачу решить можно этими средствами, не означает что ее нужно решать этими средствами. Я разве когда-то говорил что миграцию невозможно сделать на чистом SQL? (кстати, TransactSQL очень хиленький диалект). Я говорю об эффективности и скорости решения задачи. sherzod_А миграцией данных тут каждый первый занимался. На скульру как никак находимся. И уж точно никакой DB специалист не станет писать для миграции программу на си или плюсах. Это нонсенс.Ну я писал. И пишу. При этом и "штатные средства" (в частности Data Services от BO) тоже используются, так же есть несколько баз таскающие данные друг у друга через linked/proxy tables. А одна связка сделана на bat+bcp и ниче, живет и здравствует. Вот только почему-то мои клиенты на С обрабатывают больше данных и делают это быстрее. И логи от них можно впрямую отдавать секретарям-машинисткам для исправления ошибок в исходных базах (секретари-машинистки ничего не знают о структурах этих баз и часто вообще не знают что такое база данных). sherzod_У нас для таких задач максимум что написано (причем на шарпе), так это скриптовалка, которая анализируя схему выдает скрипты дифов схем. А вы говорите миграция на плюсах. Не 80-й год ведь. Пока вы там неделю ваять будете и баги править, DBA вам скриптик накатает минут за 5 для одной таблицы, со всеми обработками ошибок. Да пожалуйста, пожалуйста. Хочешь спихнуть задачу на DBA и заставить его катать скриптики - вперед. Только учти что это ты не решаешь задачу на самом деле, а ты спихиваешь задачу на кого-то еще и надеешься что она будет решена эффективнее чем ты сам ее решишь. Только и всего. Не хочешь мне верить что клиент построенный вокруг бизнес-объектов эффективнее и удобнее чем блочная обработка таблиц - не верь. ССЗБ, как говориться... sherzod_Еще на фортране посоветуйте миграцию сделать. Фокус пойдет? У нас одна из связок именно на нем работает. С мейнфрейма данные выкачиваются Фокусом в файлы, потом программка на Rexx сортирует их и пересылает по ftp на AIX'овый хост, а там их подхватывают несколько сотен Perl'овых скриптов которые уже и заливают данные в ASE. И если перловую половину миграции можно переписать на что-то еще, то фокусную - обломинго, ограничения платформы. И все это отрабатывает каждую ночь... sherzod_И не путайте роли. Дело архитектора схему разработать а не скриптики миграции писать, последнее теоретически делает дба или разработчик, а практически дба или дба.ню-ню :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 00:44 |
|
||
|
как лучше сделать
|
|||
|---|---|---|---|
|
#18+
denis_stellинтересен ваш вариант, можете привести пример(код), на пальцах или ссылку где есть что-то подобное? А это чем не на пальцах? White OwlСделай на клиенте структуры (классы) представляющие собой бизнес-объекты. Потом заполняешь эти объекты из одной базы, и после того как собрал объект целиком - пишешь в новую базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 01:07 |
|
||
|
как лучше сделать
|
|||
|---|---|---|---|
|
#18+
White Owldenis_stellинтересен ваш вариант, можете привести пример(код), на пальцах или ссылку где есть что-то подобное? А это чем не на пальцах? White OwlСделай на клиенте структуры (классы) представляющие собой бизнес-объекты. Потом заполняешь эти объекты из одной базы, и после того как собрал объект целиком - пишешь в новую базу. Если не затруднит Вас пример, простенький ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 10:00 |
|
||
|
как лучше сделать
|
|||
|---|---|---|---|
|
#18+
sherzod_, Ты , наверное, PM из бывших разработчиков БД. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 11:30 |
|
||
|
как лучше сделать
|
|||
|---|---|---|---|
|
#18+
denis_stell[quot White Owl Мне сильно кажется что ты занимаешься переливкой данных. Читаешь из одной таблицы и пишешь в другую. Так? Если "да", то очень плохо. Сделай на клиенте структуры (классы) представляющие собой бизнес-объекты. Потом заполняешь эти объекты из одной базы, и после того как собрал объект целиком - пишешь в новую базу. именно переливка и уже понял,что плохо. интересен ваш вариант, можете привести пример(код), на пальцах или ссылку где есть что-то подобное?[/quot] Кстати, не в обиду плюсам, но тут бы мог помочь hibernate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 11:35 |
|
||
|
как лучше сделать
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Нет я разработчик, и как и все здесь, плотно занимался базами, и просто знаю что уж такую вещь как перенос данных, языковыми средствами самой базы в десятки раз быстрее сделать. Я сторонник применения соответствующих инструментов. Ладно еще там подмешана бизнес-логика, какие-то adhock задачи - можно вынести, но перенос (включая обработку ошибок) - не не, огород. Просто бывает сильна привычка. У меня есть друг который не осваивал кроме плюсов ничего. Вот ему любую задачу легче и комфортнее сделать на плюсах. Бывает такие огороды городит что волосы дыбом встают. Хотя я не хочу спорить с White Owl, если задачи решаются, и все работает, это хорошо и результативно, и никто не ругается - то какая разница, на чем ты это делаешь:)). Другое дело, что наиболее вероятный путь который он пройдет (мой друг) - начнет понимать что тексты запросов надо выносить из кода, потом начнет понимать что надо как-то их шаблонизировать (слишком много схожестей), будет добавлять расширенную параметризацию запросов, потом начнет делать конструктор, начнет более-менее понимать что в диалекте его базы довольно много полезных функций, добавит скриптовалку на Lua или JS, и в конце концов придумает свой SQL PL, увидит что он только что заново написал жалкую пародию на диалект используемой базы, и будет просветлен, разве вам это не знакомо? А если не пройдет, значит сила привычки оказалась сильнее. While Owl, и не говорите что у вас в утилитах не присутствует ничего из выше-описанного :)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 12:11 |
|
||
|
как лучше сделать
|
|||
|---|---|---|---|
|
#18+
sherzod_Просто бывает сильна привычка. У меня есть друг который не осваивал кроме плюсов ничего. Вот ему любую задачу легче и комфортнее сделать на плюсах. Бывает такие огороды городит что волосы дыбом встают. Хотя я не хочу спорить с White Owl, если задачи решаются, и все работает, это хорошо и результативно, и никто не ругается - то какая разница, на чем ты это делаешь:)). Ну мне иногда тоже проще так сделать. В смысле -- на плюсах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 12:26 |
|
||
|
как лучше сделать
|
|||
|---|---|---|---|
|
#18+
Побурчу. sherzod_Другое дело, что наиболее вероятный путь который он пройдет (мой друг) - начнет понимать что тексты запросов надо выносить из кода, Их надо выносить толкьо тогда, когда они могут поменяться. Для утилит переноса данных это маловероятно -- если уж что-то будет меняться, то и структура также, а это значит всё равно надо утилиту менять. sherzod_ потом начнет понимать что надо как-то их шаблонизировать (слишком много схожестей), Никогда не нужно искать похожести в запросах и пытаться их выделить. Ну, почти никогда. SQL -- это ассемблер для СУБД. Не нужно его комманды пытаться разбивать на части. sherzod_ будет добавлять расширенную параметризацию запросов, потом начнет делать конструктор, Запросов ? Ох... sherzod_начнет более-менее понимать что в диалекте его базы довольно много полезных функций, добавит скриптовалку на Lua или JS, и в конце концов придумает свой SQL PL, увидит что он только что заново написал жалкую пародию на диалект используемой базы, и будет просветлен, разве вам это не знакомо? Почему же, может у него получится лучший язык ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 12:31 |
|
||
|
как лучше сделать
|
|||
|---|---|---|---|
|
#18+
sherzod_Другое дело, что наиболее вероятный путь который он пройдет (мой друг) - начнет понимать что тексты запросов надо выносить из кода, потом начнет понимать что надо как-то их шаблонизировать (слишком много схожестей), будет добавлять расширенную параметризацию запросов, потом начнет делать конструктор, начнет более-менее понимать что в диалекте его базы довольно много полезных функций, добавит скриптовалку на Lua или JS, и в конце концов придумает свой SQL PL, увидит что он только что заново написал жалкую пародию на диалект используемой базы, и будет просветлен, разве вам это не знакомо? А если не пройдет, значит сила привычки оказалась сильнее. While Owl, и не говорите что у вас в утилитах не присутствует ничего из выше-описанного :)).В утилитах миграции - нет, не присутствует. Ты забываешь что время жизни у таких утилит ограничено. Самый долгий период что я видел - два года. Контора не торопясь переходила с системы учета клиентов на Клиппере на новую систему на PowerBuilder. С год эта новая система писалась и отлаживалась на основе фиктивных данных, потом мы решили что пора уже тестировать на более приближенных к реальности данных и я написал соответствующий конвертор. Два года он еженочно конвертировал данные всех филиалов из DBF в офисную базу на ASA7. Потом распространялся в составе инсталлятора новой системы. Отработал по разу во всех филиалах и франчайзах и ... умер. Сейчас уже с полгода подобная система крутится (и по тем же причинам) в одной из наших школ. Там переходят с MS SQL 2008, на ASE 15.5. Можно конечно было и связанными таблицами сделать, но количество кода на TSQL получалось таким же как и количество кода у клиента на С. Смена структуры хранения данных очень не способствует краткости кода, знаете ли. А по скорости клиент получился быстрее. Да и логи объекто-зависимые это огромный плюс. Но очень скоро новый ГУИ будет готов и этот конвертор тоже умрет... Что ты там шаблонизировать собираешься я не очень представляю. У старой базы структура не меняется в принципе, а с новой работаешь чистыми insert'ами и update'ами. Причем знаешь что завтра возможно эти insert'ы и update'ы придется подправить. И никакой метаинформации у развивающейся базы нет. А если и есть, то она частенько отстает от реальной структуры. А свои скриптовалки и расширения SQL я изобретал. Как же без этого! :) Но это было (и есть) на задачах близких к отчетным системам. Вот там шаблоны и скриптовалки делать есть смысл. А PL/SQL мне тоже не нравится. Вообще, мне сильно кажется, что чем древнее диалект, тем более он неудобный. Почему-то разработчики СУБД сделав более-менее приемлемую реализацию SQL замирают и перестают улучшать свой диалект. Потом приходит новый игрок, делает более лучший диалект и постепенно тоже замирает.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 18:34 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38360645&tid=2020048]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 292ms |
| total: | 449ms |

| 0 / 0 |
