powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Загрузка 170 000 000 записей
25 сообщений из 37, страница 1 из 2
Загрузка 170 000 000 записей
    #39987709
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите пожалуйста,

каким алгоритмом можно наиболее быстро можно загрузить 170 000 000 строк из Oracle в MSSQL при помощи SSIS пакета?

Заранее благодарен.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39987714
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загрузить - BCP.exe. Быстрее не бывает.

А вот выгрузить - проблема. Это у оракелистов надо спрашивать.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39987717
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
170 000 000 строк я бы упомянул если речь идет о выборке или поиске
Переливаете же вы все 170 000 000 строк, поэтому скорее важен размер данных.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39987731
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут возможно узким местом будет сеть между серверами.

Поэтому искать перфекционизма а не стоит. А стоит просто посмотреть каким маршрутом польется информация и как этот маршрут можно выпрямить.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39987733
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vah,

Быстро можно загрузить многопоточной загрузкой в пустую таблицу без индексов. Увеличивайте количество потоков, пока скорость загрузки не прекратит расти. Как только прекратит - значит вы уперлись в, скорее всего, сеть, диски приемника, диски источника
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39987734
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vah,

Using SSIS to load 1TB data into SQL Server in 30 mins, with simplified settings
Основное: настроить правильный размер буфера во избежание дискового обмена, секционировать таблицы и загружать секции параллельно.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39987735
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Евгений
vah,

Using SSIS to load 1TB data into SQL Server in 30 mins, with simplified settings
Основное: настроить правильный размер буфера во избежание дискового обмена, секционировать таблицы и загружать секции параллельно.


Дык, фся эта возня с настройками, секционированием и т.д. и т.п. займет больше времени, чем однопоточная вставка в простую таблицу.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39987740
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
Дык, фся эта возня с настройками, секционированием и т.д. и т.п. займет больше времени, чем однопоточная вставка в простую таблицу.

Может быть. Но на простой вопрос - простой ответ. Не вижу смысла гадать по юзерпику, какую задачу на самом деле ему надо решить. Или, тем более - внушать, что задачу нужно решать не эту, а совсем другую.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39987743
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vah
Скажите пожалуйста,

каким алгоритмом можно наиболее быстро можно загрузить 170 000 000 строк из Oracle в MSSQL при помощи SSIS пакета?

Заранее благодарен.


Если это разовое действие , то согласен с
aleks222
.Евгений
vah,

Using SSIS to load 1TB data into SQL Server in 30 mins, with simplified settings
Основное: настроить правильный размер буфера во избежание дискового обмена, секционировать таблицы и загружать секции параллельно.


Дык, фся эта возня с настройками, секционированием и т.д. и т.п. займет больше времени, чем однопоточная вставка в простую таблицу.


Если это периодически, то прежде всего оценивайте объём данных: Вам написали :
PizzaPizza
170 000 000 строк я бы упомянул если речь идет о выборке или поиске
Переливаете же вы все 170 000 000 строк, поэтому скорее важен размер данных.


Ибо если у Вас одна таблица в пару столбцов int , то это всего 700 МБ данных (примерно), и вопросов нет.

Но если записи по 1К (и выше) на запись, то уже да,- тут стоит смотреть и сеть, и систему хранения... И алгоритм заливки...

PS Кстати, если система хранения одна (без разницы - это "полка" или RAID), то с точки зрения самой системы хранения,- абсолютно пофиг на секционирование - т.к. "физически" данные польются через один канал на один набор дисков (если они сконфигурированы в общий набор , который потом порезан на логические юниты). Но это моё мнение. Но вопрос о конфигурации системы хранения НЕ стоит игнорировать.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39987768
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PizzaPizza,

выборка, без условий, около 20ти столбцов, есть varchar-ы (
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39987811
Нестандартное мышление
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vah,

BULK INSERT чем не устраивает?
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39987821
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с одной стороны конечно varcharы хорошо бы нативно перекинуть SSISом, а не балком через файл
с другой стороны, раз они из оракла, то я бы все равно подумал бы о кодировках и прочем даже при использовании SSIS
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39987828
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vah
PizzaPizza,

выборка, без условий, около 20ти столбцов, есть varchar-ы (

Если твоя задача - одноразовая то сделай любым способом экспорт в CSV и потом импорт в другую БД.

Если будешь делать на постоянной основе - тогда расскажи форуму о статистике. Тоесть какая
будет длина этого CSV файла. Какая средняя длина строки в байтах.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39988001
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vah
PizzaPizza,

выборка, без условий, около 20ти столбцов, есть varchar-ы (
на время экспорта данные в оригинальной БД не меняются?
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39988059
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vah,

0. Разово или постоянно?
1. Есть ли секционирование на источнике или иная возможность быстро получить в параллель непересекающиеся множества?
2. В каком виде предоставлен доступ к источнику данных?
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39988062
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

Там же версионник, главное на snapshot too old при select .. as of timestamp не влететь
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39988070
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
andreymx,

Там же версионник, главное на snapshot too old при select .. as of timestamp не влететь
на таком объёме влетит обязательно

хотя вдруг там экзадата со всем фаршем?
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39988118
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

Обычный DataFlow из источника в назначение. Поставить опции fastload и размер порции не менее 100000. Можно 500000. Драйвера на Oracle OLEDB , на MSSQL SQL Native Client или тоже OLE DB.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39988145
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на самом деле 170 млн строк не так уж и много

тут еще вопрос уже поднимали насчет пропускной способности сети
и еще могут быть тормоза, если сервер оракл на земле, а сервер мсскл в ажуре (или наоборот)
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39988157
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для SSIS был драйвер Attunity для оракла
но там надо версии смореть - последний раз я юзал его для 2014 - по моему версия 3.0
выигрыш по скорости был и приличный.

если грузить через что-то - я бы грузил через csv файлы (скажем по месячно)
с трудом представляю себе один CSV файл такого размера (не утверждая что это не возможно)
опять же возможно вставлка по месячными партициями - если они есть на такой таблице

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

ну и путем экспериментов нашли оптимальное решение под себя.

зы можно еще линк-сервер - но это точно медленней - хотя я грузил приличные объемы данных ночью кусочками по 2-3 дня
удобней что можно в t-sql написать цикл и просто гнать
но тогда нагрузки на оракл-сервер другой не было
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39988218
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx
на самом деле 170 млн строк не так уж и много

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


Надо сразу писать инкрементальную загрузку. Чтобы она продолжала с того места, где закончила. Надеяться, что 170 лямов пройдут за один заход не стоит.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39988257
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Чтобы она продолжала с того места, где закончила


Что, к сожалению, возможно далеко не всегда. Особенно, если источник не предполагает сообщать об обновлениях и, что ещё хуже, удалениях.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39988264
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
a_voronin
Чтобы она продолжала с того места, где закончила


Что, к сожалению, возможно далеко не всегда. Особенно, если источник не предполагает сообщать об обновлениях и, что ещё хуже, удалениях.
у ТС слишком общая задача
гадать не перегадать
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39988274
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
a_voronin
Чтобы она продолжала с того места, где закончила


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


При любом раскладе есть решение через доп таблицу и триггер на источнике. На Oracle они не так сильно тупят как на MSSQL.
...
Рейтинг: 0 / 0
Загрузка 170 000 000 записей
    #39988293
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
При любом раскладе есть решение через доп таблицу и триггер на источнике. На Oracle они не так сильно тупят как на MSSQL.


Ага, поставьте триггер на таблицу в первичной банковской системе...
Часто проще грузить по 200 млн ежедневно.
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Загрузка 170 000 000 записей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]