|
ODBC Запрос на получение примерно 100 строк в csv из 120млн строк. Скорость | ☑ | ||
---|---|---|---|---|
0
Кокос
25.04.16
✎
16:57
|
Есть ксв файл из двух колонок: товар, список аналогов
120млн строк. Насколько быстро/медленно будет выполняться запрос через ODBC к таком файлу если в результате там выйдет гдето 50-100 строк? У кого-нибудь есть опыт в сабж? |
|||
1
ДенисЧ
25.04.16
✎
16:58
|
цсв - это несерьёзно.
Это текстовый файл. Только чтобы его прочитать - уже уйма времени уйдёт |
|||
2
asady
25.04.16
✎
16:59
|
(0)всё будет определяться скоростью диска
зачем так мучиться - может запихнуть файл в скульную таблицу? |
|||
3
Кокос
25.04.16
✎
17:01
|
(1) зачем читать? создал коннектор в одбс. запихнул туда запрос и прочитал. в 1С придет только результ скуля в 100 строк
|
|||
4
Кокос
25.04.16
✎
17:01
|
(2) это как?
|
|||
5
Fragster
гуру
25.04.16
✎
17:02
|
если запрос простой - то примерно равно времени чтения этого файла с диска
|
|||
6
ДенисЧ
25.04.16
✎
17:02
|
(3) А что, коннектор не будет всё читать?
|
|||
7
Карупян
25.04.16
✎
17:06
|
лучше всего awk скорость будет равна скорости чтения с диска
|
|||
8
Кокос
25.04.16
✎
17:08
|
(6) вот хз. мне нужен опытный чел. кто знает.
(5) пробовали? в принципе это быстро должно быть. (7) что такой awk? |
|||
9
ptiz
25.04.16
✎
17:11
|
(0) А откуда взялся такой csv?
|
|||
10
ДенисЧ
25.04.16
✎
17:11
|
(8) Подумай головой - чтобы получить данные из файла - его надо прочитать...
Индексов же неу |
|||
11
Кокос
25.04.16
✎
17:12
|
(9) таблица аналогов автозапчастей
|
|||
12
Кокос
25.04.16
✎
17:13
|
(10) я читал большие файлы в 90000 строк за 1-3 секунды эксельные. там тоже не было индексов. по идее одбс динамически должен делать индексы при чтении внутри себя.
|
|||
13
ptiz
25.04.16
✎
17:13
|
(11) Т.е. поиск будет частый. Однозначно - в SQL, и правильно настроить индексы.
|
|||
14
Drac0
25.04.16
✎
17:16
|
(12) Эмм, а чтобы построить индексы разве не нужно сначала прочитать ВЕСЬ файл, потом индексы все рассчитать и сохранить. Построение индекса - это не волшебство, а дорогая операция.
|
|||
15
Serginio1
25.04.16
✎
17:28
|
Ну 120 не пробовал, а вот порядка 10 было. Для объединения данных записывались в темповую таблицу порядка 2 минуты
Стр=Стр+" |"+СтрСелект+" |INTO #TempPrice |FROM OPENROWSET( BULK N'"+ФайлСПрайсом+"', |FORMATFILE = N'"+ИмяФайлаФрмата+"',"; Если НачальнаяСтрока>1 Тогда Стр=Стр+" |FIRSTROW = "+НачальнаяСтрока+"," КонецЕсли; Стр=Стр+" |CODEPAGE = '1251' |) AS a"; |
|||
16
Serginio1
25.04.16
✎
17:29
|
||||
17
Карупян
25.04.16
✎
17:38
|
odbc не делает никаких индексов на csv
|
|||
18
Карупян
25.04.16
✎
17:39
|
(8) awk это консольная утилита такая
|
|||
19
Карупян
25.04.16
✎
17:39
|
быстрее awk ничего не будет
|
|||
20
ptiz
25.04.16
✎
17:40
|
(15) Можешь дать весь код по запроса по тексте через ODBC ?
Сколько ни брал примеров из интернета - ни один не взлетел :( |
|||
21
Serginio1
25.04.16
✎
17:47
|
(20) Набери в гуле openrowset csv получишь кучу примеров
|
|||
22
Кокос
25.04.16
✎
19:00
|
Народ. А темповая таблица в 120млнстрок без 1С-Сервер взлетит?
|
|||
23
ILM
гуру
25.04.16
✎
19:18
|
(0) Это разовая операция или постоянно будет нужна?
|
|||
24
Кокос
27.04.16
✎
13:57
|
(23) постоянно. клиент звонит ищет запчасть манагер делает запрос по артикулу и ему выдаются аналоги
|
|||
25
Amra
27.04.16
✎
13:59
|
(24) Поставь скуль. Загрузи в табличку файл. Поиск будет достаточно быстрым. Файл аналогов же не каждый день обновляется
|
|||
26
rsv
27.04.16
✎
14:11
|
(25) + 100
|
|||
27
Карупян
27.04.16
✎
14:22
|
Если постоянная, то скуль однозначно
|
|||
28
13_Mult
27.04.16
✎
14:38
|
(0) Посмотри тут Книга знаний: Преобразование csv в таблицу значений
|
|||
29
13_Mult
27.04.16
✎
14:42
|
(28) + или тут http://catalog.mista.ru/public/98398/
|
|||
30
Кокос
27.04.16
✎
15:24
|
(25) кстати да.. а какую посоветуешь халявную скуль? интербейз какой нибудь?
|
|||
31
Кокос
27.04.16
✎
15:24
|
(28) 120млн записей в файловую УТ11?
|
|||
32
Кирпич
27.04.16
✎
15:31
|
(30) MSSQL подойдет
|
|||
33
Amra
27.04.16
✎
15:32
|
(30) Да, мсскуль экспресс
|
|||
34
Кокос
27.04.16
✎
16:03
|
(33) 12млн? а файрберд?
|
|||
35
rsv
27.04.16
✎
16:07
|
(34) В скуле есть уже импорт интерактивный . Мышкой пощелкаешь и все.
|
|||
36
rsv
27.04.16
✎
16:09
|
Express в части юзабилити от Ent не отличается . Удобно .
|
|||
37
Кокос
27.04.16
✎
18:25
|
(35) в каком скуле?
|
|||
38
Кокос
27.04.16
✎
18:26
|
(36) а да. экспресс вроде не ограничивает размер таблиц а только количество пользователей
|
|||
39
Amra
27.04.16
✎
18:27
|
(38) Ограничивает. Чтото типа 10 Гб и ограничение на использование ресурсов компа
|
|||
40
Кокос
27.04.16
✎
18:30
|
(39) то бишь придется файрберд юзать
|
|||
41
Amra
27.04.16
✎
18:31
|
(40) Зачем? Табличка будет меньше 10 Гб, а ресурсы... Там сервак разве? Ресурсы обычного компа экспресс выжрет и не поморшиться
|
|||
42
Кокос
27.04.16
✎
18:33
|
(41) оыбычный комп. плюс если клиент захочет грузить несколько кросстаблиц от разных поставщиков то еще больше файлы будут
|
|||
43
FN
27.04.16
✎
18:53
|
(42) можешь под каждого поставщика отдельную базу сделать и все влезет в express
|
|||
44
H A D G E H O G s
27.04.16
✎
18:59
|
(42) Там от силы гигабайт-два будет.
|
|||
45
H A D G E H O G s
27.04.16
✎
18:59
|
Давай свой файл, проверим.
|
|||
46
H A D G E H O G s
27.04.16
✎
18:59
|
Обычный комп ничем не отличается от сервера.
|
|||
47
ILM
гуру
27.04.16
✎
19:52
|
Файберд потянет вполне. Поставить клиента для него и тягать данные запросом, работать будет очень быстро, я так данные из ПЕРКО за год могу проанализировать по сотруднику или сотрудникам, выборка пара миллисекунд и потом перекачка в 1С ТЗ.
|
|||
48
Злопчинский
28.04.16
✎
00:23
|
Фигня
Сомнительно что контора, которая может для клиента притаранить любую запчасть из 120 млн - и не может найти спеца для решения этой задачи? Есть у меня один хомячок в питере на автозапчастях - както на клюшках умудряются клиентов по запчастям при схожей схеме обслуживать |
|||
49
4St
28.04.16
✎
00:58
|
Есть еще варианты с NoSQL
http://ruseller.com/lessons.php?rub=37&id=2409 Виндовый вариант взлетает мигом и без установки. Первоначальная заливка будет довольно долгой, если не использовать пакетный режим. А поиск должен быть мгновенный. |
|||
50
Serginio1
28.04.16
✎
09:59
|
(48) Таких контор пруд пруди. Работал, знаю.
|
|||
51
Кокос
28.04.16
✎
11:53
|
(48) твой характер соответствует твоему нику :)
(42) спасибо. Я уже все понял :)) жду заказа теперь |
|||
52
Кокос
28.04.16
✎
11:53
|
(49) слишком замрочено. думаю на мсэкспрессе остановлюсь ну или фб :)
|
|||
53
Gary417
28.04.16
✎
11:56
|
(48) < и не может найти спеца для решения этой задачи? >
они запчасти продают, бабло зарабатывают, а тут ктото кнопочки нажимает, ничего не делает, и требует денег как за полугодовую зарплату? неее...лучше в экселе и ручками. |
|||
54
4St
28.04.16
✎
12:15
|
(52) дело вкуса)) как прогрузишь в sql, будь добр, напиши здесь цифры: скорость заливки и скорость поиска. Думаю, почти всем отписавшимся любопытно.
|
|||
55
Кокос
28.04.16
✎
13:01
|
(54) врядли интересно. заливаться будет один раз в день. не думаю что больше 5 минут. А скорость поиска через ОДБС вообще будет копеечная. там две колонки всего айди запчасти и айди аналога.
|
|||
56
arsik
гуру
28.04.16
✎
13:12
|
(55) Индексирование еще забыл.
|
|||
57
Кокос
28.04.16
✎
13:18
|
(56) ну со времен фокспры майкрософт как-то их научился на лету строить... и довольно быстро
|
|||
58
Serginio1
28.04.16
✎
15:59
|
(55) Тогда заливать лучше через Merge
|
|||
59
Кокос
04.05.16
✎
17:19
|
(58) это как?
|
|||
60
Woldemar177
04.05.16
✎
17:22
|
Вопрос на засыпку какая длина строки в байтах?
|
|||
61
Кокос
04.05.16
✎
17:25
|
Пример
NAME_PARTS;mainART_BRANDS;mainART_CODE_PARTS;TTC_ART_ID;BRANDS;CODE_PARTS;CODE_PARTS_ADVANCED;KIND "Труба выхлопного газа";"DINEX";="15110";3;"BEDFORD";="91056091";="91056091";3 "Труба выхлопного газа";"DINEX";="15604";4;"BEDFORD";="34613907";="34613907";3 "Средний / конечный глушитель ОГ";"DINEX";="16100";5;"AEC";="T80284";="T8/0284";3 "Средний / конечный глушитель ОГ";"DINEX";="16300";7;"AEC";="TO118TO125";="TO118/TO125";3 "Средний / конечный глушитель ОГ";"DINEX";="16300";7;"TIMAX";="TAE19T";="TAE19T";4 "Средний / конечный глушитель ОГ";"DINEX";="16302";8;"BEDFORD";="T136TO102";="T136/TO102";3 "Средний / конечный глушитель ОГ";"DINEX";="16302";8;"AEC";="T136TO102";="T136/TO102";3 "Средний / конечный глушитель ОГ";"DINEX";="16302";8;"TIMAX";="TAE33X";="TAE33X";4 "Средний / конечный глушитель ОГ";"DINEX";="16306";9;"AEC";="TO120";="TO120";3 "Средний / конечный глушитель ОГ";"DINEX";="16306";9;"TIMAX";="TAE50T";="TAE50T";4 "Средний / конечный глушитель ОГ";"DINEX";="18331";13;"DENNIS";="6555506";="655550/6";3 "Средний / конечный глушитель ОГ";"DINEX";="18334";14;"DENNIS";="416007";="416007";3 "Средний / конечный глушитель ОГ";"DINEX";="18334";14;"GILLET";="460009";="460009";4 "Средний / конечный глушитель ОГ";"DINEX";="18340";15;"DENNIS";="6592151";="659215-1";3 |
|||
62
Кокос
04.05.16
✎
17:26
|
(60) Открыл в эксель. отформатировалось без проблем в 8 колонок
|
|||
63
Woldemar177
04.05.16
✎
17:28
|
(61) Переформатировать и залить в SQL секундное дело, и тяни через ODBC. Тянуть ксв через ODBC это извращение как хоккей на траве балет на льду или IP телефония через dial-up
(62) ну или так. в ёкселе есть дивная штука VBA. |
|||
64
Кокос
04.05.16
✎
17:34
|
(63) так уже решили. буду ставить мсскульэкспресс или файрберд. думаю первую ибо продукты мс обычно более дружелюбные и расчитаны на тупых. (63) думаю из екселя будет долго. и потом лучше сделать таблицу одного формата и раскидывать ее в скуле из разного типа файлов. тогда код 1с не надо будет менять.
|
|||
65
H A D G E H O G s
04.05.16
✎
17:40
|
жесть, как она есть
|
|||
66
Woldemar177
04.05.16
✎
17:41
|
(64) файрберд то зачем??? мсскуль или постгрес тогда уж.
|
|||
67
g00d
04.05.16
✎
17:42
|
импортируйте в любую нормальную субд и работайте.
|
|||
68
Кокос
04.05.16
✎
17:43
|
(65) негативный ты человек :))
|
|||
69
Кокос
04.05.16
✎
17:43
|
(66) мсскуль :)
|
|||
70
Serginio1
05.05.16
✎
14:01
|
(59) Закачиваешь в темповую таблицу, а затем https://msdn.microsoft.com/ru-ru/library/bb510625(v=sql.120).aspx
Ты можешь подгружать только изменения за определенный период итд |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |