uz
Feedback
DataEng

DataEng

Kanalga Telegram’da o‘tish

Data Engineering & Distributed Systems Contact @adilkhash

Ko'proq ko'rsatish
4 410
Obunachilar
Ma'lumot yo'q24 soatlar
+47 kunlar
+1730 kunlar

Ma'lumot yuklanmoqda...

Taglar buluti
Ma'lumot yo'q
Muammo bormi? Iltimos, sahifani yangilang yoki bizning qo'llab-quvvatlash boshqaruvchimizga murojaat qiling>.
Kirish va chiqish esdaliklari
---
---
---
---
---
---
Obunachilarni jalb qilish
Iyun '26
Iyun '26
+2
0 kanalda
May '26
+51
0 kanalda
Get PRO
Aprel '26
+57
0 kanalda
Get PRO
Mart '26
+45
1 kanalda
Get PRO
Fevral '26
+61
0 kanalda
Get PRO
Yanvar '26
+49
1 kanalda
Get PRO
Dekabr '25
+60
1 kanalda
Get PRO
Noyabr '25
+62
1 kanalda
Get PRO
Oktabr '25
+94
2 kanalda
Get PRO
Sentabr '25
+46
0 kanalda
Get PRO
Avgust '25
+42
2 kanalda
Get PRO
Iyul '25
+90
0 kanalda
Get PRO
Iyun '25
+44
1 kanalda
Get PRO
May '25
+58
3 kanalda
Get PRO
Aprel '25
+53
2 kanalda
Get PRO
Mart '25
+55
0 kanalda
Get PRO
Fevral '25
+88
1 kanalda
Get PRO
Yanvar '25
+335
3 kanalda
Get PRO
Dekabr '24
+33
0 kanalda
Get PRO
Noyabr '24
+58
0 kanalda
Get PRO
Oktabr '24
+84
2 kanalda
Get PRO
Sentabr '24
+54
2 kanalda
Get PRO
Avgust '24
+97
4 kanalda
Get PRO
Iyul '24
+130
0 kanalda
Get PRO
Iyun '24
+357
1 kanalda
Get PRO
May '24
+577
3 kanalda
Get PRO
Aprel '24
+97
0 kanalda
Get PRO
Mart '24
+105
1 kanalda
Get PRO
Fevral '24
+270
6 kanalda
Get PRO
Yanvar '24
+143
2 kanalda
Get PRO
Dekabr '23
+119
2 kanalda
Get PRO
Noyabr '23
+37
0 kanalda
Get PRO
Oktabr '23
+43
2 kanalda
Get PRO
Sentabr '23
+41
0 kanalda
Get PRO
Avgust '23
+44
0 kanalda
Get PRO
Iyul '23
+52
0 kanalda
Get PRO
Iyun '23
+39
0 kanalda
Get PRO
May '23
+33
0 kanalda
Get PRO
Aprel '23
+40
0 kanalda
Get PRO
Mart '23
+32
0 kanalda
Get PRO
Fevral '23
+35
0 kanalda
Get PRO
Yanvar '23
+78
0 kanalda
Get PRO
Dekabr '22
+36
0 kanalda
Get PRO
Noyabr '22
+32
0 kanalda
Get PRO
Oktabr '22
+43
0 kanalda
Get PRO
Sentabr '22
+51
0 kanalda
Get PRO
Avgust '22
+52
0 kanalda
Get PRO
Iyul '22
+48
0 kanalda
Get PRO
Iyun '22
+63
0 kanalda
Get PRO
May '22
+41
0 kanalda
Get PRO
Aprel '22
+63
0 kanalda
Get PRO
Mart '22
+51
0 kanalda
Get PRO
Fevral '22
+51
0 kanalda
Get PRO
Yanvar '22
+60
0 kanalda
Get PRO
Dekabr '21
+159
0 kanalda
Get PRO
Noyabr '21
+63
0 kanalda
Get PRO
Oktabr '21
+151
0 kanalda
Get PRO
Sentabr '21
+49
0 kanalda
Get PRO
Avgust '21
+167
0 kanalda
Get PRO
Iyul '21
+246
0 kanalda
Get PRO
Iyun '21
+67
0 kanalda
Get PRO
May '21
+29
0 kanalda
Get PRO
Aprel '21
+101
0 kanalda
Get PRO
Mart '21
+115
0 kanalda
Get PRO
Fevral '21
+267
0 kanalda
Get PRO
Yanvar '21
+62
0 kanalda
Get PRO
Dekabr '20
+915
0 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
04 Iyun0
03 Iyun+1
02 Iyun0
01 Iyun+1
Kanal postlari
Приглашаем вас на совместный вебинар AXENIX и вендора BR Systems, посвященный XLTable — OLAP‑системе с широким функционалом д
Приглашаем вас на совместный вебинар AXENIX и вендора BR Systems, посвященный XLTable — OLAP‑системе с широким функционалом для работы с данными ClickHouse и Trino и поддержкой протокола XMLA в Excel. Эксперты подробно расскажут об XLTable и его основных преимуществах: быстроте внедрения, отсутствии дублирования данных, снижении затрат на TCO, бессрочной лицензии и других. В рамках вебинара вас ждет: 🔸Обзор рынка OLAP-систем 🔸Демо системы XL Table от BR Systems 🔸Разбор реальных кейсов крупных компаний Также у вас будет возможность задать свои вопросы. Для участия необходимо зарегистрироваться на сайте. На указанную вами почту придет ссылка на вебинар. Подключайтесь к нам 21 мая в 16:00. До встречи! XLTable: Telegram | Сайт

2
PostgreSQL 16: Оптимизация запросов 🖥 Вчера случайно заметил, что на Postgres Pro появилась новая книга PostgreSQL 16: Оптимизация запросов. Книга основана на курсе лекций про оптимизацию, который, к слову, также доступен бесплатно. Понравилось, что книга небольшая и без лишней воды, сразу приступает к делу без длительных прелюдий и философских размышлений. Рекомендую 🍻
1 799
3
Эффективно управлять сложностью можно через абстракции. Например, через практики внедрения дизайн-паттернов, DDD, выбор более высокоуровневых технологий. Расширяемость Требования к работе приложений меняются, а значит и оно само должно меняться. Чтобы внесение изменений не превратились в страшный сон необходимо постоянно пересматривать организацию кода, закрывать технический долг, внедрять непрерывное тестирование через практики TDD, XP. Чем проще вносить изменения в систему тем выше её расширяемость и тем ниже связность между её частями.
1 329
4
Отказоустойчивость железа достигается через добавление избыточных компонентов, например, в системе может быть несколько жестких дисков, подключенных в режиме RAID-массива. В случае распределённых систем, запросы могут был равномерно распределены между несколькими независимыми машинами внутри дата-центра. Случается и так, что требуется отказоустойчивость на уровне дата-центра, тогда машины распределяют по нескольким физически независимым точкам (например, разные регионы AWS). Важно придерживаться здравого смысла и понимать какого уровня отказоустойчивости вам будет достаточно. Отказоустойчивость кода чуть сложнее. В первую очередь потому что один и тот же код может исполняться на большом пуле физически независимых друг от друга машин. Одна и та же ошибка в коде может автоматически попадать на все узлы сразу. Универсальных рецептов как избавиться от таких проблем нет, необходимо повышать прозрачность того, что происходит на железе, мониторить основные метрики (а они могут быть относительными), настраивать observability и регулярно просматривать данные. Для предотвращения повторных инцидентов полезно практиковать написание т.н. postmortems. Это анализ прошедших сбоев с целью изучения, понимания и дальнейшего предотвращения повторных случаев. Масштабируемость Масштабируемая система это система, способная работать предсказуемо надёжно в условиях увеличивающейся нагрузки. Важно понимать что не всегда система обязана быть масштабируемой. Если вы разрабатываете внутреннюю систему с ограниченным количество пользователей, то нет смысла задумываться о масштабировании, т.к. ни о каком кратном увеличении нагрузки и речи быть не может. Улучшить масштабируемость можно несколькими способами: - Добавлением новых ресурсов (улучшение памяти, дисков, CPU), вертикальное масштабирование (vertical scaling) - Добавлением новых машин, горизонтальное масштабирование (horizontal scaling) Автор подход с горизонтальным масштабированием разбивает на два: 1. Shared-Disk Architecture 2. Shared-Nothing Architecture Первый тип подразумевает отдельные машины, но все они делят между собой единый диск (например, NAS), куда пишут или откуда читают данные. Второй тип пропагандирует отсутствие общих ресурсов, а значит независимость при работе. В случае с первым типом у кластера есть бутылочное горлышко в виде общего сетевого диска. Второй подход подразумеваем более сложную организацию работы с данными (партицирование, шардирование). Следует помнить, что нет универсальных принципов, подходящих для всех. Когда речь заходит о масштабировании и улучшении производительности, то всё становится сугубо относительным и зависит от самого приложения, нюансов организации данных и технологий, используемых для его функционирования. Поддержка Львиная доля затрат приходится не на первоначальную разработку системы, а на её дальнейшую поддержку. Живая функционирующая система требует постоянной поддержки и развития. До сих пор в мире функционируют системы, разработанные на заре появления первых вычислительных машин. Возможно и ваше приложение выдержит проверку временем и в будущем будет активно поддерживаться другими людьми. Чтобы снизить тяжесть бремени поддержки стоит придерживаться нескольких принципов: - Работоспособность (Operability) - Простота или управляемая сложность (Simplicity) - Расширяемость или жизнестойкость (Evolvability) Работоспособность - Автоматизация рутинных задач (например, CI/CD, внедрение DevOps практик) - Автоматический сбор и анализ состояния работы систем и подсистем (Observability & Monitoring) - Актуальная документация и база знаний - Внедрение практики дежурства и postmortems, SRE-практик Простота или управляемая сложность Авторы книги сложность системы делят на два типа: 1. Необходимая (Essential), она появляется из сложности самой доменной области приложения при проектировании 2. Случайная (Accidental), такой тип сложности уже возникает из-за ошибок в проектировании, организации кода, компромиссов при выборе технологий
1 000
5
Designing Data-Intensive Applications Глава 2. Defining Nonfunctional Requirements Вторая глава книги посвящена нефункциональным требованиям к разрабатываемым нами системам. Под нефункциональными требованиями автор подразумевает: - Производительность (Performance) - Надёжность (Reliability) и отказоустойчивость (Fault Tolerance) - Масштабирование (Scalability) - Поддержка (Maintainability) Система может быть полностью корректна с точки зрения функциональных (т.н. бизнес) требований, но неудобна в использования из-за проблем с надёжностью (потеря данных), производительностью (частые “зависания” из-за нагрузки). Поэтому нефункциональным требованиям также необходимо уделять внимание. Мартин во второй главе книги разбирает пример ленты из соцсети. Как корректная с т.з. функционала фича может быть абсолютно неюзабельна с точки зрения производительности при росте числа пользователей и постов. Производительность Производительность определяется двумя метриками: 1. Время ответа 2. Пропускная способность Время ответа (response time) — время, затраченное с момента начала запроса до момента получения ответа от системы. Обычно измеряется в секундах, миллисекундах или микросекундах. Чем этот показатель ниже тем производительность выше. Но на него могут влиять факторы не зависящие от самой системы напрямую (например, скорость клиента). Пропускная способность (throughput) — максимальное количество запросов или единиц (МБ, ГБ, ТБ) данных в секунду, которое система способна обработать. Чем выше показатель тем производительность системы лучше. С точки зрения конечного пользователя лучшая метрика это время ответа от системы. Именно она влияет на положительный опыт взаимодействия с ней. Пропускная способность системы же определяет возможности вычислительных ресурсов системы (железа, производительности кода). Есть ещё одна метрика, которую часто путают с временем ответа это задержка (latency). Автор пишет, что эти два термина зачастую используют как взаимозаменяющие, но на практике задержка означает время, необходимое для доставки сетевых пакетов до пункта назначения и обратно (после обработки запроса). То есть, время ответа уже включает в себя время задержки, т.е. response time > latency практически всегда. Для измерения производительности используется базовая статистика, а именно: - Арифметическое среднее (Mean) - Медиана (Median) - Процентиль (Percentile) Использовать арифметическое среднее для измерения времени ответа некорректно (но применимо для измерения пропускной способности). Оно не даёт объективной картины, т.к. сильно подвержено влиянию выбросов (outliers). Лучше всего подходит процентиль. Медиана, например, является 50-м процентилем (p50). Если, например, медиана времени ответа 200мс, то это значит что 50% пользователей получили ответа до 200мс, а остальные 50% от 200мс и выше. Лучше всего использовать p90, p95, p99. Надежность Надёжная система подразумевает что: - Она соответствует ожиданиям пользователя (функциональным) - Корректно обрабатывает ошибки от пользователя (некорректный ввод, нестандартное поведение) - Производительность соответствует ожиданиям пользователя - Защищает от несанкционированного доступа к личным данным Отказоустойчивая система подразумевает, что в случае выхода из строя части системы она продолжает свою работу. Например, отказ работы одного из жестких дисков или физической машины не должен повлиять на работоспособность приложения. Для проектирования отказоустойчивых систем практикуют т.н. Chaos Engineering. Это инженерная дисциплина, направленная на проверку надёжности распределенных систем через регулярное внедрение преднамеренных сбоев (увеличение сетевых задержек, отключение серверов и т.д.)
876
6
Ребят, всем привет! Я не забыл про книгу, скоро будет конспект по второй главе (был перерыв). А пока я пишу конспект, то предлагаю вам насладиться подкастом с автором книги Designing Data-Intensive Applications Martin Kleppmann у Gergely Orosz — Designing Data-intensive Applications with Martin Kleppmann
1 880
7
Народ, как вам идея, если канал контент канала впредь будет только на английском языке?
1 208