בדף הזה מוסבר איך להתקין או לעדכן את 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, אפשר לעיין באחד מהמדריכים הבאים:
- יצירת צינור עיבוד נתונים באמצעות Java
- יצירת צינור עיבוד נתונים של Dataflow באמצעות Python
- יצירת צינור עיבוד נתונים של Dataflow באמצעות Go
קוד מקור ודוגמאות
קוד המקור של 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). - אימות בסביבות בדיקה: לפני שמעבירים את השינויים לסביבת הייצור, כדאי לפרוס ולבדוק את צינור הנתונים המשודרג בסביבת בדיקה ייעודית או בסביבה טרום-ייצורית. אימות של קצב העברת הנתונים בצינור, יציבות המדדים והפלט במורד הזרם.
- שימוש בצינורות עיבוד נתונים לבדיקה או בצינורות עיבוד נתונים מקבילים: לאפליקציות סטרימינג קריטיות, מריצים את צינור עיבוד הנתונים המשודרג במקביל לצינור עיבוד הנתונים הקיים. לפני שמרוקנים את הצינור הישן, צריך לוודא שיש שוויון בנתונים ושהפלט של שתי המשימות נכון.
המאמרים הבאים
- Dataflow משתלב עם Google Cloud CLI. הוראות להתקנת ממשק שורת הפקודה של Dataflow מופיעות במאמר שימוש בממשק שורת הפקודה של Dataflow.
- כדי לדעת אילו יכולות של Apache Beam נתמכות ב-Dataflow, אפשר לעיין בטבלת היכולות של Apache Beam.
- כדאי לעיין בסטטוס התמיכה בגרסת ה-SDK כדי לראות גרסאות SDK נתמכות, גרסאות שהוצאו משימוש וגרסאות שהוצאו מכלל שימוש.