Рубрика «база данных» - 2

Репозитории правил для бизнеса и соответствующих блоков кода, которые встраиваются в продакшн - 1

Вкратце напомню: BRMS, или Business Rule Management System, — это «тяжёлые» системы для крупных и очень крупных компаний, которые содержат все те вещи, которые часто меняются в ИТ. Например, в банке в BRMS лежат чаще всего правила оценки по кредиту и параметры вкладов, в сотовом операторе — тарифы и нюансы вычисления всех списаний, в страховой компании — коэффициенты страхования, поправочные коэффициенты, параметры новых продуктов.

Разница между «вобьём руками» и «вобьём через BRMS» примерно такая: парни из одной страховой компании, где мы внедряли BRMS, оказались одними из немногих по итогам прошлого года, кто показал возможность работать очень гибко и быстро. Обычно внедрение коэффициента со всеми проверками занимает в среднем 2 недели. Здесь же это делается максимум за 2 дня, минимум — за считанные часы. У них есть данные статистики, на которые крайне быстро можно реагировать и перепроверять разные показатели сотни и тысячи раз. В страховании это означает возможность очень детально подстраиваться под текущую ситуацию (регион, банки) и получать куда больше прибыли.

Мы используем BRMS для оценки стоимости ИТ-проекта — она рассчитывается на основе правил вроде «работают сетевики либо программисты» и десятков переменных вроде стоимости часа специалиста.Читать полностью »

Представьте себе компанию «Ингосстрах» с продуктивной базой 30 Тб. Она лежит на большой такой железной хранилке, её обслуживает очень-очень тяжёлый сервер. Всё красиво. Теперь представьте, что вы написали фичу или кусок функционала, и вам нужно протестировать её на боевой базе. Кусочек базы отщипнуть нельзя по ряду причин.

Что вы сделаете? Ну, традиционный путь — взять ещё одну хранилку на 30–35 Тб (но подешевле раз в пять, помедленнее, попроще, без резервирования) и отреплицировать базу на неё. А затем работать с копией. Хороший план?

Нет. Дело в том, что когда у вас несколько команд разработки (а в нашем случае их количество выросло от 4 до 10), нужно, соответственно, от 4 до 10 тестовых площадок. Или даже больше. Покупать такое железом просто нереально, поэтому нужно решение, которое позволит один раз реплицировать боевую базу, а затем «показывать» её каждому серверу как отдельную тестовую, но храня все изменения тестовой площадки. Вот так:

«Пьяная» база данных: как на 1 базе мы сделали 7 тестовых площадок, причём у каждой — свой собственный инкремент и дифф - 1

Расскажу, как на одном узле с физической базой мы развернули 7 тестовых площадок, изолированных друг от друга. Читать полностью »

Надо “SELECT * WHERE a=b FROM c” или “SELECT WHERE a=b FROM c ON *” ?

Если вы похожи на меня, то согласитесь: SQL — это одна из тех штук, которые на первый взгляд кажутся легкими (читается как будто по-английски!), но почему-то приходится гуглить каждый простой запрос, чтобы найти правильный синтаксис.

А потом начинаются джойны, агрегирование, подзапросы, и получается совсем белиберда. Вроде такой:

SELECT members.firstname || ' ' || members.lastname
AS "Full Name"
FROM borrowings
INNER JOIN members
ON members.memberid=borrowings.memberid
INNER JOIN books
ON books.bookid=borrowings.bookid
WHERE borrowings.bookid IN (SELECT bookid
  FROM books
  WHERE stock>(SELECT avg(stock)
    FROM books))
GROUP BY members.firstname, members.lastname;

Буэ! Такое спугнет любого новичка, или даже разработчика среднего уровня, если он видит SQL впервые. Но не все так плохо.

Легко запомнить то, что интуитивно понятно, и с помощью этого руководства я надеюсь снизить порог входа в SQL для новичков, а уже опытным предложить по-новому взглянуть на SQL.Читать полностью »

image

Не прошло и недели с момента обсуждения утечки стомиллионной БД аккаунтов социальной сети Вконтакте, которая, однако, оказалась базой еще за 2012 год, как произошел еще один вброс данных: на этот раз, по информации, полученной LeakedSource, в даркнете доступна база из 32 888 300 аккаунтов Twitter.

Полученная база хранится в открытом виде и неоднородна: она может содержать email или имя пользователя и его пароль, а в отдельных случаях присутствует еще и второй адрес электронной почты. По мнению авторов блога LeakedSource, БД была собрана при помощи вредоносного ПО, а не в ходе взлома самого Twitter.
Читать полностью »

В электронный вид переведут всю информацию о россиянах, хранящуюся в ЗАГСах, начиная с 1926 года

Посчитают всех: в РФ создадут электронную базу граждан на основе данных ЗАГСов - 1
Фото: Photoxpress

На Geektimes уже сообщалось о том, что в России планируют создать единую электронную базу, в которой будет содержаться информация обо всех гражданах страны (по крайней мере тех, о ком есть соответствующие записи в ЗАГСах). Сейчас этот проект постепенно реализуется. Делается это для того, чтобы упростить задачу идентификации населения (соответственно, укрепить и платежную дисциплину при уплате налогов и разнообразных взносов), пишет «Российская газета».

Соответствующий законопроект предложен Министерством финансов. Этот документ может вступить в силу уже с 1 января 2017 года. В принципе, с 2015 года записи актов гражданского состояния ЗАГСы могут вести в электронной форме, но далеко не везде есть соответствующая техническая возможность. Поэтому предлагается перевести все данные с бумаги в электронный вид централизованно. В пояснительной записке к законопроекту отмечается, что такой шаг поможет сформировать единый федеральный информационный ресурс, где содержатся сведения о населении страны.
Читать полностью »

Хотелось бы осветить внутреннюю разработку Ringostat — модуль, созданный программистом компании Владиславом Кудриком для корпоративного исследования. Его цель – определить, какие компании дают контекстную рекламу в том или ином городе.

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

Парсер опирается на базу данных сервиса Prodvigator и функционал поисковых систем Яндекс и Google по геотаркетингу. С помощью модуля мы смогли найти компании, которые крутят контекстную рекламу в определенном городе и стране, отфильтрованные по ключевому запросу, но функционал парсера намного шире. Все найденные данные были уникальными и не повторялись. Его функции будут полезны тем, кто ищет партнеров или клиентов своего рынка в конкретном городе.
Читать полностью »

Федеральная налоговая служба берёт на себя функции ЗАГСов. Создаётся единый реестр населения России - 1Федеральная налоговая служба создаст единый достоверный реестр информации, который будет хранить информацию об актах гражданского состояния всего населения России — рождениях, браках, разводах, смертях, переменах фамилии. Информация из 2638 ЗАГСов, разбросанных по всей территории страны, отныне будет храниться в одном надёжном месте.

Новая система регистрации и идентификации призвана наверняка идентифицировать того или иного человека, сказали представители ФНС в комментарии «Российской газете». Они говорят, что нынешняя система несовершенна. ЗАГСы «действуют вне рамок единых государственных информационных систем», что приводит к массе ошибок в информации, используемой органами власти.

В то же время, точная информация о гражданах и их статусе (жив/мёртв, женат/неженат, смена фамилии и проч.) необходима для начисления и взимания налогов и сборов, предоставлении льгот и пособий. ФНС и другие госструктуры хотят иметь полный доступ к достоверной и актуальной базе со 146 519 759 записей о жителях РФ.
Читать полностью »

image

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

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

Изучив доступную информацию, я обратил внимание, что одной из задач разработчиков было обеспечить в новых версиях интерфейс для подключаемых движков баз данных. На момент написания этого поста в SQLite 4 уже было два встроенных бэкенда, один из которых — key-value хранилище на основе LSM. В последние пару месяцев мне доводилось поиграться с Cython, пока я писал Python-обёртку для встроенных k-v хранилищ UnQLite и Vedis. И я подумал, что было бы неплохо применить Cython для создания интерфейса движка БД на основе LSM, используемого в SQLite 4.

Разобравшись с исходным кодом SQLite 4 и крохотным заголовочным файлом LSM, я написал python-lsm-db (документация).
Читать полностью »

В начале июля парламент Кувейта принял закон, обязывающий всех жителей страны, а также иностранных граждан, которые пересекают её границу, в обязательном порядке проходить ДНК-тестирование. Таким образом власти страны отреагировали на террористическую атаку, произошедшую 26 июня, в результате которой погибли 27 человек и было ранено более 200. Ответственность за теракт взяло на себя «Исламское государство».
Читать полностью »

image
Фото Flickr
Специальная служба одного из лондонских районов намерена собрать образцы ДНК собак для того, чтобы найти её владельца в случае, если он поленится убрать экскременты за своим питомцем. Таким высокотехнологичным образом лондонские власти надеются уменьшить затраты на уборку улиц, которые составляют £2.3 миллиона (около $3.5 млн) в год. Штраф для неаккуратного хозяина составит довольно значительную сумму в £80 (или $122).
Читать полностью »


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