בדף הזה מוסבר איך להתקין או לעדכן את Apache Beam SDK כדי להריץ את צינורות הנתונים בשירות Dataflow.
התקנה של Apache Beam SDK
Apache Beam SDK הוא מודל תכנות בקוד פתוח לפייפליינים של נתונים. אתם מגדירים את צינורות עיבוד הנתונים האלה באמצעות תוכנית Apache Beam, ויכולים לבחור מריץ (runner), כמו Dataflow, כדי להריץ את צינור עיבוד הנתונים.
Java
הגרסה האחרונה של Apache Beam SDK ל-Java היא 2.77.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.77.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.77.0. אפשר לקרוא מידע על השינויים שכלולים בגרסה בהודעה על הגרסה.
כדי להתקין את הגרסה העדכנית של Apache Beam SDK ל-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 מפורטות בעמודה Details בטבלה SDK version support status.
עדכון יחסי תלות ב-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 ל-Python בסביבה המקומית או הווירטואלית, משתמשים ב-pip:
pip install --upgrade 'apache-beam[gcp]==VERSION'
בקבצים requirements.txt או setup.py, מעדכנים את הגרסה המוצמדת:
apache-beam[gcp]==VERSION
המשך
כדי לשדרג את Apache Beam SDK ל-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. כדי למנוע שדרוגים קלים שלא נבדקו במהלך גרסאות build אוטומטיות של CI/CD, הימנעו מטווחים דינמיים (כמו>=אוlatest). - אימות בסביבות Staging: פורסים ובודקים את צינור עיבוד הנתונים המשודרג בסביבת Staging ייעודית או בסביבת טרום-ייצור, לפני שמקדמים את השינויים לסביבת הייצור. מאמתים את קצב העברת הנתונים בצינור עיבוד הנתונים, את יציבות המדדים ואת הפלטים במורד הזרם.
- שימוש בצינור עיבוד נתונים לבדיקה או בצינור עיבוד נתונים מקביל: לאפליקציות סטרימינג קריטיות, מריצים את צינור עיבוד הנתונים המשודרג במקביל לצינור עיבוד הנתונים הקיים. לפני שאתם מרוקנים את צינור עיבוד הנתונים הישן, ודאו שקיימת התאמה בין הנתונים ושהפלט תקין בשני הצינורות.
המאמרים הבאים
- Dataflow משתלב עם Google Cloud CLI. הוראות להתקנת ממשק שורת הפקודה של Dataflow זמינות במאמר שימוש בממשק שורת הפקודה של Dataflow.
- כדי לדעת באילו יכולות של Apache Beam יש תמיכה ב-Dataflow, קראו את מטריצת היכולות של Apache Beam.
- בודקים את סטטוס התמיכה בגרסת ה-SDK כדי לראות אילו גרסאות SDK נתמכות, הוצאו משימוש או הושבתו.