Загрузка TXT файла
На страницу 1, 2 След.
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Mourinjo Участник со стажем
Вступление в Клуб: 21.12.2010
|
Пн Ноя 20, 2017 08:08  Загрузка TXT файла |
|
Полезность: Нет оценки
|
Добрый день уважаемые гуру ИБСО! Скажите пжл есть ли предел по размеру загрузки TXT файла в ИБСО ? Скажем свыше 100 тыс записей ИБСО потянет ? |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Пн Ноя 20, 2017 09:10   |
|
Полезность: Нет оценки
|
смотря как операцию загрузки написать
В общем случае потянет
или речь о какой-то конкретной операции ? |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Пн Ноя 20, 2017 09:54  Re: Загрузка TXT файла |
|
Полезность: Нет оценки
|
Mourinjo пишет: | Добрый день уважаемые гуру ИБСО! Скажите пжл есть ли предел по размеру загрузки TXT файла в ИБСО ? Скажем свыше 100 тыс записей ИБСО потянет ? |
потянет то он потянет
только долго грузить будет
если процесс периодический, лучше sql loader пользовать для этого,
создай какой-нибудь ТБП типа справочника и в него грузи.
70 000 записей грузил как-то, полминуты примерно |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Пн Ноя 20, 2017 13:31  Re: Загрузка TXT файла |
|
Полезность: Нет оценки
|
vtar пишет: | Mourinjo пишет: | Добрый день уважаемые гуру ИБСО! Скажите пжл есть ли предел по размеру загрузки TXT файла в ИБСО ? Скажем свыше 100 тыс записей ИБСО потянет ? |
потянет то он потянет
только долго грузить будет
если процесс периодический, лучше sql loader пользовать для этого,
создай какой-нибудь ТБП типа справочника и в него грузи.
70 000 записей грузил как-то, полминуты примерно |
Если сделать внешнюю таблицу над текстовым файлом, то читать из такой таблицы можно будет со свистом. ~10000 в сек.
Ну да, при этом как раз SQL LOADER используется. |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Пн Ноя 20, 2017 16:17  Re: Загрузка TXT файла |
|
Полезность: Нет оценки
|
Эмиралька пишет: |
Если сделать внешнюю таблицу над текстовым файлом, то читать из такой таблицы можно будет со свистом. ~10000 в сек.
Ну да, при этом как раз SQL LOADER используется. |
что то Вы путаете, мне кажется внешнюю таблицу (когда в ORACLE хранится ссылка на внешний текст. файл, т.е. в самом ORACLE данные не хранятся) и загрузку данных , когда данные загружаются в ORACLE и штатно хранятся в нем в таблице .
Для загрузки SQLLDR-ом не нужно "делать внешнюю таблицу", делается файл CTL с описанием структуры загружаемых данных и целевой таблицы для загрузки. |
|
 |
Mourinjo Участник со стажем
Вступление в Клуб: 21.12.2010
|
Пн Ноя 20, 2017 21:29   |
|
Полезность: Нет оценки
|
Понятно, теперь ясно. Спасибо вам! |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Вт Ноя 21, 2017 06:10  Re: Загрузка TXT файла |
|
Полезность: Нет оценки
|
vtar пишет: | Эмиралька пишет: |
Если сделать внешнюю таблицу над текстовым файлом, то читать из такой таблицы можно будет со свистом. ~10000 в сек.
Ну да, при этом как раз SQL LOADER используется. |
что то Вы путаете, мне кажется внешнюю таблицу (когда в ORACLE хранится ссылка на внешний текст. файл, т.е. в самом ORACLE данные не хранятся) и загрузку данных , когда данные загружаются в ORACLE и штатно хранятся в нем в таблице .
Для загрузки SQLLDR-ом не нужно "делать внешнюю таблицу", делается файл CTL с описанием структуры загружаемых данных и целевой таблицы для загрузки. |
Нет, я не путаю.
Я не люблю пользоваться CTL-файлами, у этого способа слишком много ограничений.
Для загрузки данных непосредственно в таблицу Oracle - требуется сделать CTL-файл. Прямая вкачка возможна только в таблицы без констрейнтов и индексов, или их нужно отключать, а потом восстанавливать. Всё это заморочки. Зачем крутить такой лес вокруг простого дела?
Я пишу о том, что чтобы прочитать файл, то есть получить массив с очередными например 10000 строк из файла, средствами stdio, будет затрачено 10 секунд, а средствами SQL LOADER - 1 секунда. Я пишу про внешние таблицы, потому что считаю их более гибкими, чем импорт с использованием CTL-файлов. Но и этими средствами тоже можно организовать табличку из одной строки, в которую будет импортированы строки файла.
После этого потребуется разобрать каждую строку и разместить данные непосредственно в таблице, в которую осуществляется импорт, эта часть общая для обоих подходов.
Если известна структура файла, то разбор каждой строки может осуществляться лоадером автоматически (но для этого нужно сделать соответствующую внешнюю таблицу или соответствующую таблицу oracle + ctl-файл).
Чтобы сделать внешнюю таблицу с нужной структурой, потребуется та же информация, которая нужна для ctl-файла. То есть жёстко сгенерированный CTL-файл можно выкинуть. Не потребуется средство для его генерации, не потребуется вмешательство человека, чтобы выложить файл в нужно место, продукт обретает дополнительную гибкость.
После создания внешней таблицы очень просто сделать insert into table from external_table, и это занимает не намного больше времени, чем прямая вкачка. Собственно, это действие аналогично переносу данных из таблицы oracle, в которую осуществляется импорт через ctl-файл.
Что-то много наговорила, надеюсь, я не запуталась и вас не запутала. |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Вт Ноя 21, 2017 07:41   |
|
Полезность: Нет оценки
|
С внешней таблицей не обойтись же без pl/sql вставки ? |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Вт Ноя 21, 2017 09:50  Re: Загрузка TXT файла |
|
Полезность: Нет оценки
|
Эмиралька пишет: |
Нет, я не путаю.
Я не люблю пользоваться CTL-файлами, у этого способа слишком много ограничений.
.......
Я пишу о том, что чтобы прочитать файл, то есть получить массив с очередными например 10000 строк из файла, средствами stdio, будет затрачено 10 секунд, а средствами SQL LOADER - 1 секунда. Я пишу про внешние таблицы, потому что считаю их более гибкими, чем импорт с использованием CTL-файлов.
Но и этими средствами тоже можно организовать табличку из одной строки, в которую будет импортированы строки файла.
|
Да !
я, в принципе, примерно так и делал - как бы "временный" ТБП куда быстро грузятся строки из файла SQLLDR-ом, потом внутри ЦФТ операшкой быстро разбираются, т.к. через FIO/stdio приемлемо где то до 3 -5 тыс. строк грузить и разбирать, дальше тормоза |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Вт Ноя 21, 2017 12:16   |
|
Полезность: 1
|
Alkov пишет: | С внешней таблицей не обойтись же без pl/sql вставки ? |
rtl.execute_sql + utils.open_cursor  |
|
 |
Gobur Профи
Вступление в Клуб: 06.11.2012
|
Чт Ноя 23, 2017 16:32   |
|
Полезность: Нет оценки
|
Тоже сначала грузил csv файл ~ 100 млн.записей средствами ИБСО через stdio. Уходило где то часов 6 на это. SQLLDR грузит за час с копейками. В SQLLDR еще можно ускорить (режим загрузки без сохранения данных в архивлоги). Но у нас он не примением, т.к. настроен "горячий" бэкап. Но час на 100 млн.записей тоже норм. |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Ноя 23, 2017 17:20   |
|
Полезность: Нет оценки
|
Gobur пишет: | Тоже сначала грузил csv файл ~ 100 млн.записей средствами ИБСО через stdio. Уходило где то часов 6 на это. SQLLDR грузит за час с копейками. В SQLLDR еще можно ускорить (режим загрузки без сохранения данных в архивлоги). Но у нас он не примением, т.к. настроен "горячий" бэкап. Но час на 100 млн.записей тоже норм. |
а ты когда грузил sqlldr, параллельность включал ?
Usage: SQLLOAD keyword=value [,keyword=value,...]
parallel — do parallel load (Default FALSE)
|
|
 |
Gobur Профи
Вступление в Клуб: 06.11.2012
|
Пт Ноя 24, 2017 11:07   |
|
Полезность: Нет оценки
|
vtar пишет: | Gobur пишет: | Тоже сначала грузил csv файл ~ 100 млн.записей средствами ИБСО через stdio. Уходило где то часов 6 на это. SQLLDR грузит за час с копейками. В SQLLDR еще можно ускорить (режим загрузки без сохранения данных в архивлоги). Но у нас он не примением, т.к. настроен "горячий" бэкап. Но час на 100 млн.записей тоже норм. |
а ты когда грузил sqlldr, параллельность включал ?
Usage: SQLLOAD keyword=value [,keyword=value,...]
parallel — do parallel load (Default FALSE)
|
нет, не включал. Есть прибавка в скорости? |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Пт Ноя 24, 2017 14:15   |
|
Полезность: Нет оценки
|
не знаю, у тебя хотел спросить  |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Пн Ноя 27, 2017 09:23   |
|
Полезность: Нет оценки
|
vtar пишет: | не знаю, у тебя хотел спросить  |
А у меня периодически вылазит ошибка распараллеливания, так что хинт parallel я больше не использую. Ну его, я лучше файлы распилю. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|