שילוב Oracle Analytics עם OCI Functions

שלב את פונקציות Oracle Cloud Infrastructure (OCI) עם Oracle Analytics כדי שתוכל להשתמש בהן בזרימות נתונים לצורך טרנספורמציה של נתונים.

אודות השימוש בפונקציות של OCI ב-Oracle Analytics

אפשר לבצע טרנספורמציה של נתונים ב-Oracle Analytics באמצעות פונקציות שנוצרו ב-OCI. לדוגמה, אתה יכול להשתמש בפונקציית המרת שפה כדי להמיר טקסט באנגלית לספרדית או גרמנית.

תחילה אתה רושם פונקציות של OCI ב-Oracle Analytics, ואחר כך כל משתמש של Oracle Analytics בעל הרשאות של מנהלן שירות BI (בינה עסקית) או מחבר תוכן DV (המחשת נתונים) יכול להשתמש בהן בזרימות נתונים.

אודות הגדרת התצורה של פונקציות OCI לשימוש ב-Oracle Analytics

צור פונקציות בקונסולה של OCI כדי שתוכל להשתמש בהן לביצוע טרנספורמציה של נתונים בזרימות נתונים של Oracle Analytics.

אודות רישום פונקציות OCI ב-Oracle Analytics

כאשר אתה רושם פונקציית OCI ב-Oracle Analytics, אם היא מואפרת בתיבת הדו-שיח בחר פונקציה, בדוק שהיא מוגדרת עם התווית תואמת oac ומופעלת עם הערך funcMode הנכון.
להלן תיאור של GUID-6FE05B2C-5352-4953-998F-D967B6BA1891-default.png
.png

אודות הגדרת התצורה של פונקציות OCI לשימוש ב-Oracle Analytics

פונקציות OCI שבהן אתה רוצה להשתמש ב-Oracle Analytics צריכות להיות בעלות תגית תואמת oac וקוד הפונקציה צריך לכלול את המשתנה funcMode. הגדר את התצורה של הגדרות אלה בקונסולה של OCI:

  • תואמת oac - הוסף תגית בסגנון חופשי לפונקציה בעלת השם תואמת oac והגדר את הערך כאמת.להלן תיאור של GUID-6DDD2A98-7F8D-45D7-9110-9643C2128A84-default.png
    .png
  • funcMode - כלול את המשתנה funcMode בקוד הפונקציה שלך. Oracle Analytics שולח בקשה לרשום פונקציית OCI עם funcMode=describeFunction ובקשה להפעיל פונקציית OCI עם funcMode=executeFunction. פונקציית המטפל ב-func.py אמורה לפעול במצב describeFunction או במצב executeFunction. אפשר לעשות זאת על בסיס ערך משתנה הקלט funcMode מהבקשה כפי שמוצג להלן.

    להלן תיאור של GUID-0C335709-DEDC-4655-8A29-F544608DA8B3-default.png
    .png

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

    funcMode = describeFunction

    { "funcMode": "describeFunction"}

    כאשר funcMode בבקשה הוא 'describeFunction', הפונקציה אמורה להחזיר את הגדרת הפונקציה עם סטטוס (returnCode & errorMessage), פלטים(שם, dataType של עמודת הפלט), פרמטרים(שם, תיאור, סוג וכן הלאה של פרמטרי הקלט), bucketName וכן הלאה כאובייקט JSON בפורמט הבא (דוגמה של ספירת מילים):

    funcDefinition = {
        "status": {
            "returnCode": 0,
            "errorMessage": ""
        },
        "funcDescription": {
            "outputs": [
                {"name": "word_count", "dataType": "integer"}
            ],
            "parameters": [
                {"name": "textColumn", "displayName": "Text Column",
                 "description": "Choose column to count words", "required": True,
                 "value": {"type": "column"}}
            ],
            "bucketName": "bucket-OCI-FAAS",
            "isOutputJoinableWithInput": True
        }
    }

    הוסף הקוד הבא ב-func.py כדי להחזיר funcDefinition כאשר funcMode בבקשה הוא 'describeFunction'.

    def handler(ctx, data: io.BytesIO = None):
        response_data = ""
        try:
            body = json.loads(data.getvalue())
            funcMode = body.get("funcMode")
            if funcMode == 'describeFunction':
               response_data = json.dumps(funcDefinition)
        except (Exception, ValueError) as ex:
            response_data = json.dumps(
                {"error": "{0}".format(str(ex))})
        return response.Response(
            ctx, response_data,
            headers={"Content-Type": "application/json"}
        )

    funcMode = executeFunction - כאשר funcMode הוא 'executeFunction', יש להריץ את לוגיקת הפונקציה בפועל ולשלוח את התשובה חזרה ל-Oracle Analytics יחד עם הפלט. כאשר הפונקציה הרשומה מופעלת מזרימת הנתונים ב-Oracle Analytics, אובייקט הבקשה יהיה בפורמט הבא עם שם העמודה ב-args, input(bucketName, fileName, fileExtension, fileName, method & rowID) -output(bucketName, fileName & fileExtension).

    {
        "args":
        {
            "textColumn": "REVIEW"
        },
        "funcMode": "executeFunction",
        "input":
        {
            "bucketName": "bucket-OCI-FAAS",
            "fileExtension": ".csv",
            "fileName": "oac-fn-e99cd4fddb3844be89c7af6ea4bbeb76-input",
            "method": "csv",
            "rowID": "row_id"
        },
        "output":
        {
            "bucketName": "bucket-OCI-FAAS",
            "fileExtension": ".csv",
            "fileName": "oac-fn-e99cd4fddb3844be89c7af6ea4bbeb76-output"
        }
    }

אודות יצירת פונקציות ב-OCI

פונקציות אפשר ליצור באמצעות הקונסולה של OCI, שורת הפקודה (Fn Project CLI) או API. לדוגמה, בקונסולה של OCI, לחץ על שירותי מפתח, אחר כך עלפונקציות ופעל בהתאם להוראות המופיעות על המסך כדי ליצור יישומים ופונקציה אחת או יותר. לפרטים, ראה תיעוד על יצירת פונקציות ב-OCI. אם זאת הפעם הראשונה שאתה יוצר פונקציות, פעל בהתאם לשלבים בדוגמה מקצה לקצה יצירה, פריסה והפעלה של פונקציית Helloworld. כל פונקציה שבה אתה רוצה להשתמש ב-Oracle Analytics חייבת לכלול את התגית בסגנון חופשי תואמת oac=true (ראה אודות הגדרת התצורה של פונקציות OCI לשימוש ב-Oracle Analytics לעיל).

עצות על יצירת פונקציות בקונסולה של OCI

  • אפשר יומנים - בתור ברירת מחדל, יומנים חסומים לפנקציות. כדי לאפשר יומנים לפונקציות, לחץ בדף יישומים על יומנים ואפשר את היומן המתאים לשם יומן. תחת משאבים, אתה יכול עכשיו לבחור חקור יומן, ולתחקר בתוך רשומות היומן כדי לנפות באגים ולאבחן בעיות של פונקציות.
  • כלול יחסי תלות - כלול מארזים תלויים בקובץ requirements.txt בשביל הפונקציה.
  • פעל בהתאם לכללי ההזחה- פעל בהתאם לכללי ההזחה של פייתון בזמן קידוד פונקציות פייתון.
  • השתמש בשגיאות בתשובה של הפונקציה - השתמש בפרטי השגיאות המפורטים בדף 'זרימת נתונים' לאבחון בעיות.
  • בדוק תחילה פונקציות מקומית - לפני יצירת פונקציה ב-OCI, בדוק אותה מקומית בסביבת הפיתוח שלך כדי לוודא שהיא נכונה מבחינת תחביר ולוגיקה.
  • בדוק את הפונקציות ב-OCI - לפני שילוב פונקציות עם Oracle Analytics, ודא שאתה יכול לפרוס ולהפעיל אותן בהצלחה כפונקציות עצמאיות ב-OCI.
  • הגדל את פסק הזמן - בתור ברירת מחדל, לפונקציות יש פסק זמן של 30 שניות. אם נחוץ, הגדל את הגדרת פסק הזמן (למשל שנה אותה ל-300 שניות) בדף ערוך פונקציה בקונסולה של OCI.
  • הגדל את הזיכרון- בתור ברירת מחדל, לפונקציות יש תקרת זיכרון של 1024 מגהבייט. אם נחוץ, הגדל את תקרת הזיכרון בדף ערוך פונקציה בקונסולה של OCI.
  • מטב את המקום הפנוי - מחק קבצים ללא שימוש נוסף מיד אחרי השימוש.
  • היזהר מזמן ההמתנה (Latency) של הרשת - זכור כי זמן ההמתנה של הרשת עלול לגרום להשהיה קטנה בעיבוד הכולל.

כללי המדיניות הדרושים לשילוב של OCI Functions עם Oracle Analytics

כדי לשלב את Oracle Analytics עם OCI Functions, ודא שיש לך את כללי מדיניות האבטחה הדרושים.

למשתמש ה-OCI שאתה מציין בחיבור בין Oracle Analytics Cloud לחשבון הדייר OCI שלך חייבות להיות הרשאות קריאה, כתיבה ומחיקה במדור המכיל את משאבי ה-OCI שבהם ברצונך להשתמש. ודא שמשתמש ה-OCI שייך לקבוצת משתמשים עם כללי מדיניות האבטחה המינימליים הבאים של OCI. כאשר אתה מתחבר לחשבון דייר של OCI מ-Oracle Analytics, אתה יכול להשתמש במפתח API של OCI או במשאב ראשי.

הערה: בשביל המשאב הראשי, כדי לכלול את כל מופעי Analytics תחת מדור, ציין {request.principal.type='analyticsinstance', request.principal.compartment.id='<compartmentA_ocid> '} במקום {request.principal.id='<analytics_instance_ocid>'}.

טבלה 1-32 כללי מדיניות האבטחה הדרושים לשילוב OCI Functions

כללי מדיניות של מפתח API כללי מדיניות של משאב ראשי
אפשר לקבוצה <group_name> להשתמש במשפחת פונקציות במדור <compartment_name> אפשר לכל משתמש להשתמש במשפחת מונקציות במדור <compartment_name> שבו הכול {request.principal.id='<analytics_instance_ocid>'}
אפשר לקבוצה <group_name> לקרוא תאי אחסון במדור <compartment_name> אפשר לכל משתמש לקרוא תאי אחסון במדור <compartment_name> שבו הכול {request.principal.id='<analytics_instance_ocid>'}
אפשר לקבוצה <group_name> לנהל אובייקטים במדור <compartment_name> שבו target.bucket.name='<staging_bucket_name>' אפשר לכל משתמש לנהל אובייקטים במדור <compartment_name> שבו הכול {request.principal.id='<analytics_instance_ocid>', target.bucket.name='<staging_bucket_name>'}
אפשר לקבוצה <group_name> לקרוא namespaces של מחסן אובייקטים בחשבון דייר אפשר לכל משתמש לקרוא namespaces של מחסן אובייקטים בחשבון דייר שבו הכול {request.principal.id='<analytics_instance_ocid>'}

טבלה 2-32 OCI Functions - כללי מדיניות של קבוצה דינמית

מדיניות תיאור
אפשר לקבוצה דינמית <group_name> לנהל אובייקטים במדור <compartment_name> שבו target.bucket.name='<staging_bucket_name>' מספק גישה לסל היערכות נתונים בשביל הקבוצה הדינמית.

כלל התאמה לדוגמה בשביל <dynamic_group>.{resource.type = 'fnfunc', resource.compartment.id = '<compartment_ocid>'}

הערה: <compartment_id> הוא ה-OCID של המדור שמכיל את הפונקציות.

תהליך עבודה אופייני לטרנספורמציה של נתונים באמצעות פונקציות של OCI

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

משימה תיאור מידע נוסף

צור פונקציות ב-OCI (דורש הרשאות של מפתח פונקציות)

בחשבון דייר OCI שלך, צור את הפונקציות שלך וודא שהן מקיימות את הדרישות המקדימות המוגדרות לשימוש עם Oracle Analytics.

אודות הגדרת התצורה של פונקציות OCI לשימוש ב-Oracle Analytics

הקצה כללי מדיניות של OCI ודא שיש לך את כללי מדיניות ה-OCI הדרושים לחיבור באמצעות מפתח API או משאב ראשי. כללי המדיניות הדרושים לשילוב OCI Functions עם Oracle Analytics
חבר את Oracle Analytics לחשבון דייר OCI שלך (דורש הרשאות מנהלן או מחבר המחשות נתונים) ב-Oracle Analytics, צור חיבור לחשבון דייר OCI שלך.

צור חיבור לחשבון דייר OCI שלך.

רשום את פונקציות OCI ב-Oracle Analytics (דורש הרשאות מנהלן או מחבר המחשות נתונים) ב-Oracle Analytics, רשום את פונקציות OCI שלך כדי שתוכל לקרוא להן מזרימות נתונים.

רשום את פונקציות OCI ב-Oracle Analytics

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

בצע טרנספורמציה של נתונים באמצעות פונקציות OCI

רשום את פונקציות OCI ב-Oracle Analytics

רשום פונקציות של OCI ב-Oracle Analytics כדי שתוכל להשתמש בהן בזרימות נתונים לצורך טרנספורמציה של נתונים. לדוגמה, תוכל לרשום פונקציית המרת שפה כדי שאנליסטים של נתונים יוכלו להמיר טקסט באנגלית לספרדית או גרמנית.

  1. ב-Oracle Analytics, בדף הבית, לחץ על תפריט דף, אחר כך על רשום מודל/פונקציה, ואחר כך על פונקציות של OCI.
  2. בתיבת הדו-שיח רשום פונקציה מותאמת, בחר חיבור לחשבון דייר OCI שבו ממוקמות הפונקציות שלך.
  3. בתיבת הדו-שיח בחר יישום, בחר את היישום שמכיל את פונקציות OCI שלך.
    אם אינך בטוח, שאל את האדם שיצר את הפונקציות ב-OTC.
  4. בתיבת הדו-שיח בחר פונקציה, בחר פונקציה ואחר כך לחץ על רשום.
    אם הפונקציה שבה אתה רוצה להשתמש מואפרת, בקש מהמנהלן לוודא שתצורתה מוגדרת בשביל Oracle Analytics. ראה אודות הגדרת התצורה של פונקציות OCI לשימוש ב-Oracle Analytics.
תוכל להשתמש בפונקציות רשומות של OCI בזרימות נתונים לביצוע טרנספורמציה של נתונים. כדי לבדוק איזה פונקציות רשומות, אתה יכול להציג פונקציות רשומות בכרטיסייה תסריטים של דף למידת מכונה (מדף הבית, לחץ על נווט, אחר כך עללמידת מכונה, אחר כך על תסריטים).