קידוד מחדש של נתונים באופן מקומי במחשב מרכזי הוא תהליך שדורש הרבה משאבי CPU, וכתוצאה מכך צריכה גבוהה של מיליוני הוראות לשנייה (MIPS). כדי להימנע מכך, אפשר להשתמש ב-Cloud Run כדי להעביר נתונים ממחשב מרכזי ולשנות את הקידוד שלהם מרחוק ב-Google Cloud לפורמט ORC (שורה אופטימלית בעמודה), ואז להעביר את הנתונים ל-Cloud Storage. כך המחשב המרכזי מתפנה למשימות קריטיות לעסק, וגם צריכת ה-MIPS יורדת.
בתרשים הבא מתואר איך אפשר להעביר את נתוני המיינפריים אלGoogle Cloud , לבצע המרה מרחוק לפורמט ORC באמצעות Cloud Run, ואז להעביר את התוכן אל BigQuery.
לפני שמתחילים
- פריסת Mainframe Connector ב-Cloud Run.
- יוצרים חשבון שירות או מזהים חשבון שירות קיים לשימוש עם Mainframe Connector. לחשבון השירות הזה צריכות להיות הרשאות גישה למאגרי Cloud Storage, למערכי נתונים של BigQuery ולכל משאב אחר שרוצים להשתמש בו. Google Cloud
- מוודאים שלחשבון השירות שיצרתם מוקצה התפקיד Cloud Run Invoker.
העברת נתונים ממחשב מרכזי Google Cloud והמרת קידוד מרחוק באמצעות Cloud Run
כדי להעביר את הנתונים מהמחשב המרכזי אל Google Cloud ולבצע המרה מרחוק באמצעות Cloud Run, צריך לבצע את המשימות הבאות:
- קריאה ושינוי קידוד של מערך נתונים במחשב מרכזי, והעלאה שלו ל-Cloud Storage בפורמט ORC. הטרנסקוד נעשה במהלך הפעולה
gsutil cp, שבה מערך נתונים של קוד החלפה עשרוני בינארי מורחב של מחשב מרכזי (EBCDIC) מומר לפורמט ORC ב-UTF-8 במהלך ההעתקה לקטגוריית Cloud Storage. - טוענים את מערך הנתונים לטבלה ב-BigQuery.
- (אופציונלי) מריצים שאילתת SQL בטבלת BigQuery.
- (אופציונלי) מייצאים נתונים מ-BigQuery לקובץ בינארי ב-Cloud Storage.
כדי לבצע את המשימות האלה, פועלים לפי השלבים הבאים:
במחשב המרכזי, יוצרים משימה לקריאת מערך הנתונים במחשב המרכזי ולקידוד שלו לפורמט ORC, באופן הבא. קריאת הנתונים ממערך הנתונים INFILE, ופריסת הרשומות מ-COPYBOOK DD. קובץ מערך הנתונים של הקלט חייב להיות קובץ בשיטת גישה רציפה בתור (QSAM) עם אורך רשומה קבוע או משתנה.
רשימה מלאה של משתני הסביבה שנתמכים על ידי Mainframe Connector מופיעה במאמר משתני סביבה.
//STEP01 EXEC BQSH //INFILE DD DSN=<HLQ>.DATA.FILENAME,DISP=SHR //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.FILENAME //STDIN DD * gsutil cp --replace gs://mybucket/tablename.orc --remote \ --remoteHost <mainframe-connector-url>.a.run.app \ --remotePort 443 /*אם רוצים לתעד את הפקודות שהופעלו במהלך התהליך הזה, אפשר להפעיל את סטטיסטיקת הטעינה.
(אופציונלי) יוצרים ומגישים עבודת שאילתה ב-BigQuery שמבצעת קריאת SQL מקובץ ה-DD של השאילתה. בדרך כלל השאילתה תהיה הצהרת
MERGEאוSELECT INTO DMLשתגרום לשינוי של טבלה ב-BigQuery. הערה: Mainframe Connector מתעד מדדי עבודה ביומן, אבל לא כותב את תוצאות השאילתה לקובץ.אפשר להריץ שאילתות ב-BigQuery בכמה דרכים – בשורה, עם מערך נתונים נפרד באמצעות DD, או עם מערך נתונים נפרד באמצעות DSN.
Example JCL //STEP03 EXEC BQSH //QUERY DD DSN=<HLQ>.QUERY.FILENAME,DISP=SHR //STDIN DD * PROJECT=PROJECT_NAME LOCATION=LOCATION bq query --project_id=$PROJECT \ --location=$LOCATION \ --remoteHost <mainframe-connector-url>.a.run.app \ --remotePort 443/* /*בנוסף, צריך להגדיר את משתנה הסביבה
BQ_QUERY_REMOTE_EXECUTION=true.מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NAME: שם הפרויקט שבו רוצים להריץ את השאילתה. -
LOCATION: המיקום שבו השאילתה תופעל. מומלץ להריץ את השאילתה במיקום שקרוב לנתונים.
-
(אופציונלי) יוצרים ושולחים משימת ייצוא שמבצעת קריאת SQL מקובץ ה-DD של השאילתה, ומייצאת את מערך הנתונים שמתקבל ל-Cloud Storage כקובץ בינארי.
Example JCL //STEP04 EXEC BQSH //OUTFILE DD DSN=<HLQ>.DATA.FILENAME,DISP=SHR //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.FILENAME //QUERY DD DSN=<HLQ>.QUERY.FILENAME,DISP=SHR //STDIN DD * PROJECT=PROJECT_NAME DATASET_ID=DATASET_ID DESTINATION_TABLE=DESTINATION_TABLE BUCKET=BUCKET bq export --project_id=$PROJECT \ --dataset_id=$DATASET_ID \ --destination_table=$DESTINATION_TABLE \ --location="US" \ --bucket=$BUCKET \ --remoteHost <mainframe-connector-url>.a.run.app \ --remotePort 443 /*מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NAME: שם הפרויקט שבו רוצים להריץ את השאילתה. -
DATASET_ID: מזהה מערך הנתונים ב-BigQuery שמכיל את הטבלה שרוצים לייצא. -
DESTINATION_TABLE: הטבלה ב-BigQuery שרוצים לייצא. -
BUCKET: קטגוריית Cloud Storage שתכיל את קובץ הפלט הבינארי.
-
המאמרים הבאים
העברת נתונים של מחשב מרכזי שעברו קידוד מקומי אל Google Cloud
קידוד מחדש של נתוני מחשב מרכזי שהועברו אל Google Cloud באמצעות ספריית סרטים וירטואלית