בדף הזה מוסבר איך לייבא מטא-נתונים לשירות Dataproc Metastore.
התכונה 'ייבוא מטא-נתונים' מאפשרת לאכלס שירות Dataproc Metastore קיים במטא-נתונים שמאוחסנים בפורמט אחסון נייד.
המטא-נתונים הניידים האלה מיוצאים בדרך כלל משירות Dataproc Metastore אחר או מ-Hive Metastore (HMS) בניהול עצמי.
מידע על ייבוא מטא-נתונים
אפשר לייבא את הפורמטים הבאים של קבצים אל Dataproc Metastore:
- קבוצה של קובצי Avro שמאוחסנים בתיקייה.
- קובץ dump יחיד של MySQL שמאוחסן בתיקייה ב-Cloud Storage.
קובצי ה-MySQL או ה-Avro שאתם מייבאים צריכים להיווצר ממסד נתונים רלציוני.
אם הקבצים שלכם בפורמט אחר, כמו PostgreSQL, אתם צריכים להמיר אותם לפורמט Avro או MySQL. אחרי ההמרה, אפשר לייבא אותם ל-Dataproc Metastore.
Avro
ייבוא מבוסס Avro נתמך רק בגרסאות Hive 2.3.6 ו-3.1.2. כשמייבאים קובצי Avro, Dataproc Metastore מצפה לסדרה של קובצי <table-name>.avro לכל טבלה במסד הנתונים.
כדי לייבא קובצי Avro, שירות Dataproc Metastore יכול להשתמש בסוג מסד הנתונים MySQL או Spanner.
MySQL
ייבוא שמבוסס על MySQL נתמך בכל הגרסאות של Hive. כשמייבאים קובצי MySQL, Dataproc Metastore מצפה לקובץ SQL יחיד שמכיל את כל פרטי הטבלה. מגבים של MySQL שהתקבלו מאשכול Dataproc באמצעות SQL מקורי נתמכים גם הם.
כדי לייבא קובצי MySQL, שירות Dataproc Metastore צריך להשתמש בסוג מסד הנתונים MySQL. סוג מסד הנתונים Spanner לא תומך בייבוא של MySQL.
שיקולים לגבי ייבוא
הייבוא מחליף את כל המטא-נתונים הקיימים שמאוחסנים בשירות Dataproc Metastore.
תכונת ייבוא המטא-נתונים מייבאת רק מטא-נתונים. נתונים שנוצרו על ידי Apache Hive בטבלאות פנימיות לא משוכפלים בייבוא.
הייבוא לא משנה את התוכן של מסד הנתונים ולא מטפל בהעברת קבצים. אם מעבירים את הנתונים למיקום אחר, צריך לעדכן באופן ידני את המיקומים של נתוני הטבלה ואת הסכימה בשירות Dataproc Metastore.
הייבוא לא משחזר או מחליף מדיניות IAM מפורטת.
אם אתם משתמשים ב-VPC Service Controls, אתם יכולים לייבא נתונים רק מקטגוריה של Cloud Storage שנמצאת באותם גבולות גזרה לשירות כמו שירות Dataproc Metastore.
לפני שמתחילים
- מפעילים את Dataproc Metastore בפרויקט.
- הסבר על דרישות הרשת שספציפיות לפרויקט שלכם.
- יוצרים שירות Dataproc Metastore.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לייבוא מטא-נתונים אל Dataproc Metastore, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
כדי לייבא מטא-נתונים:
-
עורך של Dataproc Metastore (
roles/metastore.editor) ב-Metadata Service. -
אדמין של Dataproc Metastore (
roles/metastore.admin) בפרויקט.
-
עורך של Dataproc Metastore (
-
ב-MySQL, כדי להשתמש באובייקט Cloud Storage (קובץ SQL מוכן לשימוש) לייבוא:
נותנים לחשבון המשתמש ולסוכן השירות של Dataproc Metastore את התפקיד 'צפייה באובייקט אחסון' (
roles/storage.objectViewer) בקטגוריה של Cloud Storage שמכילה את ה-metadata dump שמייבאים. -
כדי להשתמש בקטגוריה של Cloud Storage לייבוא בפורמט Avro:
צריך להעניק לחשבון המשתמש ולסוכן השירות של Dataproc Metastore את התפקיד 'צפייה באובייקט אחסון' (
roles/storage.objectViewer) בקטגוריה של Cloud Storage שמכילה את קובץ ה-dump של המטא-נתונים שמייבאים.
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לייבוא מטא-נתונים אל Dataproc Metastore. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לייבא מטא-נתונים אל Dataproc Metastore, צריך את ההרשאות הבאות:
-
כדי לייבא מטא-נתונים:
metastore.imports.createבשירות המטא-סטור. -
ב-MySQL, כדי להשתמש באובייקט Cloud Storage (קובץ SQL מוכן לשימוש) לייבוא, צריך להעניק לחשבון המשתמש ולסוכן השירות של Dataproc Metastore את ההרשאות הבאות:
storage.objects.getבקטגוריה של Cloud Storage שמכילה את ה-metadata dump שמייבאים. -
כדי להשתמש בקטגוריה של Cloud Storage לייבוא בפורמט Avro, צריך להעניק לחשבון המשתמש ולסוכן השירות של Dataproc Metastore את ההרשאות הבאות:
storage.objects.getבקטגוריה של Cloud Storage שמכילה את קובץ ה-dump של המטא-נתונים שמייבאים.
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
במאמר סקירה כללית על IAM ב-Dataproc Metastore יש מידע נוסף על תפקידים והרשאות ספציפיים ב-Dataproc Metastore.ייבוא המטא-נתונים
פעולת הייבוא היא תהליך דו-שלבי. קודם מכינים את קובצי הייבוא ואז מייבאים אותם אל Dataproc Metastore.
כשמתחילים ייבוא, Dataproc Metastore מבצע אימות של סכימת מטא-נתונים של Hive. באימות הזה נבדקות הטבלאות בקובץ ה-SQL dump ושמות הקבצים ב-Avro. אם חסרה טבלה, הייבוא נכשל ומוצגת הודעת שגיאה עם תיאור של הטבלה החסרה.
כדי לבדוק את התאימות של מטא-נתוני Hive לפני ייבוא, אפשר להשתמש ב ערכת הכלים של Dataproc Metastore.
הכנת קובצי הייבוא לפני הייבוא
כדי לייבא את הקבצים ל-Dataproc Metastore, צריך להעתיק את קובצי ה-dump של המטא-נתונים ל-Cloud Storage, למשל לקטגוריה של ארטיפקטים ב-Cloud Storage.
העברת קבצים ל-Cloud Storage
יוצרים dump של מסד הנתונים החיצוני שרוצים לייבא ל-Dataproc Metastore.
הוראות ליצירת dump של מסד נתונים מפורטות בדפים הבאים:
מעלים את הקבצים ל-Cloud Storage.
חשוב לרשום את הנתיב ב-Cloud Storage שאליו מעלים את הקבצים, כי תצטרכו להשתמש בו בהמשך כדי לבצע את הייבוא.
אם מייבאים קובצי MySQL, מעלים את קובץ ה-SQL לקטגוריה של Cloud Storage.
אם מייבאים קובצי Avro, מעלים את הקבצים לתיקייה ב-Cloud Storage.
- הייבוא של Avro צריך לכלול קובץ Avro לכל טבלת Hive, גם אם הטבלה ריקה.
- שמות הקבצים בפורמט Avro צריכים להיות בפורמט
<table-name>.avro. הערך של<table-name>חייב להיות באותיות רישיות. לדוגמה,AUX_TABLE.avro.
ייבוא הקבצים ל-Dataproc Metastore
לפני שמייבאים מטא-נתונים, כדאי לעיין בשיקולים לגבי ייבוא.
בזמן שהייבוא פועל, אי אפשר לעדכן שירות Dataproc Metastore – למשל, לשנות את הגדרות התצורה. עם זאת, עדיין אפשר להשתמש בו לפעולות רגילות, כמו גישה למטא-נתונים שלו מאשכולות Dataproc או מאשכולות בניהול עצמי שמצורפים אליו.
המסוף
במסוף Google Cloud , פותחים את הדף Dataproc Metastore:
בדף Dataproc Metastore, לוחצים על שם השירות שרוצים לייבא אליו מטא-נתונים.
ייפתח הדף פרטי השירות.
איור 1. דף הפרטים של שירות Dataproc Metastore. בסרגל הניווט, לוחצים על ייבוא.
תיבת הדו-שיח ייבוא תיפתח.
מזינים את שם הייבוא.
בקטע יעד, בוחרים באפשרות MySQL או Avro.
בשדה יעד URI, לוחצים על עיון ובוחרים את ה-URI של Cloud Storage שאליו רוצים לייבא את הקבצים.
אפשר גם להזין באופן ידני את מיקום הדלי בשדה הטקסט שמופיע. צריך להשתמש בפורמט הבא:
bucket/objectאוbucket/folder/object.אופציונלי: מזינים תיאור של הייבוא.
אפשר לערוך את התיאור בדף פרטי השירות.
כדי לעדכן את השירות, לוחצים על ייבוא.
אחרי שהייבוא מסתיים, הוא מופיע בטבלה בדף פרטי השירות בכרטיסייה ייבוא/ייצוא.
CLI של gcloud
כדי לייבא מטא-נתונים, מריצים את הפקודה הבאה של
gcloud metastore services import gcs:gcloud metastore services import gcs SERVICE_ID \ --location=LOCATION \ --import-id=IMPORT_ID \ --description=DESCRIPTION \ --dump-type=DUMP_TYPE \ --database-dump=DATABASE_DUMP
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_ID: המזהה או השם המלא של שירות Dataproc Metastore. -
LOCATION: האזור שבו נמצא שירות Dataproc Metastore. Google Cloud -
IMPORT_ID: מזהה או שם מלא של ייבוא המטא-נתונים. לדוגמה,import1. -
DESCRIPTION: אופציונלי: תיאור של הייבוא. אפשר לערוך את ההגדרה הזו מאוחר יותר באמצעותgcloud metastore services imports update IMPORT. -
DUMP_TYPE: סוג מסד הנתונים החיצוני שממנו מייבאים. הערכים הקבילים כוללים אתmysqlו-avro. ערך ברירת המחדל הואmysql. -
DATABASE_DUMP: הנתיב ל-Cloud Storage שמכיל את קובצי מסד הנתונים. הנתיב הזה חייב להתחיל ב-gs://. ב-Avro, מציינים את הנתיב לתיקייה שבה קובצי ה-Avro מאוחסנים (התיקייה ב-Cloud Storage). ב-MySQL, מציינים את הנתיב לקובץ MySQL (האובייקט ב-Cloud Storage).
-
מוודאים שהייבוא בוצע בהצלחה.
REST
פועלים לפי ההוראות ל-API כדי לייבא מטא-נתונים לשירות באמצעות APIs Explorer.
באמצעות ה-API, אפשר ליצור, לרשום, לתאר ולעדכן ייבוא, אבל אי אפשר למחוק ייבוא. עם זאת, מחיקה של שירות Dataproc Metastore מוחקת את כל הייבוא המקונן שמאוחסן.
כשהייבוא מצליח, Dataproc Metastore חוזר אוטומטית למצב פעיל. אם הייבוא נכשל, Dataproc Metastore מבצע שחזור למצב תקין קודם.
הצגת היסטוריית הייבוא
כדי לראות את היסטוריית הייבוא של שירות Dataproc Metastore במסוף Google Cloud :
- במסוף Google Cloud , פותחים את הדף Dataproc Metastore.
בסרגל הניווט, לוחצים על ייבוא/ייצוא.
היסטוריית הייבוא מופיעה בטבלה היסטוריית הייבוא.
בהיסטוריה מוצגים עד 25 ייבואים אחרונים.
מחיקה של שירות Dataproc Metastore מוחקת גם את כל היסטוריית הייבוא שמשויכת אליו.
פתרון בעיות נפוצות
דוגמאות לבעיות נפוצות:
- הייבוא נכשל כי הגרסאות של Hive לא זהות.
- לסוכן השירות או לחשבון המשתמש אין את ההרשאות הנדרשות.
- העבודה נכשלת כי קובץ מסד הנתונים גדול מדי.
לקבלת עזרה נוספת בפתרון בעיות נפוצות, אפשר לעיין במאמר תרחישי שגיאה בייבוא ובייצוא.