Крупные предприятия собирают, хранят и обрабатывают разные типы данных из множества источников, таких как системы начисления заработной платы, записи о продажах, системы инвентаризации и других. Эта информация извлекается, преобразуется и переносится в хранилища данных с помощью ETL-систем. Расскажем, что такое ETL, а также какие платные и общедоступные решения для работы […]
Автор: editor
MySQL / немного о SELECT… FOR UPDATE и GET_LOCK
Для примера рассмотрим такой случай.У нас есть MySQL база, в которой есть таблица queue. В эту таблицу поступают задания для выполнения.Задания должны распределяться между процессами. Одна и та же задача не должна попасть к разным процессам.Для решения задачи можно воспользоваться SELECT … FOR UPDATE.Каждый процесс для получения задачи будет выполнять […]
Блокировки в MySQL
На хабре часто обсуждаются принципы работы MySQL. Данный хабратопик посвящен механизмам блокировок, используемым в MySQL. Топик поможет начинающим изучать MySQL и, в некоторой степени, опытным хабралюдям. Механизм блокирования в MySQL Одновременный доступ нескольких клиентов к хранилищу данных может приводить к ошибкам различного типа. Например, одновременное чтение одним клиентом и запись […]
Что такое озера данных и почему в них дешевле хранить big data
Сейчас все вокруг твердят про пользу big data. В итоге бизнес пытается работать с масштабными базами данных, но сталкивается с проблемой — все данные разнородные и неструктурированные, перед загрузкой в базы их нужно долго обрабатывать. В итоге работа с big data оказывается слишком сложной и дорогой, а часть данных теряется, […]
Как выкатить обновление, если оно затрагивает все ваши сервисы
Обновления могут происходить каждый день, но иногда нужно выкатить фичу такого масштаба, что потенциальные ошибки поаффектят все ваши сервисы и пользователей. В статье расскажем, как сделать выкатку обновлений любой сложности в запланированный и анонсированный срок даунтайма без последствий для продакшен. Что такое выкатка Любой айтишник легко ответит, что такое выкатка: […]
От разработки до релиза
В разработке любого приложения все начинается с исходного кода, а заканчивается приложением, которое доступное пользователю. В зависимости от типа приложения (веб приложение, мобильное или десктопное) процесс преобразования исходного кода в финальных продукт может отличаться. Назовем этот процесс – процесс релиза. Процесс релиза может отличаться в зависимости от типа приложения, но […]
Подробно о генераторах случайных и псевдослучайных чисел
Генераторы случайных чисел — ключевая часть веб-безопасности. Небольшой список применений: Генераторы сессий(PHPSESSID) Генерация текста для капчи Шифрование Генерация соли для хранения паролей в необратимом виде Генератор паролей Порядок раздачи карт в интернет казино Как отличить случайную последовательность чисел от неслучайной? Пусть есть последовательность чисел: 1 , 2 , 3 , […]
Removing duplicate elements from an array/slice in Golang
Recently I encountered an issue where I was supposed to merge two slices of strings into one so that the resulting slice should not contain any element from first or the second more than once. For example, A = [‘x’,’y’,’z’] and B = [‘x’,’p’,’q’] → C = [‘p’,’x’,’z’,’q’,’y’]. So here […]
Признак высокого интеллекта №1 – по мнению Джеффа Безоса
Именно эту особенность ищет в людях основатель компании Amazon, когда пытается понять, действительно ли его собеседник умен. Основатель Amazon Джефф Безос сидит на вершине одной из самых успешных компаний нашего времени, не говоря уже о личном состоянии в размере около $150 млрд. Я думаю, мы все можем согласиться, что по […]
Сравнение оконных функций и CTE в MySQL 8 и MariaDB
Каждый программист базы данных MySQL должен изучить и применить недавно добавленные оконные функции MariaDB и MySQL и выражения общих таблиц (CTE) в своей повседневной работе. И CTE, и оконные функции позволяют легко решать многие проблемы запросов, которые в предыдущих выпусках было сложно, а иногда невозможно преодолеть. Освоение этих функций открывает […]