Pull to refresh

Comments 9

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

Какие лишние запятые, Вы о чём? на свой скриншот хотя бы гляньте!

Если значение текстового поля содержит запятую, Excel однозначно и безусловно обрамляет значение двойными кавычками. А сами двойные кавычки, если они встречаются в значении - удваивает. Так что никакой проблемы не возникает.

Кроме того, у Excel ещё есть предопределённый формат экспорта в текст с использованием в качестве разделителя символа табуляции.

Как скормить базе данных список из 10К офисов


10K это очень маленькие данные для базы данных.

Liquibase is an open-source database schema change management solution

По факту это инструмент для миграции, а не для данных.

Если заголовок прочитать, как: Сделать миграцию 10K записей, через Liquibase" то норм.

А так, я заглянул посмотреть, что это за база такая, где для вставки пары мегабайт данных нужно статью писать.

Что существенно поменяется, если взять, например, 10м? :)

В нашем случае речь идет о миграции именно справочника, а не данных. Сам Liquibase
поддерживает эту функцию, что сильно облегчает развертывание.

Если отвечать на заголовок в статье, то 10К можно скормить как угодно, например через отдельные insert. А вот в 1000 раз больше данных будет подольше.

Cтолкнувшись с такой задачей на проекте, я был сильно удивлен тому, как мало материалов написано по этой теме, даже на английском

Мне кажется обычно люди используют обычные SQL changeset'ы. Поэтому вся задача по сути - наколеночным скриптом перегнать excel файл в sql команды

Liquibase — это как Git для структуры БД. Гораздо меньше работы ляжет на плечи DevOps-разработчиков при обновлении и откате инстансов приложений.

Также у column есть 3 параметр type. В этом параметре указывается тип
формата данных, который лежит в csv. Но библиотека Liquibase достаточно
умная, чтобы сама понимать, что лежит, так что его можно не писать


Явное лучше неявного. Лучше пишите.

Так как изначально мы подготовили csv, то мы просто его скидываем и
просим поправить этот файл, при необходимости объяснив структуру csv

Если у вас есть экспертиза в вебе, то возможно CRUD будет быстрее сделать. Пусть клиенты сами всё правят.

Так что лучший способ профильтровать ошибки — на локальной среде
пытаться провести у себя, залив в базу данных, находя и исправляя
ошибки, на которые ругается Liquibase.

Ну лучший, но простой. В клиентских данных может быть много проблемы и просто формальной верификацией схемы это можно не поймать.

Я их мира Питона, там есть хороший инструментарий для этого (Pandas). Конечно тестирование с базой это не заменяет, но понять, что за данные и почисить их можно намнгого быстрее (если есть опыт работы с инстументами).

Согласны с тем, что лучше писать указывать тип формата данных на всякий случай 🙂

Наши справочники обновляются очень редко. То есть, быстрее будет сделать frontend- и backend- части, тестирование и обучение для бизнеса, чем просто прислать excel-документ (более доступный для клиента) и далее написать миграцию на несколько строчек?

Если все равно придется вручную проверять, что лежит в БД, зачем тогда нужен еще один инструмент?

Наши справочники обновляются очень редко. То есть, быстрее будет сделать frontend- и backend- части, тестирование и обучение для бизнеса, чем просто прислать excel-документ (более доступный для клиента) и далее написать миграцию на несколько строчек?

Если есть опытный крудошлёп, то сделать это не долго. В некоторых веб-фреёмворках админка для справочников делатеся делается десятком строк кода.

чем просто прислать excel-документ (более доступный для клиента)

Клиенты разные бывают. Иногда такие данные приходят, что надо 10 раз переспросить и переделать.

Если все равно придется вручную проверять, что лежит в БД, зачем тогда нужен еще один инструмент?

Вы эксперт в домене клиента, что сможете проверить 10К записей на соответсвование бизнес требованиями? Кто будет отвечать если вы проверили не так как надо?

Идея круда она как раз о том, что вы не участвуете в этом процессе больше ни как. Эксперт в доменной области сам заходит на страничку и сам всё делает. И если накосячил, сам всё исправляет. С вашей стороны только ограничения в базе данных правильно выставить.

Это подход более правильный, на мой взгляд, так как снимает с вас лишнюю ответственность. Ну и пользовтели смогут делать это более атомарно.

Правильный - не значит самый экономный по затратам времени.

Sign up to leave a comment.