В результате возникает хеш (hash) — отображение данных в виде уникальной строки
Хэш-функция — алгоритм, который принимает входные данные любого размера и возвращает хэш фиксированного размера
Результат хеш-функции называется «хеш-суммой»\«хеш», а входные данные — «сообщением»
Исходное сообщение -> [Хэш-функция] -> Хэш
Когда хэши совпадают — это коллизия. Это небезопасно, т.к. позволяет подменить данные.
Как работает хеш-функция
По шагам:
Функция должна быть криптостойкой, т.е. ее результат практически невозможно вскрыть
Это делается, чтобы предотвратить атаки по радужным таблицам и сделать каждый хэш уникальным, даже для одинаковых исходных данных
Основные характеристики хэш-функций
Для чего используется хэширование
Примеры хэширования
Популярные алгоритмы хэширования
Шифрование — преобразование данных в вид, который нельзя прочитать без специального ключа
Как работает шифрование
Вводятся данные и используется ключ для шифрования.
Данные преобразуются алгоритмами в зашифрованный формат, который может быть расшифрован только с использованием соответствующего ключа
Основные типы
Для чего используется
Примеры использования
Популярные алгоритмы
#безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥16❤12
Forwarded from Библиотека Системного Аналитика
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужна, чтобы упорядочить данные по определённому критерию
Алгоритм работы
Примеры параметров
GET /products?sort=price&order=desc
сортировка по цене в порядке убыванияGET /products?sort=price&order=desc — сортировка по цене в порядке убыванияsort=field1,field2 sort = field1,field2: указание несколько полей для сортировки
GET /products?sort=price,name — сначала сортировка по цене, затем по имениGET /products?custom_sort=popularity — сортировка по популярности, где popularity — кастомный критерийGET /products?sort=price&nulls=last — значения null идут последнимиПримеры использования
Используется для отбора данных по заданным критериям
Работает по аналогичному алгоритму, как и сортировка
В URL, используются параметры строки запроса для условий фильтрации
Каждый параметр имеет формат field=value, несколько параметров разделяются символом "&"
Методы
GET /api/items?status=active — фильтрует все элементы, у которых статус = activeGET /api/items?price[gte]=10&price[lte]=50 — элементы с ценой в диапазоне от 10 до 50GET /api/items?name[like]=%book% — элементы со словом book в названииGET /api/items?category=in:(books,electronics) — элементы с категорией books или electronicsПримеры использования
Для ускорения запросов — использовать индексы на колонках, которые часто фильтруются
При пагинации происходит разделение данных на страницы для удобства просмотра и ускорения ответов
Алгоритм работы
Методы
GET /items?limit=10&offset=20 — возвращает 10 элементов, начиная с 21-го элемента (т.к. offset=20)GET /items?page=3&page_size=10 — 10 элементов, начиная с третьей страницыGET /items?cursor=abc123&limit=10 — 10 элементов, начиная с позиции, определенной курсором abc123Примеры использования
Для больших наборов данных лучше использовать курсорную пагинацию
Параметры в URL указываются в любом порядке, сервер должен обрабатывать их в логической последовательности:
Фильтрация
#api
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43❤16🔥8
Интернет — это глобальная сеть систем, которые связаны друг с другом для хранения и передачи данных.
Структура интернета
172.217.18.0), которые используются для маршрутизации данных в интернетеИнтернет работает на базе набора протоколов TCP/IP, которые реализовывают 3, 4 и 7 уровни модели OSI:
Подробнее про OSI — в наших постах (ссылки в материалах)
Доменная система имен (DNS). Включает:
Пример: Один из корневых серверов — A.ROOT-SERVERS.NET, управляемый организацией VeriSign.
Пример: Для домена .com существует множество TLD серверов, например, a.gtld-servers.net.
Пример: Если запрос касается домена example.com, авторитетный сервер для google.com может быть ns1.google.com.
Интернет централизован?
Нет. Интернет состоит из множества автономных систем и сетей, которые управляются разными организациями и компаниями по всему миру. Поэтому интернет работает даже при сбоях в отдельных сегментах, так как нет центральной точки отказа.
Однако существует координационный орган — ICANN (Internet Corporation for Assigned Names and Numbers). ICANN отвечает за распределение IP-адресов, управление доменными зонами и поддержание стабильности работы сети.
ICANN координирует распределение IP-адресов и доменных зон верхнего уровня (.com, .org и т.д.), т.е. обеспечивает работу корневых DNS-серверов. ICANN не управляет содержимым сайтов и интернет-провайдерами, а лишь поддерживает техническую инфраструктуру. Хотя ICANN не может физически отключить интернет в стране, но может прекратить обслуживание доменных зон.
Что происходит, когда мы вводим в браузере google.com?
Автор: Виталия Малютина
#сети
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥50👍24❤10
OLTP (Online Transaction Processing) — система, предназначенная для управления и обработки множества транзакций в режиме онлайн
Транзакции обычно включают в себя операции создания, чтения, обновления и удаления (CRUD)
Алгоритм работы
Характеристики
Примеры
OLAP (Online Analytical Processing) — система для выполнения сложных запросов и анализа больших объемов данных.
— Собирает информацию из БД, ERP, CRM и др источников, затем формирует многомерный массив данных для дальнейшего анализа. Эти массивы называют OLAP-кубами
— Кубы объединяют информацию из большого числа таблиц с её предварительной обработкой. Могут иметь разные измерения (в годах, регионах и тд)
Компоненты OLAP
Алгоритм работы
— извлечение данных
— данные очищаются, нормализуются и преобразуются
— загрузка в OLAP хранилище
Характеристики
Примеры систем
Yandex DataLens — визуализация и анализа данных
Microsoft Power BI — инструмент бизнес-анализа
Vertica — БД для OLAP
Дополняют друг друга в процессе управления данными и аналитики:
(анализ покупательского поведения может привести к изменениям в маркетинговых кампаниях или стратегиях продаж)
#проектирование #бд
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍12❤7
Паттерны проектирования (ПП) — проверенные решения для часто встречающихся проблем в ПО. Шаблоны, которые применяются для повышения эффективности и качества кода
Архитектурные паттерны (АП) — шаблоны для высокоуровневой организации системы. Они определяют основные компоненты системы, их взаимосвязи и взаимодействия
Служат для разных уровней проектирования ПО:
Применение
Делятся на три вида:
Для создания экземпляра объекта или группы связанных объектов
В основном связаны с композицией объектов, с тем, как сущности могут использовать друг друга
Связаны с распределением обязанностей между объектами. Отличаются от структурных шаблонов описанием не только структуры, но и способов общения между ними
Применение
Примеры
Более абстрактные:
Более конкретные:
В объектно-ориентированных системах внутри архитектурных паттернов можно использовать паттерны GRASP
Например, паттерны для распределения обязанностей между классами и объектами (Creator, Information Expert)
Они помогут определить, как распределять обязанности
#проектирование #архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍16⚡3
CJM (Карта пути клиента) — инструмент визуализации пути клиента, включая все этапы взаимодействия с продуктом или сервисом.
Зачем нужна
Примеры использования
Основные элементы
CJM может выглядеть по-разному в зависимости от целей
Основные элементы:
Как построить CJM
Пример построения CJM по шагам
Программы для построения CJM
Похожие инструменты
#требования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22❤9🔥4⚡2
Swagger — набор инструментов для создания, документирования и тестирования RESTful API. Основой Swagger является формат OpenAPI, который позволяет описывать API на уровне спецификаций
Зачем нужен?
Возможности
Из чего состоит?
С чего начать работу со Swagger?
Подходы к созданию API
Спецификации API генерируются на основе кода
Используется:
Спецификации создаются до написания кода
Используется:
Примеры расширений и плагинов
Отличие от Postman
Swagger ориентирован на проектирование и документирование API
Postman — на тестирование и отладку
Swagger позволяет создавать спецификации и генерировать код
Postman фокусируется на тестировании, хранении запросов и автоматизации тестов
#api #инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥44👍18❤14⚡1
В колоночной БД данные хранятся и обрабатываются по столбцам, а не по строкам.
Все значения одного столбца хранятся вместе, отдельно от значений других столбцов.
В строковой БД данные хранятся построчно:
В колоночной — по столбцам:
Чтение: если нужно найти все цены, БД сразу читает столбец "Цена", не проходя по каждой строке.
Особенности
Когда лучше выбрать?
Некоторые БД (Apache Cassandra и HBase) спроектированы для работы в распределенной среде. Они легко масштабируются горизонтально, добавляя новые узлы в кластер
Это позволяет обрабатывать большие объемы и распределять нагрузку между серверами
Когда неэффективны
Примеры использования
Отличия колоночных SQL от NoSQL
SQL:
NoSQL:
Примеры БД
Когда лучше выбирать строковые БД
Сравнение Cassandra vs PostgreSQL на картинке поста
#бд
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍21❤8🤔1
Производительность API: краткий обзор способов
1⃣ Кэширование
Временное хранение часто используемых ответов
💛 снижение время отклика, уменьшение нагрузки на сервер за счет повторного использования данных
💛 риск устаревания данных, сложность управления сроками жизни кеша
➡️ Применяется при частых запросах к неизменяемым или редко изменяемым данным
2⃣ Batch-запросы
Объединение нескольких запросов в один для сокращения количества обращений к серверу
💛 снижение количества сетевых вызовов;
💛 повышение производительности за счет групповой обработки запросов
💛 увеличение сложности обработки на сервере, что может вызвать задержки;
💛 может усложнится обработка ошибок, т.к. все запросы обрабатываются вместе
➡️ Когда клиенту нужно выполнить несколько связанных запросов одновременно.
3⃣ Chunked-запросы
Разделение большого запроса или ответа на более мелкие части (чанки), которые отправляются последовательно
💛 улучшение обработки больших объемов данных за счет поэтапной передачи
💛 снижение вероятности тайм-аутов при передаче больших файлов
💛 сложнее реализация и координация частей запроса, возможны задержки между частями
➡️ При работе с большими объемами данных, например, загрузка файлов
4⃣ Rate Limiting
Ограничение количества запросов за определенный промежуток времени
💛 защита сервера от перегрузок за счет контроля нагрузки
💛 исключение злоупотребления API
💛 может вызвать неудобства у пользователей при жестких ограничениях
требует мониторинга и настройки
➡️ Для защиты от DDoS-атак и управления ресурсами сервера
5⃣ Retry
Повторение неудавшихся запросов
💛 повышает надежность взаимодействия, снижает влияние временных ошибок
💛 увеличение нагрузки на сервер, риск дублирования операций
➡️ При временных сбоях в сети или сервере, для критичных операций, требующих гарантированной доставки
6⃣ Timeout
Установка максимального времени ожидания ответа
💛 предотвращение долгих ожиданий
💛 освобождение ресурсов
💛 обнаружение проблем с задержками
💛 возможны сбои при медленной работе сервера, требует точной настройки
💛 неправильно настроенные тайм-ауты могут привести к преждевременным отказам
➡️ Для предотвращения зависания запросов и оптимизации ресурсов
7⃣ Pagination
Разделение результатов на страницы
💛 снижение нагрузки на сервер за счет обработки небольших частей данных
💛 улучшение скорости обработки
💛 увеличение сложности навигации по данным
💛 усложнение реализации API
➡️ Для работы с большими объемами данных (списки, поисковые результаты)
8⃣ Compression
Сжатие данных перед передачей
💛 снижение объема данных, повышение скорости передачи
💛 требует дополнительноых и ресурсов на сжатие и разжатие данных
➡️ Для уменьшения трафика
Верхнеуровневые (архитектурные) способы
😈 Load Balancing
Распределение нагрузки между серверами
➕ улучшение масштабируемости и устойчивости за счет равномерного распределения запросов
➕ повышение доступности системы
➖ увеличение сложности настройки и управления
➖ требуется мониторинг и управление балансировщиками нагрузки
➡️ Для высоконагруженных систем
😈 CDN (Content Delivery Network)
Использование сети серверов для кэширования и доставки контента
➕ снижение времени отклика за счет храненич контента на серверах, расположенных ближе к пользователям
➕ снижение нагрузки на основной сервер за счет распределения на несколько серверов
➖ стоимость использования и сложность настройки
➖ зависимость от стороннего провайдера
➡️ Для ускорения доставки статического контента (изображения, видео и файлы)
😈 Асинхронное взаимодействие
Выполнение операций без ожидания завершения, позволяя другим процессам продолжать работу
➕ производительность за счет параллельной обработки задач
масштабируемость, т.к ресурсы не блокируются ожиданием завершения операций
➖ сложность разработки и отладки из-за необходимости обработки асинхронных событий
➖ сложность сложность управления состоянием и синхронизации данных
➡️ Для долгих операций (сетевые запросы, обработка больших объемов), без блокировки основного потока выполнения
⭐️ Подборки материалов по этой и другим темам доступны в базе знаний по системному анализу
#api
Временное хранение часто используемых ответов
Объединение нескольких запросов в один для сокращения количества обращений к серверу
Разделение большого запроса или ответа на более мелкие части (чанки), которые отправляются последовательно
Ограничение количества запросов за определенный промежуток времени
требует мониторинга и настройки
Повторение неудавшихся запросов
Установка максимального времени ожидания ответа
Разделение результатов на страницы
Сжатие данных перед передачей
Верхнеуровневые (архитектурные) способы
Распределение нагрузки между серверами
Использование сети серверов для кэширования и доставки контента
Выполнение операций без ожидания завершения, позволяя другим процессам продолжать работу
масштабируемость, т.к ресурсы не блокируются ожиданием завершения операций
#api
Please open Telegram to view this post
VIEW IN TELEGRAM
👍59🔥17❤12
Это способы доставки данных из источников в централизованную систему (хранилище)
Ключевое отличие: ГДЕ и КОГДА выполняются преобразование и загрузка данных:
Как работает по шагам:
Когда эффективны
Примеры применения
Минусы
— процесс может быть медленным из-за преобразования данных до загрузки
— нужно использовать выделенные ресурсы для трансформации данных
Как работает по шагам:
Когда эффективны
Для быстрой загрузки и обработки больших объемов данных, т.к. извлекает и загружает в целевую систему (например, облачное ХД) сырые данные.
А трансформация происходит после загрузки
Когда использовать
Примеры применения
Минусы
— целевая система должна быть достаточно мощной для выполнения трансформаций
— могут появится неконсистентные данные в целевой системе до выполнения всех трансформаций
#архитектура #проектирование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41❤10🔥6
🎙 Бесплатные выпуски подкаста «Аналитики у микрофона» для и про аналитиков
Ссылки на выпуски собрали в один пост:
1 сезон
👉 Удаленка
Делимся своим опытом, с чем столкнулись, какие трудности нас ждали в таком формате работы и как мы с ними справляемся или не справляемся.
👉 Дарья Перминова. Legal Tech, вопрос «зачем?» и динозаврики
Обсудили с гостем ее работу в продуктовой компании и историю ее карьерного пути. Даша также поделилась с нами своими методами найма аналитиков и размышлениями о смене работы. В выпуске поговорили о продуктовой разработке, о том, какие бывают аналитики в этой сфере, как важно уметь учиться, о материнстве и о многом другом!
👉 Алёна Ельцова. Из бухгалтера в аналитики 1С или В переговорку с самоваром
Алёна рассказала о своем карьерном пути, о том, как она пришла к ведению профессионального блога и к созданию авторского курса "Супер-ЗУПер", и о своих планах на будущее.
Поговорили о том, что ждёт бухгалтеров и кадровиков при переходе в новую профессию Аналитик 1С и нужно ли им это.
👉 Татьяна Паваляева. Коммуникации на удаленке: свет, камера, микрофон или как налаживать отношения
В выпуске поговорили про команду, про камеры, про то как НЕ читать между строк. Подняли тему семьи, детей и переработок. Обсудили даже здоровье.
Бонусные выпуски 1 сезон, интервью с теми, кто стоит рука об руку с аналитиками
👉 Евгений Жильцов про тестировщиков
Тестировщик- кто это? Чем занимается? Как может помочь аналитику?
👉 Марина Трушникова про руководителей проектов
Обсудили, чем занимается РП, как обучиться и попасть в эту сферу, где граница работы РП и аналитика, а также затронули тему коммуникаций и пофантазировали о том, что ждет эту роль с развитием технологий.
👉 Евгений Руднев про бизнес-аналитиков
Кто такой бизнес-аналитик и для чего он нужен бизнесу?
Что общего у бизнес-аналитика и следователя?
Какими качествами должен обладать бизнес-аналитик?
Почему коммуникации намного важнее знания нотаций?
Где учиться на бизнес-аналитика и как развиваться в профессиональном плане?
2 сезон
👉 Подкаст в подкасте
Зачем мы делаем подкасты? Зачем мы слушаем подкасты? Зачем мы участвуем в других подкастах? Вопрос «зачем?» прозвучал в выпуске очень много раз, как мы любим, постарались поделиться нашим мнением.
👉 Татьяна Макарова. В поисках идеальной работы
Обсудили важные моменты, на которые стоит обратить внимание на собеседовании, чтобы избежать неприятных ситуаций и не жалеть потом о своем выборе.
#подкасты
Ссылки на выпуски собрали в один пост:
1 сезон
👉 Удаленка
Делимся своим опытом, с чем столкнулись, какие трудности нас ждали в таком формате работы и как мы с ними справляемся или не справляемся.
👉 Дарья Перминова. Legal Tech, вопрос «зачем?» и динозаврики
Обсудили с гостем ее работу в продуктовой компании и историю ее карьерного пути. Даша также поделилась с нами своими методами найма аналитиков и размышлениями о смене работы. В выпуске поговорили о продуктовой разработке, о том, какие бывают аналитики в этой сфере, как важно уметь учиться, о материнстве и о многом другом!
👉 Алёна Ельцова. Из бухгалтера в аналитики 1С или В переговорку с самоваром
Алёна рассказала о своем карьерном пути, о том, как она пришла к ведению профессионального блога и к созданию авторского курса "Супер-ЗУПер", и о своих планах на будущее.
Поговорили о том, что ждёт бухгалтеров и кадровиков при переходе в новую профессию Аналитик 1С и нужно ли им это.
👉 Татьяна Паваляева. Коммуникации на удаленке: свет, камера, микрофон или как налаживать отношения
В выпуске поговорили про команду, про камеры, про то как НЕ читать между строк. Подняли тему семьи, детей и переработок. Обсудили даже здоровье.
Бонусные выпуски 1 сезон, интервью с теми, кто стоит рука об руку с аналитиками
👉 Евгений Жильцов про тестировщиков
Тестировщик- кто это? Чем занимается? Как может помочь аналитику?
👉 Марина Трушникова про руководителей проектов
Обсудили, чем занимается РП, как обучиться и попасть в эту сферу, где граница работы РП и аналитика, а также затронули тему коммуникаций и пофантазировали о том, что ждет эту роль с развитием технологий.
👉 Евгений Руднев про бизнес-аналитиков
Кто такой бизнес-аналитик и для чего он нужен бизнесу?
Что общего у бизнес-аналитика и следователя?
Какими качествами должен обладать бизнес-аналитик?
Почему коммуникации намного важнее знания нотаций?
Где учиться на бизнес-аналитика и как развиваться в профессиональном плане?
2 сезон
👉 Подкаст в подкасте
Зачем мы делаем подкасты? Зачем мы слушаем подкасты? Зачем мы участвуем в других подкастах? Вопрос «зачем?» прозвучал в выпуске очень много раз, как мы любим, постарались поделиться нашим мнением.
👉 Татьяна Макарова. В поисках идеальной работы
Обсудили важные моменты, на которые стоит обратить внимание на собеседовании, чтобы избежать неприятных ситуаций и не жалеть потом о своем выборе.
#подкасты
👍14🔥9❤4
SQA (Software Quality Assurance) — процесс для обеспечения соответствия ПО установленным стандартам и требованиям.
Это система подходов, которая интегрирована в процесс разработки, чтобы гарантировать качество на всех этапах.
Почему важно SQA?
Основные аспекты SQA
Примеры применения
Примеры атрибутов качества
Внешние
Внутренние
операционной среде)
Инструменты и методы
Отличие от нефункциональных требований
#требования
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12⚡8👍4🔥4
Изолированность транзакций в БД гарантирует, что параллельные транзакции не влияют друг на друга. Предотвращает видимость промежуточных результатов транзакции для других до её завершения, сохраняя целостность данных
Это одно из свойств ACID
Как обеспечить изолированность
MVCC
Принцип работы
Во время транзакции создается копия данных, в которой происходят изменения
Пример
Два пользователя одновременно меняют карточку товара
Блокировки
Примеры видов блокировок
Приложение-координатор дает доступ к БД или отклоняет запрос, если БД занята.
Алгоритмы выбора координатора
Каждый процесс отправляет запросы на доступ к ресурсу всем другим (и себе)
Действия получателя:
сравнивает время запроса со времени своего запроса
— ОК: если у входящего сообщения время меньше
— В очередь: если время больше
После отправки запросов приложение останавливается, ждет подтверждения от остальных.
Далее отправляет OK всем в своей очереди и чистит ее
доступ к ресурсу
Минимизация блокировок за счет работы с копиями данных.
— если не обнаружено, изменения транзакции применяются к основной БД
— если обнаружено (например, другой транзакцией изменены те же данные), текущая транзакция откатывается и, возможно, повторяется
Пример блокировки в БД
Две транзакции (T1 и T2) работают с таблицей accounts (информация о балансах пользователей)
Что выбрать для обеспечения изолированности?
#бд
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤9👍9⚡4
Grafana — инструмент для визуализации и анализа данных.
Позволяет создавать интерактивные графики, диаграммы и дашборды на основе различных источников данных.
Возможности
Подключение к различным источникам данных
Создание интерактивных дашбордов
Алертинг
Управление пользователями и ролями
Плагины и расширения
Основные термины
Может быть написан на языках запросов, поддерживаемых источником данных (SQL для БД)
Примеры применения
Недостатки
Экосистема Grafana
#инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤9🔥8
NTP (Network Time Protocol) — протокол для синхронизации времени между компьютерами в сети.
Позволяет устанавливать точное время на устройствах, синхронизируя их часы с часами специальных серверов времени (NTP-серверами)
Как работает по шагам
отправления (T1)
временем отправления (T3) и временем получения (T2)
задержку и смещение во времени своих часов для их корректировки.
Для чего нужен
Согласованность временных меток
* Распределённая система —группа независимых компьютеров, которые работают вместе и обмениваются данными по сети для выполнения общих задач.
Обеспечение безопасности
Координация действий между системами
Работа распределённых БД
Для правильного воспроизведения мультимедиа
За счет чего достигается высокая точность
UTC (всемирное координированное время) обеспечивает единый стандарт времени для всего мира.
Время с атомных часов и серверов UTC распространяется через сеть
Где применяется
Кейсы использования
У пользователя украли данные карты и хотят снять деньги
Компилятор при пересборке проверяет время изменения файла
Классы точности NTP-серверов
Цифра - уровень по отношению к UTC
Это устройства не подключены напрямую к сети, служат основным источником
времени для серверов Stratum 1
Самые точные серверы, могут учитывать время с точностью в одну триллионную долю секунды.
Они используют сложное и дорогое оборудование и обычно
не отвечают на запросы конечных пользователей, обслуживают только серверы более
низкого уровня.
#инфраструктура
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥9❤4
Уровни изоляции в БД управляют тем, как изменения одной транзакции видны другим транзакциям
Изоляция является одним из ключевых компонентов ACID
Напомним, транзакция в БД — последовательность операций, выполняемых как единое целое.
Должны быть либо полностью выполнены, либо полностью отменены.
Это обеспечивает целостность данных.
Где применяются уровни изоляции
Основные механизмы
В основном реализуется через механизмы СУБД:
Иные:
Аномалии при параллельной обработке транзакций
Уровни изоляции
Самый низкий уровень изоляции: транзакции могут читать изменения, которые не были зафиксированы другими транзакциями.
Механизм: отсутствие блокировок на чтение и запись
Транзакции могут читать только те изменения, которые были зафиксированы
Механизм: блокировка строк на запись до завершения транзакции
Транзакция A читает данные, они блокируются для изменения другими транзакциями.
Транзакция B не может изменять эти данные, пока транзакция A не завершится, но может добавлять новые строки.
Транзакция A повторно читает те же данные, но не видит новых строк.
Механизм: блокировка всех прочитанных строк до завершения транзакции
Обеспечивает полную изоляцию транзакций, делая их последовательными, как если бы они выполнялись по очереди.
Механизм: блокировка на чтение и запись
Как выбрать уровень изоляции
Чем выше уровень изоляции, тем:
#бд
Please open Telegram to view this post
VIEW IN TELEGRAM
👍38🔥11❤8💩1
Системный Аналитик
Основы Kafka – что нужно знать аналитику Неделей ранее мы рассматривали основные понятия очередей сообщений. Пришло время копнуть чуть глубже и познакомиться с Кафкой. Apache Kafka – популярный брокер сообщений с открытым исходным кодом. Применяется в …
Apache Kafka
Apache Kafka – распределённая система для обработки данных в режиме реального времени.
Работает как почта — одни сервисы передают туда сообщения, а другие — получают.
Называют брокером сообщений, так как выступает в качестве посредника
Компоненты
🟣 Продюсеры — приложения, которые публикуют данные
🟣 Консьюмеры — приложения, которые читают
⚪️ Топики – каналы, куда продюсеры публикуют сообщения. Могут иметь множество подписчиков (консьюмеров)
⚪️ Партиции – части топиков для параллельной обработки данных.
Сообщения в партиции хранятся в строгом порядке
🟣 Брокеры — серверы, которые принимают, хранят и передают сообщения.
В кластере их может быть несколько для отказоустойчивости и масштабируемости
🟣 Зукипер — сервис для координации. Управляет конфигурацией кластера, отслеживает состояние брокеров, топиков и партиций
Принцип работы
*️⃣ Публикация: продюсер отправляет данные в топик, выбирает партицию для записи (с помощью ключа сообщения, по алгоритму round-robin)
*️⃣ Хранение: сообщение записывается в выбранную партицию на одном из брокеров.
Происходит репликация (об этом далее)
*️⃣ Чтение: консьюмер запрашивает данные из топика, Kafka направляет консьюмера к соответствующей партиции.
Читает, начиная с последнего прочитанного сообщения (офсета).
*️⃣ Обновление офсетов: консьюмер периодически обновляет свой текущий офсет (в Zookeeper / в самом Kafka, зависит от настройки)
Это позволяет возобновить чтение с правильного места в случае сбоя.
Репликация данных
✨ Реплика в Kafka – копия партиции топика, хранится на другом брокере для обеспечения надежности и отказоустойчивости.
✨ Лидер — основная копия партиции, которая обрабатывает все операции записи и чтения.
Фолловеры — дополнительные копии, которые синхронизируются с лидером.
Как работает?
➖ Сообщения записываются в лидера и затем копируются на фолловеров
➖ Фолловеры следят за лидером и обновляются в реальном времени
➖ Если лидер выходит из строя, один из фолловеров становится новым лидером для непрерывности работы
✨ Replication factor — количество реплик для каждой партиции. Например, фактор репликации 3 означает 1 основную копию и 2 резервные.
Типы доставки сообщений
🟠 At most once: сообщение может быть доставлено максимум один раз, возможны потери
🟠 At least once — как минимум один раз, возможны дублирования
🟠 Exactly once — ровно один раз, без потерь и дублирования
Надежность доставки
Продюсеры могут настроить количество подтверждений (acks) от брокеров
😀 acks=0: Без подтверждений, низкая надежность.
😀 acks=1: Подтверждение от лидера, средняя надежность.
😀 acks=all: Подтверждение от всех реплик, высокая надежность.
Способы Интеграции с Kafka
*️⃣ Прямое подключение: через стандартные клиенты (Java, Python, Go и др.)
*️⃣ Коннекторы Kafka Connect: для интеграции с БД, хранилищами и др.
*️⃣ Потоковые платформы: Apache Flink, Apache Spark и др
Примеры
Синхронная работа
⏺ Синхронная передача: приложения отправляют данные и ожидают подтверждения от Kafka
☺️ параметр acks=all у продюсера, чтобы дождаться подтверждения от всех реплик перед продолжением
⏺ Запрос-ответ: консьюмер отправляет запрос и ожидает ответа в другом топике.
☺️ уникальные ключи для корреляции запросов и ответов
Асинхронная
⏺ Логирование и мониторинг: отправка логов без ожидания подтверждения
☺️ параметр acks=1 или acks=0 для продюсеров, чтобы минимизировать задержку
⏺ Обработка событий
☺️ группа консьюмеров параллельно обрабатывает события
⏺ ETL-процессы: загрузка в хранилища через Kafka
☺️ Kafka Connect для интеграции с источниками и приемниками
Kafka как хранилище данных
😀 Можно настраивать время хранения сообщений от минут до нескольких лет
😀 Сообщения хранятся в сегментах и индексируются ✨ эффективное управление большими объемами данных
😀 Высокая скорость записи и чтения данных
Ограничения
😀 Нет сложных запросов и транзакционной поддержки
😀 Старые данные автоматически удаляются по истечению срока
😀 Иногда нужна интеграция с др системами (HDFS, S3, реляционные БД)
📎 Подборка материалов в этом посте
#интеграции
Apache Kafka – распределённая система для обработки данных в режиме реального времени.
Работает как почта — одни сервисы передают туда сообщения, а другие — получают.
Называют брокером сообщений, так как выступает в качестве посредника
Компоненты
Сообщения в партиции хранятся в строгом порядке
В кластере их может быть несколько для отказоустойчивости и масштабируемости
Принцип работы
Происходит репликация (об этом далее)
Читает, начиная с последнего прочитанного сообщения (офсета).
Это позволяет возобновить чтение с правильного места в случае сбоя.
Репликация данных
Фолловеры — дополнительные копии, которые синхронизируются с лидером.
Как работает?
Типы доставки сообщений
Надежность доставки
Продюсеры могут настроить количество подтверждений (acks) от брокеров
Способы Интеграции с Kafka
Примеры
Синхронная работа
Асинхронная
Kafka как хранилище данных
Ограничения
📎 Подборка материалов в этом посте
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
👍68❤26🔥9⚡2👎1
Системный Аналитик
Типы интеграции систем. Преимущества и недостатки Выделяют 4 основных типа интеграции: 1. Файловая интеграция 2. Общая база данных 3. Удалённый вызов процедур 4. Обмен сообщениями 1️⃣ Файловая интеграция. Cистема А передает файл системе Б в определенном…
Интеграция через файловый обмен — один из 4-х главных методов интеграции систем. Системы обмениваются между собой обычными файликами в стандартных форматах, например, CSV, XML или JSON.
Особенности
Где используется?
Способы
Принцип работы FTP, FTPS, SFTP
FTP
FTPS
SFTP
Пример использования
В ETL процессе:
Обмен данными между отделом логистики и складом
Как обеспечить безопасность
Сервисы и приложения
#интеграции
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍15❤12🤡1
Виды
Внедрение вредоносного скрипта на веб-страницу, для браузера пользователя
Атака через ввод данных в формы на сайте или URL-адреса.
Скрипт выполняется в контексте сайта.
Может красть данные, перенаправлять пользователя или выполнять другие вредоносные действия
Обман пользователя, чтобы он кликнул на что-то отличное от того, что он видит
Веб-страница размещает невидимый фрейм над кнопками или ссылками, чтобы пользователи выполняли нежелательные действия
Внедрение вредоносного SQL-кода в запросы к БД
Атака через формы ввода данных, URL-адреса или параметры HTTP-запросов.
Вредоносный SQL-код может извлекать, изменять или удалять данные в БД
Для получения конфиденциальной информации
Атака через поддельные веб-сайты, электронные письма или сообщения
Перегрузка серверов, сайтов или сетей с целью сделать их недоступными.
Атака происходит через множество скоординированных запросов с различных устройств, часто зараженных вредоносным ПО.
Перехват коммуникаций между двумя сторонами с целью кражи или изменения данных.
Подбор паролей методом перебора возможных комбинаций
Способы защиты от кибератак
Для чего знать аналитику?
#безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥16❤7