Kubernetes for Data Engineers
یک مقاله مفید و مختصر در خصوص آشنایی با کوبرنتیز برای مهندسین داده با لینکهای مناسب برای شروع کار
We do live in the Age of Containers, it’s the world we all live in. Docker has become standard. Data has grown. Everyone and everything is in the cloud. The Modern Data Stack we’ve all been working low these many hard years has only made the need for an agnostic and scalable container platform more real.
And this brings us to today’s topic.
We want to give Data Engineers an introduction to Kubernetes. It’s a tool everyone talks about, but not that many folks get a chance to get their hands dirty with.
https://dataengineeringcentral.substack.com/p/kubernetes-for-data-engineers?utm_source=substack&utm_medium=email
یک مقاله مفید و مختصر در خصوص آشنایی با کوبرنتیز برای مهندسین داده با لینکهای مناسب برای شروع کار
We do live in the Age of Containers, it’s the world we all live in. Docker has become standard. Data has grown. Everyone and everything is in the cloud. The Modern Data Stack we’ve all been working low these many hard years has only made the need for an agnostic and scalable container platform more real.
And this brings us to today’s topic.
We want to give Data Engineers an introduction to Kubernetes. It’s a tool everyone talks about, but not that many folks get a chance to get their hands dirty with.
https://dataengineeringcentral.substack.com/p/kubernetes-for-data-engineers?utm_source=substack&utm_medium=email
Substack
Kubernetes for Data Engineers
The Age of Containers
❤8
بعد از اتمام دوره بیگدیتای همکاران سیستم، یکی از دانشجویان این دوره به من پیام داد که اگر بخواهم یک کار عملی توی حوزه مهندسی داده انجام بدم که مفاهیم اصلی مورد نیاز را به صورت عملی کار کنم، چه پروژه ای پیشنهاد میدهید.
پیشنهاد من ایجاد یک خط پردازش داده بود که دادههای یک وب سایت تجاری به کمک CDC و Debezium از پستگرس دریافت و وارد کافکا شود. در مرحله بعد هم این دادهها به صورت خودکار توسط کلیکهوس دریافت شده و در جداول تحلیلی متناظر در Clickhouse ذخیره شده و نهایتا با ابزارهای گرافیکی نمایش داده شود.
برای تولید دادهها هم از ایرفلو در بازههای زمانی کوتاه برای شبیه سازی یک وبسایت خرید و فروش محصول، استفاده شود.
خروجی ای که آقا بهنام یزدانپناهی @behnamyzp عزیز آماده کرد خیلی فراتر از انتظارم بود.
کل پروژه که روند فوق در آن پیاده سازی شده و نتایج در گرافانا نمایش داده شده است به همراه توضیحات لازم برای اجرای آن در آدرس زیر قرار گرفته است :
https://github.com/behnamyazdan/ecommerce_realtime_data_pipeline/
برای دوستانی که علاقهمند به حوزه مهندسی داده و مباحث زیرساختی هستند، یک نقطه شروع بسیار عالی است و برای دوستانی که با پستگرس کار میکنند میتوانند از ایده انتقال دادهها به کلیک هوس و اجرای کوئریهای تحلیلی بر روی آن استفاده کنند.
هر چند بهتر است ساختار طراحی شده برای کلیک هوس تغییر کند به گونهای که به جای تمامی جداول بخش خرید و فروش، چند جدول اصلی اما بزرگ (با حذف نرمالسازی که در دیتابیسهای تحلیلی کاملا روال است) داشته باشیم و با ابزارهایی مانند dbt، با اجرای کوئریهایی در بازههای زمانی کوتاه، این جداول تحلیلی از روی جداول پایه دریافت شده از کافکا، پرشده و جداول پایه، با تنظیم مقدار TTL مناسب، به صورت خودکار حذف شوند.
ضمن تشکر مجدد از آقا بهنام عزیز ، این پست را با کسب اجازه از ایشان در اینجا منتشر میکنم. باشد که برای علاقهمندان، مفید باشد.
لینک توضیحات خود بهنام عزیز در لینکدین :
https://www.linkedin.com/posts/behnam-yazdanpanahi_ecommerceabrdataabrpipeline-cdc-kafka-activity-7172687833793445888-USBb
#مهندسی_داده #clickhouse #airflow #cdc #postgresql #Debezium #پستگرس #خطوط_پردازش_داده
پیشنهاد من ایجاد یک خط پردازش داده بود که دادههای یک وب سایت تجاری به کمک CDC و Debezium از پستگرس دریافت و وارد کافکا شود. در مرحله بعد هم این دادهها به صورت خودکار توسط کلیکهوس دریافت شده و در جداول تحلیلی متناظر در Clickhouse ذخیره شده و نهایتا با ابزارهای گرافیکی نمایش داده شود.
برای تولید دادهها هم از ایرفلو در بازههای زمانی کوتاه برای شبیه سازی یک وبسایت خرید و فروش محصول، استفاده شود.
خروجی ای که آقا بهنام یزدانپناهی @behnamyzp عزیز آماده کرد خیلی فراتر از انتظارم بود.
کل پروژه که روند فوق در آن پیاده سازی شده و نتایج در گرافانا نمایش داده شده است به همراه توضیحات لازم برای اجرای آن در آدرس زیر قرار گرفته است :
https://github.com/behnamyazdan/ecommerce_realtime_data_pipeline/
برای دوستانی که علاقهمند به حوزه مهندسی داده و مباحث زیرساختی هستند، یک نقطه شروع بسیار عالی است و برای دوستانی که با پستگرس کار میکنند میتوانند از ایده انتقال دادهها به کلیک هوس و اجرای کوئریهای تحلیلی بر روی آن استفاده کنند.
هر چند بهتر است ساختار طراحی شده برای کلیک هوس تغییر کند به گونهای که به جای تمامی جداول بخش خرید و فروش، چند جدول اصلی اما بزرگ (با حذف نرمالسازی که در دیتابیسهای تحلیلی کاملا روال است) داشته باشیم و با ابزارهایی مانند dbt، با اجرای کوئریهایی در بازههای زمانی کوتاه، این جداول تحلیلی از روی جداول پایه دریافت شده از کافکا، پرشده و جداول پایه، با تنظیم مقدار TTL مناسب، به صورت خودکار حذف شوند.
ضمن تشکر مجدد از آقا بهنام عزیز ، این پست را با کسب اجازه از ایشان در اینجا منتشر میکنم. باشد که برای علاقهمندان، مفید باشد.
لینک توضیحات خود بهنام عزیز در لینکدین :
https://www.linkedin.com/posts/behnam-yazdanpanahi_ecommerceabrdataabrpipeline-cdc-kafka-activity-7172687833793445888-USBb
#مهندسی_داده #clickhouse #airflow #cdc #postgresql #Debezium #پستگرس #خطوط_پردازش_داده
GitHub
GitHub - behnamyazdan/ecommerce_realtime_data_pipeline: Ecommerce Realtime Data Pipeline (Data Modeling, Workflow Orchestration…
Ecommerce Realtime Data Pipeline (Data Modeling, Workflow Orchestration, Change Data Capture, Analytical Database and Dashboarding) - behnamyazdan/ecommerce_realtime_data_pipeline
❤9
فرا رسیدن سال نو همیشه نوید بخش افکار نو،
کردار نو و تصمیم های نو برای آینده است،
آینده ای که همه امید داریم بهتر از گذشته باشد.
برای تمامی عزیزان کانال مهندسی داده، شادی و تندرستی آرزو میکنم. می دانم که زندگی همیشه مملو از دشواری و چالش است اما امیدوارم در سال نو، بتوانیم معادلات پیچیدهی زندگی را با آرامش و موفقیت حل کنیم.
در سال جدید، برنامه دارم که این کانال و سایت مهندسی داده را به صورت منظمتر و کارآمدتر به روزرسانی کنم و مطالب مفید و به روز دنیای بسیار متنوع مهندسی داده را به صورت دستچین شده در اختیار شما عزیزان قرار دهم. امیدوارم که بتوانم در این مسیر با دعای خیر و انرژی مثبت شما موفق شوم.
ارادتمند
مجتبی بنائی
#سال_نو_مبارک 🌺
کردار نو و تصمیم های نو برای آینده است،
آینده ای که همه امید داریم بهتر از گذشته باشد.
برای تمامی عزیزان کانال مهندسی داده، شادی و تندرستی آرزو میکنم. می دانم که زندگی همیشه مملو از دشواری و چالش است اما امیدوارم در سال نو، بتوانیم معادلات پیچیدهی زندگی را با آرامش و موفقیت حل کنیم.
در سال جدید، برنامه دارم که این کانال و سایت مهندسی داده را به صورت منظمتر و کارآمدتر به روزرسانی کنم و مطالب مفید و به روز دنیای بسیار متنوع مهندسی داده را به صورت دستچین شده در اختیار شما عزیزان قرار دهم. امیدوارم که بتوانم در این مسیر با دعای خیر و انرژی مثبت شما موفق شوم.
ارادتمند
مجتبی بنائی
#سال_نو_مبارک 🌺
❤10
arch_v3_workshops.jpg
309.2 KB
یکی از کانالهای فعال یوتیوب در زمینه مهندسی داده، کانال DataTalksClub است که به صورت منظم ابزارهای نوین حوزه مهندسی و علم داده را معرفی میکند و مطالب و کارگاهها و رخدادهای زیادی را هم در این حوزه به کمک جامعه کاربری خود مدیریت میکند.
یکی از رخدادهایی که این سایت به صورت منظم برگراز میکند، کارگاه عملی مبانی مهندسی داده با Data Engineering Zoomcamp است. اگر علاقهمند به یادگیری مفاهیم اولیه مهندسی داده هستید و یا در این حوزه مشغول به فعالیت هستید و مایلید با ابزارهای نسبتا جدید این حوزه مانند Mage.ai , RisingWave (میج یکی از گزینه های اصلی جایگزینی با ایرفلو در خطوط پردازش داده است) و یا data load tool (dlt)به صورت عملی کار کنید، این کارگاه مناسب شماست.
https://github.com/DataTalksClub/data-engineering-zoomcamp
یکی از رخدادهایی که این سایت به صورت منظم برگراز میکند، کارگاه عملی مبانی مهندسی داده با Data Engineering Zoomcamp است. اگر علاقهمند به یادگیری مفاهیم اولیه مهندسی داده هستید و یا در این حوزه مشغول به فعالیت هستید و مایلید با ابزارهای نسبتا جدید این حوزه مانند Mage.ai , RisingWave (میج یکی از گزینه های اصلی جایگزینی با ایرفلو در خطوط پردازش داده است) و یا data load tool (dlt)به صورت عملی کار کنید، این کارگاه مناسب شماست.
https://github.com/DataTalksClub/data-engineering-zoomcamp
👍1
https://dev.to/taipy/21-ai-tools-that-are-changing-the-world-1o54
کدنویسی جزء ضروری کارهای روزانه یک مهندس داده است و امروزه ابزارهای متنوعی برای افزایش کارآیی برنامه نویسی از طریق هوش مصنوعی، ایجاد و توسعه داده شدهاند. اگر روزانه به کدنویسی بخصوص با VS Code مشغول هستید این لیست ارزشمند را از دست ندهید.
کدنویسی جزء ضروری کارهای روزانه یک مهندس داده است و امروزه ابزارهای متنوعی برای افزایش کارآیی برنامه نویسی از طریق هوش مصنوعی، ایجاد و توسعه داده شدهاند. اگر روزانه به کدنویسی بخصوص با VS Code مشغول هستید این لیست ارزشمند را از دست ندهید.
DEV Community
21 AI Tools that are changing the World
The world is full of promising AI tools like Sora, ChatGPT, and more coming along the way. I've...
به نظر می رسد زبان جدید موجو که توسط یکی از نامهای مطرح در اکوسیستم طراحی زبانهای نوین برنامهنویسی و با در نظرگرفتن تمامی پیشرفتهای سختافزاری و نرم افزاری اخیر در این حوزه پا به عرصه وجود گذاشته است با گرامری تقریبا شبیه پایتون و با سرعتی بالاتر از Rust یکی از اصلی ترین گزینههای سالهای آتی برای حوزه هوش مصنوعی و مهندسی داده خواهد بود.
https://www.bigdata.ir/1403/02/mojo-%d8%af%d8%b1-%d9%85%d9%82%d8%a7%d8%a8%d9%84-rust-%d8%a8%d8%b1%d9%86%d8%af%d9%87-%d9%82%d8%b7%d8%b9%d8%a7-mojo-%d8%ae%d9%88%d8%a7%d9%87%d8%af-%d8%a8%d9%88%d8%af/
https://www.bigdata.ir/1403/02/mojo-%d8%af%d8%b1-%d9%85%d9%82%d8%a7%d8%a8%d9%84-rust-%d8%a8%d8%b1%d9%86%d8%af%d9%87-%d9%82%d8%b7%d8%b9%d8%a7-mojo-%d8%ae%d9%88%d8%a7%d9%87%d8%af-%d8%a8%d9%88%d8%af/
مهندسی داده
Mojo در مقابل Rust :برنده قطعا Mojo خواهد بود! - مهندسی داده
آیا زبان Mojo میتواند دغدغه فعالان هوش مصنوعی در خصوص کارآیی پایین پایتون را رفع کند ؟ در این نوشتار به این موضوع و مقایسه این زبان با Rust می پردازیم.
👍2
2.jpg
119.9 KB
یکی از پروژههای بنیاد آپاچی که امروزه به تدریج در اخبار و مقالات حوزه داده در حال دیدهشدن است، Apache XTable است. این پروژه تنها یک هدف دارد و آن هم امکان تبدیل سه فرمت رایج ساخت Lakehouse یعنی
- Deltalake
- Apache Iceberge
- Apache Hudi
است که در شکل الصاقشده هم به تصویر کشیده شده است . در این شکل تیم B از طریق XTable, دادههای تیم A که به فرمت Hudi ذخیره شده است را به Iceberge تبدیل کرده و در کنار سایر دادههای خود، آنها را با Dremio پردازش میکند.
پ.ن. امروزه به نظر میرسد که Apache Iceberge در حال جذب کاربران بیشتری است و اگر قصد طراحی یک Lakehouse را دارید، از ابتدا این فرمت را انتخاب کنید.
Lakehouse
چیست؟
ترکیب دریاچه داده (که دادهها را به صورت خام و معمولا به صورت Parquet و مانند آن نگهداری میکند) و انباره داده است که اجازه میدهد بتوانیم دادههای خام را با ذخیرهکردن متادیتا، به نوعی دیتابیس تبدیل کنیم که مستقیما قابل کوئری گرفتن و استفاده در ابزارهای تحلیلی و گزارش سازی باشد
مقاله اصلی : https://www.onehouse.ai/blog/dremio-lakehouse-analytics-with-hudi-and-iceberg-using-xtable
- Deltalake
- Apache Iceberge
- Apache Hudi
است که در شکل الصاقشده هم به تصویر کشیده شده است . در این شکل تیم B از طریق XTable, دادههای تیم A که به فرمت Hudi ذخیره شده است را به Iceberge تبدیل کرده و در کنار سایر دادههای خود، آنها را با Dremio پردازش میکند.
پ.ن. امروزه به نظر میرسد که Apache Iceberge در حال جذب کاربران بیشتری است و اگر قصد طراحی یک Lakehouse را دارید، از ابتدا این فرمت را انتخاب کنید.
Lakehouse
چیست؟
ترکیب دریاچه داده (که دادهها را به صورت خام و معمولا به صورت Parquet و مانند آن نگهداری میکند) و انباره داده است که اجازه میدهد بتوانیم دادههای خام را با ذخیرهکردن متادیتا، به نوعی دیتابیس تبدیل کنیم که مستقیما قابل کوئری گرفتن و استفاده در ابزارهای تحلیلی و گزارش سازی باشد
مقاله اصلی : https://www.onehouse.ai/blog/dremio-lakehouse-analytics-with-hudi-and-iceberg-using-xtable
👍5
Forwarded from عکس نگار
آیا ترتیب ستونها در کارآیی دیتابیس، موثر است ؟
اگر شما هم فکر میکنید که ترتیب ستونها تاثیری در اجرای کوئری ها ندارد، مقاله زیر که به بررسی این موضوع در پستگرس پرداخت است را از دست ندهید .
https://demirhuseyinn-94.medium.com/the-surprising-power-of-humble-column-ordering-in-postgresql-ce7c7d587a27
خلاصه مقاله این است که فیلدهای با طول متغیر و فیلدهای Nullable بهتر است به انتهای لیست منتقل شوند و فیلدهای مشابه کنار هم قرار گیرند.
CREATE TABLE user_order_default (
is_shipped BOOLEAN NOT NULL DEFAULT false,
user_id BIGINT NOT NULL,
order_total NUMERIC NOT NULL,
order_dt TIMESTAMPTZ NOT NULL,
order_type SMALLINT NOT NULL,
ship_dt TIMESTAMPTZ,
item_ct INT NOT NULL,
ship_cost NUMERIC,
receive_dt TIMESTAMPTZ,
tracking_cd TEXT,
id BIGSERIAL PRIMARY KEY NOT NULL
);
CREATE TABLE user_order_tweaked (
id BIGSERIAL PRIMARY KEY NOT NULL,
user_id BIGINT NOT NULL,
order_dt TIMESTAMPTZ NOT NULL,
ship_dt TIMESTAMPTZ,
receive_dt TIMESTAMPTZ,
item_ct INT NOT NULL,
order_type SMALLINT NOT NULL,
is_shipped BOOLEAN NOT NULL DEFAULT false,
order_total NUMERIC NOT NULL,
ship_cost NUMERIC,
tracking_cd TEXT
);
SELECT pg_relation_size('user_order_default') AS size_bytes,
pg_size_pretty(pg_relation_size('user_order_default')) AS size_pretty;
SELECT pg_relation_size('user_order_tweaked') AS size_bytes,
pg_size_pretty(pg_relation_size('user_order_tweaked')) AS size_pretty;
size_bytes | size_pretty
------------+-------------
141246464 | 135 MB
(1 row)
size_bytes | size_pretty
------------+-------------
117030912 | 112 MB
تفاوت اندازه دو تا جدول فوق که تنها ترتیب ستونهای آنها متفاوت است را در پستگرس مشاهده میکنید (بخشی از مقاله فوق) که کاملا نشان میدهد فضای ذخیره سازی متاثر از ترتیب ستونهاست و سرعت پاسخگویی کوئریها هم قطعا تحث تاثیر قرار خواهد گرفت.
#postgresql #column_ordering #postgresql_performance
اگر شما هم فکر میکنید که ترتیب ستونها تاثیری در اجرای کوئری ها ندارد، مقاله زیر که به بررسی این موضوع در پستگرس پرداخت است را از دست ندهید .
https://demirhuseyinn-94.medium.com/the-surprising-power-of-humble-column-ordering-in-postgresql-ce7c7d587a27
خلاصه مقاله این است که فیلدهای با طول متغیر و فیلدهای Nullable بهتر است به انتهای لیست منتقل شوند و فیلدهای مشابه کنار هم قرار گیرند.
CREATE TABLE user_order_default (
is_shipped BOOLEAN NOT NULL DEFAULT false,
user_id BIGINT NOT NULL,
order_total NUMERIC NOT NULL,
order_dt TIMESTAMPTZ NOT NULL,
order_type SMALLINT NOT NULL,
ship_dt TIMESTAMPTZ,
item_ct INT NOT NULL,
ship_cost NUMERIC,
receive_dt TIMESTAMPTZ,
tracking_cd TEXT,
id BIGSERIAL PRIMARY KEY NOT NULL
);
CREATE TABLE user_order_tweaked (
id BIGSERIAL PRIMARY KEY NOT NULL,
user_id BIGINT NOT NULL,
order_dt TIMESTAMPTZ NOT NULL,
ship_dt TIMESTAMPTZ,
receive_dt TIMESTAMPTZ,
item_ct INT NOT NULL,
order_type SMALLINT NOT NULL,
is_shipped BOOLEAN NOT NULL DEFAULT false,
order_total NUMERIC NOT NULL,
ship_cost NUMERIC,
tracking_cd TEXT
);
SELECT pg_relation_size('user_order_default') AS size_bytes,
pg_size_pretty(pg_relation_size('user_order_default')) AS size_pretty;
SELECT pg_relation_size('user_order_tweaked') AS size_bytes,
pg_size_pretty(pg_relation_size('user_order_tweaked')) AS size_pretty;
size_bytes | size_pretty
------------+-------------
141246464 | 135 MB
(1 row)
size_bytes | size_pretty
------------+-------------
117030912 | 112 MB
تفاوت اندازه دو تا جدول فوق که تنها ترتیب ستونهای آنها متفاوت است را در پستگرس مشاهده میکنید (بخشی از مقاله فوق) که کاملا نشان میدهد فضای ذخیره سازی متاثر از ترتیب ستونهاست و سرعت پاسخگویی کوئریها هم قطعا تحث تاثیر قرار خواهد گرفت.
#postgresql #column_ordering #postgresql_performance
👍6
Forwarded from عکس نگار
پستگرس که «در لطافت طبعش خلاف نیست»، به قول سعدی علیه الرحمه «در باغ لاله روید و در شوره زار خس». مفسرین بر این باورند که منظور شیخ این بوده است که این دیتابیس، گاهی اوقات بسیار عالی و خوب عمل میکند و برای بسیاری از کاربردهای امروزی که نیاز به کوئریهای پیچیده روی حجم عظیم دیتای ورودی داریم، ما را با چالشهای جدی مواجه میکند.
در وبینار زیر، به این پرسش اساسی پاسخ میدهیم که اگر با پستگرس در مواجهه با دادههای زیاد به چالش برخوردیم، چه کنیم و اصلا آیا پستگرس برای خیلی از نیازمندیهای امروز میتواند گزینه مناسبی باشد یا نه ؟ مروری بر راهحلهای کلاسیک این مساله و راهحلهایی که در چند سال اخیر پیش روی ما قرار گرفته است میپردازیم.
دیتابیسهایی مبتنی بر پستگرس مانند ParadeDB، دیتابیسهایی با پروتکل پستگرس مانند CockroachDB و RisingWave و افزونههایی مانند Hydra را بررسی می کنیم.
اگر در حال استفاده از پستگرس هستید و نگرانیهایی راجع به آن در مواجهه با نیازمندیهای جدید دارید، شاید این وبینار که به صورت عملی برگزار خواهد شد، برای شما مفید باشد.
https://anisa.co.ir/fa/news/2-uncategorised/298-workshop-23.html
#پستگرس #Postgres #PostgreSQL
در وبینار زیر، به این پرسش اساسی پاسخ میدهیم که اگر با پستگرس در مواجهه با دادههای زیاد به چالش برخوردیم، چه کنیم و اصلا آیا پستگرس برای خیلی از نیازمندیهای امروز میتواند گزینه مناسبی باشد یا نه ؟ مروری بر راهحلهای کلاسیک این مساله و راهحلهایی که در چند سال اخیر پیش روی ما قرار گرفته است میپردازیم.
دیتابیسهایی مبتنی بر پستگرس مانند ParadeDB، دیتابیسهایی با پروتکل پستگرس مانند CockroachDB و RisingWave و افزونههایی مانند Hydra را بررسی می کنیم.
اگر در حال استفاده از پستگرس هستید و نگرانیهایی راجع به آن در مواجهه با نیازمندیهای جدید دارید، شاید این وبینار که به صورت عملی برگزار خواهد شد، برای شما مفید باشد.
https://anisa.co.ir/fa/news/2-uncategorised/298-workshop-23.html
#پستگرس #Postgres #PostgreSQL
👍7
Forwarded from عکس نگار
کوبرنتیز برای نوجوانان 👆👆
اگر تاکنون فرصت نکردهاید با کوبرنتیز کار کنید، این کتاب مختصر و مفید که به کمک شکل و کد و بدون توضیحات اضافه، شما را مستقیم وارد دنیای جذاب مدیریت
پادها و کانتینرها با کوبرنتیز میکند، میتواند نقطه شروع خوبی برای شما باشد.
#کوبرنتیز #kubernetes
اگر تاکنون فرصت نکردهاید با کوبرنتیز کار کنید، این کتاب مختصر و مفید که به کمک شکل و کد و بدون توضیحات اضافه، شما را مستقیم وارد دنیای جذاب مدیریت
پادها و کانتینرها با کوبرنتیز میکند، میتواند نقطه شروع خوبی برای شما باشد.
#کوبرنتیز #kubernetes
❤3👍1
در دنیای امروز که با حجم عظیم دادهها و افزایش روزافزون سرعت تولید آنها روبرو هستیم، نیازهای جستجو و تحلیل بهموقع دادهها، ما را با چالشهایی مواجه میسازد که رفع آنها مستلزم دانش عمیق در زمینه زیرساختهای پایگاههای داده است. تنها با بهرهگیری از این دانش است که میتوانیم نقاط ضعف را شناسایی کرده و راهکارهای مناسب را برای پیشبرد اهداف کسب و کار خود اتخاذ نماییم. بدون درک کافی از پشت صحنه مدیریت و پردازش دادههای حجیم، غلبه بر موانع و دستیابی به عملکرد مطلوب، امری دشوار خواهد بود. کتاب Database Performance at Scale میتواند این دید عمیق و مهندسی را به شما بدهد.
https://www.bigdata.ir/1403/02/%d9%85%d8%b9%d8%b1%d9%81-%da%a9%d8%aa%d8%a7%d8%a8-database-performance-at-scale/
https://www.bigdata.ir/1403/02/%d9%85%d8%b9%d8%b1%d9%81-%da%a9%d8%aa%d8%a7%d8%a8-database-performance-at-scale/
مهندسی داده
معرفی کتاب : Database Performance at Scale - مهندسی داده
معرفی کتاب بررسی عوامل موثر بر کارآیی دیتابیس در مقیاس بزرگ که به عنوان یک مرجع مناسب برای مهندسین داده در عمق بخشیدن به بینش مهندسی آنها میتواند استفاده شود در این نوشته انجام شده است.
👍4❤1
مهاجرتها در دنیای داده، همیشه پیامهایی با خود به همراه دارند. اینکه چه مشکلات و مسایلی در دیتابیس یا معماری اولیه وجود داشته است که باعث شده است یک شرکت با وجود تمامی دردسرهایی که مهاجرت از یک زیرساخت داده به زیرساخت جدید دارد، آنرا انجام دهد.
در اوایل سال ۲۰۲۳، دیسکورد دیتابیس اصلی خود را از کاساندرا به ScyllaDB منتقل کرد و مدیریت میلیاردهای داده خود را به این دیتابیس که کاملا سازگار با کاساندرا اما با کارآیی بسیار بالاتر است، سپرد.
توصیه میکنیم اگر در حال استفاده از کاساندرا هستید و یا برای سامانههای اطلاعاتی خود به دنبال یک راهکار سریع و موثر هستید، این پست وبلاگ دیسکورد که این مهاجرت را به صورت فنی و البته به زبان ساده توضیح داده است، را از دست ندهید :
https://discord.com/blog/how-discord-stores-trillions-of-messages
پ.ن: دیسکورد در سال ۲۰۱۷ از مانگودیبی به کاساندرا مهاجرت کرد.
پ.ن۲: برای مشاهده سایر شرکتهایی که به این دیتابیس مهاجرت کردهاند و یا امکانات جدیدی که به این دیتابیس خوشآتیه افزوده شده است میتوانید به فهرست سخنرانیهای
ScyllaDB Summit 2024 (https://www.scylladb.com/scylladb-summit-2024/presentations/)
نگاهی بیندازید.
#کاساندرا #مهندسی_داده #ScyllaDB
در اوایل سال ۲۰۲۳، دیسکورد دیتابیس اصلی خود را از کاساندرا به ScyllaDB منتقل کرد و مدیریت میلیاردهای داده خود را به این دیتابیس که کاملا سازگار با کاساندرا اما با کارآیی بسیار بالاتر است، سپرد.
توصیه میکنیم اگر در حال استفاده از کاساندرا هستید و یا برای سامانههای اطلاعاتی خود به دنبال یک راهکار سریع و موثر هستید، این پست وبلاگ دیسکورد که این مهاجرت را به صورت فنی و البته به زبان ساده توضیح داده است، را از دست ندهید :
https://discord.com/blog/how-discord-stores-trillions-of-messages
پ.ن: دیسکورد در سال ۲۰۱۷ از مانگودیبی به کاساندرا مهاجرت کرد.
پ.ن۲: برای مشاهده سایر شرکتهایی که به این دیتابیس مهاجرت کردهاند و یا امکانات جدیدی که به این دیتابیس خوشآتیه افزوده شده است میتوانید به فهرست سخنرانیهای
ScyllaDB Summit 2024 (https://www.scylladb.com/scylladb-summit-2024/presentations/)
نگاهی بیندازید.
#کاساندرا #مهندسی_داده #ScyllaDB
Discord
How Discord Stores Trillions of Messages
Engineer Bo Ingram shares insight into how Discord shoulders its traffic and provides a platform for our users to communicate.
👍3❤1
اگر با پستگرس کار میکنید و
- قصد راهاندازی CDC را بر روی آن دارید، مثلا قصد دارید به ازای هر کاربر جدید یا هر سفارش جدید، یک رخداد جدید به صورت خودکار ایجاد شده و به کافکا ارسال گردد تا در یک پایپلاین پردازش داده، اقدام مناسب برای آن رخداد (مثلا ایجاد یک کدتخفیف سفارشی و ارسال به مشتری) انجام شود.
- یا میخواهید یک بکاپ از برخی جداول اصلی خود روی یک یا چند نود پستگرس دیگر ایجاد کنید
- و یا قصد دارید پردازشهای تحلیلی خود را به جای پستگرس بر روی کلیکهوس انجام بدهید و بار پردازشهای سنگین را از دوش پستگرس بردارید
برای تمامی این موارد، می توانید از PeerDB استفاده کنید. به صورت خیلی شیک و مجلسی و با یک Web UI ساده، جداول مورد نظر را انتخاب می کنید، مقصد انتقال (پستگرس یا کلیکهوس یا کافکا و ... ) را مشخص کرده و بقیه کار را به PeerDB بسپرید. این ابزار که بر محور پستگرس ایجاد شده است، میتواند دستیار خوب شما در انتقال دادهها از پستگرس به هر مقصد دیگری باشد (البته لیست مقاصد انتقال با جذب سرمایه اخیر این ابزار در حال گسترش است). مزایایی مثل سرعت چندبرابر نسبت به ابزارهای فعلی را میتوانید در مستندات این ابزار مفید پیدا کنید.
PeerDB: Our infrastructure is designed for real-time streaming from Postgres. If your application is latency-sensitive you can configure refresh intervals as low as a few seconds
PeerDB : https://docs.peerdb.io/quickstart/quickstart
#پستگرس #Postgres #PeerDB #PostgreSQL
- قصد راهاندازی CDC را بر روی آن دارید، مثلا قصد دارید به ازای هر کاربر جدید یا هر سفارش جدید، یک رخداد جدید به صورت خودکار ایجاد شده و به کافکا ارسال گردد تا در یک پایپلاین پردازش داده، اقدام مناسب برای آن رخداد (مثلا ایجاد یک کدتخفیف سفارشی و ارسال به مشتری) انجام شود.
- یا میخواهید یک بکاپ از برخی جداول اصلی خود روی یک یا چند نود پستگرس دیگر ایجاد کنید
- و یا قصد دارید پردازشهای تحلیلی خود را به جای پستگرس بر روی کلیکهوس انجام بدهید و بار پردازشهای سنگین را از دوش پستگرس بردارید
برای تمامی این موارد، می توانید از PeerDB استفاده کنید. به صورت خیلی شیک و مجلسی و با یک Web UI ساده، جداول مورد نظر را انتخاب می کنید، مقصد انتقال (پستگرس یا کلیکهوس یا کافکا و ... ) را مشخص کرده و بقیه کار را به PeerDB بسپرید. این ابزار که بر محور پستگرس ایجاد شده است، میتواند دستیار خوب شما در انتقال دادهها از پستگرس به هر مقصد دیگری باشد (البته لیست مقاصد انتقال با جذب سرمایه اخیر این ابزار در حال گسترش است). مزایایی مثل سرعت چندبرابر نسبت به ابزارهای فعلی را میتوانید در مستندات این ابزار مفید پیدا کنید.
PeerDB: Our infrastructure is designed for real-time streaming from Postgres. If your application is latency-sensitive you can configure refresh intervals as low as a few seconds
PeerDB : https://docs.peerdb.io/quickstart/quickstart
#پستگرس #Postgres #PeerDB #PostgreSQL
PeerDB Docs: Setup your ETL in minutes with SQL.
Quickstart Guide - PeerDB Docs: Setup your ETL in minutes with SQL.
Get started with PeerDB in a few simple steps.
👍7
Forwarded from عکس نگار
یکی از کتابهای خوبی که اخیرا توسط دانیال خسروی و جواد جعفری به فارسی ترجمه شده است، کتاب مصاحبه طراحی سیستمهای نرمافزاری است که به بررسی جنبههای مختلف طراحی سیستمهای نوین نرمافزاری پرداخته است.
هر چند این کتاب برای مهندسین نرمافزار و طراحان سیستمهای نرم افزاری نوشته است اما با توجه به اینکه مباحث مختلفی از توزیعپذیری و مقیاسپذیری در آن مطرح شده است،خواندن آنرا به تمامی علاقهمندان حوزه مهندسی داده، توصیه میکنیم.
در این کتاب، در هر یک از فصلهای کتاب، یک سیستم به طور کامل طراحی شده است که در زیر میتوانید عنوانهای آنها را مشاهده کنید.
Chapter 1: Scale From Zero To Millions Of Users
Chapter 2: Back-Of-The-Envelope Estimation
Chapter 3: A Framework For System Design Interviews
Chapter 4: Design A Rate Limiter
Chapter 5: Design Consistent Hashing
Chapter 6: Design A Key-Value Store
Chapter 7: Design A Unique Id Generator In Distributed Systems
Chapter 8: Design A Url Shortener
Chapter 9: Design A Web Crawler
Chapter 10: Design A Notification System
Chapter 11: Design A News Feed System
Chapter 12: Design A Chat System
Chapter 13: Design A Search Autocomplete System
Chapter 14: Design Youtube
Chapter 15: Design Google Drive
Chapter 16: The Learning Continues
برای دانلود نسخه الکترونیکی این کتاب، که با اجازه از مترجمین کتاب در اینجا قرار گرفته است، میتوانید از لینک زیر استفاده کنید :
https://uploadb.com/ug7rgpcgrutx
#طراحی_سیستم_های_مقیاس_پذیر #مهندسی_داده #معرفی_کتاب
هر چند این کتاب برای مهندسین نرمافزار و طراحان سیستمهای نرم افزاری نوشته است اما با توجه به اینکه مباحث مختلفی از توزیعپذیری و مقیاسپذیری در آن مطرح شده است،خواندن آنرا به تمامی علاقهمندان حوزه مهندسی داده، توصیه میکنیم.
در این کتاب، در هر یک از فصلهای کتاب، یک سیستم به طور کامل طراحی شده است که در زیر میتوانید عنوانهای آنها را مشاهده کنید.
Chapter 1: Scale From Zero To Millions Of Users
Chapter 2: Back-Of-The-Envelope Estimation
Chapter 3: A Framework For System Design Interviews
Chapter 4: Design A Rate Limiter
Chapter 5: Design Consistent Hashing
Chapter 6: Design A Key-Value Store
Chapter 7: Design A Unique Id Generator In Distributed Systems
Chapter 8: Design A Url Shortener
Chapter 9: Design A Web Crawler
Chapter 10: Design A Notification System
Chapter 11: Design A News Feed System
Chapter 12: Design A Chat System
Chapter 13: Design A Search Autocomplete System
Chapter 14: Design Youtube
Chapter 15: Design Google Drive
Chapter 16: The Learning Continues
برای دانلود نسخه الکترونیکی این کتاب، که با اجازه از مترجمین کتاب در اینجا قرار گرفته است، میتوانید از لینک زیر استفاده کنید :
https://uploadb.com/ug7rgpcgrutx
#طراحی_سیستم_های_مقیاس_پذیر #مهندسی_داده #معرفی_کتاب
❤4👍2
Forwarded from عکس نگار
فرض کنید شما یک اپلیکیشن موبایل یا یک وبسایت تجاری را توسعه دادهاید و از پایگاههای دادهای مانند MySQL یا PostgreSQL برای ذخیره اطلاعات اصلی خود استفاده کردهاید. اکنون نیاز به یک پنل مدیریت برای کنترل و مدیریت دادههای ذخیره شده دارید، اما متأسفانه منابع (نیروی انسانی/ زمان/ پول/ ...) کافی برای توسعه یک داشبورد مناسب در اختیار ندارید. چه کنیم در این شرایط بغرنج؟
خوشبختانه، در دنیای امروز، ابزارهایی تحت عنوان "پلتفرمهای بدون کد" (No-Code Platforms) توسعه یافتهاند که میتوانند به شما در این زمینه کمک کنند. این ابزارها به شما امکان میدهند تا بدون نیاز به کدنویسی و با اتصال مستقیم به پایگاه داده، در عرض چند ساعت، اپلیکیشن خود را طراحی و پیادهسازی کنید.
https://github.com/topics/no-code-platform
در زیر به معرفی خیلی کوتاه چند عدد از این ابزارهای متنباز میپردازیم :
- NoCoBase : یک سیستم مقیاسپذیر و ماژولار برای طراحی برنامههای کاربردی که مجموعهای غنی از پلاگینها و افزونهها، آنرا برای بسیاری از کاربردها و نیازمندیهای سازمانی و تجاری، مناسب میکند.
https://github.com/nocobase/nocobase
- Budibase : یک سامانه ساده برای توسعه برنامههای کاربردی تکصفحهای که امکان اتصال به انواع دیتابیسها (PostgreSQL, MySQL, MSSQL, MongoDB, Rest API, Docker, K8s, and more) را دارد.
github.com/Budibase/budibase
- ILLA Builder :این پلتفرم به شما این امکان را میدهد که اپلیکیشنهای تجاری بسازید و ابزارهای داخلی مانند داشبورد، اپلیکیشنهای CRUD، پنل مدیریت، CRM، CMS و موارد مشابه را به سرعت ایجاد کنید. این پلتفرم از PostgreSQL، MySQL، Supabase، GraphQL، MongoDB، MSSQL، REST API، Hugging Face، Redis و غیره پشتیبانی میکند. میتوانید گردش کارها را با زمانبندی یا وبهوک به صورت خودکار انجام دهید. این ابزار را میتوانید نسخه متنباز Retool در نظر بگیرید.
https://github.com/illacloud/illa-builder
- NoCoDB : این ابزار که خود را معادل متنباز AirTable میداند با اتصال به جداول مختلف پایگاههای دادهشما، مدیریت اطلاعات را مانند کار با ابزارهای صفحه گسترده مانند اکسل، ساده و راحت میکند بدون اینکه شما را درگیر برنامهنویسی کند.
https://github.com/nocodb/nocodb
استفاده از این ابزارها میتواند بازدهی و سرعت توسعه را به میزان قابل توجهی افزایش دهد، به ویژه برای تیمهای کوچک یا پروژههای با محدودیت زمانی و منابع. با این حال، لازم است که با ویژگیها و محدودیتهای هر ابزار آشنا شوید تا بهترین گزینه را برای نیازهای خاص خود انتخاب کنید.
خوشبختانه، در دنیای امروز، ابزارهایی تحت عنوان "پلتفرمهای بدون کد" (No-Code Platforms) توسعه یافتهاند که میتوانند به شما در این زمینه کمک کنند. این ابزارها به شما امکان میدهند تا بدون نیاز به کدنویسی و با اتصال مستقیم به پایگاه داده، در عرض چند ساعت، اپلیکیشن خود را طراحی و پیادهسازی کنید.
https://github.com/topics/no-code-platform
در زیر به معرفی خیلی کوتاه چند عدد از این ابزارهای متنباز میپردازیم :
- NoCoBase : یک سیستم مقیاسپذیر و ماژولار برای طراحی برنامههای کاربردی که مجموعهای غنی از پلاگینها و افزونهها، آنرا برای بسیاری از کاربردها و نیازمندیهای سازمانی و تجاری، مناسب میکند.
https://github.com/nocobase/nocobase
- Budibase : یک سامانه ساده برای توسعه برنامههای کاربردی تکصفحهای که امکان اتصال به انواع دیتابیسها (PostgreSQL, MySQL, MSSQL, MongoDB, Rest API, Docker, K8s, and more) را دارد.
github.com/Budibase/budibase
- ILLA Builder :این پلتفرم به شما این امکان را میدهد که اپلیکیشنهای تجاری بسازید و ابزارهای داخلی مانند داشبورد، اپلیکیشنهای CRUD، پنل مدیریت، CRM، CMS و موارد مشابه را به سرعت ایجاد کنید. این پلتفرم از PostgreSQL، MySQL، Supabase، GraphQL، MongoDB، MSSQL، REST API، Hugging Face، Redis و غیره پشتیبانی میکند. میتوانید گردش کارها را با زمانبندی یا وبهوک به صورت خودکار انجام دهید. این ابزار را میتوانید نسخه متنباز Retool در نظر بگیرید.
https://github.com/illacloud/illa-builder
- NoCoDB : این ابزار که خود را معادل متنباز AirTable میداند با اتصال به جداول مختلف پایگاههای دادهشما، مدیریت اطلاعات را مانند کار با ابزارهای صفحه گسترده مانند اکسل، ساده و راحت میکند بدون اینکه شما را درگیر برنامهنویسی کند.
https://github.com/nocodb/nocodb
استفاده از این ابزارها میتواند بازدهی و سرعت توسعه را به میزان قابل توجهی افزایش دهد، به ویژه برای تیمهای کوچک یا پروژههای با محدودیت زمانی و منابع. با این حال، لازم است که با ویژگیها و محدودیتهای هر ابزار آشنا شوید تا بهترین گزینه را برای نیازهای خاص خود انتخاب کنید.
❤4👍2
Forwarded from عکس نگار
یکی از کارهای رایج مهندسین داده، ETL است یعنی داده را از یک منبع ورودی خوانده، آن را پردازش کرده و نهایتا در مقصد ذخیره کنیم. برای این منظور، ابزارهای تجاری و متنباز بسیار زیادی وجود دارد که از زمانهای قدیم که Logstash یک تنه، بار انتقال دادهها بین انواع منبعها و مقصدها را به دوش میکشید تا الان که شاید بیش از دهها ابزار رایج و تخصصی در این خصوص وجود داشته باشد، این فرآیند به بلوغ بسیار خوبی رسیده است.
اما کتابخانههای نرمافزاری و بخصوص ابزارهای مهندسی داده باید
- ساده : کار با آنها ساده باشد.
- سبک : کارآیی بالایی داشته، منابع بسیار کمی از سیستم را درگیر کنند.
- سهلالوصول: به راحتی قابل نصب و پیکربندی باشد.
باشند (میتوانیم به آنها ۳سین بگوییم!!).
Vector.dev یکی از این ابزارهای مطابق با قانون ۳سین است اما بیشتر برای کاربردهای انتقال و جمعآوری لاگ و متریکها مناسب است و برای ETL های رایج، به کار نمیرود.
https://github.com/vectordotdev/vector
Benthos دقیقا معادل و مشابه Vector.dev و مطابق با قانون ۳سین در حوزه ETL است.
- با زبان Go نوشته شده است و بسیار سبک و کارآ است.
- نصب و راهاندازی آن همانطور که در تصویر مشخص است، بسیار راحت و آسان است.
- کار با آن ساده است (هر چند برای بخش پردازش دادهها، زمان کمی را برای آشنایی با زبان مخصوص آن باید کنار بگذارید)
- به راحتی امکان خواندن از صفهایی مانند کافکا و سوکتها را فراهم میکند.
- مجموعه بسیار غنی از منبعها، مقصدها و پردازشگرهای از قبل نوشته شده دارد.
اگر قصد طراحی و پیادهسازی خطوط انتقال داده را دارید و پردازشهایی که بر روی دادههای دریافتی انجام میدهید، ساده و سرراست (مثل فیلتر کردن برخی ورودیها، استخراج و تغییر شکل چند آیتم و ...) است، حتما Benthos را به عنوان یکی از اصلیترین گزینههای خود در نظر بگیرید.
آدرس گیتهاب پروژه: https://github.com/benthosdev/benthos
آدرس رسمی سایت: https://www.benthos.dev
گروه تخصصی پرسشوپاسخهای مهندسی داده : https://t.iss.one/bigdata_ir_discussions
اما کتابخانههای نرمافزاری و بخصوص ابزارهای مهندسی داده باید
- ساده : کار با آنها ساده باشد.
- سبک : کارآیی بالایی داشته، منابع بسیار کمی از سیستم را درگیر کنند.
- سهلالوصول: به راحتی قابل نصب و پیکربندی باشد.
باشند (میتوانیم به آنها ۳سین بگوییم!!).
Vector.dev یکی از این ابزارهای مطابق با قانون ۳سین است اما بیشتر برای کاربردهای انتقال و جمعآوری لاگ و متریکها مناسب است و برای ETL های رایج، به کار نمیرود.
https://github.com/vectordotdev/vector
Benthos دقیقا معادل و مشابه Vector.dev و مطابق با قانون ۳سین در حوزه ETL است.
- با زبان Go نوشته شده است و بسیار سبک و کارآ است.
- نصب و راهاندازی آن همانطور که در تصویر مشخص است، بسیار راحت و آسان است.
- کار با آن ساده است (هر چند برای بخش پردازش دادهها، زمان کمی را برای آشنایی با زبان مخصوص آن باید کنار بگذارید)
- به راحتی امکان خواندن از صفهایی مانند کافکا و سوکتها را فراهم میکند.
- مجموعه بسیار غنی از منبعها، مقصدها و پردازشگرهای از قبل نوشته شده دارد.
اگر قصد طراحی و پیادهسازی خطوط انتقال داده را دارید و پردازشهایی که بر روی دادههای دریافتی انجام میدهید، ساده و سرراست (مثل فیلتر کردن برخی ورودیها، استخراج و تغییر شکل چند آیتم و ...) است، حتما Benthos را به عنوان یکی از اصلیترین گزینههای خود در نظر بگیرید.
آدرس گیتهاب پروژه: https://github.com/benthosdev/benthos
آدرس رسمی سایت: https://www.benthos.dev
گروه تخصصی پرسشوپاسخهای مهندسی داده : https://t.iss.one/bigdata_ir_discussions
👍10❤1