|   |   | 
| 
 | Быстрое сравнение больших таблиц двух баз | ☑ | ||
|---|---|---|---|---|
| 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/ о них впервые прочел и теперь использую эти знания на практике. Потому надеюсь, что это было полезно.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |