قم بإعداد البيانات على نطاق واسع في Amazon SageMaker Studio باستخدام جلسات تفاعلية بدون خادم AWS Glue PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

قم بإعداد البيانات على نطاق واسع في Amazon SageMaker Studio باستخدام جلسات AWS Glue التفاعلية بدون خادم

أمازون ساجميكر ستوديو هي أول بيئة تطوير متكاملة (IDE) للتعلم الآلي (ML). يوفر واجهة مرئية واحدة قائمة على الويب حيث يمكنك تنفيذ جميع خطوات تطوير ML ، بما في ذلك إعداد البيانات وبناء النماذج والتدريب ونشرها.

غراء AWS هي خدمة تكامل بيانات بدون خادم تسهل اكتشاف البيانات وإعدادها ودمجها لأغراض التحليلات والتعلم الآلي وتطوير التطبيقات. يمكّنك AWS Glue من جمع البيانات وتحويلها وتنظيفها وإعدادها بسلاسة للتخزين في بحيرات البيانات وخطوط البيانات الخاصة بك باستخدام مجموعة متنوعة من الإمكانات ، بما في ذلك تحويلات مدمجة.

يمكن لمهندسي البيانات وعلماء البيانات الآن إعداد البيانات بشكل تفاعلي على نطاق واسع باستخدام التكامل المدمج في دفتر الاستوديو الخاص بهم مع جلسات Spark بدون خادم والتي تديرها AWS Glue. يبدأ في ثوانٍ ويتوقف تلقائيًا عن الحوسبة عند الخمول ، جلسات AWS Glue التفاعلية توفير واجهة Spark الخلفية عند الطلب وقابلة للتطوير بدرجة كبيرة وبدون خادم لتحقيق إعداد بيانات قابل للتطوير داخل Studio. تشمل المزايا الملحوظة لاستخدام جلسات AWS Glue التفاعلية على أجهزة كمبيوتر Studio المحمولة ما يلي:

  • لا توجد مجموعات لتوفيرها أو إدارتها
  • لا توجد مجموعات خاملة للدفع مقابلها
  • لا يلزم التكوين المسبق
  • لا تنازع على الموارد لنفس بيئة التطوير
  • نفس وقت تشغيل Spark ومنصة التشغيل التي لا تحتاج إلى خادم مثل وظائف استخراج وتحويل وتحميل (ETL) AWS Glue

في هذا المنشور ، نوضح لك كيفية إعداد البيانات على نطاق واسع في Studio باستخدام جلسات AWS Glue التفاعلية بدون خادم.

حل نظرة عامة

لتنفيذ هذا الحل ، عليك إكمال الخطوات عالية المستوى التالية:

  1. تحديث الخاص بك إدارة الهوية والوصول AWS (IAM) أذونات الدور.
  2. قم بتشغيل نواة جلسة تفاعلية AWS Glue.
  3. تكوين جلسة تفاعلية.
  4. قم بتخصيص جلستك التفاعلية وقم بتشغيل عبء عمل لإعداد البيانات قابل للتطوير.

قم بتحديث أذونات دور IAM الخاصة بك

للبدء ، تحتاج إلى تحديث دور تنفيذ IAM لمستخدم Studio الخاص بك بالأذونات المطلوبة. للحصول على تعليمات مفصلة ، راجع أذونات جلسات Glue التفاعلية في استوديو SageMaker.

عليك أولاً إضافة السياسات المُدارة إلى دور التنفيذ الخاص بك:

  1. في وحدة تحكم IAM ، اختر الأدوار في جزء التنقل.
  2. ابحث عن دور تنفيذ الاستوديو الذي ستستخدمه ، واختر اسم الدور للانتقال إلى صفحة ملخص الدور.
  3. على أذونات علامة التبويب في أضف أذونات القائمة، اختر إرفاق السياسات.
  4. حدد السياسات المدارة AmazonSageMakerFullAccess و AwsGlueSessionUserRestrictedServiceRole
  5. اختار إرفاق السياسات.
    تعرض صفحة الملخص السياسات المُدارة التي تمت إضافتها حديثًا ، والآن يمكنك إضافة سياسة مخصصة وإرفاقها بدور التنفيذ الخاص بك.
  6. على أضف أذونات القائمة، اختر إنشاء سياسة مضمنة.
  7. على JSON علامة التبويب ، أدخل السياسة التالية:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. قم بتعديل علاقة ثقة دورك:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

قم بتشغيل نواة جلسة تفاعلية AWS Glue

إذا كان لديك بالفعل مستخدمون موجودون في مجال Studio الخاص بك ، فقد تحتاج إلى الحصول عليهم إغلاق وإعادة تشغيل خادم Jupyter لالتقاط صور نواة دفتر الملاحظات الجديد.

عند إعادة التحميل ، يمكنك إنشاء دفتر ملاحظات Studio جديد و حدد النواة المفضلة لديك. المدمج في SparkAnalytics 1.0 يجب أن تكون الصورة متاحة الآن ، ويمكنك اختيار نواة AWS Glue المفضلة لديك (غراء سكالا سبارك or الغراء PySpark).

تكوين جلسة تفاعلية

يمكنك بسهولة تكوين جلسة AWS Glue التفاعلية الخاصة بك باستخدام سحر خلية دفتر الملاحظات قبل التهيئة. السحر عبارة عن أوامر صغيرة مسبوقة بـ٪ في بداية خلايا Jupyter توفر اختصارات للتحكم في البيئة. في جلسات AWS Glue التفاعلية ، يتم استخدام السحر لجميع احتياجات التكوين ، بما في ذلك:

  • ٪منطقة - منطقة AWS التي يتم فيها بدء جلسة. الافتراضي هو منطقة الاستوديو.
  • ٪ iam_role - دور IAM ARN لتشغيل جلستك معه. الافتراضي هو دور تنفيذ SageMaker للمستخدم.
  • ٪ worker_type - و نوع عامل AWS Glue. الافتراضي هو المعيار.
  • ٪عدد العمال - عدد العمال الذين يتم تخصيصهم عند تشغيل الوظيفة. الافتراضي هو خمسة.
  • ٪ idle_timeout - عدد دقائق عدم النشاط التي تنتهي بعدها الجلسة. الافتراضي هو 2,880 دقيقة.
  • ٪ extra_python_modules - قائمة مفصولة بفواصل لوحدات بايثون الإضافية لتضمينها في المجموعة الخاصة بك. يمكن أن يكون هذا من PyPi أو خدمة تخزين أمازون البسيطة (أمازون S3).
  • ٪٪تهيئة - قاموس بتنسيق JSON يتكون من معلمات التكوين الخاصة بـ AWS Glue للجلسة.

للحصول على قائمة شاملة بالمعلمات السحرية القابلة للتكوين لهذه النواة ، استخدم ملحق %help السحر داخل دفتر ملاحظاتك.

لن تبدأ جلسة AWS Glue التفاعلية الخاصة بك حتى يتم تشغيل أول خلية غير سحرية.

قم بتخصيص جلستك التفاعلية وقم بتشغيل عبء عمل إعداد البيانات

على سبيل المثال ، تُظهر خلايا دفتر الملاحظات التالية كيف يمكنك تخصيص جلسة AWS Glue التفاعلية وتشغيل عبء عمل لإعداد البيانات قابل للتطوير. في هذا المثال ، نقوم بتنفيذ مهمة ETL لتجميع بيانات جودة الهواء لمدينة معينة ، وتجميعها حسب الساعة من اليوم.

نقوم بتهيئة جلستنا لحفظ سجلات Spark الخاصة بنا في حاوية S3 لتصحيح الأخطاء في الوقت الفعلي ، وهو ما نراه لاحقًا في هذا المنشور. تأكد من أن ملف iam_role الذي يقوم بتشغيل جلسة AWS Glue لديه حق الوصول للكتابة إلى حاوية S3 المحددة.

%help

%session_id_prefix air-analysis-
%glue_version 3.0
%idle_timeout 60
%%configure
{
"--enable-spark-ui": "true",
"--spark-event-logs-path": "s3://<BUCKET>/gis-spark-logs/"
}

بعد ذلك ، نقوم بتحميل مجموعة البيانات الخاصة بنا مباشرةً من Amazon S3. بدلا من ذلك ، يمكنك تحميل البيانات باستخدام كتالوج بيانات AWS Glue.

from pyspark.sql.functions import split, lower, hour
print(spark.version)
day_to_analyze = "2022-01-05"
df = spark.read.json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/1641409725.ndjson.gz")
df_air = spark.read.schema(df.schema).json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/*")

أخيرًا ، نكتب مجموعة البيانات المحولة إلى موقع حاوية الإخراج الذي حددناه:

df_city = df_air.filter(lower((df_air.city)).contains('delhi')).filter(df_air.parameter == "no2").cache()
df_avg = df_city.withColumn("Hour", hour(df_city.date.utc)).groupBy("Hour").avg("value").withColumnRenamed("avg(value)", "no2_avg")
df_avg.sort("Hour").show()

# Examples of reading / writing to other data stores: 
# https://github.com/aws-samples/aws-glue-samples/tree/master/examples/notebooks

df_avg.write.parquet(f"s3://<BUCKET>/{day_to_analyze}.parquet")

بعد الانتهاء من عملك ، يمكنك إنهاء جلسة AWS Glue التفاعلية فورًا عن طريق إغلاق نواة دفتر ملاحظات Studio ، أو يمكنك استخدام %stop_session سحر.

التصحيح و Spark UI

في المثال السابق ، حددنا الامتداد ”--enable-spark-ui”: “true” حجة مع أ "--spark-event-logs-path": location. يؤدي هذا إلى تكوين جلسة AWS Glue الخاصة بنا لتسجيل سجلات الجلسات حتى نتمكن من استخدام Spark UI لمراقبة مهمة AWS Glue وتصحيحها في الوقت الفعلي.

للتعرف على عملية بدء تشغيل وقراءة سجلات Spark هذه ، يرجى الرجوع إلى بدء تشغيل خادم Spark history. في لقطة الشاشة التالية ، أطلقنا حاوية Docker محلية لديها إذن لقراءة حاوية S3 التي تحتوي على سجلاتنا. اختياريًا ، يمكنك استضافة ملف الأمازون الحوسبة المرنة السحابية (Amazon EC2) للقيام بذلك ، كما هو موضح في الوثائق المرتبطة السابقة.

قم بإعداد البيانات على نطاق واسع في Amazon SageMaker Studio باستخدام جلسات تفاعلية بدون خادم AWS Glue PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

التسعير

عند استخدام جلسات AWS Glue التفاعلية على أجهزة كمبيوتر Studio المحمولة ، يتم محاسبتك بشكل منفصل على استخدام الموارد على أجهزة الكمبيوتر المحمولة AWS Glue و Studio.

رسوم AWS لجلسات AWS Glue التفاعلية بناءً على مدة نشاط الجلسة وعدد وحدات معالجة البيانات (DPUs) المستخدمة. يتم تحصيل رسوم بالساعة مقابل عدد وحدات DPU المستخدمة لتشغيل أحمال العمل الخاصة بك ، والتي يتم تحرير فواتير بها بزيادات قدرها ثانية واحدة. تقوم جلسات AWS Glue التفاعلية بتعيين افتراضي 1 وحدات DPU وتتطلب وحدتي DPU على الأقل. هناك أيضًا حد أدنى لمدة فاتورة مدتها دقيقة واحدة لكل جلسة تفاعلية. للاطلاع على معدلات AWS Glue وأمثلة التسعير ، أو لتقدير تكاليفك باستخدام AWS Pricing Calculator ، راجع تسعير AWS Glue.

يعمل الكمبيوتر الدفتري Studio الخاص بك على مثيل EC2 ويتم محاسبتك على نوع المثيل الذي تختاره ، بناءً على مدة الاستخدام. يقوم الاستوديو بتعيين نوع مثيل EC2 افتراضي من ml-t3-medium عند تحديد ملف SparkAnalytics الصورة والنواة المرتبطة بها. يمكنك تغيير نوع المثيل الخاص بجهاز كمبيوتر Studio الخاص بك ليناسب حجم العمل لديك. للحصول على معلومات حول تسعير SageMaker Studio ، راجع الأمازون SageMaker التسعير.

وفي الختام

يعمل الدمج الأصلي لأجهزة كمبيوتر Studio المحمولة مع جلسات AWS Glue التفاعلية على تسهيل إعداد البيانات بدون خادم بشكل سلس وقابل للتطوير لعلماء البيانات ومهندسي البيانات. نحن نشجعك على تجربة هذه الوظيفة الجديدة في Studio!

يرى قم بإعداد البيانات باستخدام جلسات AWS Glue التفاعلية للمزيد من المعلومات.


عن المؤلفين

شون مورغانشون مورغان هو كبير مهندسي حلول ML في AWS. لديه خبرة في مجالات البحث الأكاديمي وأشباه الموصلات ، ويستخدم خبرته لمساعدة العملاء على تحقيق أهدافهم على AWS. في وقت فراغه ، يعمل شون كمساهم / مشرف نشط مفتوح المصدر وقائد مجموعة الاهتمامات الخاصة لـ TensorFlow Addons.

قم بإعداد البيانات على نطاق واسع في Amazon SageMaker Studio باستخدام جلسات تفاعلية بدون خادم AWS Glue PlatoBlockchain Data Intelligence. البحث العمودي. عاي.سوميدا سوامي هو مدير المنتج الرئيسي في Amazon Web Services. يقود فريق SageMaker Studio لإدراجه في IDE المفضل لعلوم البيانات التفاعلية وهندسة البيانات. لقد أمضى الخمسة عشر عامًا الماضية في بناء منتجات للمستهلكين والشركات المهووسة بالعملاء باستخدام التعلم الآلي. في أوقات فراغه ، يحب تصوير الجيولوجيا المذهلة للجنوب الغربي الأمريكي.

الطابع الزمني:

اكثر من التعلم الآلي من AWS