Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Такая задача: - стоит MS SQL - создаётся таблица за один день с данными (данных > 90.000.000) - выполняется запрос на уникальные значения вида Код: sql 1. получаем в результате ~2.200.000 значений необходимо этот результат выгрузить из БД во что-то, допустим файл таких выгрузок надо сделать 30 (за месяц) и потом из этих 30ти файлов собрать уникальную коллекцию значений (которая будет процентов на 10 больше чем ежедневные выгрузки) Выполнять всё это в исходной БД нельзя, из неё можно только выгружать Вот подскажите как можно организовать данную работу? Как лучше выгружать ежедневный результат и куда его лучше записывать для дальнейшего анализа? Хотелось бы это сделать в виде скриптов PowerShell (запрос на уникальные значения легко сделать, только куда сохранить 2.200.000 строк не придумал) и как было бы оптимально пересечения списков дневных сделать? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 00:58 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
TheKLFиз неё можно только выгружатьВыгружать можно по-разному и в различные дестинейшены. TheKLFКак лучше выгружать ежедневный результат и куда его лучше записывать для дальнейшего анализа?Да хоть в другой MS SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 01:03 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
Ну такое число записей в CSV наверное глупо выгружать? А используя PShell скрипты в каком формате было бы практичнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 01:40 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
TheKLFкуда его лучше записывать для дальнейшего анализа? Ну такое число записей в CSV наверное глупо выгружать?Выгружать надо в том виде, в котором вы будете использовать данные. Возможно и в CSV, почему бы нет? Миллиард записей сохранял без проблем. TheKLFВот подскажите как можно организовать данную работу? Как лучше выгружать ежедневный результат? Хотелось бы это сделать в виде скриптов PowerShell (запрос на уникальные значения легко сделать, только куда сохранить 2.200.000 строк не придумал) и как было бы оптимально пересечения списков дневных сделать? А используя PShell скрипты в каком формате было бы практичнее?Можно и PowerShell, можно CMD файл сделать, можно SSIS использовать, который, собственно, и сделан для импорта/экспорта/преобразования данных. Вам, главное, сначала нужно решить, что вы с этими данными будете делать, отсюда будет понятно, в каком виде их нужно выгрузить. А потом уже можно будет выбрать инструмент для выгрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 01:49 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
Спасибо большое за ответы! Задача простым языком звучит как поиск уникальных значений в таблице каждого дня, выгрузка этих уникальных значений в файл, запись первого результата в другую базу и затем всё повторять, за исключением того, что выгруженные данные сравнивать с новой базой, и если есть уникальные, то дописывать их в новую базу. Поиск и накапление уникальных значений в новой базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 06:41 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
Даже access может сгодиться. Он очень быстро вкачивает данные и имеет неплохой конструктор запросов. Желательно избежать этап "выкачать в файл + закачать файл в другую СУБД". Лучше сразу в СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 10:44 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
А вы не могли бы показать как это можно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 12:06 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
Оптимальный вариант - создание на этом же SQL Server-e второй базы данных, и SQL-скрипта, который и будет производить "Поиск и накопление уникальных значений в новой базе". Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 12:33 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
[GrTest].[dbo].[TestBig] - это таблица-источник, откуда берём значения; GrTest2.dbo.CT - где храню уникальные значения. Соответственно, GrTest2.dbo.CT была создана из [GrTest].[dbo].[TestBig] при помощи скрипта Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 12:38 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
Спасибо большое! К сожалению на том сервере сделать ничего нельзя. С него можно считывать, а накопление делать на другой физической машине. Поэтому и нужно через некий файл-выгрузка это делать. Нашли уникальные -- записали результат в файл -- перенесли его на другую машину и там уже выполняем анализ полученных результатов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 17:29 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
TheKLFК сожалению на том сервере сделать ничего нельзя. С него можно считывать, а накопление делать на другой физической машине. Поэтому и нужно через некий файл-выгрузка это делать. Нашли уникальные -- записали результат в файл -- перенесли его на другую машину и там уже выполняем анализ полученных результатов.Так можно писать сразу на другой сервер. Ведь эти запросы, которые вам написали, они могут писать в базу на другом сервере, причём запросы могут там и выполняться, и запускаться там по расписанию. Или, если вы сделаете пакет SSIS, он тоже может сразу брать данные с одного сервера, и писать на другой. Не обязательно делать всё это через файл Хотя я так делал, когда к другому серверу был доступ только по FTP. В этом случае для записи в файл лучше выбрать native-формат, и ещё можно его сжимать, если сетка медленная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 17:40 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
У меня мсожалению есть только одна возможность это сделать выгрузку. Больше никаких операций я делать не могу. И вариант с промежуточным файлом самый реальный для моей задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 20:26 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
Второй сервер или хотя бы простой комп с установленным SQL Server-ом на нём есть? Или доступен только какой-нибудь Access? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 20:29 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
TheKLFУ меня мсожалению есть только одна возможность это сделать выгрузку. Больше никаких операций я делать не могу. И вариант с промежуточным файлом самый реальный для моей задачи.Ну, тогда через файл. В общем, это неважно, для такой микроскопической выгрузки. Изучите утилиту BCP (идёт в комплекте с любым MSSQL), прочитайте обе страницы описания, выгружайте в native-формате Сначала ей выгрузите данные в файл, потом ей же и загрузите на сервер назначения. Но можно и в CSV формате, если вам нужно кому то отдать этот файл именно в нём, тоже не проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2018, 12:28 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
TheKLF, выгрузкой таких объемов Вы, с какой-то вероятностью нарушите работу пользователей той базы. Если использовать "грязные чтения" для уменьшения влияния, то есть риск получить недостоверные данные. Без определенного вмешательства в настройки сервера и базы качественно эту задачу Вы не решите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2018, 12:32 |
|
||
|
Выгрузка > 2.000.000 строк из базы
|
|||
|---|---|---|---|
|
#18+
TheKLFУ меня мсожалению есть только одна возможность это сделать выгрузку. Больше никаких операций я делать не могу. И вариант с промежуточным файлом самый реальный для моей задачи.Это простите чем продиктовано? На том серевере это будет просто SELECT, а вот писать результаты вы можете куда угодно, хоть в файл, хоть сразу на другой сервер. Просто непонятно зачем промежуточные файлы плодить? У вас доступ только по ftp что-ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 03:09 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39744753&tid=1688635]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 396ms |

| 0 / 0 |
