1. مقدمه
Google Cloud Dataflow
آخرین به روز رسانی: 2020-مه-26
Dataflow چیست؟
Dataflow یک سرویس مدیریت شده برای اجرای طیف گسترده ای از الگوهای پردازش داده است. اسناد موجود در این سایت به شما نشان میدهد که چگونه خطوط لوله پردازش دادههای دستهای و جریانی خود را با استفاده از Dataflow اجرا کنید، از جمله دستورالعملهایی برای استفاده از ویژگیهای سرویس.
Apache Beam SDK یک مدل برنامه نویسی متن باز است که به شما امکان می دهد خطوط لوله دسته ای و جریانی را توسعه دهید. شما خطوط لوله خود را با یک برنامه Apache Beam ایجاد می کنید و سپس آنها را در سرویس Dataflow اجرا می کنید. مستندات پرتو آپاچی اطلاعات مفهومی و مطالب مرجع عمیقی را برای مدل برنامهنویسی پرتو آپاچی، SDKها و سایر اجراکنندهها فراهم میکند.
جریان تجزیه و تحلیل داده ها با سرعت
جریان داده توسعه سریع و ساده خط لوله داده را با تأخیر داده کمتر امکان پذیر می کند.
عملیات و مدیریت را ساده کنید
به تیم ها اجازه دهید به جای مدیریت خوشه های سرور بر برنامه نویسی تمرکز کنند زیرا رویکرد بدون سرور Dataflow سربار عملیات را از بارهای کاری مهندسی داده حذف می کند.
هزینه کل مالکیت را کاهش دهید
مقیاس خودکار منابع همراه با قابلیتهای پردازش دستهای بهینهسازیشده هزینه به این معنی است که Dataflow ظرفیت تقریباً نامحدودی را برای مدیریت بارهای کاری فصلی و پراکنده بدون هزینههای بیش از حد ارائه میدهد.
ویژگی های کلیدی
مدیریت خودکار منابع و تعادل مجدد کار پویا
Dataflow تدارک و مدیریت منابع پردازش را خودکار می کند تا تأخیر را به حداقل برساند و استفاده را به حداکثر برساند، بنابراین نیازی به چرخش نمونه ها یا رزرو آنها به صورت دستی نیست. پارتیشن بندی کار نیز به صورت خودکار و بهینه سازی شده است تا به صورت پویا در کار عقب مانده تعادل ایجاد کند. نیازی به تعقیب "کلیدهای داغ" یا پیش پردازش داده های ورودی نیست.
مقیاس خودکار افقی
مقیاس خودکار افقی منابع کارگر برای توان عملیاتی بهینه منجر به عملکرد کلی قیمت به عملکرد بهتر می شود.
قیمتگذاری زمانبندی منابع انعطافپذیر برای پردازش دستهای
برای پردازش با انعطافپذیری در زمانبندی کار، مانند کارهای شبانه، زمانبندی منابع انعطافپذیر (FlexRS) قیمت پایینتری را برای پردازش دستهای ارائه میدهد. این مشاغل انعطاف پذیر با تضمین بازیابی آنها برای اجرا در یک پنجره شش ساعته در یک صف قرار می گیرند.
آنچه شما به عنوان بخشی از این اجرا خواهید کرد
در این کد لبه، شما می خواهید با ارسال یک دستور SQL از طریق رابط کاربری Dataflow SQL، استفاده از Dataflow SQL را آغاز کنید. سپس با استفاده از رابط کاربری نظارت بر جریان داده، خط لوله در حال اجرا را کاوش خواهید کرد.
چیزی که یاد خواهید گرفت
- نحوه ارسال یک دستور SQL به عنوان یک کار Dataflow در Dataflow SQL UI.
- چگونه به خط لوله جریان داده حرکت کنیم.
- نمودار Dataflow ایجاد شده توسط دستور SQL را کاوش کنید.
- اطلاعات نظارتی ارائه شده توسط نمودار را کاوش کنید.
آنچه شما نیاز دارید
- یک پروژه Google Cloud Platform با فعال کردن صورتحساب.
- Google Cloud Dataflow و Google Cloud PubSub فعال شدند.
2. راه اندازی
اطمینان حاصل کنید که Dataflow API و Cloud Pub/Sub API را فعال کرده اید. میتوانید این مورد را با بررسی صفحه API و خدمات تأیید کنید.
3. دسترسی به رابط کاربری Dataflow SQL
Dataflow SQL UI یک تنظیم وب BigQuery برای ایجاد مشاغل Dataflow SQL است. می توانید از رابط کاربری وب BigQuery به Dataflow SQL UI دسترسی پیدا کنید.
- به رابط کاربری وب BigQuery بروید.
- به موتور Cloud Dataflow بروید.
- روی منوی کشویی More کلیک کنید و Query settings را انتخاب کنید.
- در منوی تنظیمات Query ، Dataflow engine را انتخاب کنید.
- اگر APIهای Dataflow و Data Catalog فعال نیستند، در اعلان ظاهر شده، روی Enable APIs کلیک کنید.
- روی ذخیره کلیک کنید.
همچنین می توانید از رابط نظارت بر Dataflow به رابط کاربری Dataflow SQL دسترسی داشته باشید.
- به رابط نظارت بر Dataflow بروید.
- روی Create job from SQL کلیک کنید.
4. اجرای یک کار جریان داده با پرس و جوی SQL
نوشتن پرس و جوهای Dataflow SQL
پرس و جوهای Dataflow SQL از نحو پرس و جو Dataflow SQL استفاده می کنند. نحو پرس و جو Dataflow SQL مشابه SQL استاندارد BigQuery است. میتوانید از افزونههای جریانی Dataflow SQL برای جمعآوری دادهها از منابع جریان داده مانند Pub/Sub که دائماً بهروزرسانی میشوند، استفاده کنید. به عنوان مثال، عبارت زیر مسافران را در یک جریان Pub/Sub از تاکسیسواری در هر دقیقه شمارش میکند:
SELECT
TUMBLE_START('INTERVAL 1 MINUTE') as period_start,
SUM(passenger_count) AS pickup_count
FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
WHERE
ride_status = "pickup"
GROUP BY
TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')
اجرای کوئری های Dataflow SQL
هنگامی که یک کوئری Dataflow SQL را اجرا می کنید، Dataflow کوئری را به یک خط لوله Apache Beam تبدیل می کند و خط لوله را اجرا می کند.
شما می توانید یک پرس و جو Dataflow SQL را با استفاده از Cloud Console یا ابزار خط فرمان gcloud اجرا کنید.
برای اجرای کوئری Dataflow SQL، از Dataflow SQL UI استفاده کنید.
- به Dataflow SQL UI بروید.
- Query SQL Dataflow را در بالا در ویرایشگر query وارد کنید.
- روی Create Cloud Dataflow job کلیک کنید تا پانلی از گزینه های کار باز شود.
- (اختیاری) روی نمایش پارامترهای اختیاری کلیک کنید و فهرست را مرور کنید.
- در قسمت Destination پانل، BigQuery را به عنوان نوع خروجی انتخاب کنید.
- شناسه مجموعه داده را انتخاب کنید و نام جدول "passengers_per_min" ایجاد کنید
- روی Create کلیک کنید.
برای اطلاعات بیشتر در مورد جستجوی داده ها و نوشتن نتایج جستجوی Dataflow SQL، به استفاده از Dataflow SQL مراجعه کنید.
5. بررسی کار در رابط کاربری Dataflow Monitoring
هنگامی که خط لوله خود را با استفاده از سرویس مدیریت داده جریان اجرا می کنید، می توانید آن کار و هر کار دیگری را با استفاده از رابط کاربری نظارت مبتنی بر وب Dataflow مشاهده کنید. رابط نظارت به شما امکان می دهد کارهای Dataflow خود را ببینید و با آنها تعامل داشته باشید.
با استفاده از Google Cloud Console می توانید به رابط نظارت بر Dataflow دسترسی داشته باشید. رابط نظارت می تواند به شما نشان دهد:
- فهرستی از تمام کارهایی که در حال حاضر در حال اجرا هستند و کارهایی که قبلاً در 30 روز گذشته اجرا شده اند.
- یک نمایش گرافیکی از هر خط لوله.
- جزئیات مربوط به وضعیت کار، اجرا، و نسخه SDK.
- پیوندهایی به اطلاعات مربوط به سرویسهای Google Cloud که خط لوله شما را اجرا میکنند، مانند Compute Engine و Cloud Storage.
- هر گونه خطا یا هشداری که در حین کار رخ می دهد.
می توانید نمودارهای نظارت بر کار را در رابط نظارت بر Dataflow مشاهده کنید. این نمودارها معیارهایی را در طول مدت یک خط لوله نمایش میدهند و شامل اطلاعات زیر میشوند:
- دید در سطح مرحله برای کمک به شناسایی مراحلی که ممکن است باعث تاخیر خط لوله شوند.
- اطلاعات آماری که می تواند رفتار غیرعادی را نشان دهد.
- معیارهای ورودی/خروجی که می تواند به شناسایی تنگناها در منابع و سینک های شما کمک کند.
دسترسی به رابط نظارت بر جریان داده
برای دسترسی به رابط نظارت بر Dataflow، این مراحل را دنبال کنید:
- به کنسول ابری بروید:
- پروژه Google Cloud خود را انتخاب کنید.
- روی منو در گوشه سمت چپ بالا کلیک کنید.
- به بخش Big Data بروید و روی Dataflow کلیک کنید.
لیستی از کارهای Dataflow همراه با وضعیت آنها ظاهر می شود.
فهرستی از کارهای Dataflow در کنسول Cloud با کارهایی در حالتهای Running، Failed و Succeeded.
یک شغل می تواند وضعیت های زیر را داشته باشد:
- — : رابط کاربری نظارت هنوز از سرویس Dataflow وضعیتی دریافت نکرده است.
- در حال اجرا : کار در حال حاضر در حال اجرا است.
- شروع نشده است : کار ایجاد شده است، اما سیستم قبل از راه اندازی به مدتی برای آماده سازی نیاز دارد.
- صف : یک کار FlexRS در صف قرار می گیرد.
- لغو ...: کار در حال لغو است.
- لغو شده : کاری که توسط کاربر لغو شد.
- تخلیه ...: کار در حال تخلیه است.
- تخلیه شده : کاربر کار را تخلیه کرد.
- به روز رسانی ...: کار در حال به روز رسانی است.
- به روز شده : کاربر کار را به روز کرد.
- موفقیت آمیز : کار با موفقیت به پایان رسیده است.
- ناموفق : کار تکمیل نشد.
به دنبال شغل با "dfsql" به عنوان بخشی از عنوان شغل بگردید و روی نام آن کلیک کنید.
صفحه جزئیات شغل که شامل موارد زیر است:
- نمودار شغلی: نمایش بصری خط لوله شما
- معیارهای شغل: معیارهای مربوط به اجرای شغل شما
- پانل اطلاعات شغلی: اطلاعات توصیفی در مورد خط لوله شما
- گزارشهای کار: گزارشهایی که توسط سرویس Dataflow در سطح کار تولید میشوند
- لاگ های کارگر: گزارش های تولید شده توسط سرویس Dataflow در سطح کارگر
- گزارش خطای شغلی: نمودارهایی که محل وقوع خطاها را در جدول زمانی انتخاب شده و تعداد تمام خطاهای ثبت شده را نشان می دهد.
- انتخابگر زمان: ابزاری که به شما امکان میدهد زمان سنجههای خود را تنظیم کنید
در صفحه جزئیات شغل، میتوانید نمای شغل خود را با نمودار شغل و برگه معیارهای شغل تغییر دهید.
- روی برگه JOB METRICS کلیک کنید و نمودارها را بررسی کنید
6. کار Dataflow SQL خود را متوقف کنید
برای توقف کارهای Dataflow SQL، از دستور Cancel استفاده کنید. توقف کار Dataflow SQL با Drain پشتیبانی نمی شود.