באמצעות 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 : (אופציונלי.) תצורת חיבור עבור Metadata ML.
הגדרת גרף ביצוע הרכיבים
מופעי רכיבים מייצרים חפצים כפלטים ותלויים בדרך כלל בחפצים המיוצרים על ידי מופעי רכיבים במעלה הזרם כקלט. רצף הביצוע של מופעי רכיבים נקבע על ידי יצירת גרף א-ציקלי מכוון (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 שלך לדלג מעל רכיבים שהופעלו עם אותה סט של קלט בהרצת צינור קודמת. אם שמירה במטמון מופעלת, הצינור מנסה להתאים את החתימה של כל רכיב, הרכיב וקבוצת הכניסות, לאחת מביצועי הרכיבים הקודמים של הצינור הזה. אם יש התאמה, הצינור משתמש בפלטי הרכיבים מהריצה הקודמת. אם אין התאמה, הרכיב מבוצע.
אל תשתמש במטמון אם הצינור שלך משתמש ברכיבים לא דטרמיניסטיים. לדוגמה, אם אתה יוצר רכיב כדי ליצור מספר אקראי עבור הצינור שלך, הפעלת המטמון תגרום לרכיב זה לפעול פעם אחת. בדוגמה זו, ריצות עוקבות משתמשות במספר האקראי של הריצה הראשונה במקום ליצור מספר אקראי.