Посты с тэгом nosql


[Перевод] Использование LSM-движка из SQLite 4 в качестве отдельной NoSQL базы данных с использованием Python




На сегодняшний день две мои самые любимые темы — SQLite и key-value базы данных. И в этот раз я пишу сразу про обе: этот пост посвящён Python-обёртке для используемого в SQLite 4 key-value хранилища на основе LSM.

Я не слишком внимательно отслеживаю релизы SQLite, но версия 3.8.11 привлекла моё внимание, поскольку в её описании заявлено серьёзное увеличение производительности по сравнению с 3.8.0. В сопроводительной информации я наткнулся на упоминание о новом экспериментальном расширении для полнотекстового поиска (о котором писал когда-то), и потому мне стало интересно, какая складывается ситуация с SQLite 4.

Изучив доступн


[Перевод] Использование LSM-движка из SQLite 4 в качестве отдельной NoSQL базы данных с использованием Python




На сегодняшний день две мои самые любимые темы — SQLite и key-value базы данных. И в этот раз я пишу сразу про обе: этот пост посвящён Python-обёртке для используемого в SQLite 4 key-value хранилища на основе LSM.

Я не слишком внимательно отслеживаю релизы SQLite, но версия 3.8.11 привлекла моё внимание, поскольку в её описании заявлено серьёзное увеличение производительности по сравнению с 3.8.0. В сопроводительной информации я наткнулся на упоминание о новом экспериментальном расширении для полнотекстового поиска (о котором писал когда-то), и потому мне стало интересно, какая складывается ситуация с SQLite 4.

Изучив доступн


Изучаем граф-ориентированную СУБД Neo4j на примере лексической базы Wordnet


СУБД Neo4j — это NoSQL база данных, ориентированная на хранение графов. Изюминкой продукта является декларативный язык запросов Cypher.

Cypher позаимствовал ключевые слова типа WHERE, ORDER BY из SQL; синтаксис из таких разных языков как Python, Haskell, SPARQL; и в результате появился язык, позволяющий делать запросы к графам в визуальной форме наподобие ASCII art. Например, заголовок данной статьи я бы представил в виде графа (Neo4j) — [изучаем] -> (Wordnet). И это почти готовый запрос к базе данных!


Читать дальше


[Перевод] Асинхронный Python 3.5 и Mongodb


Это достаточно вольный перевод статьи об основных новшествах асинхронного драйвера для mongodb используемого в tornado. Основной мотив, который послужил для написания этого перевода — новшества, появившиеся в этой версии, такие как поддержка asyncio, async, await и Python 3.5. Сама статья не сколько перечисление новшеств, сколько лаконичные примеры асинхронной работы с MongoDB.


Введение
asyncio
aggregate
Python 3.5
async and await

Читать дальше →


Почему не все так просто с MongoDB


В последнее несколько лет MongoDB приобрела огромную популярность среди разработчиков. То и дело в интернете появляются всякие статьи как очередной молодой популярный проект выкинул на свалку истории привычные РСУБД, взял в качестве основной базы данных MongoDB, выстроил инфраструктуру вокруг неё, и как все после этого стало прекрасно. Даже появляются новые фреймворки и библиотеки, которые строят свою архитектуру целиком на Mongo (Meteor.js например).

По долгу работы я примерно 3 года занимаюсь разработкой и поддержкой нескольких проектов, которые используют MongoDB в качестве основной БД, и в этой статье хочу рассказать, почему на мой взгляд с MongoDB далеко не все так просто, как написано в мануалах, и к чему вы должны быть готовы, если вдруг решите взять MongoDB в качестве основной БД в ваш новый модный стартап :-)

Все что описано


DevConf 2015 — сформирована программа конференции



Крупнейшая конференция DevConf 2015 пройдет в эту пятницу в Москве (конгресс центр Измайлово Бета).
20 июня пройдут эксклюзивные мастер-классы: Sphinx 3.0, MySQL 5.7, Docker, cоздание мобильных игр и архитектуры социальной сети
62 докладчика — 7 потоков: Python, PHP, Ruby, Javascript, Storage, DevOps, Commonкаждый Веб-разработчик найдет что-то интересное для повышения своей квалификации!
Читать дальше →


Шпаргалка по mongodb: e-commerce, миграция, часто приминимые операции и немного о транзакциях




Этот пост — небольшая шпаргалка по mongodb и немного длинных запросов с парой рецептов. Иногда бывает удобно когда какие-то мелочи собраны в одном месте, надеюсь, каждый кто интересуется mongodb найдет для себя что-то полезное.

Не хотелось бы, чтобы пост воспринимался в ключе холиваров на тему SQL vs. NOSQL И так понятно что везде есть свои плюсы и минусы, в данном случае это просто где-то немного справки, где-то немного примеров из того, с чем приходилось сталкиваться. Примеры на mongo shell или на python.

  1. Миграция в на новые версии в mongodb


Асинхронная работа с Tarantool на Python


На Хабре уже есть статьи о NoSQL СУБД Tarantool и о том, как его используют в Mail.Ru Group (и не только). Однако нет рецептов того, как работать с Tarantool на Python. В своей статье я хочу рассказать о том, как мы готовим Tarantool Python в своих проектах, какие проблемы и сложности при этом возникают, плюсы, минусы, подводные камни и, конечно же, «в чем фишка». Итак, обо всем по порядку.



Tarantool представляет собой Application Server для Lua. Он умеет хранить данные на диске, обеспечивает быстрый доступ к ним. Tarantool используется в задачах с большими потоками данных в единицу времени. Если говорить о цифрах, то это десятки и сотни тысяч операций в секунду. Например, в одном из моих проектов генерируется более 80 000 запросов в секунду (выборка, вставка, обновление, уда


Flask authentication with Redis

Раз мы уже попробовали MongoDB, пора бы потихоньку переходить на сторону ЗЛА NoSQL и освоить Redis. Отличается он от MongoDB тем, что хранит данные в виде словаря. Но самая главная его особенность в том, что он хранит базу в оперативной памяти! Этим и объясняется скорость Redis. Ну, ради эксперимента мы рискнем и будем хранить там данные пользователей.

Я думаю, что в изучении любых вещей нужно всегда начинать с чего-то простого, поэтому мы не будем прописывать рендеринг страницы, а просто будем возвращать ответы на запросы. Поэтому и забудем про безопасность передаваемых паролей :D.

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

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



Try MongoDB

Если кто не заметил, то в последнее время начали набирать популярность NoSQL решения в виде новых СУБД. Отличия вполне очевидны - в знакомом нам SQL есть удобные транзакции, связывание таблиц, а в NoSQL - скорость работы, масштабируемость без головной боли, не надо использовать схему базы. 

И вот, ребята из 10gen подумали, и пришли к выводу: “А почему бы не сделать что-то нечто среднее между NoSQL и SQL?”. В итоге была рождена MongoDB. MongoDB (humongous) — документо-ориентированная база данных, не требующая описания схемы таблиц.

Лучший способ узнать, что эта база из себя представляет - практика. На Mac OS можно поставить одной командой Homebrew. Для начала создадим нашу новую базу, так как по умолчанию стоит всегда test:

По