راه اندازی دریاچه داده 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 ، روی این کلیک کنید.
مرحله 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 کلیک کنید. - سطل نامگذاری شده را پیدا کنید ویکتور آنالیتیکو روی آن کلیک کنید
- در داخل سطل ، باید دو شی را ببینید:
- روی کلیک کنید
raw-data
و خواهید دید که حاوی آن استnba_player_data.json
، و در بالا ، انتخاب کنید باز برای مشاهده محتوای پرونده. شما باید داده های مختلف پخش کننده NBA را با فرمت JSON مشاهده کنید.
- یک رشته طولانی از داده های مختلف NBA را مشاهده خواهید کرد
داده های پرس و جو در آمازون آتنا
برای تجزیه و تحلیل داده ها ، این مراحل را دنبال کنید:
- رفتن به 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 ذخیره می شود و در زیر نمایش داده می شود نتایج پرس و جوبشر
SELECT * FROM nba_players LIMIT 5;
- شما باید نمونه ای از داده های پخش کننده را مشاهده کنید.
حذف منابع
برای حذف و پاکسازی تمام منابع ایجاد شده ، این مراحل را دنبال کنید:
- محتویات را کپی کنید
delete_aws_resource.py
از مخزن آنلاین. - در ترمینال با اجرای یک فایل جدید ایجاد کنید:
nano delete_aws_resource.py
- محتوای کپی شده را در پرونده بچسبانید ، ذخیره کنید و از آن خارج شوید.
- برای حذف همه منابع ، اسکریپت را اجرا کنید:
python3 delete_aws_resource.py
- این امر باعث می شود تا از همه منابع ارائه شده در طول راه اندازی ، پاکسازی پاک از همه منابع ارائه شود.
آنچه یاد گرفتیم
- امنیت خدمات AWS با استفاده از سیاست های IAM با کمترین قدرت.
- خودکار سازی ایجاد منابع با استفاده از یک اسکریپت.
- ادغام API های خارجی در گردش کار مبتنی بر ابر.
پیشرفت های آینده
- با استفاده از AWS Lambda ، مصرف داده را خودکار کنید.
- یک لایه تبدیل داده را با AWS Glue ETL پیاده سازی کنید.
- تجزیه و تحلیل پیشرفته و تجسم را با استفاده از AWS QuickSight اضافه کنید.