Как стать автором
Обновить
15
0

Разработчик БД

Отправить сообщение
Могу предложить добавить в список ImportExportDataSql — бесплатная утилита импорта/экспорта данных (подобие bcp, с возможностью добавления названия полей в заголовке) с удобным GUI интерфейсом и расширенными возможностями настроек полей.
Имеется командная строка.
Все настройки хранятся, локально, в XML файле.
Возможность выгрузки данных в SQL-формате, для удобства переноса данных с тестовой среды в продуктовую.
Разрабатывал её для себя, буду рад если она кому-то пригодится в работе.
Статья с подробным описанием ImportExportDataSql
Пользуюсь FAQ Net под Windows. Бесплатная, все хранится локально в базе SQLite.
Есть функция всплывающих подсказок, которой пользуюсь как переводчик и для хранения ссылок интернета. Статьи о FAQ Net: статья 1, статья 2, статья о всплывающих подсказках
Действительно это связано с аккаунтом, спасибо за подсказку!
>> найти разноплановые статьи пример на хабре
ссылка указывает на английскую версию статьи (https://habr.com/en/post/293294/), но переходит на русский. Возможно, что хабр еще не перешел полноценно на английскую версию
А как linq2db считывает 1000 записей, в отдельном потоке?
Если нет, то тогда linq2db будет ждать, пока не прочитается весь файл и при большом объеме файла приложению может не хватить памяти.
var csvItems = CSVParser.Parse("filename");

Этот код означает чтение всего файла целиком или частями? Если целиком, то будет System.OutOfMemoryException, а если частями то нужно весь код внести в цикл, чтобы записи из файла считывались блоками.
А где же цикл обработки построчно и заливка в БД блоками? Если таким образом заливать несколько Гб разом, то транзакция будет переполнять диск и операция будет очень долгой, либо будет System.OutOfMemoryException.
Это проверено личным опытом.
P.S.: Даже системная утилита bcp пишет блоками по 1000 записей, не задумывались почему? Правда bcp фиксирует изменения одной транзакцией и это происходит долго (забивается диск), а ImportExportDataSql фиксирует изменения сразу после записи блока.
Благодарю за хороший отзыв!
Согласен, что велосипед, но хочется иметь простой инструмент без установки (портативный), чтобы взял и перенес на другой компьютер без проблем, а в какой-то момент доработал под себя.
У меня уже есть один проект в open-source на github: программа для заметок, возможно и этот выложу, если будет хоть немного желающих его доработать.
Я пробовал обрабатывать большие CSV и проблем не возникало. Можно поиграться с количеством записей блоков, чтобы оптимизировать скорость загрузки. Если есть возможность передать мне Ваш CSV файл (хотя бы часть), то я могу попробовать его загрузить в MSSQL и прислать вам готовый настроечный XML-файл, а Вам будет достаточно настроить соединение с БД и нажать кнопку «Выполнить обработку выбранных задач».
Я думал как есть так и обрабатывается, без изменений. Оказалось, что табуляция заменяется на пробел, а переход на новую строку заменяется на пустую строку.
Буду исправлять, спасибо за вопрос!
У меня есть еще одно подобное приложение, которое может конвертировать данные из одной СУБД в другую СУБД (MySQL, MSSQL, Access, Firebird), там есть поддержка ODBC. Вот ссылка, если интересно: yadi.sk/d/JQRvh2BOT7vqtg
Когда-нибудь перенесу тот функционал в ImportExportDataSql
Обязательно будет обработано, может сделаю периодическое сканирование всех каталогов и синхронизацию записей о файлах в БД, а может просто показывать, что это новые файлы и выделять их цветом. Тестирование покажет, как оптимальнее.
Да, файлы идентифицировать по путям (имени файла и ID записи)
Защиты изменений в папке не будет, так как при открытии заметки, список файлов будет подгружаться из папки и любой файл можно будет открыть через приложение, которое указано по-умолчанию для его расширения.
Имя папки будет такое же как и ID записи в базе, которое не меняется.
В WinOrganizer есть недостаток — после прикрепления файла и удаления, не сжимается база и файлы прикрепляются в саму БД, что не всегда удобно. Чтобы изменить прикрепленный файл, нужно заново его прикреплять. В FAQ.Net не буду так делать, пусть лучше файлы отдельно от БД будут храниться.
Приложение портабельное, достаточно скопировать в любую папку и распаковать.
P.S.: Под установкой я понимаю, когда запускается установщик (отдельный msi файл) и приложение регистрируется в «Панеле управления»
Теги добавлю в ближайшее время
онлайн решения не такие быстрые, как оффлайн, но гуглом тоже пользуюсь
Его нужно устанавливать и не привычно, что текст можно писать в любом месте. Еще в нем нет «Словаря подсказок».

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность