פונקציות מאקרו

פקודות מאקרו הן placeholders בהגדרות של מאפייני הפלאגין של Cloud Data Fusion. הם מיוצגים על ידי משתנים שמוקפים ב-${ }, כמו ${input_file_path}. כדי להפעיל הגדרה דינמית של רכיבים, כמו נתיבי קבצים ושמות טבלאות, מחליפים את הערכים הזמניים לשמירת מקום בערכים בפועל בזמן הריצה.

כשמציגים את המאפיינים של תוסף, אפשר להוסיף מאקרו לכל שדה מאפיין שלצידו מופיע M. כדי להוסיף את המאקרו, לוחצים על M.

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

פונקציות מאקרו

בנוסף לפקודות מאקרו, אפשר להשתמש בפונקציות המאקרו המוגדרות מראש הבאות:

  • logicalStartTime()
  • secure()

פונקציית שעת התחלה לוגית

פונקציית המאקרו logicalStartTime() מחזירה את זמן ההתחלה הלוגי של הרצת צינור כערך מחרוזת.

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

${logicalStartTime([timeFormat[,offset [,timezone])}

ברשימה הבאה מוצגים הפרמטרים האופציונליים של logicalStartTime():

פרמטר תיאור
timeFormat תבנית פורמט הזמן, בפורמט של SimpleDateFormat ב-Java.
offset
הזמן שחלף לפני שעת ההתחלה הלוגית.
timezone
אזור הזמן שבו יש להשתמש לשעת ההתחלה הלוגית.

דוגמה

בדוגמה הזו, שעת ההתחלה הלוגית של הרצת צינור עיבוד הנתונים היא 2020-01-01T00:00:00, ואתם מספקים את פקודת המאקרו הבאה:

${logicalStartTime(yyyy-MM-dd'T'HH-mm-ss,1d-4h+30m)}

הפורמט הוא yyyy-MM-dd'T'HH-mm-ss וההיסט הוא 1d-4h+30m לפני שעת ההתחלה הלוגית. בזמן הריצה, ערך המאקרו מוחלף ב-2019-12-31T03:30:00 כי ההיסטור מומר ל-20.5 שעות. הערך של כל המאקרו הוא 20.5 שעות לפני חצות ב-1 בינואר 2020.

שימוש ב-logicalStartTime() ביישומי פלאגין מבוססי-קובץ

הדרך הנפוצה ביותר להשתמש בפונקציה הזו היא בשדה Path בתוספים מבוססי-קובץ.

הוספת זמן ההתחלה של הצינור באלפיות שנייה לשם הקובץ

כדי לתעד את שעת ההתחלה בפועל במילישניות בשם הקובץ, משמיטים את הפרמטרים בפונקציית המאקרו.

דוגמה

בדוגמה הזו, שעת ההתחלה של צינור עיבוד הנתונים, באלפיות השנייה, נכללת בשם הקובץ ב-Amazon S3:

sales_012345671011.csv

במאפייני יעד Amazon S3, מזינים את הערך הבא בשדה Path (נתיב):

s3a://sales-data/sales_${logicalStartTime()}.csv

הוספת התאריך של היום לשם הקובץ

אפשר להשתמש בפונקציית המאקרו logicalStartTime() בשם של קובץ כדי לתעד את התאריך הנוכחי.

דוגמה

בדוגמה הזו, התאריך של היום נשמר בשם הקובץ הבא ב-S3:

s3a://sales-data/sales_20210204.csv

במאפייני יעד Amazon S3, מזינים את הערך הבא בשדה Path (נתיב):

s3a://sales-data/sales_${logicalStartTime(yyyyMMdd)}.csv

שימוש ב-logicalStartTime כדי להוסיף שדה של חותמת זמן לרשומות מובנות

אפשר להוסיף חותמת זמן לרשומה מובנית באמצעות ההמרה Add Field (הוספת שדה) ו-logicalStartTime().

  1. מורידים את הפלאגין Field Adder Transform מ-Cloud Data Fusion Hub. אחרי שמפעילים את הפלאגין, הוא מופיע ברשימה Transform (שינוי) בתור Add Field (הוספת שדה).
  2. כשמגדירים את מאפייני הפלאגין, מוסיפים את חותמת הזמן לרשומה מובנית – לדוגמה, בשם השדה מזינים את השם של השדה החדש, ובערך השדה מזינים את פונקציית המאקרו logicalStartTime().

פונקציה מאובטחת

הפונקציה secure() של מאקרו מקבלת מפתח יחיד כארגומנט ומחפשת את ערך המחרוזת המשויך למפתח במאגר המאובטח. כדי לבצע את ההחלפה, המפתח שסופק כארגומנט חייב כבר להיות קיים במאגר המאובטח. האפשרות הזו שימושית כשרוצים לבצע החלפה של נתונים רגישים.

דוגמה

בדוגמה הזו, כדי להגדיר תוסף שמתחבר למסד נתונים של MySQL, צריך להגדיר את שדה מאפיין הסיסמה עם הערך הבא:

${secure(password)}

המאקרו הזה שולף את הסיסמה מהמאגר המאובטח בזמן הריצה.

פקודות מאקרו רקורסיביות

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

דוגמה

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

  • hostname: examplepetstore.com
  • port: 9991
  • server-address: ${hostname}:${port}

בהגדרת צינור, משתמשים בביטוי הבא:

server-address: ${server-address}

בזמן הריצה, הוא מוחלף בערך הבא:

examplepetstore.com:9991

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