Рубрика «nosql»

SQL или NoSQL: В чем разница и какую базу данных выбрать? Представьте, что вам нужно организовать хранение информации. У вас есть два подхода: аккуратно разложить всё по папкам с ярлыками в строгом порядке (это SQL) или скинуть всё в один большой складской ящик, но с умной системой быстрого поиска нужной вещи (это NoSQL). Оба метода работают, но предназначены для разных задач. Давайте разберемся, что к чему.

SQL — Аккуратный бухгалтер

SQL (Structured Query Language) — это не сама база, а язык для работы с реляционными (табличными) базами данных. Сами базы данных называют реляционными (например, MySQL, PostgreSQL, SQLite).

Читать полностью »

Здравствуйте!

Меня зовут Александр Андреев, я старший инженер данных. В своей первой статье на "Хабре" я хочу рассказать об оптимизации производительности NoSQL базы данных ScyllaDB.

Введение в ScyllaDB

ScyllaDB — это высокопроизводительная распределённая NoSQL база данных, совместимая с Apache Cassandra на уровне протокола, но предлагающая значительно более высокую пропускную способность и меньшую задержку. В отличие от Cassandra, которая написана на Java, ScyllaDB реализована на C++ с использованием фреймворка SeastarЧитать полностью »

Да будет Хабр снова торт! Да придут на него статьи о программировании! И да пребудут на нем всегда технические обсуждения. А теперь к делу... Каждый самостоятельно развивающийся программист, рано или поздно сталкивается с тем, что ему нужна облачная база данных для своего проекта. Между тем, ваш проект может быть не денег ради, а души для, друзей, знакомых, небольшой аудитории, и посему платить деньги за настоящее взрослое облачное хранилище данных жалко. Предлагаю вам очень простое в подключении, многократно проверенное мной лично, стабильное и весьма изящное решение этого вопроса. Подойдет, если вы программируете на Kotlin. 

Читать полностью »

Использование Redis в Go - 1

Redis — хранилище из семейства нереляционных (NoSQL) баз данных. Redis является очень быстрым хранилищем данных благодаря своей архитектуре in-memory. Он идеально подходит для задач, требующих быстрого доступа к данным, таких как кэширование, очереди сообщений, сессионная информация и многое другое. Go также известен своей высокой производительностью за счет компиляции в машинный код и эффективного управления памятью.

Установка

Читать полностью »

Приветствую!

Я хочу вам рассказать о моей разработке — JSON БД на Python

Не все проекты нуждаются в медленных и сложных SQL базах данных, например ТГ‑Боты и парсеры. Конечно не буду спорить, что SQL — вероятно лучшее решение для бизнеса, но иногда они могут быть избыточными для небольших проектов. NoSQL базы данных — это отличный выбор для таких случаев.

Если вы уже знакомы с MongoDB или Redis, то принцип работы моей библиотеки вам будет понятен.

Ну что, начнём?

Основы

Читать полностью »

Введение

Чтобы применять Domain-Driven Design, DDD Aggregate и Transactional outbox на MongoDB, наша команда создала open source — библиотеку calypso для работы с BSON.

Публикация для тех, кто стремится к современным практикам разработки и разделяет наше влечение к Scala 3.

Готовы к открытиям? Добро пожаловать в мир функционального программирования и надёжной работы с schema-on-read.

План

  • моделирование предметной области с использованием ADT;

  • конвертация модели предметной области в BSON;

  • работа с библиотекой calypso на Scala 3;

  • эволюция схемы данных MongoDB;

  • практики работы с schema-on-read.

Как обнаружить полезную модель?

Читать полностью »

На кластерах клиентов, которые мы обслуживаем, есть как «одноголовые» инсталляции Redis (обычно для кэшей, которые не страшно потерять), так и более отказоустойчивые решения — Redis Sentinel или Redis Cluster. По нашему опыту, во всех трех вариантах можно безболезненно переключиться с Redis на KeyDB и получить прирост производительности. Точнее, избавиться от бутылочного горлышка Redis в одно ядро. Хотя в новых версиях Redis(r) появилась обработка I/O в отдельных тредах, иногда этого бывает недостаточно.

Читать полностью »

Распределенный SQL: альтернатива шардированию баз данных - 1


Шардирование баз данных – это процесс разделения данных на меньшие части, называемые «шарды». Эта техника обычно используется, когда возникает потребность в масштабировании записей. В течение жизненного цикла успешного приложения способность сервера его базы обрабатывать операции записи рано или поздно достигает своего предела. Деление данных на несколько шардов – с размещением каждого на собственном сервере БД – уменьшает нагрузку на отдельные узлы, по сути, повышая записывающую способность базы данных в целом. Этот процесс и является шардингом.

Распределённый SQL представляет новый способ масштабирования реляционных баз данных с помощью полностью автоматизированной и прозрачной для приложений стратегии, подобной шардингу. Распределённые БД SQL изначально спроектированы под практически линейное масштабирование. В текущей статье вы познакомитесь с основами распределённого SQL и узнаете, как начать работу с этими базами данных.Читать полностью »

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

Например, чтобы определить расстояние большого круга между двумя точками сферы, исходя из их широты и долготы используется формула гаверсинуса, которая выглядит так:

Читать полностью »

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js