Какую БД выбрать для парсинга на питоне и использовании в app на котлине?
Парни помогите с бизнес логикой пожалуйста. Вопрос довольно запутанный но постараюсь вкратце объяснить.
Я парсю данные (статьи, фразы), которые будут использоваться в мобильном приложении на котлине!
Пока я не заливаю данные никуда а пишу парсеры.
Вопрос в том, куда (в какую БД) мне лучше закидывать спарсенные данные на питоне, чтобы потом я мог обращаться к этой базе в мобильном приложении?
И вопрос в месте хранении БД. Я предполагаю все же локально (в пакете приложухи) хранить базу, тк не думаю что БД будет много весить и + в том, что юзеры смогут без интернета пользоваться прилкой.
Вопрос в выборе БД, в которую я сначала закину данные, спарсенные на питоне, затем надо эту БД разместить в самом приложении и обращаться на котлине к ней.
Посоветуйте пожалуйста как лучше сделать всю эту схему и какими инструментами пользоваться?
Заранее благодарю и хорошего всем дня!
PS я не думаю создавать БД и заполнять ее из приложухи, я хочу набить БД данными с помощью питона, а затем юзать эту БД из приложухи
sqlite
считай это отраслевой стандарт идеальный для мобильных пользователей
правильно конечно нужно продумать что именно будет происходить с данными, но как я понимаю - они только на чтение, то sqlite идеальный вариант по всем параметрам
ну вот я сейчас тоже его гуглю, изучаю связку с андроидом. Уроки проходил там либо рум либо firebase юзали и вопрос мне боком сейчас встал.
Окей, благодарю, выберу sqlite, чтобы не метаться туда сюда, вопрос теперь в другом.
Мне получается надо создать БД вне прилки, наполнить ее, а затем "засунуть" в прилку. Можете с этим процессом слегка помочь? Допустим ок, я локально поднимаю у себя sqlite (надеюсь так можно), наполняю ее данными (1 БД и 8 таблиц у меня). Дальше мне ее как можно будет импортнуть в прилку?
Плохо пока такой миграционный процесс понимаю(
sqlite это база данных в одном файле, ее достаточно приложить к самому приложению или скачать после первого запуска и положить на карту памяти (или точнее external в общем по желанию)
Для работы с базой данных достаточно библиотеки, поддержка абсолютно всего везде, опенсорс и прочее прочее.
На компьютере с базой можно работать как штатным консольной утилиток так и одним из миллиона инструментов, попробуй sqlite studio
rPman, угу, только когда нажимаешь new base он почему то ищет в директории ПК а не создает новую.
Но в целом я вас понял, сейчас установил sqlite studio буду ее юзать. Только я теперь плохо понимаю зачем она мне нужна если я не могу в ней создать БД (в визе проще) к которой я потом приконнекчусь питоном и добавлю данные в нее, потом сделаю экспорт (из виза опять же хотелось бы) и закину файл в андроид
Блин, странно что sqlite studio не поддерживает создание БД с 0. Также как и в предыдущей тулсе тут просят добавить БД из файла. А если я хочу создать БД с 0, как например постгресс в ПГАдмин, то нельзя
rPman, Вроде разобрался!!!!!!
sqlite это вообще встроенная тема (я с ней не работал, обычно юзал постгресс)
Файл БД создается автоматически, далее создаю таблицы и тд.
Даже робит на Jupyter, все ништяк, т.к. я иногда (в связи с ситуациями) пишу парсер в Jupyter и прям там подключаться к БД , добавлять в нее данные а потом тупо забирать файл БД из Jupyter'а это просто блин шедеврально!!!!
Благодарю вас
rPman, угу, сделал. Вопрос кстати теперь в экспорте из sqlite studio. Я в студию закидываю файл .db, а вот обратно из студии я не могу файл .db экспортировать. Только пдф, sql и тд, но не .db.
Объясню не обходимость. Я например работаю в Jupyter, создал БД и наполняю данными. Затем мне захотелось визуально глянуть в студии например. Я качаю файл, заливаю в студию, правлю что-то (как вариант), потом обновленный файл БД мне нужна обратно в Jupyter закинуть, но эьто уже будет не .db файл. Как же мне обратно мою базу данных поместить в Jupyter ?
о каком экспорте идет речь?
db файл и есть файл базы данных, его никуда не надо копировать (кроме самого android, например как ресурс), sqlite студия позволяет открыть файл базы по указанному пути и работать с ним одновременно с работающей программой (в этом режиме кстати медленнее будет но на запись sqlite и так хуже больших собратьев так что не беда), кстати даже по сети (windows smb или linux nfs) из-за чего это решение становится похожим на полноценную базу данных, работающую в локальной сети
Да, не спорю. Вопрос в использовании андроидом уже существующей БД. Я ее наполнять буду вне приложения, а добавлять в прилку уже наполненную данными БД. И вопрос как раз в миграции встает, сейчас пытаюсь понять как сделать миграцию БД.
Вот например эту статью читаю и ощущение что есть траблы в андроиде для чтения уже готовой БД https://habr.com/ru/post/125883/
+ вопрос пожалуйста Сергей по первой части бизнес логики. Раз sqlite, то как мне лучше организовать наполнение БД посоветуйте пожалуйста. У меня парсеры готовы в принципе, собирают данные которые нужны и теперь надо просто направить эти данные в БД
Александр Кошелев, Делаете из приложения get-запрос на свой сервер, и если на сервере есть новые данные, скачиваете их и делаете sql-запрос UPDATE, или очищаете базу и заполняете её новыми данными.
Сергей Карбивничий, не,я хотел локально юзать прилку, а вы описали ситуацию для обращения к сторонней базе данных.
Вроде бы эта статья мне дает понять, что импортировать в приложуху БД sqlite не вызывает проблем.
В ней кстати даже id прописан как _id, а в другой сттаье как раз таки это траблой было https://metanit.com/java/android/14.3.php
Александр Кошелев, идентификатор в sqlite таблицах может быть хоть свой собственный своего типа, так и встроенный rowid, рекомендую без надобности нового не заводить
Сергей Карбивничий, Да я их не буду часто обновлять, я спарсю что мне надо и все.
Потом может раз в месяц буду что то добавлять опять же не из прилки, а потом этот файл заливать в андроид.
Просто такая обычная прилка тупо с текстами должна работать и без инета по хорошему. А обновлять ее делая запросы из нее к серваку это полюбому инет нужен. Легче раз в месяц или по необходимости перезаливать файл БД обновленный в нее
Jacen11, согласен насчет room. Но тогда вопрос в том, как мне парсить данные на питоне добавляя их в БД? Room не работает с питоном. Гуглил как "конвертитровать" данные из sqlite в room и пока ничего не нашел!
все нормальные люди делают сервак и потом приложение делает запрос на него по требованию пользователя на обновление данных
Я написал, что хочу, чтобы прилолжение работало и без инета, поэтому сторонний сервак юзать не айс
эм, а зачем? естественно что не работает, это же либа на андроид джаву
никто не работает напрямую с бд, я же уже сказал об этом. Джейсончики все гоняют
чтобы прилолжение работало и без инета
оно и будет работать без инета
вы лично для себя делаете приложение или это кто то будет использовать? если для себя делайте что хотите, если для людей, то архитектура у вас какое то говно