تنفيذ مسار معالجة نصوص البيانات الضخمة في Cloud Dataflow

1. نظرة عامة

Cloud-Dataflow.png

ما هو Dataflow؟

Dataflow هي خدمة مُدارة لتنفيذ مجموعة متنوعة من أنماط معالجة البيانات. توضّح لك المستندات على هذا الموقع الإلكتروني كيفية نشر مسارات معالجة البيانات المجمّعة وتدفق البيانات باستخدام Dataflow، بما في ذلك إرشادات استخدام ميزات الخدمة.

حزمة Apache Beam SDK هي نموذج برمجة مفتوح المصدر يمكّنك من تطوير كل من مسارات الحزم وتدفقات البث. ويمكنك إنشاء المسارات باستخدام برنامج Apache Beam، ثم تشغيلها في خدمة Dataflow. توفِّر مستندات Apache Beam معلومات مفاهيمية معمّقة ومواد مرجعية لنموذج برمجة Apache Beam وحزم تطوير البرامج (SDK) وبرامج التشغيل الأخرى.

بث تحليلات البيانات بسرعة

تتيح عملية Dataflow تطوير مسار نقل بيانات البث بسرعة وسهولة مع تقليل وقت الاستجابة.

تبسيط العمليات والإدارة

يسمح ذلك للفِرق بالتركيز على البرمجة بدلاً من إدارة مجموعات الخوادم، لأنّ نهج Dataflow بدون خوادم يؤدي إلى تخفيف أعباء العمل المتعلّقة بهندسة البيانات.

تقليل التكلفة الإجمالية للملكية

من خلال التوسّع التلقائي للموارد إلى جانب إمكانات المعالجة على دفعات محسَّنة، تقدّم Dataflow سعة غير محدودة تقريبًا لإدارة أعباء العمل الموسمية والارتفاعة بدون زيادة في الإنفاق.

الميزات الأساسية

إدارة الموارد المبرمَجة وإعادة موازنة العمل الديناميكي

تعمل Dataflow على برمجة عملية توفير موارد المعالجة وإدارتها لتقليل وقت الاستجابة وزيادة الاستخدام إلى أقصى حد كي لا تحتاج إلى تدوير المثيلات أو الاحتفاظ بها يدويًا. تتم أيضًا برمجة تقسيم العمل ويتم تحسينه لإعادة موازنة العمل المتأخِّر ديناميكيًا. لا داعي لاستخدام "مفاتيح التشغيل السريع" أو معالجة بيانات الإدخال مسبقًا.

القياس التلقائي الأفقي

يؤدي القياس التلقائي الأفقي لموارد العمال للحصول على أفضل سرعة لإنتاج البيانات إلى تحسين الأداء الإجمالي من حيث السعر.

أسعار مرنة لجدولة الموارد للمعالجة المجمّعة

لمعالجة الطلبات بشكل مرن في جدولة المهام، مثل المهام اليومية، توفّر ميزة جدولة الموارد المرنة (FlexRS) سعرًا أقل للمعالجة على دفعات. ويتم وضع هذه المهام المرنة في قائمة انتظار مع ضمان استردادها لتنفيذها في غضون ست ساعات.

هذا الدليل التوجيهي مقتبس من https://cloud.google.com/dataflow/docs/quickstarts/quickstart-java-maven.

المعلومات التي ستطّلع عليها

  • كيفية إنشاء مشروع Maven باستخدام Apache Beam، باستخدام حزمة Java SDK
  • تشغيل نموذج مسار باستخدام "وحدة تحكّم Google Cloud Platform"
  • كيفية حذف حزمة Cloud Storage المرتبطة ومحتوياتها

المتطلبات

كيف ستستخدم هذا البرنامج التعليمي؟

القراءة فقط اقرأها وأكمِل التمارين

ما هو تقييمك لتجربتك في استخدام خدمات Google Cloud Platform؟

حديث متوسط بارع

2. الإعداد والمتطلبات

إعداد بيئة ذاتية

  1. سجِّل الدخول إلى Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. (إذا لم يكن لديك حساب على Gmail أو G Suite، عليك إنشاء حساب.)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

يُرجى تذكُّر رقم تعريف المشروع، وهو اسم فريد في جميع مشاريع Google Cloud (سبق أن تم استخدام الاسم أعلاه ولن يكون مناسبًا لك). ستتم الإشارة إليها لاحقًا في هذا الدرس التطبيقي حول الترميز باسم PROJECT_ID.

  1. بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد Google Cloud.

إنّ تنفيذ هذا الدرس التطبيقي حول الترميز لن يكون مكلفًا أو مكلفًا على الإطلاق. احرص على اتّباع أي تعليمات في قسم "الحذف سريعًا". الذي يقدم لك نصائح حول كيفية إيقاف تشغيل الموارد حتى لا تتكبّد أي فواتير خارج نطاق هذا البرنامج التعليمي. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج الفترة التجريبية المجانية التي تبلغ قيمتها 300 دولار أمريكي.

تفعيل واجهات برمجة التطبيقات

انقر على رمز القائمة في أعلى يمين الشاشة.

2bfc27ef9ba2ec7d.png

حدد واجهات برمجة التطبيقات الخدمات > لوحة البيانات من القائمة المنسدلة.

5b65523a6cc0afa6.png

اختَر + تفعيل واجهات برمجة التطبيقات والخدمات.

81ed72192c0edd96.png

ابحث عن "Compute Engine" في مربع البحث. انقر على "Compute Engine API" في قائمة النتائج التي تظهر.

3f201e991c7b4527.png

في صفحة Google Compute Engine، انقر على تفعيل.

ac121653277fa7bb.png

وبعد تفعيلها، انقر على السهم للعودة إلى الصفحة السابقة.

ابحث الآن عن واجهات برمجة التطبيقات التالية وفعِّلها أيضًا:

  • تدفق البيانات في السحابة الإلكترونية
  • Stackdriver
  • تخزين في السحابة الإلكترونية
  • ملف JSON للتخزين في السحابة الإلكترونية
  • BigQuery
  • خدمة Cloud Pub/Sub
  • Cloud Datastore
  • واجهات Cloud Resource Manager

3- إنشاء حزمة جديدة على Cloud Storage

في وحدة تحكُّم Google Cloud Platform، انقر على رمز القائمة في أعلى يمين الشاشة:

2bfc27ef9ba2ec7d.png

مرر لأسفل واختر Cloud Storage > المتصفِّح في القسم الفرعي مساحة التخزين:

2b6c3a2a92b47015.png

من المفترض أن يظهر لك الآن متصفِّح Cloud Storage، وبافتراض أنّك تستخدم مشروعًا لا يحتوي حاليًا على أي حِزم Cloud Storage، ستظهر لك دعوة لإنشاء حزمة جديدة. اضغط على الزر إنشاء حزمة لإنشاء حزمة:

a711016d5a99dc37.png

يُرجى إدخال اسم للحزمة. وفقًا لملاحظات مربّع الحوار، يجب أن تكون أسماء الحِزم فريدة في كل Cloud Storage. لذلك، إذا اخترت اسمًا واضحًا، مثل "test"، فربما تجد أن مستخدمًا آخر قد أنشأ مجموعة بيانات بهذا الاسم من قبل، وسيتلقى رسالة خطأ.

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

3a5458648cfe3358.png

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

3bda986ae88c4e71.png

وبالطبع، سيكون اسم الحزمة الذي تراه مختلفًا، لأنه يجب أن يكون فريدًا عبر جميع المشروعات.

4. بدء Cloud Shell

تفعيل Cloud Shell

  1. من Cloud Console، انقر على تفعيل Cloud Shell H7JlbhKGHITmsxhQIcLwoe5HXZMhDlYue4K-SPszMxUxDjIeWfOHBfxDHYpmLQTzUmQ7Xx8o6OJUlANnQF0iBuUyfp1RzVad_4nCa0Zz5LtwBlUZFXFCWFrmrWZLqg1MkZz2LdgUDQ.

zlNW0HehB_AFW1qZ4AyebSQUdWm95n7TbnOr7UVm3j9dFcg6oWApJRlC0jnU1Mvb-IQp-trP1Px8xKNwt6o3pP6fyih947sEhOFI4IRF0W7WZk6hFqZDUGXQQXrw21GuMm2ecHrbzQ

إذا لم يسبق لك بدء تشغيل Cloud Shell، ستظهر لك شاشة وسيطة (الجزء السفلي غير المرئي من الصفحة) تصف ماهيتها. إذا كان الأمر كذلك، فانقر على متابعة (ولن تراه مرة أخرى مطلقًا). إليك ما تبدو عليه هذه الشاشة التي تُستخدم لمرة واحدة:

kEPbNAo_w5C_pi9QvhFwWwky1cX8hr_xEMGWySNIoMCdi-Djx9AQRqWn-__DmEpC7vKgUtl-feTcv-wBxJ8NwzzAp7mY65-fi2LJo4twUoewT1SUjd6Y3h81RG3rKIkqhoVlFR-G7w

من المفترَض أن تستغرق عملية إدارة الحسابات والاتصال بخدمة Cloud Shell بضع دقائق فقط.

pTv5mEKzWMWp5VBrg2eGcuRPv9dLInPToS-mohlrqDASyYGWnZ_SwE-MzOWHe76ZdCSmw0kgWogSJv27lrQE8pvA5OD6P1I47nz8vrAdK7yR1NseZKJvcxAZrPb8wRxoqyTpD-gbhA

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

بعد الربط بخدمة Cloud Shell، من المفترض أن ترى أنّه قد تمت مصادقتك وأنّ المشروع معيّن سبق أن تم ضبطه على رقم تعريف مشروعك.

  1. شغِّل الأمر التالي في Cloud Shell لتأكيد مصادقتك:
gcloud auth list

مخرجات الأمر

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
gcloud config list project

مخرجات الأمر

[core]
project = <PROJECT_ID>

إذا لم يكن كذلك، يمكنك تعيينه من خلال هذا الأمر:

gcloud config set project <PROJECT_ID>

مخرجات الأمر

Updated property [core/project].

5- إنشاء مشروع Maven

بعد إطلاق Cloud Shell، لنبدأ بإنشاء مشروع Maven باستخدام حزمة تطوير البرامج (SDK) بلغة Java لخدمة Apache Beam.

Apache Beam هو نموذج برمجة مفتوح المصدر لمسارات البيانات. يمكنك تحديد المسارات باستخدام برنامج شعاع Apache، كما يمكنك اختيار برنامج تشغيل، مثل Dataflow لتنفيذ مسار العملية.

نفِّذ الأمر mvn archetype:generate في واجهة الأوامر على النحو التالي:

  mvn archetype:generate \
     -DarchetypeGroupId=org.apache.beam \
     -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
     -DarchetypeVersion=2.46.0 \
     -DgroupId=org.example \
     -DartifactId=first-dataflow \
     -Dversion="0.1" \
     -Dpackage=org.apache.beam.examples \
     -DinteractiveMode=false

بعد تشغيل الأمر، من المفترض أن يظهر لك دليل جديد باسم first-dataflow ضمن الدليل الحالي. يحتوي "first-dataflow" على مشروع Maven يتضمّن حزمة تطوير البرامج (SDK) الخاصة بخدمة Cloud Dataflow للغة Java وأمثلة للمسارات.

6- تنفيذ مسار معالجة النصوص في Cloud Dataflow

لنبدأ بحفظ رقم تعريف مشروعنا وأسماء حِزم Cloud Storage كمتغيّرات للبيئة. يمكنك إجراء ذلك في Cloud Shell. تأكَّد من استبدال <your_project_id> برقم تعريف مشروعك.

 export PROJECT_ID=<your_project_id>

سنطبّق الآن الإجراء نفسه على حزمة Cloud Storage. ملاحظة: يجب استبدال السمة <your_bucket_name> بالاسم الفريد الذي استخدمته لإنشاء حزمتك في خطوة سابقة.

 export BUCKET_NAME=<your_bucket_name>

التغيير إلى الدليل first-dataflow/.

 cd first-dataflow

نحن بصدد تشغيل مسار يسمى WordCount، والذي يقرأ النص، ويرمز إلى سطور النص إلى كلمات فردية، ويحسب مرات تكرار كل كلمة من هذه الكلمات. سنقوم أولاً بتشغيل مسار التعلّم، وأثناء تنفيذ العملية، سنلقي نظرة على ما يحدث في كل خطوة.

ابدأ المسار من خلال تنفيذ الأمر mvn compile exec:java في واجهة الأوامر أو في نافذة المحطة الطرفية. بالنسبة إلى الوسيطات --project, --stagingLocation, و--output، يشير الأمر أدناه إلى متغيّرات البيئة التي سبق لك إعدادها في هذه الخطوة.

 mvn compile exec:java \
      -Pdataflow-runner compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--project=${PROJECT_ID} \
      --stagingLocation=gs://${BUCKET_NAME}/staging/ \
      --output=gs://${BUCKET_NAME}/output \
      --runner=DataflowRunner \
      --region=us-central1 \
      --gcpTempLocation=gs://${BUCKET_NAME}/temp"

أثناء تشغيل الوظيفة، دعنا نعثر على الوظيفة في قائمة الوظائف.

افتح واجهة مستخدم الويب في Cloud Dataflow في وحدة تحكُّم Google Cloud Platform. من المفترض أن تظهر لك مهمة عدد الكلمات بالحالة قيد التشغيل:

3623be74922e3209.png

الآن، لنلقِ نظرة على معاملات المسار. ابدأ بالنقر على اسم وظيفتك:

816d8f59c72797d7.png

عند اختيار وظيفة، يمكنك عرض الرسم البياني للتنفيذ. يمثل الرسم البياني لتنفيذ مسار التحويل كل تحويل في المسار كمربع يحتوي على اسم التحويل وبعض معلومات الحالة. يمكنك النقر على القيراط في أعلى الجانب الأيسر من كل خطوة للاطلاع على مزيد من التفاصيل:

80a972dd19a6f1eb.png

دعونا نرى كيف يحول المسار البيانات في كل خطوة:

  • القراءة: في هذه الخطوة، تتم قراءة المسار من مصدر إدخال. وفي هذه الحالة، تكون عبارة عن ملف نصي من Cloud Storage يتضمّن النص الكامل لمسرحية King Lear لشكسبير. يقرأ مسارنا الملف سطرًا تلو الآخر، ويُخرج كل PCollection سطر، حيث يكون كل سطر في الملف النصي عنصرًا في المجموعة.
  • CountWords: تشمل الخطوة CountWords جزأين. أولاً، يستخدم دالة "do" المتوازية (ParDo) المسماة ExtractWords لتحويل كل سطر إلى كلمات مميّزة. ناتج استخراج الكلمات هو مجموعة PCollection جديدة حيث يكون كل عنصر كلمة. تستخدِم الخطوة التالية، Count، عملية تحويل توفِّرها حزمة تطوير البرامج (SDK) بلغة Java لعرض أزواج المفتاح/القيمة حيث يكون المفتاح كلمة فريدة والقيمة هي عدد مرّات حدوثها. في ما يلي طريقة تنفيذ CountWords، ويمكنك مراجعة ملف WordCount.java الكامل على GitHub:
 /**
   * A PTransform that converts a PCollection containing lines of text into a PCollection of
   * formatted word counts.
   *
   * <p>Concept #3: This is a custom composite transform that bundles two transforms (ParDo and
   * Count) as a reusable PTransform subclass. Using composite transforms allows for easy reuse,
   * modular testing, and an improved monitoring experience.
   */
  public static class CountWords
      extends PTransform<PCollection<String>, PCollection<KV<String, Long>>> {
    @Override
    public PCollection<KV<String, Long>> expand(PCollection<String> lines) {

      // Convert lines of text into individual words.
      PCollection<String> words = lines.apply(ParDo.of(new ExtractWordsFn()));

      // Count the number of times each word occurs.
      PCollection<KV<String, Long>> wordCounts = words.apply(Count.perElement());

      return wordCounts;
    }
  }
  • MapElements: يؤدي هذا إلى استدعاء FormatAsTextFn، المنسوخة أدناه، والتي تعمل على تنسيق كل زوج قيمة ومفتاح في سلسلة قابلة للطباعة.
  /** A SimpleFunction that converts a Word and Count into a printable string. */
  public static class FormatAsTextFn extends SimpleFunction<KV<String, Long>, String> {
    @Override
    public String apply(KV<String, Long> input) {
      return input.getKey() + ": " + input.getValue();
    }
  }
  • WriteCounts: في هذه الخطوة، نكتب السلاسل القابلة للطباعة في عدة ملفات نصية مقسّمة.

سنلقي نظرة خلال بضع دقائق على المخرجات النهائية.

ألقِ نظرة الآن على صفحة معلومات عن الوظيفة على يسار الرسم البياني، والتي تتضمّن مَعلمات المسارات التي أدرجناها في الأمر mvn compile exec:java.

9723815a1f5bf08b.png

208a7f0d6973acf6.png

يمكنك أيضًا رؤية العدّادات المخصّصة لمسار العملية، والتي تعرض في هذه الحالة عدد الأسطر الفارغة التي تمّت مواجهتها حتى الآن أثناء التنفيذ. يمكنك إضافة عدّادات جديدة إلى مسار العملية لتتبّع المقاييس الخاصة بالتطبيقات.

a2e2800e2c6893f8.png

يمكنك النقر على رمز السجلات في أسفل وحدة التحكّم لعرض رسائل الخطأ المحدّدة.

23c64138a1027f8.png

تعرض اللوحة بشكل تلقائي رسائل سجلّ المهام التي تبلغ عن حالة المهمة ككل. يمكنك استخدام أداة اختيار "الحد الأدنى لدرجة الخطورة" لفلترة تقدم المهمة ورسائل الحالة.

94ba42015fdafbe2.png

يؤدي تحديد خطوة في المسار في الرسم البياني إلى تغيير طريقة العرض إلى السجلات التي تم إنشاؤها بواسطة الرمز البرمجي والرمز الذي تم إنشاؤه قيد التشغيل في خطوة المسار.

للرجوع إلى سجلات المهام، ألغ تحديد الخطوة بالنقر خارج الرسم البياني أو باستخدام الزر "إغلاق" في اللوحة الجانبية اليسرى.

يمكنك استخدام الزر سجلّات العمال في علامة التبويب "السجلات" للاطّلاع على سجلات العاملين الخاصة بمثيلات Compute Engine التي تشغّل مسارك. تتكون سجلات العامل من سطور سجل تم إنشاؤها بواسطة التعليمة البرمجية والتعليمات البرمجية التي تم إنشاؤها في Dataflow لتشغيلها.

إذا كنت تحاول تصحيح أخطاء عطل في مسار التعلّم، سيكون هناك في كثير من الأحيان تسجيل إضافي في سجلّات العامل يساعد في حل المشكلة. وتذكر أن هذه السجلات يتم تجميعها عبر كل العاملين، ويمكن تصفيتها والبحث فيها.

5a53c244f28d5478.png

لا تعرض واجهة Dataflow Monitoring Interface سوى أحدث رسائل السجلّ. يمكنك عرض جميع السجلات بالنقر على رابط "مراقبة Google Cloud" على يسار جزء السجلات.

2bc704a4d6529b31.png

في ما يلي ملخص لأنواع السجلات المختلفة المتاحة للعرض من صفحة Monitoring←Logs:

  • تحتوي سجلات job-message على رسائل على مستوى الوظيفة تنشئها المكونات المختلفة لتدفق البيانات. وتشمل الأمثلة ضبط القياس التلقائي، ووقت بدء تشغيل الموظفين أو إيقاف تشغيله، والتقدّم في خطوة المهمة، وأخطاء المهمة. إنّ الأخطاء على مستوى العامل التي تنشأ عن تعطّل رمز المستخدم والموجودة في سجلات العامل يتم أيضًا نشرها في سجلات رسالة الوظيفة.
  • يعمل عاملو Dataflow على إنشاء سجلات worker. ينجز العمال معظم أعمالهم (على سبيل المثال، تطبيق ParDos على البيانات). تحتوي سجلات العامل على الرسائل التي تم تسجيلها من خلال الرمز الخاص بك وDataflow.
  • تتوفّر سجلات worker-startup في معظم مهام Dataflow، ويمكنها تسجيل الرسائل المتعلّقة بعملية بدء التشغيل. تشمل عملية بدء التشغيل تنزيل حاويات المهمة من Cloud Storage، ثم بدء العاملين. إذا كانت هناك مشكلة في بدء تشغيل العاملين، تعد هذه السجلات مكانًا جيدًا للبحث.
  • تتضمن السجلات Shuffler رسائل من العاملين الذين يدمجون نتائج عمليات المسارات المتوازية.
  • تحتوي سجلات docker وkubelet على رسائل ذات صلة بهذه التكنولوجيات العامة، والتي يتم استخدامها في العاملين في Dataflow.

في الخطوة التالية، سنتحقّق من نجاح مهمتك.

7. التحقّق من نجاح مهمتك

افتح واجهة مستخدم الويب في Cloud Dataflow في وحدة تحكُّم Google Cloud Platform.

من المفترض أن تظهر لك مهمة عدد الكلمات بالحالة قيد التشغيل في البداية، ثم ناجح:

4c408162416d03a2.png

يستغرق تنفيذ المهمة من 3 إلى 4 دقائق تقريبًا.

هل تتذكر عندما قمت بتشغيل مسار التعلّم وحددت حزمة إخراج؟ لنلقِ نظرة على النتيجة (لأنّك لا تريد معرفة عدد مرات حدوث كل كلمة في King Lear؟). انتقِل مرة أخرى إلى متصفِّح Cloud Storage في وحدة تحكُّم Google Cloud Platform. من المفترَض أن تظهر في الحِزمة ملفات الإخراج والملفات المرحلية التي أنشأتها مهمتك:

25a5d3d4b5d0b567.png

8. إيقاف تشغيل الموارد

يمكنك إيقاف مواردك من وحدة تحكُّم Google Cloud Platform.

افتح متصفِّح Cloud Storage في "وحدة تحكُّم Google Cloud Platform".

2b6c3a2a92b47015.png

ضَع علامة في مربّع الاختيار بجانب الحزمة التي أنشأتها وانقر على حذف لحذف الحزمة ومحتواها نهائيًا.

2f7780bdf10b69ba.png

8051ef293a8e5cfe.png

9. تهانينا!

لقد تعرفت على كيفية إنشاء مشروع Maven باستخدام حزمة تطوير البرامج (SDK) في Cloud Dataflow، وتشغيل نموذج مسار باستخدام وحدة تحكّم Google Cloud Platform، وحذف حزمة Cloud Storage المرتبطة ومحتواها.

مزيد من المعلومات

الترخيص

هذا العمل مرخّص بموجب ترخيص Creative Commons Attribution 3.0 العام وترخيص Apache 2.0.