שימוש במחלקה Pipeline
צינורות TFX מוגדרים באמצעות המחלקה Pipeline
. הדוגמה הבאה מדגימה כיצד להשתמש במחלקה Pipeline
.
pipeline.Pipeline( pipeline_name=pipeline-name, pipeline_root=pipeline-root, components=components, enable_cache=enable-cache, metadata_connection_config=metadata-connection-config, )
החלף את הדברים הבאים:
pipeline-name : השם של צינור זה. שם הצינור חייב להיות ייחודי.
TFX משתמש בשם הצינור בעת שאילתת ML Metadata עבור חפצי קלט של רכיבים. שימוש חוזר בשם צינור עלול לגרום להתנהגויות בלתי צפויות.
pipeline-root : נתיב השורש של הפלטים של צינור זה. נתיב הבסיס חייב להיות הנתיב המלא לספרייה שהמתזמר שלך קיבל גישת קריאה וכתיבה אליה. בזמן ריצה, TFX משתמש בשורש הצינור כדי ליצור נתיבי פלט עבור חפצי רכיב. ספרייה זו יכולה להיות מקומית, או על מערכת קבצים מבוזרת נתמכת, כגון Google Cloud Storage או HDFS.
components : רשימה של מופעי רכיבים המרכיבים את זרימת העבודה של צינור זה.
enable-cache : (אופציונלי.) ערך בוליאני המציין אם הצינור הזה משתמש בקובץ שמור כדי להאיץ את ביצוע הצינור.
metadata-connection-config : (אופציונלי.) תצורת חיבור עבור ML Metadata.
הגדרת גרף ביצוע הרכיבים
מופעי רכיבים מייצרים חפצים כפלטים ותלויים בדרך כלל בחפצים המיוצרים על ידי מופעי רכיבים במעלה הזרם כקלט. רצף הביצוע של מופעי רכיבים נקבע על ידי יצירת גרף א-ציקלי מכוון (DAG) של התלות של החפצים.
לדוגמה, הרכיב הסטנדרטי ExampleGen
יכול להטמיע נתונים מקובץ CSV ולהוציא רשומות דוגמה מסודרות. הרכיב הסטנדרטי StatisticsGen
מקבל רשומות לדוגמה אלה כקלט ומפיק נתונים סטטיסטיים של מערך נתונים. בדוגמה זו, המופע של StatisticsGen
חייב לעקוב אחר ExampleGen
כי SchemaGen
תלוי בפלט של ExampleGen
.
תלות מבוססת משימות
אתה יכול גם להגדיר תלות מבוססת משימות באמצעות שיטות add_upstream_node
ו- add_downstream_node
של הרכיב שלך. add_upstream_node
מאפשר לך לציין שהרכיב הנוכחי חייב להתבצע אחרי הרכיב שצוין. add_downstream_node
מאפשר לך לציין שהרכיב הנוכחי חייב להתבצע לפני הרכיב שצוין.
תבניות צינור
הדרך הקלה ביותר להקים צינור במהירות, ולראות כיצד כל החלקים משתלבים זה בזה, היא להשתמש בתבנית. השימוש בתבניות מכוסה בבניית צינור TFX באופן מקומי .
שמירה במטמון
TFX pipeline caching מאפשר ל-pipeline שלך לדלג על רכיבים שהופעלו עם אותה סט של קלט בהרצת צינור קודמת. אם שמירה במטמון מופעלת, הצינור מנסה להתאים את החתימה של כל רכיב, הרכיב וקבוצת הכניסות, לאחת מביצועי הרכיבים הקודמים של הצינור הזה. אם יש התאמה, הצינור משתמש בפלטי הרכיבים מהריצה הקודמת. אם אין התאמה, הרכיב מבוצע.
אל תשתמש במטמון אם הצינור שלך משתמש ברכיבים לא דטרמיניסטיים. לדוגמה, אם אתה יוצר רכיב כדי ליצור מספר אקראי עבור הצינור שלך, הפעלת המטמון תגרום לרכיב זה לפעול פעם אחת. בדוגמה זו, ריצות עוקבות משתמשות במספר האקראי של הריצה הראשונה במקום ליצור מספר אקראי.