Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Какую базу данных взять под мою задачу? Она должна обновляться в реальном времени. Желательно легкодоступную

агент . Ученик (113), открыт 3 недели назад
Привет! Передо мной поставили задачу: сделать так, чтобы база данных, связанная с моим кодом, находилась на какой-то платформе, где кто-то будет её редактировать и она будет меняться в реальном времени. То есть, мой бот в телеграмме будет брать информацию оттуда. Не скачивать, а именно считывать. При необходимости её менять. Это может понадобиться для изменений в личном кабинете. Дайте варианты, где можно расположить базу данных для моего бота. Бот (код для него) будет находиться на моём сервере, мне лишь нужно как-то связать его с базой данных, которую другой человек сможет удобно редактировать в другом месте. Ранее я пробовал гугл файлы, но они мне не подошли из-за того, что там была задержка в 5-10 секунд, бот постоянно скачивал файл вместо обычной обработки и не редактировал его
7 ответов
Хир Гуру (3682) 3 недели назад
MongoDB может быть подойдёт?
агент .Ученик (113) 3 недели назад
А, забыл сказать. Желательно, бесплатную ?
Хир Гуру (3682) агент ., друг в проектах использует rethinkdb, насчёт удобства использования не скажу – не использовал, но она вроде как бесплатная
Jurijus Zaksas Искусственный Интеллект (445767) 3 недели назад
>Не скачивать, а именно считывать.
А разница в чем о_О?

Если задержка в несколько секунд для тебя так критична, разворачивай в облаке какой-нибудь NoSQL, или Share Nothing - на твой выбор. Дорого, но быстро.
Chromatic Scale Искусственный Интеллект (206063) 3 недели назад
Для задачи, где важна работа с базой данных в реальном времени, несколько подходящих вариантов обеспечат быстрое взаимодействие с минимальной задержкой и простоту редактирования данных другим человеком. Вот несколько рекомендаций для реализации:

### 1. **Firebase Realtime Database**
- **Плюсы:** Firebase от Google позволяет работать с данными в реальном времени, поддерживает WebSocket соединения и SDK для множества языков, включая Python.
- **Особенности:** Данные обновляются моментально, и вы можете настроить правила доступа, чтобы другой пользователь мог изменять записи через веб-интерфейс или приложение.
- **Интеграция:** Легко подключается к Telegram-боту через Python SDK для Firebase. База данных также управляется через Firebase Console, где другой человек может вручную редактировать данные.

### 2. **Google Firestore**
- **Плюсы:** Firestore также от Google, работает на основе документов и коллекций и поддерживает обновление данных в реальном времени.
- **Особенности:** Поддерживает более сложные запросы по сравнению с Firebase Realtime Database и имеет гибкие настройки доступа.
- **Интеграция:** Firestore SDK также поддерживается в Python, и подключение к Telegram-боту довольно простое. Человек может редактировать данные через Firebase Console, аналогично Firebase Realtime Database.

### 3. **Supabase**
- **Плюсы:** Open-source альтернатива Firebase с Postgres-базой данных в основе. Поддерживает real-time подписки на изменения в базе данных, что удобно для вашего сценария.
- **Особенности:** Вы можете подключить вашего бота к базе данных и получать моментальные уведомления об изменениях в реальном времени. Поддерживается Postgres-синтаксис и множество возможностей SQL.
- **Интеграция:** Supabase имеет удобный веб-интерфейс для редактирования данных, что позволит другому человеку вносить изменения. Также есть SDK для Python, который позволяет легко взаимодействовать с базой.

### 4. **Redis с функцией pub/sub**
- **Плюсы:** Redis — это высокопроизводительное in-memory хранилище данных с поддержкой реального времени.
- **Особенности:** Подходит для простых структур данных, а также для задачи реального времени благодаря pub/sub, что позволяет подписываться на изменения в данных.
- **Интеграция:** Redis может быть установлен на вашем сервере или в облаке (например, Redis Cloud), а ваш бот может использовать Redis SDK для Python. Человек сможет взаимодействовать с Redis через интерфейс командной строки или GUI-клиенты.

### 5. **Airtable**
- **Плюсы:** Airtable — это удобное хранилище данных с интерфейсом, похожим на таблицы, что может быть очень удобно для редактирования данных другим человеком.
- **Особенности:** Airtable не полностью в реальном времени, но довольно быстро обновляется (почти мгновенно) и имеет API для интеграции.
- **Интеграция:** Вы можете использовать API Airtable для чтения и записи данных. Airtable также предоставляет веб-интерфейс для удобного редактирования данных.

### 6. **PostgreSQL с WebSocket (например, Hasura)**
- **Плюсы:** Вы можете создать Postgres базу данных и использовать Hasura для создания GraphQL API с подписками на изменения в базе данных.
- **Особенности:** Обеспечивает полноценные возможности SQL и поддержку реального времени через подписки, которые позволят вашему боту получать данные сразу после их обновления.
- **Интеграция:** Hasura предоставляет веб-интерфейс для редактирования данных, а также GraphQL API для взаимодействия с Telegram-ботом.
Chromatic ScaleИскусственный Интеллект (206063) 3 недели назад
Каждое из этих решений имеет свои преимущества. Firebase и Firestore — оптимальные варианты для быстрого запуска, если вы уже знакомы с Google-экосистемой. Если важна гибкость SQL-запросов и контроль над данными, то Supabase или PostgreSQL с Hasura — отличные варианты.
Sergey V. Voronin Искусственный Интеллект (292183) 3 недели назад
Ну возьми API каких-нибудь гугль карт. Обновляются, обслуживаются, данных дофига. Или спотифая какого-нибудь.

а, тебе скуль... Ну сделай подгрузку в свою базу из них умеренного количества данных.
Андрей Высший разум (460962) 3 недели назад
Любая бесплатная клиент-серверная реляционная СУБД. Самые популярные варианты: MySQL / MariaDB (есть на практически любом платном хостинге) и PostgreSQL.

Ставятся на любой сервер. Никакого скачивания файлов - только SQL-запросы.
Похожие вопросы