Очередь с несколькими столбцами?
Я ищу библиотеку или службу, которая позволяет мне передавать данные, и каждый раз будет несколько других столбцов. Прямо сейчас я использую IronMQ, чтобы отправить json в очередь, а затем проанализировать json и получить атрибуты. Однако мне интересно, есть ли библиотека очередей или служба, которая позволяет мне просто поместить все атрибуты в отдельные столбцы, чтобы позже я мог выполнить SQL-запрос в очереди.
Я думал о Python и Sqlite3, чтобы сделать это (какая разница будет по сравнению с Amazon SQS или IronMQ), что сделало бы это очень легко.
1 ответ
Разница между технологиями организации очередей сообщений (например, IronMQ, RabbitMQ, Amazon SQS и т. Д.) И РСУБД (например, Sqlite, Sql Server, PostGres и т. Д.) Заключается в том, что если вы используете таблицы RDBMS в качестве очередей и хотите разрешить запросы, то вам придется управлять процесс очереди LIFO самостоятельно. Очереди (за некоторыми исключениями) обеспечивают выполнение процесса LIFO, в то время как таблицы базы данных имеют произвольный доступ и не определяют, как или когда данные вставляются, изменяются или удаляются. Эти правила обрабатываются на бизнес-уровне. (Вы упомянули об использовании Python и Sqlite. Sqlite будет вашей очередью / хранилищем данных, а приложение Python будет выполнять логику управления очередью LIFO, а также случайных запросов.)
СУБД часто используются в качестве промежуточных хранилищ сообщений, и, исходя из вашего вопроса, я предполагаю, что очередь LIFO не так уж важна, поскольку вы, похоже, заинтересованы в произвольном доступе выше всего остального. Трудно сказать, не зная больше о том, что вы разрабатываете. Но если вы хотите что-то, что работает как очередь и готовая база данных, посмотрите Oracle AQ.
Со связанной страницы:
Поскольку Oracle Streams Advanced Queuing реализован в таблицах базы данных, все эксплуатационные преимущества высокой доступности, масштабируемости и надежности также применимы к данным очереди. Стандартные функции базы данных, такие как восстановление, перезапуск и безопасность, поддерживаются Oracle Streams Advanced Queuing. Вы можете использовать средства разработки и управления базами данных, такие как Oracle Enterprise Manager, для мониторинга очередей. Как и другие таблицы базы данных, таблицы очередей можно импортировать и экспортировать.
Сообщения могут быть запрошены с использованием стандартного SQL. Это означает, что вы можете использовать SQL для доступа к свойствам сообщений, истории сообщений и полезной нагрузке. С помощью SQL-доступа вы также можете проводить аудит и отслеживание. Все доступные технологии SQL, такие как индексы, могут быть использованы для оптимизации доступа к сообщениям.
Больше ресурсов и дальнейшее чтение:
- База данных в качестве очереди Antipattern (разглагольствования против)
- Построение очереди высокой производительности в базе данных (план для)