|
Быстрое сравнение больших таблиц двух баз | ☑ | ||
---|---|---|---|---|
0
vi0
23.01.21
✎
15:19
|
Коллеги, поделитесь, кто чем пользуется для сравнения больших объемов данных двух баз 1с при сверках, для регрессионного тестирования и т.д,
Интересны быстрые реализации, например когда представления ссылок извлекаются только для результата сравнения, а сама сверка выполняется по уидам и т.п. |
|||
1
GANR
23.01.21
✎
15:28
|
(0) Простые самопальные обработки, запросы в консоли, ХМЛ-ки сравниваю как текстовики, чтобы проводки сравнить в 2 базах. От случая к случаю надо проверять разные вещи - универсального инструмента нет и быть не может.
|
|||
2
mistеr
23.01.21
✎
17:20
|
(0) Для сверки нужно сравнивать не таблицы БД, а отчеты.
Для регрессионного тестирования не нужны большие объемы. Давай твой конкретный сценарий, найдется конкретное решение. А натягивать сову на глобус не надо. |
|||
3
Вафель
23.01.21
✎
17:31
|
так мердж ведь
|
|||
4
Вафель
23.01.21
✎
17:31
|
берёшь 2 таблицы , сортируешь по ключу и вперёд
|
|||
5
vi0
23.01.21
✎
21:06
|
(4) вопрос каким инструментом, чтобы сверить _к примеру_ обороты регистра в двух базах
|
|||
6
H A D G E H O G s
23.01.21
✎
21:19
|
(5) Делай регистр копию в базе, в него через XML заливай движуху из 2 базы через XML обмен и потом запросик.
|
|||
7
H A D G E H O G s
23.01.21
✎
21:20
|
Ну или ВнешниеИсточникиДанных
|
|||
8
RomanYS
23.01.21
✎
21:47
|
(5) отчет - mxl - сравнить файлы
Это если надо быстро различия глазками увидеть |
|||
9
Garykom
гуру
23.01.21
✎
22:02
|
(5) выкидываешь нужные поля из своих регистров своих двух баз во внешнюю sql базу (1С на чтение шустра достаточно)
внешнюю sql можно использовать sqlite, mssql и прочие на свой вкус |
|||
10
Базис
naïve
24.01.21
✎
15:08
|
1С, Файл - сравнить файлы.
|
|||
11
vde69
24.01.21
✎
15:19
|
что значит "большие"? это 10 тыс или 10 лямов или больше?
|
|||
12
vi0
24.01.21
✎
19:03
|
(11) сотни мегабайт
если на 32 клиенте выбирать то запрос падает по нехватке памяти |
|||
13
1CnikPetya
24.01.21
✎
20:05
|
(0) У нас есть такая система регресс-тестов. Тупо выгружаем в текстовые файлы и их сравниваем автоматом. Если есть расхождения, то уже смотрим их суть глазками.
Но это реально тупик в развитии тестов, так как с таким подходом 99% ресурсов и времени уходит впустую. Лучше все же переходить на конкретные сценарии с той же Vanessa. Но это дорого в части ресурсов на разработку тестов и сопровождение. |
|||
14
Bigbro
25.01.21
✎
04:31
|
если таблицы действительно большие и идентичные - можно хэшировать и сравнивать только хэш.
у нас только в таком режиме получилось сравнить таблицы в сотни гигабайт между разными городами. |
|||
15
GANR
25.01.21
✎
11:06
|
(10) Использую иногда, но выложить файл в ГИТ, а потом поверх него другую версию положить мне больше нравится
|
|||
16
GANR
25.01.21
✎
11:07
|
потому что в рамках одной строчки последовательности анализируются, а не тупо различающиеся строки выводятся
|
|||
17
Timon1405
25.01.21
✎
11:42
|
(5) пару раз пользовались http://catalog.mista.ru/public/276275/ от ildarovich, отлично работает
|
|||
18
vi0
25.01.21
✎
15:10
|
(13) как всегда, ресурсы либо там тратятся либо тут
|
|||
19
vi0
25.01.21
✎
15:12
|
(17) сейчас не могу скачать, там по уидам сравнение идет?
|
|||
20
TormozIT
гуру
25.01.21
✎
16:23
|
Для сравнения таблиц еще есть инструмент в ИР "Сравнение таблиц"
http://devtool1c.ucoz.ru/index/sravnenie_tablic/0-62 (свежий скриншот https://i.imgur.com/TThTRLs.png ) Не знаю насколько он быстр относительно аналогов, но гибкость большая. Сотни гигибайт через него не сравнивал, но сотни гигабайт вполне комфортно сравнивать. |
|||
21
TormozIT
гуру
25.01.21
✎
16:24
|
(20) Сотни мегабайт сравнивал. В нем НЕ потоковое сравнение.
|
|||
22
Timon1405
25.01.21
✎
16:36
|
(19) там кейс использования(описан в статье) например в сравнении с вчерашней копией чтобы узнать что изменилось, быстрота реализации достигается не за счет упаковки ссылок.
какой смысл сразу тащить все ссылки, если по факту нужны только ссылки по расхождениям в ресурсах, нужно сначала найти их. ссылки извлекаются (ЗначениеИзСтрокиВнутр) только на этапе когда найдено расхождение в количестве. |
|||
23
TormozIT
гуру
25.01.21
✎
16:44
|
Когда требовалось сравнивать огромные идентичные регистры бухгалтерии, выгружал его в файл в одной базе и использовал автоматизированное потоковое сравнение с БД в другой базе. Если процесс сравнения прерывался по какой то причине, то регламент его восстанавливал и он шел дальше. Конечно это далеко не секунды, как у знаменитого Ильдаровича, но работало надежно и без прямого соединения между базами.
|
|||
24
vi0
25.01.21
✎
16:55
|
(22) интересно, наверное как первичный фильтр, на наличие ошибок, т.к. суммы могу все таки меняться не изменяя итогов
напомнило эту публикацию http://catalog.mista.ru/public/1109393/ |
|||
25
vi0
25.01.21
✎
16:56
|
(23) выгружал как отчет mxl?
что подразумеваешь под потоковым? |
|||
26
vi0
25.01.21
✎
16:57
|
(14) хэширвали все поля записи?
|
|||
27
TormozIT
гуру
25.01.21
✎
16:57
|
(25) Нет. Выгружал собственной выгрузкой результат запроса в XML в оптимизированном для сравнения виде. Потоковое - когда файл целиком не загружается в память и читаем его через скользящее окно.
|
|||
28
vi0
25.01.21
✎
16:58
|
(8) идеально конечно когда на выходе разница, 1сники недокрутили маленько
|
|||
29
TormozIT
гуру
25.01.21
✎
16:59
|
При наличии соединения между базами соглашусь - удобнее всего будет использовать механизм внешних источников данных.
|
|||
30
vi0
25.01.21
✎
17:00
|
(27) а как же ты сравнивал если окно скользит? там индекс нужен получается во втором файле
|
|||
31
Timon1405
25.01.21
✎
17:01
|
(24) там не используются итоги, метод делит КАЖДЫЙ отрезок из получающихся пополам и находит ВСЕ расхождения на любом интервале за O(n*log2(n)) время. в общем, лучше один раз увидеть.
|
|||
32
TormozIT
гуру
25.01.21
✎
17:04
|
(30) Позицию в XML отслеживал по номеру считанного элемента верхнего уровня. Файл повторяюсь был только один. Во второй баз считанная из файла порция сравнивалась с БД.
|
|||
33
TormozIT
гуру
25.01.21
✎
17:06
|
(32) Элемент верхнего уровня в XML - порция строк таблицы БД, размер которой задавался в настройках.
|
|||
34
TormozIT
гуру
25.01.21
✎
17:11
|
Метод половинного поиска, который применяет Ильдарович, кажется эффективен только при малом числе отличий. Если же нужно устранить/выявить различия при ощутимом количестве расхождений, то он будет проигрывать лобовым методам.
|
|||
35
Bigbro
26.01.21
✎
06:07
|
(26) да, хэш по всем полям, размер около 5% от исходных данных для прокачки итоговый составил.
это без отсылки к 1с, SQL программеры делали, вроде нашли где-то расхождение в итоге. |
|||
36
TormozIT
гуру
26.01.21
✎
07:49
|
(35) И что вы делали с хешами, по которым не нашлось пары?
|
|||
37
Bigbro
26.01.21
✎
08:25
|
(36) по расхождению хэшей смотрели исходные данные, для этого и затевалось, чтобы весь объем не анализировать 1 в 1, было критично по времени.
|
|||
38
vi0
26.01.21
✎
15:42
|
(15) зачем так делаешь?
|
|||
39
vde69
26.01.21
✎
15:57
|
не уверен, что по теме, но все-же оставлю https://wiki.mista.ru/doku.php?id=1c:v8:howto:algoritm_sravnenija_dvux_tablic_po_tekstovomu_polju
разумеется вместо таблиц надо использовать файлы а вместо ключей хеш значимых полей строки |
|||
40
TormozIT
гуру
31.01.21
✎
20:00
|
Добавил в инструменте "Сравнение таблиц (ИР)" режим для сравнения больших таблиц https://www.hostedredmine.com/issues/918476
|
|||
41
vi0
18.02.21
✎
07:22
|
(40) да, интересно
а можно выгрузку и потом сравнение вызвать программно без формы? |
|||
42
TormozIT
гуру
18.02.21
✎
08:43
|
(41) Можно. Там опционально все делается на сервере. Как именно вызывать, думаю довольно быстро поймешь по обработчику нажатия кнопки.
|
|||
43
Statiko
07.05.21
✎
05:31
|
Кстати, а я как раз на днях разбирался в целом с быстрыми ссылками уже для SEO проекта. Они полезны для того, чтобы быстро и максимально компактно ознакомить целевого потребителя с сайтом, товаром или услугами. Потому их использование достаточно популярно и не зря. Кстати, если тоже будет нужно, то я здесь https://seranking.ru/blog/seo/bystrye-ssylki/ о них впервые прочел и теперь использую эти знания на практике. Потому надеюсь, что это было полезно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |