Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Rooster

Программирование, т. 8

  

315 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

(изменено)

Время сравнения не важно, тоесть устроит вариант даже когда оно будет сравнивать 2-3дня

Данные в процессе статичные, копии баз есть и пох

Достаточно флажка, boolean которая будет в зависимости от совпадает или нет ставится

 

Порядочно это около 2.000 таблиц, в некоторых из них может быть по 7 миллионов записей, но в основном не более 30к рекордов

Канал - локальная сеть

Насколько знаю БД без партицирования и не имеет никакого шардирования
 

таблицы которые нужно сравнить находятся в 1 куче

 

Итак знатоки вопрос:
 

Есть две SQL DB которые по структуре совпадают примерно на 70%

 

Задача - сравнить данные в этих совпадающих 70% 

 

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

за какое время нужно сравнить? (процесс сравнения длится минуты, часы, дни)

изменяются ли данные в процессе сравнения (грубо говоря можем отключить прод, который их использует, провести сравнение и потом включить черех N часов)

результат сравнения какой нужен? да совпадают, нет не совпадают? или вычислять диф?

порядочно это сколько? миллионы? миллиарды?

какой канал между бд?

 

бд монолитные без шардирования/партицирования?

 


Изменено пользователем Drakonian

Поделиться сообщением


Ссылка на сообщение

я так понимаю скл сервер?

 

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

 

 

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


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

Microsoft SQL Server

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


Изменено пользователем Drakonian

Поделиться сообщением


Ссылка на сообщение

https://www.red-gate.com/products/sql-development/sql-data-compare/index

 

ну вон первая строчка, есть триал, в фичах написано, что умеет делать сравнения "Custom comparison keys to compare databases based on any field"

 

может пойдет

 

или вон еще

https://www.apexsql.com/sql-tools-datadiff.aspx

 

короче я думаю быстрее найдется готовая тулза


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

О, спасибо, готовые варики это заебись

 

ебать там цены на них :D


Изменено пользователем Drakonian

Поделиться сообщением


Ссылка на сообщение

https://dbmstools.com/data-compare-tools

 

33 штуки и ни одна не подойдет omegalul 

Drakonian понравилось это

Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

хоспаде, на такую таску кода писать пару часов, а вы готовые варики ищете, которые скорее всего решают гораздо более сложные задачи

 

тут блять достаточно чуть ли не 2 хеша сравнить, сложность лишь в том как удобнее задать перечень сравниваемых таблиц, и как сравнивать их содержимое

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


Изменено пользователем Just.Doit
Drakonian понравилось это

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Пара часов? Звучит неплохо, думаю тогда есть смысл поебашить

Поделиться сообщением


Ссылка на сообщение

какие хэши, ало

 

select col1-n from server1.table1

except

select col1-n from server2.table1

 

и поехали


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

какие хэши, ало

 

select col1-n from server1.table1

except

select col1-n from server2.table1

 

и поехали

Ага. На server1 есть записи A,B,C

На сервер2 есть A,B,C,D

Рапортуем что отличий нет и все заебись? Или все же двухсторонний дифф надо бы сделать?


Лишь ощутив баттхерт до конца, мы обретаем свободу

bf4ffc239860.png

Поделиться сообщением


Ссылка на сообщение

If you cannot find TableDiff.exe, re-run the SQL Server install and choose REPLICATION support.

TableDiff is officially "Microsoft ® SQL Server Replication Diff Tool" and will be added when using Replication.

 

Если не найдешь эту утилиту, то вот:

 

https://msdn.microsoft.com/en-us/library/hh272690(v=vs.103).aspx

 

https://stackoverflow.com/questions/193438/what-is-a-free-tool-to-compare-two-sql-server-databases

 

https://stackoverflow.com/questions/685053/what-is-best-tool-to-compare-two-sql-server-databases-schema-and-data

 

http://sqldbtools.com/

 

https://stackoverflow.com/questions/121243/hidden-features-of-sql-server

Drakonian понравилось это

Публикация отключена

Поделиться сообщением


Ссылка на сообщение

ну тогда уже проще

select a, b, c

from (
  select a, b, c
  from server1
  union all
  select a, b, c
  from server2
  )
group by a, b, c

having count(*) = 1
 

у нас каким-то скриптами типа таких мануальщики гоняли регрессионные тесты

Drakonian понравилось это

Поделиться сообщением


Ссылка на сообщение

 

какие хэши, ало

 

select col1-n from server1.table1

except

select col1-n from server2.table1

 

и поехали

Ага. На server1 есть записи A,B,C

На сервер2 есть A,B,C,D

Рапортуем что отличий нет и все заебись? Или все же двухсторонний дифф надо бы сделать?

 

если там не сервер старой хуйни и сервер старой+новой хуйни, то офк в 2 стороны

кто ж сказал, что мой скрипт финальный

 

добавляешь юнион на дистинктную в обратную сторону пару и готово

 

ну и вообще ему надо флаг есть разница или нет, а там можно оптимизировать до посинения, типа предварительного подсчета количества строк и добавлений where exists, чтобы склсервер отваливался при первом найденном несовпадении


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

дайте плз туториал по докеру. только не офф сайт там ебануться от ссылок можно

ну типа у меня есть билд с шагами и вот это вот все хзавернуть в контейнер с зависимостями etc и чиста на раслабоне запустить билд с контейрнером  :trollface:


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение

Делаю домаху по С++, чё за srand. Поясните

Всем спасибо. Что-то годных ресурсов на русском почти нет. Приходится все на зарубежных сайтах искать. Знатоки, подскажите хорошие книжки на которых сами/знакомые С++ учили.

Поделиться сообщением


Ссылка на сообщение

http://www.stroustrup.com/4th.html

 

поначалу дальше чем это не советую смотреть

поищи мб найдёшь на русском, но постарайся найти именно 4ое издание книги

kmtw понравилось это

Поделиться сообщением


Ссылка на сообщение

Привет, читаю топан давно, все посты относятся к реалиям украины и россии. Есть ли особенности для бульбостана?

Хожу на курсы верстки, жс прохожу сам по книге Eloquent Javascript.

На что обратить внимание дальше(Node, React или еще что-то)?

И конечно же,сколько денех просить в Минске начинающему врестальщику/фронтендеру/полноприводному?

Другие языки пока не интересуют

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...