برنامه نویسی

راه اندازی دریاچه داده NBA با خدمات AWS

مقدمه

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

نمای کلی

در setup_nba_data_lake.py اسکریپت فرآیند ایجاد یک دریاچه داده برای داده های مربوط به NBA را خودکار می کند. به طور خاص ، این اقدامات زیر را انجام می دهد:مجدداً

  • یک سطل آمازون S3 برای ذخیره داده های NBA خام و پردازش شده ایجاد می کند.
  • نمونه داده های NBA (با فرمت JSON) را به سطل S3 بارگذاری می کند.
  • برای ایجاد یک پایگاه داده و یک جدول خارجی برای پرس و جو ساختاری ، چسب AWS را پیکربندی می کند.
  • آمازون آتنا را برای پرس و جو از داده های NBA با استفاده از SQL ادغام می کند.

با پایان این تنظیم ، کاربران دارای یک دریاچه داده کاملاً کاربردی هستند که با استفاده از آتنا می توان از آنها پرس و جو کرد و تجزیه و تحلیل آمار و روندهای NBA را آسانتر می کند.

پیش نیازهای

قبل از اجرای اسکریپت ، اطمینان حاصل کنید که موارد زیر را دارید:

حساب AWS

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

کلید API SportsData

  • یک حساب کاربری رایگان در SportsData ایجاد کنید.
  • به “توسعه دهندگان”> “منابع API”> “معرفی و آزمایش” بروید.
  • ثبت نام در “آزمایش رایگان API SportsDataio” ، انتخاب NBA به عنوان منبع داده مورد نظر.
  • کلید API خود را از “پارامترهای رشته پرس و جو” بازیابی کنید.

نقش/مجوزها

اطمینان حاصل کنید که کاربر IAM یا نقش اجرای اسکریپت مجوزهای زیر را دارد:

  • S3: s3:CreateBucketبا s3:PutObjectبا s3:DeleteBucketبا s3:ListBucket
  • چسب: glue:CreateDatabaseبا glue:CreateTableبا glue:DeleteDatabaseباglue:DeleteTable
  • آتنا: athena:StartQueryExecutionبا athena:GetQueryResults

شما می توانید با استفاده از پرونده خط مشی از مخزن یک خط مشی ایجاد کرده و آن را برای کاربر اعمال کنید.

اگر از نام سطل S3 متفاوت استفاده می کنید ، تمام موارد “Victor-Analytics-Data-Lake” را بر این اساس به روز کنید:

  • در سیاست IAM – نام سطل را در قسمت منبع اصلاح کنید.
  • در اسکریپت حذف منابع – اعلامیه نام سطل را به روز کنید.
  • در setup_nba_data_lake.py اسکریپت تحت بخش نام سطل – اطمینان حاصل کنید که برای جلوگیری از خطاهای اجرای ، با نام سطل انتخاب شده شما مطابقت دارد.

در زیر تصویری از همه زمینه هایی که در صورت استفاده از نام سطل S3 متفاوت باید به روز شوند ، برجسته شده است. اگر از “Victor-Analytics-Data-Lake” استفاده می کنید ، می توانید این مرحله را نادیده بگیرید.

سیاست

اسکریپت برای حذف منبع

اسکریپت برای ایجاد منبع

AWS Cloudshell یا CLI

برای اجرای اسکریپت از AWS CloudShell استفاده کرده یا AWS CLI را در دستگاه محلی خود تنظیم کنید.

با وجود این پیش نیازها ، شما آماده شروع به تنظیم دریاچه داده NBA هستید. در بخش بعدی ، شما را از طریق اجرای گام به گام راهنمایی می کنم.

راهنمای گام به گام

مرحله 1: به کنسول AWS خود وارد شوید

به AWS بروید و وارد حساب خود شوید. در بالا ، در کنار نوار جستجو ، یک نماد مربع با یک> _ در داخل مشاهده خواهید کرد. برای باز کردن AWS CloudShell ، روی این کلیک کنید.

ناوبری Cloudshell

مرحله 2: یک فایل .env ایجاد کنید

در CLI (رابط خط فرمان) ، نوع:

nano .env
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

خطوط زیر را در پرونده خود بچسبانید ، جایگزین کنید your_sportsdata_api_key با کلید API واقعی خود:

SPORTS_DATA_API_KEY=your_sportsdata_api_key
NBA_ENDPOINT=https://api.sportsdata.io/v3/nba/scores/json/Players

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ترمینال ابری

توجه: اگر از استفاده از نانو راحت نیستید ، قبل از چسباندن آن در ترمینال ، محتوا را در یک ویرایشگر متن تهیه کنید.
مطبوعات Ctrl + O پس از آن Enterوت Ctrl + X برای خروج از نانو.

مرحله 3: پرونده setup_nba_data_lake.py را ایجاد کنید

nano setup_nba_data_lake.py
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • در یک پنجره دیگر ، از مخزن GitHub دیدن کنید.
  • محتویات setup_nba_data_lake.py پرونده (در صورت تمایل ، ویرایش نام سطل را در کد فراموش نکنید.)
  • به پنجره CloudShell برگردید و محتویات را در پرونده خود بچسبانید.
  • ذخیره و خروج از پرونده.

نام سطل را ویرایش کنید

مرحله 4: فیلمنامه را اجرا کنید

دستور زیر را اجرا کنید:

python3 setup_nba_data_lake.py
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شما باید پیام هایی را تأیید کنید که تأیید شده است که منابع با موفقیت ایجاد شده اند ، داده های نمونه بارگذاری شده و تنظیم داده دریاچه تکمیل شده است.

عیب یابی: اگر با خطایی روبرو شدید dotenv نصب نشده ، اجرا کنید: pip3 install python-dotenv و سپس دستور قبلی را دوباره انجام دهید.

خطا در فیلمنامه

تصحیح خطا و اسکریپت بازنویسی

با اجرای موفقیت آمیز فیلمنامه ، همه چیز تنظیم شده است و می تواند به صورت دستی در کنسول AWS تأیید شود.

مرحله 5: مرحله 5: منابع را به صورت دستی بررسی کنید

  • در نوار جستجوی AWS ، نوع S3 و روی سرویس S3 کلیک کنید.
  • سطل نامگذاری شده را پیدا کنید ویکتور آنالیتیکو روی آن کلیک کنید
  • در داخل سطل ، باید دو شی را ببینید:

سطل S3

محتوای سطل S3

  • روی کلیک کنید raw-data و خواهید دید که حاوی آن است nba_player_data.json، و در بالا ، انتخاب کنید باز برای مشاهده محتوای پرونده. شما باید داده های مختلف پخش کننده NBA را با فرمت JSON مشاهده کنید.

مشاهده پرونده جیسون

  • یک رشته طولانی از داده های مختلف NBA را مشاهده خواهید کرد

پرونده json

داده های پرس و جو در آمازون آتنا

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

  • رفتن به AWS آتناکنسول

کنسول آتنا

  • در پانل سمت چپ ، پایگاه داده ای را که ایجاد کرده اید انتخاب کنید (به عنوان مثال ، glue_nba_data_lake).

پایگاه داده آتنا

  • مکان نتیجه آتنا را تنظیم کنید:
    • به سمت تنظیمات بشر
    • تنظیم کردن محل نتیجه پرس و جو به: s3://victor-analytics-data-lake/athena-results/
    • کلیک کردن پس انداز کردنبشر

محل نتیجه

  • در ویرایشگربرگه ، پرس و جو SQL زیر را برای بازیابی نگهبانان نقطه (PGS) بچسبانید:
SELECT FirstName, LastName, Position, Team
FROM nba_players
WHERE Position = 'PG';
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • کلیک کردن دویدنپرس و جو نتایج در S3 ذخیره می شود و در زیر نمایش داده می شود نتایج پرس و جوبشر

نتیجه 1

SELECT * FROM nba_players LIMIT 5;
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • شما باید نمونه ای از داده های پخش کننده را مشاهده کنید.

نتیجه 2

حذف منابع

برای حذف و پاکسازی تمام منابع ایجاد شده ، این مراحل را دنبال کنید:

  • محتویات را کپی کنید delete_aws_resource.py از مخزن آنلاین.
  • در ترمینال با اجرای یک فایل جدید ایجاد کنید:
nano delete_aws_resource.py
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • محتوای کپی شده را در پرونده بچسبانید ، ذخیره کنید و از آن خارج شوید.
  • برای حذف همه منابع ، اسکریپت را اجرا کنید:
python3 delete_aws_resource.py
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • این امر باعث می شود تا از همه منابع ارائه شده در طول راه اندازی ، پاکسازی پاک از همه منابع ارائه شود.

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

  • امنیت خدمات AWS با استفاده از سیاست های IAM با کمترین قدرت.
  • خودکار سازی ایجاد منابع با استفاده از یک اسکریپت.
  • ادغام API های خارجی در گردش کار مبتنی بر ابر.

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

  • با استفاده از AWS Lambda ، مصرف داده را خودکار کنید.
  • یک لایه تبدیل داده را با AWS Glue ETL پیاده سازی کنید.
  • تجزیه و تحلیل پیشرفته و تجسم را با استفاده از AWS QuickSight اضافه کنید.

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

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

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

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