Привет, Хабр!
Это статья больше для начинающих или любознательных, тут я постарался простыми словами объяснить что же такое эта база данных и для чего они используются на проектах.
Хранение данных *
Что имеем, то храним
Новости
Вы пожалеете об использовании естественных ключей
Хотя я живу в Копенгагене и в основном перемещаюсь по городу на велосипеде, у меня есть и машина, чтобы добираться до других частей страны. В Дании автомобили через каждые два года проходят обязательный официальный осмотр; я проходил его за свою жизнь несколько раз. Несколько лет назад механик, выполнявший осмотр, сообщил мне о том, что у машины неправильный номер кузова.
Я немного занервничал, потому что покупал машину с рук, и внезапно задался вопросом, действительно ли всё так, как я думал. Неужели я непреднамеренно купил краденную машину?
Но механик просто подошёл к своему компьютеру, чтобы исправить ошибку. И тогда у меня возникло совершенно другое опасение. Когда программируешь больше десятка лет, то учишься предвидеть разные типичные режимы отказа. Так как номер кузова — очевидный кандидат на должность естественного ключа, я заранее предвидел, что изменение этого номера будет или невозможно, или приведёт ко всевозможным каскадным эффектам, и в конечном итоге к уничтожению официальных записей, больше не признающих, что машина принадлежит мне.
Свой S3-server: что делать, если ваши десятки петабайт уже не лезут в коробочные объектные хранилища
В 2024 году уже незачем рассказывать об S3-интерфейсе и сравнивать его с другими вариантами организации объектного хранилища. Вот и мы в Ozon, конечно, предоставляем такое платформенное решение широкому спектру внутренних потребителей. От сервисов, которые хранят картинки товаров для каталога, до бэкапов баз данных. От собственных внутренних разработок, до open-source-решений, таких как Gitlab и Thanos.
Пока у вас десятки терабайт и сотни RPS, вас устраивают такие решения, как MinIO. Но по мере роста объёмов и запросов приходится смотреть в сторону таких решений, как Ceph с RGW (RADOS Gateway / Object Gateway). Ну, а когда у вас 3 дата-центра, десятки петабайт данных, миллиарды объектов и десятки тысяч запросов в секунду — в таких условиях и у RGW начинаются проблемы.
Эта история началась с того, что и мы с проблемами масштабирования столкнулись. Под хабракатом вы узнаете, как мы прошли через отрицание проблемы, гнев на Ceph, торг с CTO и разработку собственного решения. Как выбирали технологии, на какие грабли наступили, и что в итоге получилось.
Go + Minio: как написать простой сервер для взаимодействия с файлами
Добрейшего! Недавно мой друг решил хранить картинки продуктов на сервере, в отдельной папочке, выдав ей публичный доступ. Что ж, эту статью я пишу чтобы рассказать другу плюсы и минусы, а так же показать как можно делать иначе.
Если вы только изучаете go, начинаете писать сервера, то обязательно посмотрите эту статью - для бекендера уметь работать с s3 хранилищем так же важно, как и уметь работать с реляционной / нереляционной базой данных и с key-value базой - это основа основ.
Истории
Как сервер с моим проектом был удалён вместе с бэкапами
Не так давно на Хабре была небольшая волна постов и комментариев о том, как можно быстро и эффективно потерять данные своего проекта - неработающие или отсутствующие бэкапы, ошибки "железа" и прочие радости инженеров DevOps. Тогда я это всё прочитал с интересом - всегда же любопытно почитать про чужие факапы (про свои неинтересно). Через несколько дней я вдруг оказался среди таких же несчастных "уже делающих бэкапы".
Немного контекста - у меня есть свой домашний проект, которым я занимаюсь в свободное от работы время. Проект этот - UGC-сайт. Лента постов пользователей, если по-нашему. Вот он - https://vombat.su, вдруг кому-то интересно. Проект существует с сентября, есть своя аудитория, пара модераторов и довольно лояльные правила. На проекте нет рекламы, т.е. он некоммерческий (не считая донатов, которые иногда прилетают от благодарных пользователей). Даже антикоммерческий слегка, т.к. на него я только трачу - даже периодически мерч пользователям отправляю.
Почему я отказался от GraphQL
GraphQL — невероятная технология, привлёкшая много внимания с тех пор, когда я начал в 2018 году использовать её в продакшене. Вам не придётся долго листать мой блог, чтобы увидеть, как я раньше продвигал её. После создания множества React SPA поверх путаницы нетипизированных JSON REST API технология GraphQL показалась мне глотком свежего воздуха. Я искренне поддерживал хайп вокруг GraphQL.
Однако с течением времени у меня появилась возможность выполнять развёртывания в окружениях, где больше важны не функциональные требования, а безопасность, производительность и удобство поддержки. Тогда и поменялась моя точка зрения. В этой статье я подробно расскажу о том, почему сегодня не рекомендовал бы GraphQL большинству, и поделюсь более совершенными альтернативами.
В статье для примеров я буду использовать код на Ruby с превосходной библиотекой graphql-ruby, но я уверен, что многие из перечисленных проблем не зависят от выбора языка/библиотеки GraphQL.
Если вы знаете более качественные решения или способы, напишите мне комментарий.
Desktop приложение для хранения текстовой информации
В статье рассказываю о разработанном Desktop приложении для Windows для того, чтобы поделиться им со всеми желающими и получить обратную связь.
Ренессанс ленточных накопителей: что происходит и почему?
В 2023 году мировые продажи ленточных накопителей достигли почти 153 эксабайт. Показатель вырос на 3,14% по сравнению с 2022 годом, в том числе из-за роста объема информации и новыми требованиями к инфраструктуре крупных облачных провайдеров.
Эти носители и системы для работы с ними остаются актуальными, в первую очередь, благодаря своему прямому предназначению — длительному хранению архивной информации. Что происходит на рынке ленточных накопителей и чего ожидать в ближайшем будущем — рассуждаем под катом.
Персональное облачное хранилище, домашний NAS и сетевой медиаплеер (неожиданно): обзор Orico CD3510
Orico CD3510 это устройство, с помощью которого можно легко сделать персональное облачное хранилище, т. е фактически организовать домашний NAS. С его помощью вы можете автоматически загружать на жесткий диск все свои фото, видео и аудио. Та и вообще бекапить любые указанные папки и разделы, как с компьютера, так и со смартфона. Причем как в ручном режиме (по мере необходимости), так и в автоматическом. Также вы можете дать задание качать торренты, а потом по домашней сети через SMB протокол посмотреть кино на большом экране. В любой точке планеты вы всегда можете зайти в свое хранилище через клиентскую программу и посмотреть фото, видео или послушать музыку.
Погружаемся в S3 на Ceph. Как мы удаляли 460 млн мелких объектов
Недавно мы выпустили новый сервис — объектное хранилище S3 на базе нашего облака. Запустили его на Ceph. Перед этим провели множество тестов. В частности, решили выяснить, как на практике Ceph справляется с мелкими объектами — проблемой любого S3. И вот что из этого вышло.
Рецепт приготовления непрерывного профайлера в 2к24
Всем привет! Меня зовут Газимагомед, я занимаюсь разработкой внутреннего распределённого профайлера Vision в Ozon. В этой статье я раскрою понятие профиля, расскажу о том, что такое распределённый профайлинг, чем отличается автоматический сбор профилей от ручного. А также рассмотрим проблемы, возникающие при построении профайлера. Что ж, усаживайтесь поудобнее, мы начинаем.
Повышение живучести SSD за счёт его превращения из QLC в SLC
В этой статье мы займёмся беспрецедентным экспериментом! Я шаг за шагом проведу вас через процесс преобразования SSD на базе QLC NAND в SLC SSD, что позволит значительно повысить его ресурс и общую производительность.
▍ Спецификация испытуемого SSD
На роль испытуемого я выбрал Crucial BX500, который мы уже много раз тестировали, освещая этот процесс как на нашем сайте, так и на YouTube-канале.
WD выпустила 2,5-дюймовые HDD ёмкостью в 6 ТБ. Что это за новинка?
Американская компания Western Digital представила первые в мире 2,5-дюймовые жёсткие диски ёмкостью 6 Тб. Современные модели ноутбуков часто оснащены SSD, поэтому компании меньше фокусируются на разработке HDD повышенной ёмкости, так что выпуск подобного накопителя — целое событие. Новые жёсткие диски представлены в сериях My Passport и My Passport Ultra. Подробности — под катом.
Ближайшие события
Как Apache Arrow поможет управиться JS с большими данными
Привет. Меня зовут Николай Шувалов, я занимаюсь коммерческим программированием около семи лет, владею Rust, JavaScript, PHP. Сейчас я работаю в отделе данных билайна. Наша платформа позволяет делиться с партнерами данными, не раскрывая их. Например, можно расширить данные с помощью фильтра Блума.
Arrow в сравнении со строковыми форматами
Возьмём простую таблицу, которая состоит из трех столбцов: телефона, даты и имени. Рассмотрим, как она будет выглядеть в строковом и столбчатом форматах. Для строкового формата мы возьмем csv и json, для столбчатого формата структура будет одинаковой. Если же таблица состоит, например, из миллиона строк, а нужно получить имя на строке с номером 10 000, то придется бежать по всей строчке. В json то же самое. А в столбчатом формате ситуация иная — значения привязаны к столбцам. Когда мы хотим получить имя на строке 10 000, то сразу обращаемся к этому столбцу и получаем все его данные.
Существуют RA (random access) файлы, в которых можно пропускать заданное количество строк, но все равно парсеру нужно читать и анализировать пройденные строчки.
Флешка нового типа: можно хранить лишь 8 КБ данных, но в течение 200 лет. Что это за носитель?
Человечеству крайне необходимы различные хранилища информации — как портативные, так и не очень. Понимая это, производители предлагают весьма интересные, а иногда и экзотические решения. На днях одна из компаний, Machdyne, представила накопитель на базе FRAM, который способен хранить лишь 8 КБ данных, что исчезающе мало в современном мире. Но зато эту информацию можно рассчитывать получить и через 200 лет. Подробности — под катом.
Кибер Инфраструктура 5.5. Обзор новинок
Привет Хабр!
Сегодня познакомимся с ключевыми новинками в версии 5.5 нашего продукта «Кибер Инфраструктура». Кибер Инфраструктура — это универсальное решение, которое представляет собой мультипротокольное программно‑определяемое хранилище и платформу виртуализации в одном продукте.
Не магия: как агрегируются и обрабатываются данные CDP-платформами
В недавно опубликованной статье CleverData постаралась разгадать, как и почему совершаются спонтанные покупки. Над нашими намерениями круглосуточно работают Customer Data Platforms (CDP) — гибкие платформы накопления данных о пользователях для целей персонализации предложений. Именно поэтому оповещение о скидке на абонемент в спортзал приходит тогда, когда мы вдруг решаем худеть и заказываем доставку диетического питания. Как грамотное применение CDP напрямую влияет на продажи, читайте в нашей новой статье под катом.
Новые горизонты: японская компания научилась производить 400-слойную флеш-память 3D NAND. Что это за технология?
На днях стало известно, что японская компания Tokyo Electron смогла разработать современный метод выпуска чипов 3D NAND. В них используется пространственная компоновка с вертикальными соединениями между слоями в отдельных микросхемах. Соответственно, достижение японцев даёт возможность увеличить количество слоев памяти до 400. Подробности — под катом.
Установка, резервное копирование и миграция snap nextcloud-сервера (v27.1.8)
Здравствуй, мой дорогой читатель.
В данной статье мы поговорим о snap nextcloud-сервере, установке, резервное копирование и некоторые манипуляции. Если тебе интересна тема open-source и администрирование серверов Linux, то данная статья именно для тебя!
Ceph: разбираем базовые операции в кластере на примере интеграции с Hashicorp Nomad
Привет! Я Владимир Иванов, системный администратор выделенных серверов в Selectel. Мы довольно часто экспериментируем с подходами, процессами и решениями. В одном из экспериментов добрались до Ceph: сделали тренажер, в котором можно «потыкать» основной функционал хранилища, проверить гипотезы, что-то сломать/починить, не собирая при этом железный кластер. В случае фейла этот тренажер можно развернуть заново в пару консольных команд.
Так и появилась идея написать эту статью. Я покажу, как подключить Ceph к оркестратору Nomad, чтобы получить постоянное хранилище для контейнеров. Если хотите поближе познакомиться с примерами эксплуатации и обслуживания Ceph, прошу под кат! А если уже знакомы — прошу в комментарии, поделитесь своим опытом.
Вклад авторов
ru_vds 1428.81cloud 849.0ntsaplin 761.0it_man 747.0hddmasters 665.0Cloud4Y 483.7alizar 453.3olegbunin 387.0WesternDigital 340.0skovalev 319.0