۴ الگوی کلیدی برای بارگذاری داده‌ها در انبار داده

۴ الگوی کلیدی برای بارگذاری داده‌ها در انبار داده

نوشته شده توسط: تیم فنی نیک آموز
۱۷ آذر ۱۴۰۰
زمان مطالعه: 12 دقیقه
۰
(۰)

مقدمه

بارگذاری داده‌ ها در انبار داده کامپوننت کلیدی اکثر خطوط پردازش داده است. اگر سوالات زیر ذهن شما را به خود مشغول داشته

  • نحوه مدیریت بارگذاری SQL کدام است؟
  • الگوهای مورد استفاده برای بارگذاری داده ‌ها در انبار داده چیست؟

باید گفت که این مقاله دقیقا مناسب شماست. در این مقاله، ما به ۴ الگوی کلیدی برای بارگذاری داده ‌ها در یک انبار داده می‌پردازیم. خطوط پردازش داده معمولاً تمایل دارند از یک یا ترکیبی از الگوهای نشان داده شده در زیر استفاده کنند. شناخت این الگوها می‌ تواند به شما در طراحی خطوط پردازش داده بهتر و درک خطوط پردازش داده موجود کمک کند.

الگوها

  • خطوط پردازش داده دسته ‌ای

خطوط پردازش داده ‌ای هستند که با فاصله زمانی برنامه ریزی شده حداقل ۵ دقیقه یا بیشتر اجرا می‌ شوند.

۱-۱) فرایند  انبار داده

به طور کلی شامل یک فرایند واحد است که داده‌ ها را از منبعی استخراج می ‌کند و آن را در انبار داده بارگذاری می‌ کند. تعداد دفعات رفت و برگشت شبکه به انبار داده باید کم نگه داشته شود. این کار با دسته‌ بندی چند درج با هم (اگر حافظه فرایند اجازه می ‌دهد) در یک بار صدا زدن Insert-Database قابل انجام است.
به عنوان مثال، اگر از python و Postgres (به عنوان انبار داده) استفاده می‌ کنید، می‌ توانید از Execute_Values برای درج چندین ردیف با یکبار صدا زدن شبکه استفاده کنید.

مزایا

  • راه ‌اندازی، اجرا، نظارت و اشکال‌ زدایی ساده است.
  • ماشین ‌های بزرگ می ‌توانند حجم قابل توجهی از داده ‌ها را مدیریت کنند.

معایب

  • در این روش بیشتر از یک دستگاه نمی ‌توان استفاده نمود. اگر اندازه داده‌ های شما بسیار بزرگ باشد، این یک مشکل خواهد بود.
  • درج در انبار داده یک حالت گلوگاهی ایجاد خواهد کرد. این را می‌توان با اجرای چندین فرآیند به صورت موازی کاهش داد. با این حال، اگر دقت نکنید، این می‌ تواند ترتیب نادرست درج‌ ها را ایجاد کند.

 ۱-۲) فرایند فضای ذخیره ابری انبار داده

این روش شامل یک فرایند توزیع شده (گاهی اوقات یک فرایند واحد) است که داده‌ ها را به صورت موازی در یک سیستم ذخیره ‌سازی ابری وارد می ‌کند. سپس در ادامه فرآیندی کار کپی کردن داده‌ ها به صورت موازی از سیستم ذخیره ‌سازی ابری به انبار داده را انجام می ‌دهد.
برخی از انبارهای داده از جداول خارجی پشتیبانی می‌کنند که خواندن داده‌ ها را مستقیماً از S3 امکان‌پذیر می ‌سازد. در این صورت نیاز به اجرای دستور COPY نخواهد بود.

مزایا

  • می ‌تواند حجم بسیار زیادی از داده‌ ها را بارگذاری کند.
  • نوشتن در یک سیستم ذخیره‌ سازی ابری و قرار دادن آن در انبار داده به صورت موازی کارایی این رویکرد را بالا می ‌برد.

معایب

  • مدیریت یک دسته سیستم‌ های توزیع شده می ‌تواند پر هزینه تمام شود.
  • با جداول خارجی و پارتیشن‌ های جدید می‌ توانند به اجرای دستور ALTER TABLE ADD PARTITION نیاز داشته باشند.
  • خطوط پردازش داده بلادرنگ

اینها خطوط پردازش داده ‌ای هستند که دائماً در حال اجرا هستند. به طور معمول زمان بین تولید داده و در دسترس بودن آن در انبار داده کمتر از یک دقیقه خواهد بود. مثالی از این خطوط پردازش داده، آمار جذب کلیک ‌ها، برداشت‌ ها از یک وب سایت به انبار داده است.

۲-۱) جریان داده مصرف کننده انبار داده

این روش شامل یک جریان داده (که توسط فرایند دیگری تغذیه می‌ شود) و مصرف کننده این جریان داده است. فرایند مصرف کننده رکوردها را دریافت می ‌کند، غنی‌ سازی داده‌ ها را انجام می‌دهد (این مرحله اختیاری است)، دسته ‌ای از رکوردها را در حافظه جمع ‌آوری نموده و آن را در انبار داده درج می‌ نماید.
توجه: برخی از پروژه‌ ها مانند Ksqldb و Clickhouse به شما این امکان را می ‌دهند که مستقیماً داده‌ ها را در یک تاپیک کافکا جستجو کنید. با این حال، اینها جایگزین انبار داده نیستند.

مزایا

  • طیف گسترده ‌ای از کانکتورهای آماده استفاده دارد.
  • اکثر انبارهای داده کانکتورهایی ایجاد کرده‌ اند. (مانند Snowflake Kafka Connector)
  • مصرف کننده‌ ها را می ‌توان به راحتی موازی ‌سازی کرد.

معایب

  • در هنگام استفاده از چندین مصرف‌ کننده داده‌ ها برای درج در انبار داده، تضمینی وجود ندارد که ترتیب درج با ترتیب ورود داده به جریان داده یکسان باشد. در صورت نیاز باید با دقت این مشکل را مدیریت کنید.

۲-۲) فضای ذخیره ابری فرآیند انبار داده

این روش به طور کلی شامل داده‌ ها (معمولاً دسته کوچکی از ردیف‌ ها) است که در یک سیستم ذخیره‌ سازی ابری (که توسط فرایند دیگری تغذیه می ‌شود) و یک سیستم مانیتورینگ است و فرایندی را برای درج داده‌ ها در انبار داده دارد.
به عنوان مثال، ممکن است زمانی که داده‌ ها در S3 وارد می‌شوند یک تریگر S3 برای شروع یک فرآیندlambda  برای وارد کردن داده‌ ها در انبار داده تنظیم کنید.

مزایا

  • اکثر ارائه دهندگان خدمات ابری مانیتورینگ سیستم ذخیره‌ سازی ابری و راه ‌اندازی یک فرایند (معمولاً بدون سرور) را پشتیبانی می ‌کنند.
  • برخی از انبارهای داده نیز از این الگو پشتیبانی می‌ کنند (مانند Snowpipe)
  • داده‌ های خام ذخیره شده در سیستم ذخیره‌ سازی ابری، افزونگی داده‌ های اضافی را فراهم می ‌کند.

 معایب

  • به محدودیت‌ های تعداد فرایندهایی که می ‌توانند در هنگام ترافیک بالا راه ‌اندازی شوند، توجه زیادی داشته باشید.
  • در حالی که فرایندهای متعددی داده ‌ها را در انبار داده وارد می ‌کنند، تضمینی وجود ندارد که ترتیب درج با ورودی سیستم ذخیره‌ سازی ابری یکسان باشد. در این صورت باید با دقت این مورد را مدیریت کنید.

نتیجه گیری

امیدواریم این مقاله ایده خوبی از الگوهای کلی که برای بارگذاری داده‌ ها در انبار داده استفاده می ‌شود به شما آموخته باشد. در بیشتر موارد از یک یا ترکیبی از الگوهای فوق استفاده می‌ شود. دفعه بعد که یک خط لوله برای بارگذاری داده ‌ها در انبار داده ایجاد می‌کنید، یکی از این الگوهای بارگذاری را امتحان کنید. اکثر ابزارها، ارائه دهندگان ابر و فریم ورک ها از این الگوها پشتیبانی می ‌کنند.

منابع

 

https://www.startdataengineering.com/post/patterns-to-load-data-into-data-warehouse/

چه رتبه ای می‌دهید؟

میانگین ۰ / ۵. از مجموع ۰

اولین نفر باش

title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
257 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
پروفایل نویسنده
title sign
معرفی محصول
title sign
دیدگاه کاربران

وبینار رایگان SQL Server؛ مسیری به سوی فرصت‌های شغلی بی‌شمار       پنج‌شنبه 30 فرودین ساعت 15
ثبت نام رایگان
close-image