פקודות Mainframe Connector API

בטבלה הבאה מפורטות הפקודות של BigQuery,‏ Cloud Storage ופקודות אחרות שלGoogle Cloud שאפשר להשתמש בהן עם Mainframe Connector.

מוצר פקודה תיאור תמיכה בהמרת קידוד מרחוק
פקודות BigQuery משתמשים בפקודה הזו כדי ליצור קובץ בינארי. הפקודה מקבלת COPYBOOK DD כקלט.

הערה: מומלץ להשתמש בפקודות qsam decode ו-qsam encode כדי לבצע את המשימה הזו. מידע על היתרונות של שימוש בפקודות qsam זמין במאמר היתרונות של פקודות qsam.

הפקודה bq export תומכת בכמה יכולות של שיפור הביצועים. מידע נוסף זמין במאמר בנושא שיפורים בביצועים של הפקודה bq export. אפשר להשתמש בפקודה bq export עם ערכות תווים מותאמות אישית. מידע נוסף זמין במאמר בנושא שימוש במערכות תווים בהתאמה אישית.

הערה: הפקודה bq export גורמת לכך שבקשות לייצוא טבלאות גדולות של Bigtable נכשלות. כדי להימנע משגיאות, מוסיפים את הדגל -allowLargeResults לפקודה bq export כשרוצים לייצא טבלאות גדולות.
כן
משתמשים בפקודה הזו כדי לטעון נתונים לטבלה. לא
משתמשים בפקודה הזו כדי ליצור משאבי BigQuery, כמו טבלאות מובנות או טבלאות חיצוניות, שצריך להגדיר עבורן חלוקה למחיצות ואשכולות.

אפשר גם להשתמש בפקודה bq mk כדי ליצור טבלה ב-BigQuery ישירות מניתוח של קובצי העתקה של COBOL. מידע נוסף זמין במאמר בנושא יצירת טבלת BigQuery מ-copybook.
לא
משתמשים בפקודה הזו כדי ליצור משימת שאילתה שמריצה את שאילתת ה-SQL שצוינה. הפקודה קוראת את שאילתת ה-SQL מהסימון --sql או מ-QUERY DD. אם מספקים את שניהם, השאילתה בדגל --sql מקבלת עדיפות.

משתמשים בדגל --follow=true כדי ליצור דוח שמציג את התוצאות של שאילתה נבחרת. כדי לכתוב את הדוח הזה לקובץ במחשב המרכזי, צריך להגדיר הצהרת DD‏ AUDITL שמפנה לקובץ שאמור להכיל את דוח יומני הביקורת. אל תשתמשו בדגל --follow אם אתם רוצים התנהגות רגילה של רישום ביומן.

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

כדי להשתמש בפרמטרים של bq query, אפשר לעיין במאמר בנושא פרמטרים של שאילתות bq.
כן
אפשר להשתמש בפקודה הזו כדי למחוק משאב של BigQuery באופן סופי. הפקודה הזו מוחקת משאב באופן סופי, ולכן מומלץ להשתמש בה בזהירות. לא
פקודות Cloud Run משתמשים בפקודה הזו כדי להפעיל משימת Cloud Run מהמחשב המרכזי. לא
משתמשים בפקודה הזו כדי להציג את היומנים של הפעלת משימה ספציפית ב-Cloud Run. לא
משתמשים בפקודה הזו כדי לבטל עבודה ב-Cloud Run. לא
פקודות Cloud Storage משתמשים בפקודה הזו כדי להעתיק טקסט או נתונים בינאריים ל-Cloud Storage. אתם יכולים להשתמש במצב העתקה בינארי פשוט כדי להעתיק מערך נתונים מ-IBM z/OS ל-Cloud Storage ללא שינוי כחלק מצינור נתונים. אפשרות נוספת: אפשר להמיר את קידוד התווים מ-EBCDIC (קוד החלפה עשרוני בינארי מורחב) ל-ASCII UTF-8, ולהוסיף מעברי שורה.

הערה: מומלץ להשתמש בפקודות copy text כדי לבצע את המשימה הזו, כי הן מספקות יכולות טובות יותר.

אפשר להשתמש בפקודה הזו גם כדי להעתיק קוד מקור של אפליקציה שמוגדר ב-Job Control Language (JCL).
לא
gsutil כלי אפשר להשתמש בפקודה הזו כדי לבצע טרנסקוד של מערך נתונים ולכתוב אותו ב-Cloud Storage בפורמט הקובץ Optimized Row Columnar (ORC). הפקודה קוראת את הנתונים מ-INFILE DD, ואת פריסת הרשומה מקובץ COPYBOOK.

הערה: מומלץ להשתמש בפקודות qsam decode ו-qsam encode כדי לבצע את המשימה הזו. מידע על היתרונות של שימוש בפקודות qsam זמין במאמר היתרונות של פקודות qsam.

אם רוצים שהפקודה תקרא את הנתונים מקובץ של שם מקור נתונים (DSN), משתמשים בדגלים הבאים:
  • --inDsn: ה-DSN של מערך הנתונים של הקלט. אם מציינים את הדגל הזה, הוא מבטל את INFILE DD.
  • --cobDsn: ה-DSN של קובץ ה-copybook. אם מציינים אותו, הדגל הזה מבטל את COPYBOOK DD.
הפקודה פותחת מספר חיבורים מקבילים שניתן להגדרה ל-Cloud Storage API וממירה את מערך הנתונים של COBOL לפורמט קובץ ORC עמודתי ודחוס ב-GZIP. יחסי הדחיסה צפויים להיות בסביבות 35%.

אפשר גם להשתמש בפקודה הזו כדי ליצור אינטראקציה עם שירות gRPC של Mainframe Connector שפועל במכונה וירטואלית במחשב המרכזי. כדי לעשות זאת, מגדירים את משתני הסביבה SRVHOST ו-SRVPORT, או מציינים את שם המארח ומספר היציאה באמצעות אפשרויות של שורת הפקודה. כשמשתמשים בשירות gRPC, קודם כל מחבר המיינפריים מעתיק את מערך הנתונים של הקלט ל-Cloud Storage, ואז מתבצעת קריאה לפרוצדורה מרוחקת (RPC) כדי להנחות את שירות gRPC לבצע טרנסקוד לקובץ.

אפשר גם לבצע את המשימות הבאות באמצעות הפקודה gsutil cp:
כן
משתמשים בפקודה הזו כדי למחוק קטגוריות או אובייקטים בתוך קטגוריה. לא
gszutil כלי כלי השירות gszutil פועל באמצעות IBM JZOS Java SDK ומספק אמולטור של מעטפת שמקבל הפעלות של שורת הפקודה של gsutil ו-BigQuery באמצעות JCL.

הערה: מומלץ להשתמש בפקודות qsam decode ו-qsam encode כדי לבצע את המשימה הזו. מידע על היתרונות של שימוש בפקודות qsam זמין במאמר היתרונות של פקודות qsam.

הכלי gszutil מרחיב את הפונקציונליות של הכלי gsutil בכך שהוא מקבל סכימה בפורמט COPYBOOK DD, משתמש בה כדי לבצע טרנסקוד של מערכי נתונים של COBOL ישירות ל-ORC לפני ההעלאה ל-Cloud Storage. הכלי gszutil מאפשר גם להפעיל את BigQuery query ואת load באמצעות JCL.

כלי השירות gszutil פועל עם שרת gRPC, שעוזר לצמצם את צריכת מיליוני ההוראות לשנייה (MIPS). מומלץ להשתמש בכלי gszutil בסביבת הייצור כדי להמיר קבצים בינאריים ב-Cloud Storage לפורמט ORC.
לא
הפקודות qsam ו-vsam משתמשים בפקודה הזו כדי לבצע טרנסקוד של רשומות בקובץ QSAM לפורמט הרצוי באמצעות הארגומנט --output-format. קובץ ה-QSAM המקורי מפוצל לחלקים על סמך הערך שמציינים בארגומנט --max-chunk-size. הפלט שעבר המרה נשמר בנתיב היעד כקבצים ממוינים לפי סדר מילוני. לא
משתמשים בפקודה הזו כדי להמיר נתונים ממקור חיצוני לקובץ QSAM. הקלט מוגדר לפי הערך שמציינים באמצעות הארגומנט --input-format. לא
משתמשים בפקודה הזו כדי לבצע טרנסקוד של רשומות בקובץ Virtual Storage Access Method‏ (VSAM) לפורמט הרצוי באמצעות הארגומנט --output-format. קובץ ה-VSAM המקורי מפולח לחלקים על סמך הערך שמציינים בארגומנט --max-chunk-size. הפלט שעבר המרה נשמר בנתיב היעד כקבצים ממוינים לפי סדר מילוני. לא
פקודות Pub/Sub משתמשים בפקודה הזו כדי לפרסם הודעה בנושא Pub/Sub. לא
פקודות אחרות משתמשים בפקודה הזו כדי להעתיק מערך נתונים בינארי מנתיב מקור לנתיב יעד. לא
משתמשים בפקודה הזו כדי להעתיק קובץ למיקום אחסון לפי בחירתכם, כמו Cloud Storage, וגם בכיוון ההפוך. לא
משתמשים בפקודה הזו כדי לשלוח בקשת HTTP לשירות אינטרנט או לממשקי API ל-REST. לא
משתמשים בפקודה הזו כדי להפעיל את הביצוע של תבנית Flex ב-Dataflow. הפקודה מריצה משימה מנתיב התבנית הגמישה שצוין. מידע נוסף זמין במאמר בנושא gcloud dataflow flex-template run. לא
משתמשים בפקודה הזו כדי להדפיס את נתוני המערכת הנדרשים לפלט הרגיל (stdout). כך צוות התמיכה של Mainframe Connector יכול לאסוף את המידע הנדרש כדי לאבחן בעיה בלי צורך באינטראקציה נרחבת עם הלקוח.
בהתאם לדגל שבו משתמשים, הפקודה systemreport מדפיסה את נתוני המערכת הבאים:
  • --supported_ciphers: צפנים נתמכים
  • --available_security_providers: ספקי אבטחה זמינים
לא

שימוש במערכות תווים בהתאמה אישית

המחבר של המחשב המרכזי תומך במערכות שונות של תווים שמפענחות בייטים למחרוזות BigQuery, וגם להפך. Mainframe Connector מאפשר לכם להגדיר ערכת תווים מותאמת אישית משלכם. אפשר להגדיר ערכת תווים מותאמת אישית על ידי יצירת קובץ מיפוי תווים של Unicode‏ (UCM). ‫Mainframe Connector תומך בקבוצת המשנה הבאה של פורמט UCM:

<code_set_name>               "<name>"
<uconv_class>                 "SBCS"
<subchar>                     \x1A #Example

CHARMAP
#_______ _________
<U0000> \x00 |0       #For the third column, only 0 is supported.
<U0001> \x01 |0
#etc
END CHARMAP

אם רוצים להשתמש בערכת תווים בהתאמה אישית, צריך להגדיר קובץ הגדרות בפורמט UCM. כדי להשתמש בערכת התווים המותאמת אישית עם הפקודות gsutil cp או bq export, צריך להגדיר את הדגל --encoding=charset.

כשיוצרים קבוצת תווים בהתאמה אישית, חשוב לוודא את הדברים הבאים:

  • כשמגדירים קובץ UCM, חשוב לזכור את הנקודות הבאות:
    • הכלי Mainframe Connector תומך רק בערכות תווים מותאמות אישית באמצעות ערכת תווים בבייט יחיד (SBCS).
    • ‫Mainframe Connector תומך רק במדד הדיוק של UCM‏ |0.
    • מוודאים שקבצי ה-UCM נמצאים ב-z/OS Unix System Services (USS) ולא ב-multiple virtual storage partitioned dataset (MVS PDS).
    • מוודאים שקובצי ה-UCM נשמרים בפורמט ASCII ולא בפורמט EBCDIC.
  • צריך לספק מיפוי מפורש לכל ערך אפשרי של בייט יחיד לתו Unicode. אם אתם לא בטוחים איזה תו Unicode אתם רוצים למפות לבייט, מומלץ למפות אותו ל-U+FFFD. אפשר למפות רצפים שונים של בייטים לאותו תו Unicode. עם זאת, במקרים האלה המיפוי הוא לא דו-כיווני, כלומר, כשמעלים נתונים ל-BigQuery ואחר כך מייצאים אותם בחזרה לקובץ בינארי, הפלט עשוי להיות שונה מהקלט המקורי.
  • מוודאים שרצפי הבייטים בעמודה השנייה ייחודיים. אם כמה רצפים של בייטים ממופים לאותו תו Unicode, התו הזה מפוענח לרצף של בייטים של המיפוי האחרון שהוגדר בקובץ UCM.
  • כדי לוודא ש-Mainframe Connector יכול למצוא את קובץ ה-UCM, מגדירים את משתנה הסביבה BQSH_FEATURE_CUSTOM_CHARSET לנתיב של קובץ ה-UCM. אם רוצים להשתמש בכמה ערכות תווים, אפשר לספק את הנתיבים לכמה ערכות תווים שמופרדים באמצעות הנקודה-פסיק. לדוגמה, BQSH_FEATURE_CUSTOM_CHARSET=path1;path2. ‫path יכול להצביע על קובץ מקומי או על קובץ ששמור ב-Cloud Storage. אם מריצים את הפקודות gsutil cp או bq export עם הדגל --remote כדי לבצע קידוד מרחוק, Mainframe Connector משתמש בערך המקומי שמוגדר למשתנה הסביבה BQSH_FEATURE_CUSTOM_CHARSET. הדבר נכון גם כשמריצים את Mainframe Connector במצב עצמאי. אם הדגל --encoding מתייחס לערכת תווים מותאמת אישית שלא תואמת לערך שהגדרתם ל-BQSH_FEATURE_CUSTOM_CHARSET (או אם לא הגדרתם את BQSH_FEATURE_CUSTOM_CHARSET בכלל), הפקודה תצא עם הודעת שגיאה.

הגדרת אופטימיזציה של הביצועים עבור הפקודה bq export

‫Mainframe Connector תומך בהגדרות הבאות לשיפור הביצועים של הפקודה bq export:

  • exporter_thread_count: (אופציונלי) הגדרת מספר ה-worker threads. ערך ברירת המחדל הוא 4.
  • max_read_streams: (אופציונלי) הגדרת מספר מקסימלי של זרמי קריאה. ערך ברירת המחדל זהה לערך שמוגדר עבור exporter_thread_count.
  • order_response: (אופציונלי) אם מגדירים את הדגל הזה כ-true, הכלי לייצוא שומר על הסדר של תוצאות השאילתה. הדגל הזה משפיע על ביצועי הייצוא. ערך ברירת המחדל הוא False.
  • max_read_queue: (אופציונלי) הגדרת המספר המקסימלי של תורים של רשומות לקריאה. ערך ברירת המחדל הוא כפול ממספר השרשורים.
  • transcoding_buffer: (אופציונלי) הגדרת הגודל של מאגר הנתונים הזמני של הטרנסקוד לכל שרשור במגה-בייט. ערך ברירת המחדל הוא 20MB.

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

יצירת טבלה ב-BigQuery מ-copybook

אפשר להשתמש בפקודה bq mk כדי ליצור טבלה ב-BigQuery ישירות מניתוח של קובצי COBOL. כלי הניתוח המקורי של copybook מחלץ ערכי ברירת מחדל מהפסוקית VALUE בתוך copybook, ומקצה אותם לעמודות התואמות בטבלה ב-BigQuery שנוצרה לאחרונה.

כדי לעזור לכם לבדוק את התכונה הזו, הפקודה bq mk כוללת גם מצב dry run. במצב הזה אפשר לראות תצוגה מקדימה של הפקודה CREATE TABLE SQL שנוצרה בלי ליצור בפועל את הטבלה ב-BigQuery.

הפקודה bq mk מספקת את אפשרויות ההגדרה הבאות לתמיכה בתכונה הזו:

  • --schema_from_copybook: מציין את קובץ ה-copybook שבו יש להשתמש כדי ליצור את הטבלה.
  • --dry_run: (אופציונלי) אם האפשרות הזו מופעלת, הפקודה רק מדפיסה את הפקודה CREATE TABLE SQL שנוצרה בלי להריץ אותה. הדגל הזה מוגדר כ-false כברירת מחדל.
  • --tablespec "[PROJECT_ID]:[DATASET].[TABLE]": מזהה הפרויקט ב-BigQuery, מערך הנתונים ושם הטבלה של טבלת היעד.
  • --encoding: מציינים את הקידוד שמשמש לקריאת קובץ ה-copybook. ערך ברירת המחדל הוא CP037.

יש תמיכה בסעיפים הבאים של VALUE:

VAR1   PIC 9(5) VALUE 55.
*-- Set VAR1 to 55
VAR1   PIC X(5) VALUE aaaa. Set VAR1 to aaaa
VAR1   PIC 9(3) COMP VALUE 3. Set VAR1 to 3 (binary)
VAR1   PIC [9(5), X(5)] VALUE <literal>. Set VAR1 to <literal>
VAR1   PIC [9(5), X(5)] VALUE ZERO. Set VAR1 to 0 or "0"
VAR1   PIC [9(5), X(5)] VALUE ZEROS. Set VAR1 to 0 or "00000"
VAR1   PIC [9(5), X(5)] VALUE ZEROES. Set VAR1 to 0 or "00000"
VAR1   PIC X(5) VALUE SPACE. Set VAR1 to  " "
VAR1   PIC X(5) VALUE SPACES. Set VAR1 to  "     "

סעיפי HIGH-VALUE ו-LOW-VALUE נתמכים רק במשתנים אלפאנומריים.

VAR1   PIC X(5) VALUE HIGH-VALUE. Set VAR1 to `X"FF "
VAR1   PIC X(5) VALUE HIGH-VALUES. Set VAR1 to 0 or `X"FFFFFFFFFF"
VAR1   PIC X(5) VALUE LOW-VALUE. Set VAR1 to `X"00" (NULL)
VAR1   PIC X(5) VALUE LOW-VALUES. Set VAR1 to `X"0000000000" (NULL)
VAR1   PIC X(5) VALUE QUOTE. Set VAR1 to `"`
VAR1   PIC X(5) VALUE `QUOTES`. Set VAR1 to 0 or `""""`
VAR1   PIC [9(5), X(5)] VALUE NULL. Not defined and won't be supported
VAR1   PIC [9(5), X(5)] VALUE ALL <literal>. Set all fields with the value ALL to <literal>

bq query פרמטריזציה

Mainframe Connector מאפשר לכם להשתמש בשאילתות שמכילות פרמטרים עם bq query.

הדוגמה הבאה מראה איך אפשר להשתמש בשאילתת bq query עם פרמטרים:

קובץ שאילתה

SELECT * FROM `bigquery-public-data.samples.wikipedia` WHERE title = @xtitle

בדוגמה הבאה מופיעים כמה פרמטרים.

קובץ שאילתה

SELECT * FROM bigquery-public-data.samples.wikipedia WHERE title = @mytitle AND num_characters > @min_chars;

דוגמה להרצה

bq query \
--project_id=mainframe-connector-dev \
--location="US" \
--parameters=mytitle::Hippocrates,min_chars:INT64:42600

ביצוע הרצה יבשה של הפקודה gsutil cp

הפקודה gsutil cp מפענחת קובץ QSAM באמצעות ספריית העתקה של COBOL, ויוצרת קובץ ORC ב-Cloud Storage. אפשר להריץ הרצה יבשה של הפקודה gsutil cp באמצעות הדגל dry_run ולבדוק את השלבים הבאים:

  • מנתחים קובץ העתקה או קובץ נתונים של COBOL ובודקים אם הוא תואם ל-Mainframe Connector.
  • פענוח קובץ QSAM בלי לכתוב אותו ב-Cloud Storage.

כדי לבצע הרצה יבשה, משתמשים בפקודה הבאה:

gsutil cp \
--dry_run \
gs://result-dir

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

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

אם משתמשים בדגל dry_run ומקור הנתונים לא קיים, הפקודה לא מחזירה שגיאה. במקום זאת, הוא בודק רק את מנתח ה-copybook ואז משלים את ההרצה.

העתקת קובץ מ-Cloud Storage למחשב המרכזי

אפשר להשתמש בפקודה gsutil cp כדי להעתיק קובץ מ-Cloud Storage למערך נתונים במחשב מרכזי. שימו לב שאי אפשר להעתיק קבוצות נתונים עם חלוקה למחיצות (PDS).

כדי להעתיק קובץ מ-Cloud Storage למערך נתונים של מחשב מרכזי, צריך לציין ב-JCL את ה-DSN ואת דרישות הנפח של הקובץ שרוצים להוריד למחשב המרכזי, כמו בדוגמה הבאה:

//OUTFILE  DD DSN=MAINFRAME.DSN.FILE,DISP=(,CATLG),
//            RECFM=FB,DSORG=PS,
//            SPACE=(10,(2,1),RLSE),
//            AVGREC=M,
//            UNIT=SYSDA
//SYSPRINT DD SYSOUT=*
//SYSDUMP  DD SYSOUT=*
//STDIN DD *

מציינים את הפקודה של gsutil cp בפורמט הבא. אם הקובץ כבר קיים במחשב המרכזי, מוסיפים את הדגל --replace לפקודה.

gsutil cp GCS_URI DSN --recfm=RECFM --lrecl=LRECL --blksize=BLKSIZE --noseek

מחליפים את מה שכתוב בשדות הבאים:

  • GCS_URI: מזהה המשאב האחיד (URI) של קובץ Cloud Storage. לדוגמה, gs://bucket/sample.mainframe.dsn.
  • DSN: מיקום היעד של ה-DSN במחשב המרכזי.
  • RECFM: פורמט הרשומה (RECFM) של קובץ המיינפריים. הערכים התקינים הם F,‏ FB ו-U. חשוב לזכור שהערכים האלה לא תלויי-רישיות.
  • LRECL: (אופציונלי) אורך הרשומה (LRECL) של הקובץ. הערך צריך להיות מספר שלם גדול או שווה ל-0. אם לא מציינים את LRECL, המערכת מניחה שהקובץ הוא בפורמט רשומה באורך לא מוגדר (U).
  • BLKSIZE: (אופציונלי) גודל הבלוק של הקובץ. אם הערך הוא 0, המערכת תקבע את גודל הבלוק האופטימלי. הערך חייב להיות מספר שלם גדול או שווה ל-0. אם לא מציינים ערך, הקובץ נחשב לקובץ לא חסום.
  • noseek: (אופציונלי) כדאי לכלול את הפרמטר הזה אם רוצים לשפר את ביצועי ההורדה. כברירת מחדל, הדגל הזה מוגדר כ-false, כלומר פעולות של מעבר למיקום מסוים מופעלות.

דוגמה להרצה

gsutil cp gs://sample-bucket/MAINFRAME.DSN.FILE MAINFRAME.DSN.FILE \
--lrecl=16 --blksize=0 --recfm=fb

הגדרת אופטימיזציה של הביצועים עבור הפקודה gsutil cp

הכלי Mainframe Connector תומך בהגדרות הבאות לשיפור הביצועים של הפקודה gsutil cp.

  • משתמשים בדגל --parallelism כדי להגדיר את מספר השרשורים. ערך ברירת המחדל הוא 1 (הפעלה בשרשור יחיד).
  • משתמשים בארגומנט --maxChunkSize כדי להגדיר את הגודל המקסימלי של כל נתח. כל מקטע יקבל קובץ ORC משלו. כדי להקטין את מספר החלקים שנוצרים, אפשר להגדיל את הערך הזה, אבל זה יגרום לדרישות זיכרון גדולות יותר במהלך תהליך הקידוד מחדש. פרטים נוספים זמינים במאמר בנושא ניתוח הארגומנט maxChunkSize. ערך ברירת המחדל הוא 128MiB‎.
  • משתמשים בארגומנט --preload_chunk_count כדי להגדיר את כמות הנתונים שצריך לטעון מראש לזיכרון בזמן שכל העובדים עסוקים. הארגומנט הזה יכול לשפר את הביצועים על חשבון הזיכרון. ערך ברירת המחדל הוא 2.

דוגמה להרצה

gsutil cp \
  --replace \
  --parser_type=copybook \
  --parallelism=8 \
  --maxChunkSize=256MiB \
  gs://$BUCKET/test.orc

בדוגמה הזו, התייחסנו לקובץ גדול ולכן השתמשנו ב-8 שרשורים שבהם קצב השורה מגיע. אם יש לכם מספיק זיכרון, מומלץ להגדיל את גודל המקטעים ל-256MiB או אפילו ל-512MiB, כי כך מצמצמים את התקורה של יצירת אובייקטים ב-Cloud Storage ושל השלמתם. יכול להיות ששימוש בפחות שרשורים ובחלקים קטנים יותר של קבצים קטנים יניב תוצאות טובות יותר.

ניתוח הארגומנט maxChunkSize

הדגל maxChunkSize מקבל ערכים בצורה של סכום ויחידת מידה, לדוגמה 5 MiB. אפשר להשתמש ברווח לבן בין הסכום לבין סדר הגודל.

אפשר לציין את הערך בפורמטים הבאים:

  • פורמט Java: b/k/m/g/t, לציון בייט, קיביבייט, מביבייט, גיביבייט וטביבייט בהתאמה
  • פורמט בינלאומי: KiB/MiB/GiB/TiB,‏ kibibyte,‏ mebibyte,‏ gibibyte ו-tebibyte בהתאמה
  • פורמט המדד: b/kb/mb/gb/tb,‎‏ עבור קילובייט, מגה-בייט, גיגה-בייט וטרה-בייט בהתאמה

ניתוח גודל הנתונים לא תלוי באותיות רישיות. שימו לב: אי אפשר לציין סכומים חלקיים. לדוגמה, במקום 0.7 MiB, צריך להשתמש ב-716 KiB.