התקנה או עדכון של Apache Beam SDK

בדף הזה מוסבר איך להתקין או לעדכן את Apache Beam SDK כדי להפעיל את צינורות הנתונים בשירות Dataflow.

התקנה של Apache Beam SDK

‫Apache Beam SDK הוא מודל תכנות בקוד פתוח לצינורות נתונים. אתם מגדירים את צינורות עיבוד הנתונים האלה באמצעות תוכנית Apache Beam, ויכולים לבחור רץ, כמו Dataflow, כדי להריץ את צינור עיבוד הנתונים.

Java

הגרסה האחרונה שפורסמה של Apache Beam SDK ל-Java היא 2.76.0. מידע על השינויים שכלולים בגרסה מופיע בהודעה על הגרסה.

כדי לקבל את Apache Beam SDK ל-Java באמצעות Maven, משתמשים באחד הארטיפקטים שפורסמו מתוך Maven Central Repository.

מוסיפים יחסי תלות וכלי ניהול יחסי תלות לקובץ pom.xml של ארטיפקט ה-SDK. פרטים נוספים זמינים במאמר בנושא ניהול תלות בצינורות ב-Dataflow.

מידע נוסף על יחסי תלות של Apache Beam SDK for Java זמין במאמרים Apache Beam SDK for Java dependencies ו-Managing Beam dependencies in Java במסמכי התיעוד של Apache Beam.

Python

הגרסה האחרונה שפורסמה של Apache Beam SDK ל-Python היא 2.76.0. מידע על השינויים שכלולים בגרסה מופיע בהודעה על הגרסה.

כדי לקבל את Apache Beam SDK ל-Python, משתמשים באחת מהחבילות שפורסמו מתוך Python Package Index.

מריצים את הפקודה הבאה כדי להתקין Python wheel:

pip install wheel

כדי להתקין את הגרסה האחרונה של Apache Beam SDK ל-Python, מריצים את הפקודה הבאה מסביבה וירטואלית:

pip install 'apache-beam[gcp]'

ההתקנה עשויה להימשך זמן מה, בהתאם לחיבור.

המשך

הגרסה האחרונה שפורסמה של Apache Beam SDK for Go היא 2.76.0. מידע על השינויים שכלולים בגרסה מופיע בהודעה על הגרסה.

כדי להתקין את הגרסה האחרונה של Apache Beam SDK for Go, מריצים את הפקודה הבאה:

go get -u github.com/apache/beam/sdks/v2/go/pkg/beam

הגדרת סביבת הפיתוח

כדי לקבל מידע על הגדרת פרויקט וסביבת פיתוח Google Cloud לשימוש ב-Dataflow, אפשר לעיין באחד מהמדריכים הבאים:

קוד מקור ודוגמאות

קוד המקור של Apache Beam זמין במאגר Apache Beam ב-GitHub.

Java

דוגמאות קוד זמינות ב- ספריית הדוגמאות של Apache Beam ב-GitHub.

Python

דוגמאות קוד זמינות בספריית הדוגמאות של Apache Beam ב-GitHub.

המשך

דוגמאות קוד זמינות בספריית הדוגמאות של Apache Beam ב-GitHub.

איך מוצאים את גרסת Dataflow SDK

פרטי ההתקנה משתנים בהתאם לסביבת הפיתוח. אם אתם משתמשים ב-Maven, אתם יכולים להתקין כמה גרסאות של Dataflow SDK במאגר Maven מקומי אחד או יותר.

Java

כדי לגלות איזו גרסה של Dataflow SDK מפעילה צינור נתונים מסוים, אפשר לעיין בפלט של המסוף כשמפעילים את הצינור עם DataflowPipelineRunner או עם BlockingDataflowPipelineRunner. המסוף יכיל הודעה כמו זו שבהמשך, שכוללת את פרטי הגרסה של Dataflow SDK:

Python

כדי לגלות איזו גרסה של Dataflow SDK מפעילה צינור נתונים מסוים, אפשר לעיין בפלט של המסוף כשמפעילים את הפקודה DataflowRunner. המסוף יכיל הודעה כמו זו שבהמשך, שכוללת את פרטי הגרסה של Dataflow SDK:

המשך

כדי לגלות איזו גרסה של Dataflow SDK מפעילה צינור נתונים מסוים, אפשר לעיין בפלט של המסוף כשמפעילים את הפקודה DataflowRunner. המסוף יכיל הודעה כמו זו שבהמשך, שכוללת את פרטי הגרסה של Dataflow SDK:

  INFO: Executing pipeline on the Dataflow Service, ...
  Dataflow SDK version: <version>

עדכון Apache Beam SDK

כשמשדרגים את צינור העברת הנתונים לגרסה מאוחרת יותר של Apache Beam SDK, צריך לעדכן את הגדרות התלות של הפרויקט ולבדוק אם יש שינויים שעלולים לגרום לבעיות בין הגרסאות.

בדיקת נתוני הגרסה והשינויים

לפני השדרוג, כדאי לעיין בנתוני הגרסה של Apache Beam כדי לראות אילו שינויים בוצעו, אילו באגים תוקנו ואילו שינויים עלולים לגרום לבעיות.

אם אתם משדרגים בין כמה גרסאות משניות, כדאי לעיין בהערות לגבי כל הגרסאות הביניים. לדוגמה, אם אתם משדרגים מגרסה 2.50.0 לגרסה 2.60.0, כדאי לעיין בהערות לגבי הגרסאות 2.51.0 עד 2.60.0. שינויים שוברים, הוצאות משימוש ועדכוני הגדרה הם מצטברים בין הגרסאות.

כדי לראות בעיות מוכרות והודעות ספציפיות למחברים שמשפיעות על Dataflow, אפשר לעיין בעמודה פרטים בטבלה סטטוס התמיכה בגרסת ה-SDK.

עדכון יחסי תלות של SDK

כדי לשדרג את גרסת ה-SDK בפרויקט, צריך לעדכן את הגדרת ה-build או את הסביבה של השפה שבה נעשה שימוש בצינור. מחליפים את VERSION בגרסת היעד של Apache Beam SDK (לדוגמה, 2.76.0).

Java

כדי לשדרג את Apache Beam SDK ל-Java, צריך לעדכן את גרסת ה-SDK בקובץ הגדרות ה-build, כמו pom.xml ל-Maven או build.gradle ל-Gradle.

Maven

בקובץ pom.xml, מעדכנים את המאפיין beam.version או את התג <version> בתלות של Apache Beam:

<properties>
  <beam.version>VERSION</beam.version>
</properties>

<dependencies>
  <dependency>
    <groupId>org.apache.beam</groupId>
    <artifactId>beam-sdks-java-core</artifactId>
    <version>${beam.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.beam</groupId>
    <artifactId>beam-runners-google-cloud-dataflow-java</artifactId>
    <version>${beam.version}</version>
  </dependency>
</dependencies>

Gradle

בקובץ build.gradle, מעדכנים את הצהרות התלות של Apache Beam:

dependencies {
  implementation 'org.apache.beam:beam-sdks-java-core:VERSION'
  implementation 'org.apache.beam:beam-runners-google-cloud-dataflow-java:VERSION'
}

מידע נוסף זמין במאמר בנושא ניהול יחסי תלות בצינורות Java.

Python

כדי לשדרג את Apache Beam SDK for Python בסביבה המקומית או הווירטואלית, משתמשים בפקודה pip:

pip install --upgrade 'apache-beam[gcp]==VERSION'

בקובץ requirements.txt או setup.py, מעדכנים את הגרסה המוצמדת:

apache-beam[gcp]==VERSION

המשך

כדי לשדרג את Apache Beam SDK for Go, משתמשים ב-go get כדי לאחזר את גרסת היעד ולעדכן את הקובץ go.mod:

go get -u github.com/apache/beam/sdks/v2@vVERSION
go mod tidy

מידע נוסף זמין במאמר בנושא ניהול יחסי תלות בצינורות Go.

פריסת צינורות עיבוד נתונים משודרגים

אחרי שמעדכנים את גרסת ה-SDK בקוד, בוחרים אסטרטגיית פריסה על סמך סוג הצינור:

  • צינורות עיבוד נתונים של סטרימינג: בצינורות עיבוד נתונים של סטרימינג, אפשר לפרוס קוד משודרג באמצעות החלפת משימה במקום, הפעלת צינורות עיבוד נתונים מקבילים או עצירה והפעלה מחדש של המשימה. הוראות מפורטות, כללי תאימות ואסטרטגיות פריסה זמינים במאמרים בנושא עדכון צינור עיבוד נתונים קיים ושדרוג צינור עיבוד נתונים של סטרימינג.
  • צינורות Batch: צינורות Batch לא תומכים בעדכונים בזמן הריצה או בהחלפת משימות במקום. מאפשרים למשימה הקיימת לפעול עד הסיום, או מבטלים את המשימה הפעילה ואז מפעילים משימה חדשה עם הגרסה המשודרגת של ה-SDK.

שיטות מומלצות ל-CI/CD ולעדכון פריסות

כדי לצמצם את הסיכון התפעולי כשמשיקים שדרוגי SDK בצינורות אוטומטיים של בנייה ופריסה, מומלץ לפעול לפי השיטות המומלצות הבאות:

  • הצמדת יחסי תלות: תמיד מצמידים גרסאות SDK מדויקות, כמו apache-beam[gcp]==VERSION ב-Python, או מחרוזות גרסה מדויקות ב-Maven וב-Gradle. כדי למנוע שדרוגים משניים שלא נבדקו במהלך בנייה אוטומטית של CI/CD, צריך להימנע משימוש בטווחים דינמיים (כמו >= או latest).
  • אימות בסביבות בדיקה: לפני שמעבירים את השינויים לסביבת הייצור, כדאי לפרוס ולבדוק את צינור הנתונים המשודרג בסביבת בדיקה ייעודית או בסביבה טרום-ייצורית. אימות של קצב העברת הנתונים בצינור, יציבות המדדים והפלט במורד הזרם.
  • שימוש בצינורות עיבוד נתונים לבדיקה או בצינורות עיבוד נתונים מקבילים: לאפליקציות סטרימינג קריטיות, מריצים את צינור עיבוד הנתונים המשודרג במקביל לצינור עיבוד הנתונים הקיים. לפני שמרוקנים את הצינור הישן, צריך לוודא שיש שוויון בנתונים ושהפלט של שתי המשימות נכון.

המאמרים הבאים