برنامه نویسی

ساخت دریاچه داده NBA با AWS: راهنمای جامع

به لطف مجموعه خدمات قدرتمند AWS، ایجاد یک دریاچه داده بومی ابری برای تجزیه و تحلیل NBA هرگز آسان نبوده است. این راهنما شما را در فرآیند ساخت دریاچه داده NBA با استفاده از Amazon S3، AWS Glue و Amazon Athena راهنمایی می کند. با خودکار کردن تنظیمات با یک اسکریپت پایتون، یاد خواهید گرفت که چگونه داده های NBA را به طور کارآمد ذخیره، پرس و جو و تجزیه و تحلیل کنید. بیایید به جزئیات بپردازیم.

دریاچه داده چیست؟

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

مروری بر دریاچه داده NBA

این پروژه از یک اسکریپت پایتون (setup_nba_data_lake.py) برای خودکارسازی وظایف زیر استفاده می کند:

  • آمازون S3: یک سطل برای ذخیره داده های خام و پردازش شده NBA ایجاد می کند.
  • چسب AWS: یک پایگاه داده و یک جدول خارجی برای مدیریت ابرداده و طرحواره تنظیم می کند.
  • آمازون آتنا: اجرای پرس و جو را برای تجزیه و تحلیل داده های ذخیره شده مستقیماً از S3 پیکربندی می کند.

با استفاده از این خدمات، دریاچه داده یکپارچه سازی یکپارچه داده های NBA بلادرنگ از SportsData.io را برای تجزیه و تحلیل و گزارش فراهم می کند.

خدمات AWS استفاده شده است

1. آمازون S3 (سرویس ذخیره سازی ساده)

عملکرد:
Amazon S3 یک سرویس ذخیره سازی اشیاء مقیاس پذیر است. در این پروژه، به عنوان ستون فقرات دریاچه داده عمل می کند و داده های خام و پردازش شده NBA را ذخیره می کند.

چگونه کار می کند:

  • این اسکریپت یک سطل S3 به نام sports-analytics-data-lake ایجاد می کند.
  • داده‌ها در پوشه‌هایی سازمان‌دهی می‌شوند، مانند داده‌های خام، که فایل‌های JSON پردازش نشده مانند nba_player_data.json را ذخیره می‌کند.
  • S3 در دسترس بودن، دوام و کارایی هزینه بالا را تضمین می کند.

مزایای کلیدی:

  • مقیاس پذیری: به طور خودکار مجموعه داده های در حال رشد را مدیریت می کند.
  • مقرون به صرفه: فقط برای ذخیره سازی و انتقال داده ای که استفاده می کنید پرداخت کنید.
  • ادغام: با چسب AWS و Athena یکپارچه کار می کند.

2. چسب AWS

عملکرد:
AWS Glue یک سرویس کاملاً مدیریت شده ETL (Extract, Transform, Load) است. این به مدیریت ابرداده و طرح واره برای داده های ذخیره شده در S3 کمک می کند.

چگونه کار می کند:

  • اسکریپت یک پایگاه داده Glue و یک جدول خارجی (nba_players) ایجاد می کند تا طرح واره داده های JSON ذخیره شده در S3 را تعریف کند.
  • با چسب کاتالوگ متادیتا، داده ها را توسط آتنا قابل پرس و جو می کند.

مزایای کلیدی:

  • مدیریت طرحواره: مدیریت فراداده را خودکار می کند.
  • ETL: می توان برای تبدیل داده ها برای تجزیه و تحلیل گسترش داد.
  • مقرون به صرفه: هزینه فقط برای منابع مصرف شده.

3. آمازون آتنا

عملکرد:
Amazon Athena یک سرویس جستجوی تعاملی است که به شما امکان می دهد داده ها را در S3 با استفاده از SQL استاندارد تجزیه و تحلیل کنید.

چگونه کار می کند:

  • آتنا متادیتا را از چسب AWS می خواند.
  • کاربران می توانند پرس و جوهای SQL را مستقیماً روی داده های JSON ذخیره شده در S3 بدون نیاز به سرور پایگاه داده اجرا کنند.
  • نمونه پرس و جو: نام، نام خانوادگی، موقعیت از طرف nba_players WHERE موقعیت = 'PG';

مزایای کلیدی:

  • بدون سرور: زیرساختی برای مدیریت وجود ندارد.
  • سریع: برای پرس و جوهای کلان داده بهینه شده است.
  • پرداخت به موقع: به ازای اجرای پرس و جو شارژ می شود.

راه اندازی NBA Data Lake

پیش نیازها

قبل از شروع، اطمینان حاصل کنید که:

کلید API از SportsData.io:

  • در SportsData.io ثبت نام کنید و یک کلید API رایگان برای داده های NBA دریافت کنید.
  • این کلید برای واکشی بلادرنگ داده های NBA استفاده خواهد شد.

حساب AWS:

  • یک حساب کاربری با مجوزهای کافی برای S3، Glue و Athena تنظیم کنید.

مجوزهای IAM:

کاربر یا نقش در حال اجرا باید مجوز اقدامات زیر را داشته باشد:

  • S3: CreateBucket، PutObject، ListBucket
  • چسب: CreateDatabase، CreateTable
  • آتنا: StartQueryExecution، GetQueryResults

مراحل ساخت دریاچه داده

1. AWS CloudShell را باز کنید

  • وارد کنسول مدیریت AWS شوید.
  • روی نماد CloudShell ( >_ ) کلیک کنید تا محیط CloudShell باز شود.

توضیحات تصویر

2. اسکریپت پایتون را ایجاد کنید

  • nano setup_nba_data_lake.py را در CloudShell اجرا کنید.

توضیحات تصویر

  • محتویات اسکریپت پایتون (مخزن GitHub) را کپی و پیست کنید.
  • جانشین api_key را با کلید API SportsData.io خود جایگزین کنید:
  • ذخیره و خروج: Ctrl+X و سپس Y را فشار دهید و Enter را بزنید.
    توضیحات تصویر

3. Script را اجرا کنید

  • اسکریپت را با استفاده از: python3 setup_nba_data_lake.py اجرا کنید

توضیحات تصویر

اسکریپت:

  • یک سطل S3 ایجاد کنید و نمونه داده های NBA را آپلود کنید.
  • یک پایگاه داده و جدول چسب تنظیم کنید.
  • پیکربندی Athena برای پرس و جو داده ها.

5. بررسی منابع

آمازون S3:

  • به کنسول S3 بروید.
  • ایجاد یک سطل به نام sports-analytics-data-lake را تأیید کنید.

توضیحات تصویر

  • پوشه raw-data فایل nba_player_data.json را بررسی کنید.

توضیحات تصویر

توضیحات تصویر

توضیحات تصویر

آمازون آتنا:

  • کنسول آتنا را باز کنید.
  • پرس و جوی نمونه را اجرا کنید: SELECT FirstName, LastName, Position, Team FROM nba_players WHERE Position = 'PG';
  • نتایج را تأیید کنید.

توضیحات تصویر

توضیحات تصویر

آنچه شما یاد خواهید گرفت

با تکمیل این پروژه تجربه عملی در زمینه های زیر کسب خواهید کرد:

  • طراحی معماری ابری: یاد بگیرید که چگونه یک دریاچه داده بدون سرور را با استفاده از Amazon S3، AWS Glue و Amazon Athena طراحی کنید.
  • بهترین روش‌های ذخیره‌سازی داده: نحوه ذخیره، سازماندهی و مدیریت داده‌های ساختاریافته و نیمه ساختار یافته در آمازون S3 را بدانید.
  • مدیریت فراداده: از AWS Glue برای فهرست‌نویسی و مدیریت طرح‌واره‌های داده استفاده کنید، و امکان پرس‌وجو و ادغام یکپارچه با سایر سرویس‌های AWS را فراهم کنید.
  • تجزیه و تحلیل مبتنی بر SQL: از Amazon Athena برای اجرای پرس‌وجوهای SQL مستقیماً روی داده‌های ذخیره شده در Amazon S3 استفاده کنید و نیاز به فرآیندهای پیچیده ETL را از بین ببرید.
  • یکپارچه سازی API: منابع داده خارجی، مانند SportsData.io را در گردش‌های کاری ابری خود برای دریافت داده‌های پویا بگنجانید.
  • اتوماسیون با پایتون: تهیه منابع و مصرف داده ها را با پایتون به صورت خودکار انجام دهید و تلاش های پیکربندی دستی را کاهش دهید.
  • اقدامات امنیتی IAM: برای ایمن سازی منابع AWS خود و اطمینان از انطباق با بهترین شیوه ها، حداقل مجوزهای امتیاز را اجرا کنید.

پیشرفت های آینده

  • جذب خودکار داده ها: از AWS Lambda برای واکشی و به روز رسانی پویا داده ها استفاده کنید.
  • تبدیل داده ها: خطوط لوله ETL را با چسب AWS بسازید.
  • تجزیه و تحلیل پیشرفته: با استفاده از AWS QuickSight داشبورد و تصویرسازی ایجاد کنید.
  • به روز رسانی در زمان واقعی: AWS Kinesis را برای پخش داده ها در زمان واقعی یکپارچه کنید.

این پروژه قدرت معماری بدون سرور را در ساخت دریاچه های داده مقیاس پذیر، ایمن و کارآمد نشان می دهد. چه از علاقه مندان به DevOps، چه مهندس داده یا متخصص تجزیه و تحلیل ورزشی باشید، این آموزش نقطه شروعی عالی برای بررسی قابلیت های AWS است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا