ar
Feedback
DataEng

DataEng

الذهاب إلى القناة على Telegram

Data Engineering & Distributed Systems Contact @adilkhash

إظهار المزيد
4 410
المشتركون
لا توجد بيانات24 ساعات
+47 أيام
+1730 أيام

جاري تحميل البيانات...

سحابة العلامات
لا توجد بيانات
هل تواجه مشاكل؟ يرجى تحديث الصفحة أو الاتصال بمدير الدعم الخاص بنا.
الإشارات الواردة والصادرة
---
---
---
---
---
---
جذب المشتركين
يونيو '26
يونيو '26
+2
في 0 قنوات
مايو '26
+51
في 0 قنوات
Get PRO
أبريل '26
+57
في 0 قنوات
Get PRO
مارس '26
+45
في 1 قنوات
Get PRO
فبراير '26
+61
في 0 قنوات
Get PRO
يناير '26
+49
في 1 قنوات
Get PRO
ديسمبر '25
+60
في 1 قنوات
Get PRO
نوفمبر '25
+62
في 1 قنوات
Get PRO
أكتوبر '25
+94
في 2 قنوات
Get PRO
سبتمبر '25
+46
في 0 قنوات
Get PRO
أغسطس '25
+42
في 2 قنوات
Get PRO
يوليو '25
+90
في 0 قنوات
Get PRO
يونيو '25
+44
في 1 قنوات
Get PRO
مايو '25
+58
في 3 قنوات
Get PRO
أبريل '25
+53
في 2 قنوات
Get PRO
مارس '25
+55
في 0 قنوات
Get PRO
فبراير '25
+88
في 1 قنوات
Get PRO
يناير '25
+335
في 3 قنوات
Get PRO
ديسمبر '24
+33
في 0 قنوات
Get PRO
نوفمبر '24
+58
في 0 قنوات
Get PRO
أكتوبر '24
+84
في 2 قنوات
Get PRO
سبتمبر '24
+54
في 2 قنوات
Get PRO
أغسطس '24
+97
في 4 قنوات
Get PRO
يوليو '24
+130
في 0 قنوات
Get PRO
يونيو '24
+357
في 1 قنوات
Get PRO
مايو '24
+577
في 3 قنوات
Get PRO
أبريل '24
+97
في 0 قنوات
Get PRO
مارس '24
+105
في 1 قنوات
Get PRO
فبراير '24
+270
في 6 قنوات
Get PRO
يناير '24
+143
في 2 قنوات
Get PRO
ديسمبر '23
+119
في 2 قنوات
Get PRO
نوفمبر '23
+37
في 0 قنوات
Get PRO
أكتوبر '23
+43
في 2 قنوات
Get PRO
سبتمبر '23
+41
في 0 قنوات
Get PRO
أغسطس '23
+44
في 0 قنوات
Get PRO
يوليو '23
+52
في 0 قنوات
Get PRO
يونيو '23
+39
في 0 قنوات
Get PRO
مايو '23
+33
في 0 قنوات
Get PRO
أبريل '23
+40
في 0 قنوات
Get PRO
مارس '23
+32
في 0 قنوات
Get PRO
فبراير '23
+35
في 0 قنوات
Get PRO
يناير '23
+78
في 0 قنوات
Get PRO
ديسمبر '22
+36
في 0 قنوات
Get PRO
نوفمبر '22
+32
في 0 قنوات
Get PRO
أكتوبر '22
+43
في 0 قنوات
Get PRO
سبتمبر '22
+51
في 0 قنوات
Get PRO
أغسطس '22
+52
في 0 قنوات
Get PRO
يوليو '22
+48
في 0 قنوات
Get PRO
يونيو '22
+63
في 0 قنوات
Get PRO
مايو '22
+41
في 0 قنوات
Get PRO
أبريل '22
+63
في 0 قنوات
Get PRO
مارس '22
+51
في 0 قنوات
Get PRO
فبراير '22
+51
في 0 قنوات
Get PRO
يناير '22
+60
في 0 قنوات
Get PRO
ديسمبر '21
+159
في 0 قنوات
Get PRO
نوفمبر '21
+63
في 0 قنوات
Get PRO
أكتوبر '21
+151
في 0 قنوات
Get PRO
سبتمبر '21
+49
في 0 قنوات
Get PRO
أغسطس '21
+167
في 0 قنوات
Get PRO
يوليو '21
+246
في 0 قنوات
Get PRO
يونيو '21
+67
في 0 قنوات
Get PRO
مايو '21
+29
في 0 قنوات
Get PRO
أبريل '21
+101
في 0 قنوات
Get PRO
مارس '21
+115
في 0 قنوات
Get PRO
فبراير '21
+267
في 0 قنوات
Get PRO
يناير '21
+62
في 0 قنوات
Get PRO
ديسمبر '20
+915
في 0 قنوات
التاريخ
نمو المشتركين
الإشارات
القنوات
04 يونيو0
03 يونيو+1
02 يونيو0
01 يونيو+1
منشورات القناة
Приглашаем вас на совместный вебинар 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