|   |   | 
| 
 | Самый производительный способ выгрузки во внешние базы данных. Ø (Волшебник 23.05.2025 11:57) | ☑ | ||
|---|---|---|---|---|
| 0
    
        kolts23381 18.05.25✎ 18:19 | 
        Кто разрабатывал такую выгрузку. Пока остановился на CSV. Выгружаю с помощью скд, который при сохранении в текстовый формат дает csv файл. Это быстрее чем с помощью записи текста. Есть более производительные способы?     | |||
| 21
    
        Кирпич 19.05.25✎ 10:42 | 
        (20) "Какой программой преобразовывали в csv "
 да какой. сам писал на паскале:) | |||
| 22
    
        kolts23381 19.05.25✎ 10:48 | 
        Какой подход использовали для преобразования, можете подсказать? Читали построчно, разбирали строку? Как в таком случае разбирали строку, с помощью регулярных выражений или нет?     | |||
| 23
    
        Кирпич 19.05.25✎ 10:59 | 
        (22) да ну просто парсер. нам не сложно. Просто разобрать такую абракадабру. 
 {"T",4,2,"S","Code","S","Description","S","000000001","S","1 ляля","S","000000002","S","2 ббб","S","000000003","S","3 ббббб"} любой школьник напишет или ИИ. | |||
| 24
    
        kolts23381 19.05.25✎ 12:55 | 
        Все-таки использовали регулярно или посимвольный разбор?     | |||
| 25
    
        Кирпич 19.05.25✎ 11:05 | 
        тут же всё понятно. "T" таблица, "4,2" - четыре строки две колонки и погнали     | |||
| 26
    
        Кирпич 19.05.25✎ 11:06 | 
        (24) посимвольно конечно. регулярки будет медленней     | |||
| 27
    
        Кирпич 19.05.25✎ 11:06 | 
        да и не нужны они тут     | |||
| 28
    
        Кирпич 19.05.25✎ 11:10 | 
        забил это в ИИ :) 
 Отлично! Ты хочешь написать **парсер на Go** для разбора структуры вида: ```json {"T",4,2,"S","Code","S","Description","S","000000001","S","1 ляля","S","000000002","S","2 ббб","S","000000003","S","3 ббббб"} ``` Это не стандартный JSON, а скорее **сериализованный массив значений**, где: - `"T"` — тип (возможно, "Table") - `4` и `2` — какие-то числа (например, количество строк и столбцов) - `"S"` — указывает, что следующее значение — строка (`S` = String) --- ## 🎯 Цель Превратить это выражение в понятную структуру, например: ```go type ParsedData struct { Type string Rows int Columns int Headers []string Data map[string]string // или []map[string]string в зависимости от формата } ``` --- ## ✅ Пример входных данных ```go input := []interface{}{"T", 4, 2, "S", "Code", "S", "Description", "S", "000000001", "S", "1 ляля", "S", "000000002", "S", "2 ббб", "S", "000000003", "S", "3 ббббб"} ``` > Для упрощения будем считать, что входной массив уже распарсен как `[]interface{}`. --- ## 🔧 Реализация парсера Вот готовый пример парсера на Go: ```go package main import ( "fmt" ) type ParsedData struct { Type string Rows int Columns int Headers []string // Заголовки колонок Data []map[string]string // Строки данных: ключ — заголовок, значение — значение } func parseCustomFormat(tokens []interface{}) (*ParsedData, error) { if len(tokens) < 5 { return nil, fmt.Errorf("слишком мало данных") } p := &ParsedData{} // Первое значение — тип if t, ok := tokens[0].(string); ok { p.Type = t } else { return nil, fmt.Errorf("первое значение должно быть строкой типа") } // Второе и третье — целые числа: Rows и Columns if r, ok := tokens[1].(int); ok { p.Rows = r } else { return nil, fmt.Errorf("второе значение должно быть целым числом") } if c, ok := tokens[2].(int); ok { p.Columns = c } else { return nil, fmt.Errorf("третье значение должно быть целым числом") } idx := 3 // Читаем заголовки for i := 0; i < p.Columns && idx+1 < len(tokens); i++ { if s, ok := tokens[idx].(string); ok && s == "S" { header, ok := tokens[idx+1].(string) if !ok { return nil, fmt.Errorf("ожидалась строка для заголовка %d", i) } p.Headers = append(p.Headers, header) idx += 2 } else { return nil, fmt.Errorf("ожидался 'S' перед заголовком") } } // Проверяем, что удалось прочитать все заголовки if len(p.Headers) != p.Columns { return nil, fmt.Errorf("не найдены все заголовки") } // Читаем данные for i := 0; i < p.Rows && idx+1 < len(tokens); i++ { row := make(map[string]string) for j := 0; j < p.Columns && idx+1 < len(tokens); j++ { if s, ok := tokens[idx].(string); ok && s == "S" { val, ok := tokens[idx+1].(string) if !ok { return nil, fmt.Errorf("ожидалась строка для значения [%d][%d]", i, j) } row[p.Headers[j]] = val idx += 2 } else { return nil, fmt.Errorf("ожидался 'S' перед значением [%d][%d]", i, j) } } p.Data = append(p.Data, row) } return p, nil } func main() { // Исходные данные в виде []interface{} input := []interface{}{ "T", 4, 2, "S", "Code", "S", "Description", "S", "000000001", "S", "1 ляля", "S", "000000002", "S", "2 ббб", "S", "000000003", "S", "3 ббббб", } result, err := parseCustomFormat(input) if err != nil { fmt.Println("Ошибка:", err) return } // Вывод результата fmt.Printf("Тип: %s\n", result.Type) fmt.Printf("Строк: %d | Колонок: %d\n", result.Rows, result.Columns) fmt.Printf("Заголовки: %v\n", result.Headers) fmt.Println("Данные:") for _, row := range result.Data { fmt.Println(row) } } ``` --- ## 📦 Результат выполнения: ```text Тип: T Строк: 4 | Колонок: 2 Заголовки: [Code Description] Данные: map[Code:000000001 Description:1 ляля] map[Code:000000002 Description:2 ббб] map[Code:000000003 Description:3 ббббб] map[Code:000000003 Description:3 ббббб] ← если rows > данных — будет повтор? ``` > ⚠️ В твоих данных только 3 строки, но указано `rows=4`. Если нужно — можно добавить проверку. --- ## ✅ Что умеет парсер: - Парсит тип (`T`) - Читает число строк и столбцов - Читает заголовки по метке `"S"` - Читает данные по строкам и привязывает к заголовкам - Выдает результат в удобной структуре --- ## 🚀 Что можно добавить: - Поддержку других типов, кроме `"S"` (например, `"I"` — integer, `"B"` — boolean) - Валидацию длины данных - Возможность сериализации обратно - Поддержку JSON/YAML вывода --- Если тебе нужно адаптировать это под конкретный протокол, формат или API — пиши, я помогу! 😊 | |||
| 29
    
        Кирпич 19.05.25✎ 11:13 | 
        ИИ конечно фигню написал, но примерный объем работ виден.     | |||
| 30
    
        kolts23381 19.05.25✎ 11:15 | 
        Я уже забивал в ИИ). Буду смотреть, спасибо     | |||
| 31
    
        Кирпич 19.05.25✎ 11:21 | 
        (30) Да на ИИ можно и не тратить время. За день сам напишешь (если конечно знаешь какой нибудь язык программирования). Если большие файлы, обязательно используй буферизацию или MMAP.     | |||
| 32
    
        kolts23381 19.05.25✎ 11:28 | 
        C++, есть опыт     | |||
| 33
    
        Кирпич 19.05.25✎ 11:45 | 
        (32) От это тебя угораздило. Неделю теперь будешь писать :)     | |||
| 34
    
        olegves 19.05.25✎ 12:59 | 
        (0) самый производительный - это репликация БД средствами скуля     | |||
| 35
    
        rsv 19.05.25✎ 13:05 | 
        (0)  если источник ms sql , cоздайте в нем линкованый сервер на приемник. И обычным select into.     | |||
| 36
    
        rsv 19.05.25✎ 13:07 | 
        Linked Server     | |||
| 37
    
        H A D G E H O G s 19.05.25✎ 13:32 | 
        Запрос -> ТЗ -> ЗначениеВФайл -> ВнешняяКмпонентаНаДельфи которая преобразует формат 1С в csv -> bulkinsert из csv в БД.     | |||
| 38
    
        kolts23381 19.05.25✎ 13:58 | 
        (34) это да, но не хотелось бы связываться с прямыми запросами, не всегда есть доступ к базе данных. (37) Тоже пришел к такому выводу. Осталось сделать конвертер     | |||
| 39
    
        Garykom гуру 19.05.25✎ 15:01 | 
        (29) ИИ написал не просто фигню а много фигни
 На практике все намного проще в Go | |||
| 40
    
        Garykom гуру 19.05.25✎ 15:04 | 
        Имхо ТС херней занимается
 Если надо самый быстрый способ: То ПолучитьСтруктуруХраненияБазыДанных() и прямые запросы Если надо просто, удобно, гибко и достаточно быстро: Использовать JSON в платформе 1С и не выделываться | |||
| 41
    
        Garykom гуру 19.05.25✎ 15:04 | 
        (37) объясни нахера промежуточные шаги, когда можно сразу из СУБД запросами прямыми???     | |||
| 42
    
        Garykom гуру 19.05.25✎ 15:07 | 
        (41)+ пишется запрос на 1С, профайлером (есть ИР) ловится
 напрямую исполняется в СУБД, результат в текст в удобном виде зачем еще ВК изобретать? или использовать официально не рекомендованный ЗначениеВФайл | |||
| 43
    
        Voronve 19.05.25✎ 15:09 | 
        (41) Грузани напрямую контрагентов в базу битрикса. А мы похохочем ...     | |||
| 44
    
        Garykom гуру 19.05.25✎ 15:28 | 
        (43) 1. Конфу не указал
 2. Самому что знаний не хватает для подобного? 3. Лично я сделаю на JSON и http-сервисах. И не буду выделываться с разными CSV, ЗначениеВФайл, ЗначениеВСтрокуВнутр, внешними компонентами и прочими извратами | |||
| 45
    
        kolts23381 19.05.25✎ 15:26 | 
        (42)Потому что к субд не всегда есть доступ. А если файловый вариант? JSON сложнее загружать в субд, тоже нужна прослойка, но согласен ее написать легче чем для внутреннего формата 1с(ЗначениеВФайл).     | |||
| 46
    
        Мультук гуру 19.05.25✎ 15:32 | 
        (45) 
 "Файловый вариант" Сначала быстрей, быстрей -- напишем конвертер на Си, нет -- на Си, но с asm-вставками. А теперь оказывается выгрузка из файловой базы. | |||
| 47
    
        Garykom гуру 19.05.25✎ 15:33 | 
        (45) к СУБД всегда есть доступ
 если у тебя есть доступ в Конфигуратор, то можно выгнать всех нахрен, выгрузить в DT и загрузить ее в свою СУБД это если разовая выгрузка-загрузка а если постоянная - используйте стандартные общепринятые механизмы (json, http и т.д.) и наймите спецов вместо этого нубского лепета для bulk в СУБД есть специальные форматы и CSV там не главный, главный sql insert | |||
| 48
    
        kolts23381 19.05.25✎ 15:38 | 
        (46)Я ожидал этого сообщения. Решение должно быть универсальным. Мне не охота писать несколько вариантов - один быстрый, другой медленный третий еще какой-то     | |||
| 49
    
        Кирпич 19.05.25✎ 16:08 | 
        (44) как JSON и вебсервис поможет "быстро выгрузить из 1С"? Это же два галимых тормоза тормоза :)     | |||
| 50
    
        Кирпич 19.05.25✎ 16:11 | 
        И JSON этот по умолчанию будет в каждую строчку имена полей вставлять, что есть идиотизм. А если делать нормальный JSON, то он будет похож на CSV как однояйцевые близнецы.     | |||
| 51
    
        Кирпич 19.05.25✎ 16:14 | 
        (48) щас я суп доварю, сделаю тебе конвертор этот. заодно замерим у кого быстрее получится.     | |||
| 52
    
        scanduta 19.05.25✎ 17:20 | 
        (0) Данных недостаточно
 выгрузка одноразовая или это периодический обмен? Таблица в плоском виде или более сложная структура? Какие системы участвуют в обмене? Если делается внутри между базами sql , тогда зачем будут нужны файлы если можно напрямую | |||
| 53
    
        tabarigen 19.05.25✎ 17:22 | 
        (34) 🤣 зато честно     | |||
| 54
    
        tabarigen 19.05.25✎ 17:24 | 
        если серьезно, то пост максимально не серьезный.
 автор после своего потока сознания поставил знак вопроса и спросил тут. | |||
| 55
    
        Кирпич 21.05.25✎ 16:40 | 
        Вот заколбасил. Только имена полей пока тупо генерятся F1 F2 F3.... Неохота сейчас с ними возиться.
 https://github.com/qxlreport/tocsv | |||
| 56
    
        Кирпич 20.05.25✎ 11:32 | 
        Потестил код из (55)
 На моем стремительном i7-3770 3.40GHz и SSD гигабайтный файл в 10 млн записей из двух полей переделывает за 5 секунд вполне себе быстренько | |||
| 57
    
        Кирпич 20.05.25✎ 11:37 | 
        За какое время такую кучу сможет вывалить 1С через ЗначениеВФайл() науке пока не известно     | |||
| 58
    
        Кирпич 21.05.25✎ 16:54 | 
        подкрутил чтобы имена полей выводил такие же как и в запросе
 кому надо, лежит здесь https://github.com/qxlreport/tocsv | |||
| 59
    
        Garykom гуру 22.05.25✎ 02:27 | 
        Ммм тут мысля возникла
 А есть возможность получить сформированную ВТ с данными в СУБД снаружи текущего сеанса? Я к чему, делать прямые запросы это весьма трудозатратно Но можно же слегка схитрить и подготовить временные таблички простой структуры, причем известной А затем их банально забрать из СУБД | |||
| 60
    
        kolts23381 22.05.25✎ 00:58 | 
        У меня на подходе своя версия на с++ ). (59) Скорей всего если использовать менеджер временных таблиц, то временная таблица будет существовать пока существует менеджер. Осталось узнать ее название.
 В 8.3.12 таблица значений обозначается так: {"#",acf6192e-81ca-46ef-93a6-5a6968b78663, | |||
| 61
    
        timurhv 22.05.25✎ 01:12 | 
        (50) Ну добавьте в csv данные по контрагентам, номенклатуре, организации, складу, остаткам и тд. В JSON это все проще, можно отдельной сущностью описать. 
 (59) => (52) проще какую-то синхронизацию с самописной БД организовать, чем от 1С плясать если нужна скорость именно выгрузки. Актуализацию данных можно организовать через регистр сведений и рег.задание. Чет видал какие-то подобные хотелки по гос.контрактам чтобы данные выгружались не более 3 сек. | |||
| 62
    
        Кирпич 22.05.25✎ 07:39 | 
        (61) " В JSON это все проще, "
 А загружать это потом как? SQL Server сам догадается, что в какие таблицы писать? CSV булькнул и готово | |||
| 63
    
        ProxyInspector 22.05.25✎ 21:32 | 
        В JSON однозначно проще и гибче. При желании ваше CSV можно преобразовать в JSON. Размер при этом будет примерно одинаковый. Зато пропадут все проблемы со специальными символами и экранированием. Читать будет не медленнее.     | |||
| 64
    
        timurhv 22.05.25✎ 21:53 | 
        (62) Слон позволяет гибко работать с JSON, помимо этого можно делать запросы SQL к данным файлам JSON, а не линейным таблицам как в MSSQL     | |||
| 65
    
        kolts23381 22.05.25✎ 22:41 | 
        Вот и моя версия на c++
 https://github.com/kolts1/1c_converter/tree/main Пока что только исходник, на данный момент нет обработки данных, то есть пишется в csv как есть. Также пока нет обработки экранированных символов, нужно разбираться. Указываем входящий и исходящий файл. | |||
| 66
    
        Кирпич 23.05.25✎ 08:50 | 
        (65) "нет обработки экранированных символов" так там уже всё 1С заэкранировал. Можно тупо копировать, что есть.     | |||
| 67
    
        Кирпич 23.05.25✎ 09:02 | 
        (63)(64) У вас секта какая то чтоли? JSON JSON JSON     | |||
| 68
    
        Fish гуру 23.05.25✎ 09:05 | 
        (67) Да просто CSV уже практически никто не использует. А JSON быстрый и универсальный. Если он у тебя тормозит - значит, ты не умеешь его готовить.     | |||
| 69
    
        laeg 23.05.25✎ 09:22 | 
        (68) для каждого своя цель.
 Как пример для обмена прайсами никому JSON не нужен, а прайсы не редки 1кк +- строк. JSON - сам по себе не может быть быстрым, это механизмы его использующие оптимизированы с ним работать. | |||
| 70
    
        Кирпич 23.05.25✎ 09:42 | 
        (68) CSV используют все. Не выдумывай. Особенно для загрузки во всякие PowerBI и т.п, для которых и нужна быстрая выгрузка из 1С.     | |||
| 71
    
        Fish гуру 23.05.25✎ 09:47 | 
        (70) Все, кто не осилил более современные и удобные форматы данных. Тот же PowerBI прекрасно работает с XML.     | |||
| 72
    
        Кирпич 23.05.25✎ 10:07 | 
        (71) Ну тогда в какой-нибудь протобуф выгружай. Он пипец какой современный     | |||
| 73
    
        Fish гуру 23.05.25✎ 09:59 | 
        (72) 1С умеет с ним работать на уровне платформы? Иногда голову желательно всё-таки включать.     | |||
| 74
    
        Кирпич 23.05.25✎ 10:04 | 
        (73) свою голову включи сначала     | |||
| 75
    
        H A D G E H O G s 23.05.25✎ 10:16 | 
        (67) модно, стильно, молодежно.     | |||
| 76
    
        Кирпич 23.05.25✎ 10:28 | 
        (75) "более современные и удобные форматы данных" :) (71)     | |||
| 77
    
        Fish гуру 23.05.25✎ 10:36 | 
        (76) Прочитай (10) и попробуй подумать. Если не получится, перечитай ещё раз. Понятно, что для ларька, для передачи цен на овощи, вполне хватит и CSV. Но для действительно больших объемов данных, к тому же содержащие что-то сложнее, чем строки типа "Морковка - 10р.", CSV я бы не использовал.     | |||
| 78
    
        H A D G E H O G s 23.05.25✎ 10:36 | 
        (76) карго-культ. Желание подражать java смузихлебам.     | |||
| 79
    
        Fish гуру 23.05.25✎ 10:41 | 
        (78) Да нет. Всего лишь опыт работы с получением больших объемов данных из различных внешних источников (не 1С). Почему-то никто не передаёт их в CSV.
 Наверное, у всех крупных компаний карго-культ :)))) | |||
| 80
    
        d4rkmesa 23.05.25✎ 10:51 | 
        (68) А ничего, что csv - все еще стандарт в качестве источника для импорта данных аля bulk insert, в различных СУБД? Да даже взять финансовые аппы, везде экспорт-импорт в основном csv. Я вот буквально вчера пилил себе дома импорт из csv для ZenMoney, в 2025. Предыдущая прога тоже csv-only. 
 (79) Крупные компании передают в чем угодно, от csv и xls, до xml и json. Не стоит думать, что здесь все в ларьках работали всю жизнь. | |||
| 81
    
        Fish гуру 23.05.25✎ 10:49 | 
        (80) ZenMoney - да, это серьёзный аргумент. Все крупные компании только её и используют. Например, Газпром, РЖД и прочие - всю финотчетность только в ZenMoney ведут. :)))     | |||
| 82
    
        Кирпич 23.05.25✎ 11:17 | 
 | |||
| 83
    
        Fish гуру 23.05.25✎ 10:54 | 
        (80) "Крупные компании передают в чем угодно, от csv и xls, до xml и json."
 Ну вот давненько я не встречал передачи больших объемов данных от крупных компаний в csv, хотя работаю с ними постоянно. Но вы продолжайте теоретизировать. | |||
| 84
    
        Кирпич 23.05.25✎ 10:56 | 
        (78) смузихлёбы тоже уже подозревают, что гонять JSON между сервисами очень накладно     | |||
| 85
    
        Кирпич 23.05.25✎ 11:44 | 
        (83) "большие" объемы получаются из-за xml. Но можно же просто на ночь запустить и нормально. Правда?     | |||
| 86
    
        d4rkmesa 23.05.25✎ 11:03 | 
        (81) Смешно смотритесь. Мне кажется, прямо сейчас вы с "Газпромом" не работаете. )
 Ну давайте без шутовства все-таки, меряться тут, кто с кем работал... Какая капитализация и сравнить с нынешней капитализацией Газпрома (я рад, что не акционер оного ныне). Честно - наплевать в чем там у них отчетность, мне важнее мой дашборд на ZenMoney сделать. csv-один из наиболее распространенных форматов и это факт, а если религия не позволяет с ним работать - это проблемы с вашей религией. | |||
| 87
    
        d4rkmesa 23.05.25✎ 11:02 | 
        (83) Месье, вы врете. CSV и XLS - были и остаются одними из основных форматов обмена. Но, возможно, мы о разном говорим. Мне пофиг на ваш BI, никогда с ним дело не имел. И миллиарды записей в Elastic не грузил, это да.     | |||
| 88
    
        Кирпич 23.05.25✎ 11:01 | 
        (77) В (10) написана херня. Причем несколько пунктов херни.     | |||
| 89
    
        Fish гуру 23.05.25✎ 11:02 | 
        (86) А я не говорил, что мне религия запрещает работать с CSV. Вопрос в (0) звучал так: "Самый производительный способ выгрузки во внешние базы данных."
 Я дал на него ответ, исходя из личного опыта. Если мой ответ и практический опыт не вмещается в вашу религию - то это проблемы с вашей религией. | |||
| 90
    
        Fish гуру 23.05.25✎ 11:04 | 
        (87) В овощных ларьках - возможно да. Там, где речь идет о действительно серьёзных объемах данных - CSV не встречал.     | |||
| 91
    
        Fish гуру 23.05.25✎ 11:05 | 
        (90) А про XLS с его ограничением на количество строк - звучит, как детский сад.     | |||
| 92
    
        Кирпич 23.05.25✎ 11:05 | 
        (89) Ну и какой, по твоему, "Самый производительный способ выгрузки во внешние базы данных."
 JSON? JSON это способ? Это же просто текстовый формат, а не способ | |||
| 93
    
        d4rkmesa 23.05.25✎ 11:06 | 
        (90) Из этого следует, что вы никогда не работали с самыми распространенными СУБД. 
 Ну вот такая у вас религия, ага. | |||
| 94
    
        d4rkmesa 23.05.25✎ 11:07 | 
        (90) Овощной ларек - Газпром с нынешней капитализацией.     | |||
| 95
    
        Fish гуру 23.05.25✎ 11:08 | 
        +(91) Инфа для ларёчников:
 https://support.microsoft.com/ru-ru/office/%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5-%D1%85%D0%B0%D1%80%D0%B0%D0%BA%D1%82%D0%B5%D1%80%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8-%D0%B8-%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-excel-1672b34d-7043-467e-8e27-269d656771c3 Общее количество строк и столбцов на листе 1 048 576 строк и 16 384 столбца Всего миллион строк - это не объем вообще. Для передачи больших объёмов не подходит от слова совсем. | |||
| 96
    
        Fish гуру 23.05.25✎ 11:09 | 
        (92) Так и CSV внезапно, это текстовый формат, а не способ :)))     | |||
| 97
    
        Fish гуру 23.05.25✎ 11:11 | 
        (93) Конечно не работал, успокойся уже. Никто не покушается на твою наивную веру :)))     | |||
| 98
    
        Кирпич 23.05.25✎ 11:11 | 
        (95) Ну добавь еще 100 листов. Excel, кстати, тоже xml. Так что это твой выбор :)     | |||
| 99
    
        Кирпич 23.05.25✎ 11:13 | 
        (96) Вот и я об том же. Нехер тут спорить про форматы, если речь идет совсем о другом     | |||
| 100
    
        Fish гуру 23.05.25✎ 11:13 | 
        (98) Блин. XML - содержится в формате XLSX, а речь шла про XLS. Ты даже про это не в курсе? :))))     | |||
| 101
    
        d4rkmesa 23.05.25✎ 11:17 | 
        (97) Так что насчет bulk insert, это тоже для ларьков?     | |||
| 102
    
        Fish гуру 23.05.25✎ 11:20 | 
        (99) Ну тут не совсем соглашусь. От формата зависит во-первых объем данных, во-вторых скорость разбора данных. Также немаловажно удобство работы с форматом - либо для каждого обмена придется писать новую процедуру разбора, и в случае любого изменения переписывать её, либо использовать более универсальные процедуры выгрузки/загрузки, легко адаптируемые под изменения.
 И выбор формата зависит как и от объемов выгружаемых данных, так и от их содержимого. Где-то подойдет CSV, а где-то XML или JSON. в (0), кстати, не озвучены ни объемы данных ни их типы. Так что спор вообще ни о чём. | |||
| 103
    
        Кирпич 23.05.25✎ 11:21 | 
        (100) В XLS 1048576 строк не влезет. Ты в (95) написал про xlsx. В xls 65535 было, если мне не изменяет память     | |||
| 104
    
        Fish гуру 23.05.25✎ 11:22 | 
        (101) bulk insert можно использовать только внутри компании. Ты извини, конечно, но я не представляю ситуации обмена между различными организациями через bulk insert.     | |||
| 105
    
        Fish гуру 23.05.25✎ 11:25 | 
        (103) Да? Ну значит, ссылку второпях не ту нашёл.
 А 65535 - это вообще детский объём. Но вот товарищ на серьёзных щах утверждал, что это "... XLS - были и остаются одними из основных форматов обмена." :)))) | |||
| 106
    
        Кирпич 23.05.25✎ 11:30 | 
        (102) Ну вот и читай, что сам написал. 
 Объем - csv меньше чем JSON и XML "Также немаловажно удобство работы с форматом - либо для каждого обмена придется писать новую процедуру разбора" Все БД и аналитические программы всасывают csv как родной. | |||
| 107
    
        Кирпич 23.05.25✎ 11:28 | 
        (105) Ну и правильно говорит. В xls постоянно обмениваются. Это плохо, но это так     | |||
| 108
    
        Fish гуру 23.05.25✎ 11:32 | 
        (106) Всё-таки попробуй перечитать (10). Похоже, ты так и не понял, что там написано, раз не смог ничего возразить.     | |||
| 109
    
        Кирпич 23.05.25✎ 11:33 | 
        (104) Так ты представь. Всё тоже самое, только в 10 раз быстрее.     | |||
| 110
    
        Fish гуру 23.05.25✎ 11:45 | 
        (107) Так я же и не спорю, что для небольших объемов данных подойдёт любой формат. Я лишь говорю, что для больших объёмов такой формат не годится. А вы почему-то с этим спорите.     | |||
| 111
    
        Fish гуру 23.05.25✎ 11:34 | 
        (109) Не представляю крупную компанию, в которой СБ допустит такое. И скорость тут вообще ни при чём. Но в ларьке, вполне допускаю, могут и не такое учудить :)))     | |||
| 112
    
        Кирпич 23.05.25✎ 11:35 | 
        (108) В (10) написана херня. Просто пердок в лужу.     | |||
| 113
    
        Fish гуру 23.05.25✎ 11:37 | 
        В общем, всё, как обычно. Набежали ларёчники и стали доказывать, что их тормозные, трудозатратные в реализации и костыльные способы обмена (хотя на их объемах разницу вообще не заметишь) - самые лучшие :)))
 Но религия - вещь серьёзная. | |||
| 114
    
        Fish гуру 23.05.25✎ 11:37 | 
        (112) Обосновать по пунктам можешь или ты даже не понял, что там написано?     | |||
| 115
    
        d4rkmesa 23.05.25✎ 11:40 | 
        (105) Ты зациклился на своих задачах. Обмены на xls-ках и SFTP - пока еще существуют, как бы всем это не нравилось. Разумеется, там не миллионы записей в одном файле, там куча файлов с <65565 строк. Но раз выгружает условный Юнилевер ларькам данные в таком виде, значит, не всегда могут даже в XML сделать. Хотя уже даже ларьки как раз просят json, так как любой Вася умеет с ним работать.     | |||
| 116
    
        Кирпич 23.05.25✎ 11:39 | 
        (110) вот xml и json это для маленьких объемов. А миллионы записей заливаются более простыми форматами. Чем проще формат, тем быстрее заливается. Это же очевидно. CSV гораздо проще JSON и XML.     | |||
| 117
    
        rsv 23.05.25✎ 11:42 | 
        (113) когда сутки устанут выгружать в файлик любого формата , тогда и бэкапскульный  с нарочным на диске за радость будет.     | |||
| 118
    
        Кирпич 23.05.25✎ 11:44 | 
        (114) Ты думаешь, если ты не понял, что там написано, то и другие не поняли?     | |||
| 119
    
        Fish гуру 23.05.25✎ 11:45 | 
        (116) Не вижу смысла даже спорить, раз ты не осилил ответить на вопросы, озвученные в (10).
 Когда столкнёшься с реальными данными, тогда и поговорим. | |||
| 120
    
        Кирпич 23.05.25✎ 11:52 | 
        (119) Ой мля. Да о чем с тобой разговаривать.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |