• Нельзя так просто взять и написать SELECT, если вендор не разрешает… но мы таки напишем

    • Tutorial

    TL;DR: GitHub://PastorGL/AQLSelectEx.


    Aerospike AQL SELECT


    Однажды, ещё не в студёную, но уже зимнюю пору, а конкретно пару месяцев назад, для проекта, над которым я работаю (нечто Geospatial на основе Big Data), потребовалось быстрое NoSQL / Key-Value хранилище.


    Терабайты исходников мы вполне успешно прожёвываем при помощи Apache Spark, но схлопнутый до смешного объёма (всего лишь миллионы записей) конечный результат расчётов надо где-то хранить. И очень желательно хранить таким образом, чтобы его можно было по ассоциированным с каждой строкой результата (это одна цифра) метаданным (а вот их довольно много) быстро найти и отдать наружу.

    И вот какая вышла история...
  • MongoDB Go Driver туториал

    Хорошие новости! Официальный драйвер go для mongoDB вышел в бета-версию. Немного поразмыслив я решил перевести статью с официального сайта mongoDB вместо того, чтобы писать материал самостоятельно. Вот что будет в этом туториале:


    • Установка mongo-go-driver
    • Соединение с mongoDB с помощью mongo-go-driver
    • Использование BSON объектов
    • Использование CRUD методов
      image
    Читать дальше →
  • DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое

      Привет! Это рассказ о том, что нового в нашем плагине для баз данных. Мы выпускаем его, как отдельный продукт DataGrip, и поставляем почти во все другие наши IDE. Будет много картинок и гифок. Для тех, кому лень их смотреть:

      • Поддержка Cassandra
      • Создание SQL-файлов из объектов схемы
      • Новые инспекции
      • Много новых штук в автодополнении
      • Работа с источником данных через одно подключение
      • Новый поиск
      • Высококонтрастная цветовая схема

      Спасибо тем, кто пробует EAP-версии и сообщает в наш трекер о проблемах: это помогает не дотащить их до релиза :) Активные пользователи уже получили бесплатные подписки на год.

      image
      Читать дальше →
    • Самодокументированные микросервисы (ArangoDB + swagger)

        Поддержание документации к микросервисам в актуальном состоянии по прежнему требует предельной дисциплины при разработке, ну и больших трудозарат. Очень разумный подход к созданию документации предлагает, например, GraphQL, где документация неразрывно связана с программным кодом и этим гарантируется 100% соответствие документации и документируемых сервисов. Однако, непривычность подхода GraphQL для разработчиков, привыкших к REST-API, все еще затрудняет продвижение этой технологии в практическую разработку приложений. Тут же можно вспомнить и SOAP, который уже давно решил проблему соответствия документации и сервисов, но из-за переусложненности не прижился в широких массах разработчиков.

        Хотелось бы найти такой стек технологий для разработки микросервисов, который обеспечил такую же самодокументируемость программного кода при разработке «традиционных» REST-API микросервисов. И он, как оказалось, уже существует.
        Читать дальше →
      • Database as Сode. Копаем глубже


          В IT-проектах код пишут все. Инженеры с помощью нескольких строк управляют Kubernetes кластерами, разгоняют облака Terraform'ом и ворочают тонны конфигураций на Ansible, Chef и Puppet. QA пишут понятные бизнесу тестовые сценарии на Spock и Cucumber. Аналитики свободно, часто лучше разработчиков, разговаривают на SQL. Проектная документация в форматах Markdown, AsciiDoc или LaTEX "компилируются" в нужный формат на билд-сервере. Ну а сами разработчики, эти укротители кода, владеют сразу россыпью языков на каждый жизненный случай — клиентский, серверный, скриптовый, функциональный и пр.


          Код уже давно перестал быть загадочной тарабарщиной и теперь в том или ином виде доступен и понятен многим, даже премьер-министрам. И весь этот код участвует в стандартном жизненном цикле — находится под управлением VCS, подвергается code review, автоматизированному тестированию, CI, CD. Используются общие инструменты и подходы, метрики производительности и качества. А все вместе это носит гордое название — "Everything as code".


          Однако мир БД традиционно стоит особняком вдалеке от этой феерии прогресса и технологий. Процесс разработки и сопровождения БД не меняется годами и продолжает вселять ужас и страх в разработчиков, администраторов и пользователей по всему миру. Но возможно ли представить БД в виде обычного кода? Приблизиться к основному процессу разработки, использовать общие инструменты и подходы? Об этом под катом.

          Database as Code? Что за дичь?
        • DDIA book (книга с кабанчиком) — сделай level up в понимании баз данных

            Несколько месяцев назад на одной из ретроспектив мы решили попробовать совместное чтение.

            Наш формат:

            1. Выбираем книгу.
            2. Определяем часть, которую необходимо прочитать за неделю. Выбираем небольшой объем.
            3. В пятницу обсуждаем прочитанное.
            4. Читаем в нерабочее время, обсуждаем в рабочее.
            5. После окончания книги совместно выбираем следующую.

            Что дает:

            1. Мотивация на чтение и дочитывание.
            2. Развитие скиллов (в том числе на будущее).
            3. Выравнивание майндсета и терминологии в команде.
            4. Рост доверия.
            5. Лишний повод пообщаться.

            Одна из недавних книг, которую мы читали — Designing Data-Intensive Applications. Да-да, та самая книга с кабанчиком. И эта книга настолько всем понравилась, что я решил сделать здесь обзор, чтобы большее количество людей ее прочитали.


            Карта в исходном качестве
            Читать дальше →
            • +22
            • 10,3k
            • 8
          • Я не буду учить твой Garbage Query Language

            • Перевод

            Это будет немного напыщенная речь, но меня действительно раздражает софт, в котором люди пытаются изобрести очередной собственный язык запросов. У нас уже есть триллион различных ORM, еще триллион баз данных с собственным языком запросов каждая, и еще триллион SaaS-продуктов, для доступа к которым нужно освоить какой-нибудь очередной DSL, которые они придумали.


            Верните мне мой SQL обратно. Это язык понятный каждому, существует аж с 70-х и за это время успел стать стандартом. Он прост в чтении и может использоваться кем угодно, от бизнеса до инженеров.


            Однако вместо этого мне приходится изучать целый ворох разных "garbage query language", потому что люди по-прежнему пытаются изобрести колесо заново.

            Читать дальше →
          • MongoDB и исследование рынка ИТ-вакансий

            Вы когда-нибудь анализировали вакансии?

            Задавались вопросом, в каких технологиях наиболее сильна потребность рынка труда на текущий момент? Месяц назад? Год назад?

            Как часто открываются новые вакансии Java-разработчиков в определенном районе Вашего города и как активно они закрываются?

            В этой статье я расскажу Вам, как можно достичь желаемого результата и построить отчетную систему по интересующей нас теме. Поехали!


            Источник
            Читать дальше →
            • +16
            • 5,3k
            • 2
          • Актуальна ли проблема инъекций в JavaScript?

            • Перевод
            В былые времена, когда веб разработка строилась на том, что серверные приложения направляли запросы в реляционные базы данных и выдавали на выходе HTML, часто встречался такой код:

            // ВНИМАНИЕ: Плохой пример!
            function popup(msg: string): string {
                return "<p class=\"popup\">" + msg + "</p>";
            }

            или такой:

            // ВНИМАНИЕ: Плохой пример!
            function getName(login: string): string {
                return "SELECT name FROM users WHERE login = \"" + login + "\"";
            }

            С тех пор мы научились использовать более безопасные подходы.

            Широкое применение получили такие инструменты, как шаблонизаторы и привязка параметров. Сегодня редко можно встретить опасную конкатенацию строк.

            В этой статье я хотел бы поделиться своими соображениями об атаках путем внедрения кода. По всей видимости, они все еще представляют собой угрозу в JavaScript.


            Читать дальше →
          • Теория и практика использования HBase

              Добрый день! Меня зовут Данил Липовой, наша команда в Сбертехе начала использовать HBase в качестве хранилища оперативных данных. В ходе его изучения накопился опыт, который захотелось систематизировать и описать (надеемся, что многим будет полезно). Все приведенные ниже эксперименты проводились с версиями HBase 1.2.0-cdh5.14.2 и 2.0.0-cdh6.0.0-beta1.

              1. Общая архитектура
              2. Запись данных в HBASE
              3. Чтение данных из HBASE
              4. Кэширование данных
              5. Пакетная обработка данных MultiGet/MultiPut
              6. Стратегия разбивки таблиц на регионы (спилитинг)
              7. Отказоустойчивость, компактификация и локальность данных
              8. Настройки и производительность
              9. Нагрузочное тестирование
              10. Выводы
              Читать дальше →

            Самое читаемое