יצירת מטא-נתונים לתרגום ולבדיקה

במאמר הזה מוסבר איך ליצור מטא-נתונים וקובצי יומן של שאילתות באמצעות כלי החילוץ של שורת הפקודה dwh-migration-dumper. קבצי המטא-נתונים מתארים את אובייקטי ה-SQL במערכת המקור.

שירות ההעברה ל-BigQuery משתמש במידע הזה כדי לשפר את התרגום של סקריפטים של SQL מהדיאלקט של מערכת המקור ל-GoogleSQL.

הכלי להערכת מיגרציה של BigQuery משתמש בקובצי מטא-נתונים ובקובצי יומן של שאילתות כדי לנתח את מחסן הנתונים הקיים שלכם ולעזור לכם להעריך את המאמץ שנדרש להעברת מחסן הנתונים ל-BigQuery.

סקירה כללית

אתם יכולים להשתמש בכלי dwh-migration-dumper כדי לחלץ מידע על מטא-נתונים מפלטפורמת מסד הנתונים שאתם מעבירים ל-BigQuery. לא צריך להשתמש בכלי לחילוץ כדי לתרגם, אבל צריך להשתמש בו כדי לבצע הערכה של העברה ל-BigQuery, ומומלץ מאוד להשתמש בו לכל משימות ההעברה.

מידע נוסף זמין במאמר בנושא יצירת קובצי מטא-נתונים.

אפשר להשתמש בכלי dwh-migration-dumper כדי לחלץ מטא-נתונים מפלטפורמות מסדי הנתונים הבאות:

  • Teradata
  • Amazon Redshift
  • ‫Apache Hive
  • ‫Apache Impala
  • Apache Spark
  • Azure Synapse
  • Greenplum
  • שרת SQL
  • IBM Netezza
  • Oracle
  • PostgreSQL
  • פתית שלג
  • ‫Trino או PrestoSQL
  • Vertica
  • BigQuery

ברוב מסדי הנתונים האלה אפשר גם לחלץ יומני שאילתות.

הכלי dwh-migration-dumper מריץ שאילתות בטבלאות מערכת כדי לאסוף הצהרות של שפת הגדרת נתונים (DDL) שקשורות למסדי נתונים של משתמשים ומערכת. הוא לא מבצע שאילתות לגבי התוכן של מסדי נתונים של משתמשים. הכלי שומר את פרטי המטא-נתונים מטבלאות המערכת כקובצי CSV, ואז מכווץ את הקבצים האלה לחבילה אחת. לאחר מכן מעלים את קובץ ה-ZIP הזה ל-Cloud Storage כשמעלים את קובצי המקור לתרגום או להערכה.

כשמשתמשים באפשרות של יומני שאילתות, הכלי dwh-migration-dumper מריץ שאילתות בטבלאות מערכת כדי למצוא הצהרות DDL ויומני שאילתות שקשורים למסדי נתונים של משתמשים ומערכת. הקבצים האלה נשמרים בפורמט CSV או yaml בספריית משנה, ואז נארזים בחבילת zip. בשלב כלשהו, המערכת לא מבצעת שאילתות בתוכן של מסדי נתונים של משתמשים. בשלב הזה, כדי להעריך את ההעברה ל-BigQuery, צריך קובצי CSV,‏ YAML וטקסט נפרדים של יומני השאילתות. לכן, צריך לחלץ את כל הקבצים האלה מקובץ ה-ZIP של יומני השאילתות ולהעלות אותם להערכה.

אפשר להריץ את הכלי dwh-migration-dumper ב-Windows, ב-macOS וב-Linux.

הכלי dwh-migration-dumper זמין במסגרת רישיון Apache 2.

אם אתם בוחרים שלא להשתמש בכלי dwh-migration-dumper לתרגום, אתם יכולים לספק קובצי מטא-נתונים באופן ידני. לשם כך, צריך לאסוף את הצהרות שפת הגדרת הנתונים (DDL) של אובייקטי ה-SQL במערכת המקור לקובצי טקסט נפרדים.

כדי לבצע הערכת מיגרציה באמצעות BigQuery migration assessment, צריך לספק מטא-נתונים ויומני שאילתות שחולצו באמצעות הכלי.

דרישות התאימות

אנחנו מספקים את הקובץ הבינארי של הכלי dwh-migration-dumper כדי להקל על השימוש. אם אתם צריכים לבדוק את הכלי כדי לוודא שהוא עומד בדרישות התאימות, אתם יכולים לעיין בקוד המקור ממאגר GitHub של הכלי dwh-migration-dumper, ולקמפל בינארי משלכם.

דרישות מוקדמות

התקנת Java

בשרת שבו אתם מתכננים להריץ את כלי dwh-migration-dumper צריכה להיות מותקנת Java מגרסה 8 ואילך. אם לא, מורידים את Java מדף ההורדות של Java ומתקינים אותה.

ההרשאות הנדרשות

לחשבון המשתמש שמציינים לחיבור הכלי dwh-migration-dumper למערכת המקור צריכות להיות הרשאות לקריאת מטא-נתונים מהמערכת הזו. צריך לוודא שלחשבון הזה יש חברות בתפקיד המתאים כדי לשלוח שאילתות למשאבי המטא-נתונים שזמינים בפלטפורמה שלכם. לדוגמה, INFORMATION_SCHEMA הוא משאב מטא-נתונים שמשותף לכמה פלטפורמות.

התקנת הכלי dwh-migration-dumper

כדי להתקין את הכלי dwh-migration-dumper:

  1. במחשב שבו רוצים להריץ את הכלי dwh-migration-dumper, מורידים את קובץ ה-ZIP ממאגר ה-GitHub של הכלי dwh-migration-dumper.
  2. כדי לאמת את קובץ ה-ZIP של הכלי dwh-migration-dumper, מורידים את הקובץ SHA256SUMS.txt ומריצים את הפקודה הבאה:

    Bash

    sha256sum --check SHA256SUMS.txt

    אם האימות נכשל, אפשר להיעזר בקטע פתרון בעיות.

    Windows PowerShell

    (Get-FileHash RELEASE_ZIP_FILENAME).Hash -eq ((Get-Content SHA256SUMS.txt) -Split " ")[0]

    מחליפים את RELEASE_ZIP_FILENAME בשם הקובץ של כלי החילוץ משורת הפקודה dwh-migration-dumper שהורד, למשל dwh-migration-tools-v1.0.52.zip

    התוצאה True מאשרת שהאימות של סכום הביקורת הצליח.

    התוצאה False מציינת שגיאת אימות. מוודאים שקובץ ה-checksum וקובץ ה-ZIP הורדו מאותה גרסת הפצה והוצבו באותה ספרייה.

  3. מחלצים את קובץ ה-ZIP. הקובץ הבינארי של כלי החילוץ נמצא בספריית המשנה /bin של התיקייה שנוצרה מחילוץ קובץ ה-ZIP.

  4. מעדכנים את משתנה הסביבה PATH כך שיכלול את נתיב ההתקנה של כלי החילוץ.

הפעלת הכלי dwh-migration-dumper

הכלי dwh-migration-dumper משתמש בפורמט הבא:

dwh-migration-dumper [FLAGS]

הפעלת הכלי dwh-migration-dumper יוצרת קובץ פלט בשם dwh-migration-<source platform>-metadata.zip – לדוגמה, dwh-migration-teradata-metadata.zip – בספריית העבודה.

בהמשך מפורטות הוראות להפעלת הכלי dwh-migration-dumper בפלטפורמת המקור.

Teradata

כדי לאפשר לכלי dwh-migration-dumper להתחבר ל-Teradata, צריך להוריד את מנהל ההתקן של JDBC מדף ההורדה של Teradata.

בטבלה הבאה מתוארים הדגלים הנפוצים לחילוץ מטא-נתונים ויומני שאילתות של Teradata באמצעות כלי החילוץ. מידע על כל הדגלים הנתמכים זמין במאמר בנושא דגלים גלובליים.

שם ערך ברירת מחדל תיאור חובה
--assessment

מפעיל את מצב ההערכה כשיוצרים יומנים של מסד נתונים או כשמחפשים מטא-נתונים. כשמשתמשים בכלי dwh-migration-dumper לחילוץ מטא-נתונים, הוא יוצר את נתוני המטא-נתונים הנדרשים להערכת המיגרציה ל-BigQuery. כשמשתמשים בו ליומני שאילתות, הוא מחלץ עמודות נוספות להערכת מיגרציה של BigQuery.

נדרש כשמשתמשים בו להפעלת הערכה, לא נדרש לתרגום.
--connector שם המחבר שבו רוצים להשתמש, במקרה הזה teradata למטא-נתונים או teradata-logs ליומני שאילתות. כן
--database

רשימה של מסדי הנתונים לחילוץ, מופרדת בפסיקים. יכול להיות שהשמות של מסדי הנתונים הם תלויי אותיות רישיות, בהתאם להגדרות של שרת Teradata.

אם משתמשים בדגל הזה בשילוב עם המחבר teradata, הכלי dwh-migration-dumper מסנן את טבלאות המטא-נתונים והתצוגות לפי רשימת מסדי הנתונים שסופקה. יוצאים מן הכלל הם התצוגות DatabasesV ו-RoleMembersV – הכלי dwh-migration-dumper מחלץ את מסדי הנתונים והמשתמשים מהתצוגות האלה בלי לסנן לפי שם מסד הנתונים.

אי אפשר להשתמש בדגל הזה בשילוב עם המחבר teradata-logs. יומני השאילתות תמיד מחולצים מכל מסדי הנתונים.

לא
--driver הנתיב המוחלט או היחסי לקובץ ה-JAR של מנהל ההתקן שבו רוצים להשתמש עבור החיבור הזה. אפשר לציין כמה קובצי JAR של מנהלי התקנים, ולהפריד ביניהם באמצעות פסיקים. כן
--host localhost שם המארח או כתובת ה-IP של שרת מסד הנתונים. לא
--password הסיסמה שמשמשת לחיבור למסד הנתונים. אם לא מציינים את הפרמטר הזה, כלי החילוץ משתמש בהנחיה מאובטחת כדי לבקש אותו.
--port 1025 היציאה של שרת מסד הנתונים. לא
--user

שם המשתמש שבו רוצים להשתמש לחיבור למסד הנתונים.

כן
--query-log-alternates

רק למחבר teradata-logs.

כדי לחלץ את יומני השאילתות ממיקום חלופי, מומלץ להשתמש בדגלים -Dteradata-logs.query-logs-table ו--Dteradata-logs.sql-logs-table.

כברירת מחדל, יומני השאילתות מחולצים מהטבלאות dbc.DBQLogTbl ו-dbc.DBQLSQLTbl. אם משתמשים בדגל --assessment, יומני השאילתות מחולצים מהתצוגה dbc.QryLogV ומהטבלה dbc.DBQLSQLTbl. אם אתם צריכים לחלץ את יומני השאילתות ממיקום חלופי, אתם יכולים לציין את השמות המלאים של הטבלאות או התצוגות באמצעות הדגל --query-log-alternates. הפרמטר הראשון מפנה לחלופה של הטבלה dbc.DBQLogTbl, והפרמטר השני מפנה לחלופה של הטבלה dbc.DBQLSQLTbl. חובה להגדיר את שני הפרמטרים.
אפשר להשתמש בדגל -Dteradata-logs.log-date-column כדי לשפר את ביצועי החילוץ אם לשני הטבלאות יש עמודה עם אינדקס מהסוג DATE.

דוגמה: --query-log-alternates historicdb.ArchivedQryLogV,historicdb.ArchivedDBQLSqlTbl

לא
-Dteradata.tmode

מצב העסקה של החיבור. הערכים הבאים נתמכים:

  • ANSI: מצב ANSI. זהו מצב ברירת המחדל (אם לא מציינים את הדגל)
  • TERA: מצב טרנזקציה של Teradata‏ (BTET)
  • DEFAULT: שימוש במצב ברירת המחדל של העסקאות שהוגדר בשרת מסד הנתונים
  • NONE: לא הוגדר אמצעי תחבורה לחיבור

דוגמה (Bash):
-Dteradata.tmode=TERA

דוגמה (Windows PowerShell):
"-Dteradata.tmode=TERA"

לא
-Dteradata-logs.log-date-column

רק למחבר teradata-logs.

כדי לשפר את הביצועים של צירוף טבלאות שצוינו באמצעות הדגלים -Dteradata-logs.query-logs-table ו--Dteradata-logs.sql-logs-table, אפשר לכלול עמודה נוספת מהסוג DATE בתנאי JOIN. העמודה הזו צריכה להיות מוגדרת בשתי הטבלאות, והיא צריכה להיות חלק מהאינדקס הראשי המחולק.

דוגמה (Bash):
-Dteradata-logs.log-date-column=ArchiveLogDate

דוגמה (Windows PowerShell):
"-Dteradata-logs.log-date-column=ArchiveLogDate"

לא
-Dteradata-logs.query-logs-table

רק למחבר teradata-logs.

כברירת מחדל, יומני השאילתות מחולצים מהטבלה dbc.DBQLogTbl. אם משתמשים בדגל --assessment, יומני השאילתות מחולצים מהתצוגה dbc.QryLogV. אם צריך לחלץ את יומני השאילתות ממיקום חלופי, אפשר לציין את השם המלא של הטבלה או התצוגה באמצעות הדגל הזה.
כדאי לעיין בדגל -Dteradata-logs.log-date-column כדי לשפר את ביצועי החילוץ.

דוגמה (Bash):
-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV

דוגמה (Windows PowerShell):
"-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV"

לא
-Dteradata-logs.sql-logs-table

רק למחבר teradata-logs.

כברירת מחדל, יומני השאילתות שמכילים טקסט SQL מחולצים מהטבלה dbc.DBQLSqlTbl. אם צריך לחלץ אותם ממיקום חלופי, אפשר לציין את השם המלא של הטבלה או התצוגה באמצעות הדגל הזה.
כדאי לעיין בדגל -Dteradata-logs.log-date-column כדי לשפר את ביצועי החילוץ.

דוגמה (Bash):
-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl

דוגמה (Windows PowerShell):
"-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl"

לא
-Dteradata-logs.utility-logs-table

רק למחבר teradata-logs.

כברירת מחדל, יומני השירותים מחולצים מהטבלה dbc.DBQLUtilityTbl. אם אתם צריכים לחלץ את יומני השירות ממיקום חלופי, אתם יכולים לציין את השם המלא של הטבלה באמצעות הדגל -Dteradata-logs.utility-logs-table.

דוגמה (Bash):
-Dteradata-logs.utility-logs-table=historicdb.ArchivedUtilityLogs

דוגמה (Windows PowerShell):
"-Dteradata-logs.utility-logs-table=historicdb.ArchivedUtilityLogs"

לא
-Dteradata-logs.res-usage-scpu-table

רק למחבר teradata-logs.

כברירת מחדל, יומני השימוש במשאבי SCPU מחולצים מהטבלה dbc.ResUsageScpu. אם אתם צריכים לחלץ את הנתונים האלה ממיקום חלופי, אתם יכולים לציין את השם המלא של הטבלה באמצעות הדגל -Dteradata-logs.res-usage-scpu-table.

דוגמה (Bash):
-Dteradata-logs.res-usage-scpu-table=historicdb.ArchivedResUsageScpu

דוגמה (Windows PowerShell):
"-Dteradata-logs.res-usage-scpu-table=historicdb.ArchivedResUsageScpu"

לא
-Dteradata-logs.res-usage-spma-table

רק למחבר teradata-logs.

כברירת מחדל, יומני השימוש במשאבים של SPMA מחולצים מהטבלה dbc.ResUsageSpma. אם אתם צריכים לחלץ את היומנים האלה ממיקום חלופי, אתם יכולים לציין את השם המלא של הטבלה באמצעות הדגל -Dteradata-logs.res-usage-spma-table.

דוגמה (Bash):
-Dteradata-logs.res-usage-spma-table=historicdb.ArchivedResUsageSpma

דוגמה (Windows PowerShell):
"-Dteradata-logs.res-usage-spma-table=historicdb.ArchivedResUsageSpma"

לא
--query-log-start

שעת ההתחלה (כולל) של יומני השאילתות לחילוץ. הערך נחתך לשעה. הדגל הזה זמין רק למחבר teradata-logs.

לדוגמה: --query-log-start "2023-01-01 14:00:00"

לא
--query-log-end

שעת הסיום (לא כולל) של יומני השאילתות לחילוץ. הערך נחתך לשעה. הדגל הזה זמין רק למחבר teradata-logs.

לדוגמה: --query-log-end "2023-01-15 22:00:00"

לא
-Dteradata.metadata.tablesizev.max-rows

רק למחבר teradata.

הגבלת מספר השורות שחולצו מהתצוגה TableSizeV. השורות מקובצות לפי העמודות DatabaseName, AccountName ו-TableName, ואז ממוינות בסדר יורד לפי גודל המקום הקבוע (הביטוי SUM(CurrentPerm)). לאחר מכן, נשלפות מספר השורות שצוין.

דוגמה (Bash):
-Dteradata.metadata.tablesizev.max-rows=100000

דוגמה (Windows PowerShell):
"-Dteradata.metadata.tablesizev.max-rows=100000"

לא
-Dteradata.metadata.diskspacev.max-rows

רק למחבר teradata.

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

דוגמה (Bash):
-Dteradata.metadata.diskspacev.max-rows=100000

דוגמה (Windows PowerShell):
"-Dteradata.metadata.diskspacev.max-rows=100000"

לא
-Dteradata.metadata.databasesv.users.max-rows

רק למחבר teradata.

הגבלת מספר השורות שמייצגות משתמשים (DBKind='U') שמחולצות מהתצוגה המפורטת DatabasesV. השורות ממוינות בסדר יורד לפי העמודה PermSpace, ואז נשלף מספר השורות שצוין.

דוגמה (Bash):
-Dteradata.metadata.databasesv.users.max-rows=100000

דוגמה (Windows PowerShell):
"-Dteradata.metadata.databasesv.users.max-rows=100000"

לא
-Dteradata.metadata.databasesv.dbs.max-rows

רק למחבר teradata.

הגבלת מספר השורות שמייצגות מסדי נתונים (DBKind='D') שמחולצות מהתצוגה DatabasesV. השורות ממוינות בסדר יורד לפי העמודה PermSpace, ואז נשלף מספר השורות שצוין.

דוגמה (Bash):
-Dteradata.metadata.databasesv.dbs.max-rows=100000

דוגמה (Windows PowerShell):
"-Dteradata.metadata.databasesv.dbs.max-rows=100000"

לא
-Dteradata.metadata.max-text-length

רק למחבר teradata.

האורך המקסימלי של עמודת הטקסט כשמחלצים את הנתונים מהתצוגה TableTextV. טקסט שארוך מהמגבלה שהוגדרה יפוצל לכמה שורות. הטווח המותר: בין 5,000 ל-32,000 (כולל).

דוגמה (Bash):
-Dteradata.metadata.max-text-length=10000

דוגמה (Windows PowerShell):
"-Dteradata.metadata.max-text-length=10000"

לא
-Dteradata-logs.max-sql-length

רק למחבר teradata-logs.

האורך המקסימלי של העמודה DBQLSqlTbl.SqlTextInfo. טקסט של שאילתה שאורכו חורג מהמגבלה המוגדרת יפוצל לכמה שורות. הטווח המותר: בין 5,000 ל-31,000 (כולל).

דוגמה (Bash):
-Dteradata-logs.max-sql-length=10000

דוגמה (Windows PowerShell):
"-Dteradata-logs.max-sql-length=10000"

לא

דוגמאות

בדוגמה הבאה מוצג איך לחלץ מטא-נתונים של שני מסדי נתונים של Teradata במארח המקומי:

dwh-migration-dumper \
  --connector teradata \
  --user user \
  --password password \
  --database database1,database2 \
  --driver path/terajdbc4.jar

בדוגמה הבאה מוצגות הוראות לחילוץ יומני שאילתות להערכה במארח המקומי לצורך אימות:

dwh-migration-dumper \
  --connector teradata-logs \
  --assessment \
  --user user \
  --password password \
  --driver path/terajdbc4.jar

טבלאות ותצוגות שחולצו באמצעות הכלי dwh-migration-dumper

הטבלאות והתצוגות הבאות מחולצות כשמשתמשים במחבר teradata:

  • DBC.ColumnsV
  • DBC.DatabasesV
  • DBC.DBCInfo
  • DBC.FunctionsV
  • DBC.IndicesV
  • DBC.PartitioningConstraintsV
  • DBC.TablesV
  • DBC.TableTextV

הטבלאות והתצוגות הבאות מחולצות כשמשתמשים במחבר teradata עם הדגל --assessment:

  • DBC.All_RI_ChildrenV
  • DBC.All_RI_ParentsV
  • DBC.AllTempTablesVX
  • DBC.DiskSpaceV
  • DBC.RoleMembersV
  • DBC.StatsV
  • DBC.TableSizeV

הטבלאות והתצוגות הבאות מחולצות כשמשתמשים במחבר teradata-logs:

  • DBC.DBQLogTbl (שינויים ב-DBC.QryLogV אם נעשה שימוש בדגל --assessment)
  • DBC.DBQLSqlTbl

הטבלאות והתצוגות הבאות מחולצות כשמשתמשים במחבר teradata-logs עם הדגל --assessment:

  • DBC.DBQLUtilityTbl
  • DBC.ResUsageScpu
  • DBC.ResUsageSpma

Redshift

אפשר להשתמש בכל אחד ממנגנוני האימות וההרשאה הבאים של Amazon Redshift עם כלי החילוץ:

  • שם משתמש וסיסמה.
  • מזהה מפתח גישה ומפתח סודי של AWS Identity and Access Management ‏(IAM).
  • שם פרופיל AWS IAM.

כדי לבצע אימות באמצעות שם המשתמש והסיסמה, משתמשים במנהל התקן של Amazon Redshift PostgreSQL JDBC שמוגדר כברירת מחדל. כדי לבצע אימות באמצעות AWS IAM, צריך להשתמש במנהל ההתקן של Amazon Redshift JDBC, שאפשר להוריד מדף ההורדה שלהם.

בטבלה הבאה מתוארים הדגלים הנפוצים לחילוץ מטא-נתונים ויומני שאילתות של Amazon Redshift באמצעות הכלי dwh-migration-dumper. מידע על כל הדגלים הנתמכים מופיע במאמר בנושא דגלים גלובליים.

שם ערך ברירת מחדל תיאור חובה
--assessment

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

נדרש כשמפעילים את התכונה במצב הערכה, לא נדרש לתרגום.
--connector שם המחבר שבו רוצים להשתמש, במקרה הזה redshift למטא-נתונים או redshift-raw-logs ליומני שאילתות. כן
--database אם לא מציינים שם, Amazon Redshift משתמש בערך --user כשם מסד הנתונים שמוגדר כברירת מחדל.

השם של מסד הנתונים שאליו רוצים להתחבר.

לא
--driver אם לא מציינים מנהל התקן, Amazon Redshift משתמש במנהל התקן של PostgreSQL JDBC שמוגדר כברירת מחדל. הנתיב המוחלט או היחסי לקובץ ה-JAR של מנהל ההתקן שבו רוצים להשתמש עבור החיבור הזה. אפשר לציין כמה קובצי JAR של מנהלי התקנים, ולהפריד ביניהם באמצעות פסיקים. לא
--host localhost שם המארח או כתובת ה-IP של שרת מסד הנתונים. לא
--iam-accesskeyid

מזהה מפתח הגישה של AWS IAM שמשמש לאימות. מפתח הגישה הוא מחרוזת של תווים, למשל AKIAIOSFODNN7EXAMPLE.

משתמשים בדגל --iam-secretaccesskey. אין להשתמש בדגל הזה כשמציינים את הדגלים --iam-profile או --password.

לא באופן מפורש, אבל אתם צריכים לספק פרטי אימות באחת מהשיטות הבאות:

  • משתמשים בדגל הזה בשילוב עם הדגל --iam-secretaccesskey.
  • משתמשים בדגל --iam-profile.
  • משתמשים בדגל --password בשילוב עם הדגל --user.
--iam-profile

פרופיל AWS IAM שבו יש להשתמש לאימות. כדי לאחזר ערך של פרופיל לשימוש, אפשר לבדוק את הקובץ $HOME/.aws/credentials או להריץ את הפקודה aws configure list-profiles.

אין להשתמש בדגל הזה עם הדגלים --iam-accesskeyid, --iam-secretaccesskey או --password.

לא באופן מפורש, אבל אתם צריכים לספק פרטי אימות באחת מהשיטות הבאות:

  • משתמשים בדגל הזה.
  • שימוש בדגל --iam-accesskeyid בשילוב עם הדגל --iam-secretaccesskey.
  • משתמשים בדגל --password בשילוב עם הדגל --user.
--iam-secretaccesskey

מפתח הגישה הסודי של AWS IAM שמשמש לאימות. מפתח הגישה הסודי הוא מחרוזת של תווים, למשל wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY.

משתמשים בדגל --iam-accesskeyid. אין להשתמש בדגל הזה עם הדגלים --iam-profile או --password.

לא באופן מפורש, אבל אתם צריכים לספק פרטי אימות באחת מהשיטות הבאות:

  • משתמשים בדגל הזה בשילוב עם הדגל --iam-accesskeyid.
  • משתמשים בדגל --iam-profile.
  • משתמשים בדגל --password בשילוב עם הדגל --user.
--password הסיסמה שמשמשת לחיבור למסד הנתונים.

אין להשתמש בדגל הזה עם הדגלים --iam-accesskeyid, --iam-secretaccesskey או --iam-profile.

לא באופן מפורש, אבל אתם צריכים לספק פרטי אימות באחת מהשיטות הבאות:

  • משתמשים בדגל הזה בשילוב עם הדגל --user.
  • שימוש בדגל --iam-accesskeyid בשילוב עם הדגל --iam-secretaccesskey.
  • משתמשים בדגל --password.
--port 5439 היציאה של שרת מסד הנתונים. לא
--user שם המשתמש שבו רוצים להשתמש לחיבור למסד הנתונים. כן
--query-log-start

שעת ההתחלה (כולל) של יומני השאילתות לחילוץ. הערך נחתך לשעה. הדגל הזה זמין רק למחבר redshift-raw-logs.

לדוגמה: --query-log-start "2023-01-01 14:00:00"

לא
--query-log-end

שעת הסיום (לא כולל) של יומני השאילתות לחילוץ. הערך נחתך לשעה. הדגל הזה זמין רק למחבר redshift-raw-logs.

לדוגמה: --query-log-end "2023-01-15 22:00:00"

לא

דוגמאות

הדוגמה הבאה מראה איך לחלץ מטא-נתונים ממסד נתונים של Amazon Redshift במארח שצוין, באמצעות מפתחות AWS IAM לאימות:

dwh-migration-dumper \
  --connector redshift \
  --database database \
  --driver path/redshift-jdbc42-version.jar \
  --host host.region.redshift.amazonaws.com \
  --iam-accesskeyid access_key_ID \
  --iam-secretaccesskey secret_access-key \
  --user user

בדוגמה הבאה אפשר לראות איך לחלץ מטא-נתונים ממסד נתונים של Amazon Redshift במארח ברירת המחדל, באמצעות שם המשתמש והסיסמה לאימות:

dwh-migration-dumper \
  --connector redshift \
  --database database \
  --password password \
  --user user

הדוגמה הבאה מראה איך לחלץ מטא-נתונים ממסד נתונים של Amazon Redshift במארח שצוין, באמצעות פרופיל AWS IAM לאימות:

dwh-migration-dumper \
  --connector redshift \
  --database database \
  --driver path/redshift-jdbc42-version.jar \
  --host host.region.redshift.amazonaws.com \
  --iam-profile profile \
  --user user \
  --assessment

בדוגמה הבאה מוצגות הוראות לחילוץ יומני שאילתות של הערכה ממסד נתונים של Amazon Redshift במארח שצוין, באמצעות פרופיל AWS IAM לאימות:

dwh-migration-dumper \
  --connector redshift-raw-logs \
  --database database \
  --driver path/redshift-jdbc42-version.jar \
  --host 123.456.789.012 \
  --iam-profile profile \
  --user user \
  --assessment

טבלאות ותצוגות שחולצו באמצעות הכלי dwh-migration-dumper

הטבלאות והתצוגות הבאות מחולצות כשמשתמשים במחבר redshift:

  • SVV_COLUMNS
  • SVV_EXTERNAL_COLUMNS
  • SVV_EXTERNAL_DATABASES
  • SVV_EXTERNAL_PARTITIONS
  • SVV_EXTERNAL_SCHEMAS
  • SVV_EXTERNAL_TABLES
  • SVV_TABLES
  • SVV_TABLE_INFO
  • INFORMATION_SCHEMA.COLUMNS
  • PG_CAST
  • PG_DATABASE
  • PG_LANGUAGE
  • PG_LIBRARY
  • PG_NAMESPACE
  • PG_OPERATOR
  • PG_PROC
  • PG_TABLE_DEF
  • PG_TABLES
  • PG_TYPE
  • PG_VIEWS

הטבלאות והתצוגות הבאות מחולצות כשמשתמשים במחבר redshift עם הדגל --assessment:

  • SVV_DISKUSAGE
  • STV_MV_INFO
  • STV_WLM_SERVICE_CLASS_CONFIG
  • STV_WLM_SERVICE_CLASS_STATE

הטבלאות והתצוגות הבאות מחולצות כשמשתמשים במחבר redshift-raw-logs:

  • STL_DDLTEXT
  • STL_QUERY
  • STL_QUERYTEXT
  • PG_USER

הטבלאות והתצוגות הבאות מחולצות כשמשתמשים במחבר redshift-raw-logs עם הדגל --assessment:

  • STL_QUERY_METRICS
  • SVL_QUERY_QUEUE_INFO
  • STL_WLM_QUERY

מידע על תצוגות וטבלאות מערכת ב-Redshift זמין במאמרים Redshift system views ו-Redshift system catalog tables.

‫Hive/Impala/Spark או Trino/PrestoSQL

הכלי dwh-migration-dumper תומך באימות ל-Apache Hive metastore רק באמצעות Kerberos. לכן לא נעשה שימוש בדגלים --user ו---password, אלא בדגל --hive-kerberos-url כדי לספק את פרטי האימות של Kerberos.

בטבלה הבאה מתוארים הדגלים הנפוצים לחילוץ מטא-נתונים של Apache Hive,‏ Impala,‏ Spark,‏ Presto או Trino באמצעות כלי החילוץ. מידע על כל הדגלים הנתמכים מופיע במאמר בנושא דגלים גלובליים.

שם ערך ברירת מחדל תיאור חובה
--assessment

מפעיל את מצב ההערכה כשמחפשים מטא-נתונים. הכלי dwh-migration-dumper יוצר את נתוני המטא-נתונים הנדרשים להערכת המיגרציה ל-BigQuery כשמשתמשים בו לחילוץ מטא-נתונים.

חובה לצורך הערכה. לא נדרש לתרגום.
--connector השם של המחבר שבו רוצים להשתמש, במקרה הזה hiveql. כן
--hive-metastore-dump-partition-metadata TRUE

גורם לכלי dwh-migration-dumper לחלץ מטא-נתונים של מחיצות. מומלץ להגדיר את הדגל הזה לערך false במאגר מטא-נתונים של ייצור עם מספר משמעותי של מחיצות, בגלל ההשלכות על הביצועים של לקוח Thrift. הפעולה הזו משפרת את הביצועים של כלי החילוץ, אבל גורמת לאובדן מסוים של אופטימיזציה של חלוקה למחיצות בצד BigQuery.

אל תשתמשו בדגל הזה עם הדגל --assessment, כי לא תהיה לו השפעה.

לא
--hive-metastore-version 2.3.6

כשמריצים את הכלי dwh-migration-dumper, הוא בוחר את מפרט Thrift המתאים לשימוש בתקשורת עם שרת Apache Hive, על סמך הערך של הדגל הזה. אם לכלי החילוץ אין מפרט Thrift מתאים, הוא משתמש בלקוח 2.3.6 ומפיק אזהרה ל-stdout. במקרה כזה, צריך לפנות לתמיכה ולציין את מספר הגרסה של Apache Hive שביקשתם.

לא
--host localhost שם המארח או כתובת ה-IP של שרת מסד הנתונים. לא
--port 9083 היציאה של שרת מסד הנתונים. לא
--hive-kerberos-url השם הראשי והמארח של Kerberos שמשמשים לאימות. נדרש עבור אשכולות שמופעל בהם אימות Kerberos.
-Dhiveql.rpc.protection

רמת ההגדרה של ההגנה על RPC. ההגדרה הזו קובעת את איכות ההגנה (QOP) של החיבור בפרוטוקול Simple Authentication and Security Layer‏ (SASL) בין האשכול לבין הכלי dwh-migration-dumper.

הערך צריך להיות זהה לערך של הפרמטר hadoop.rpc.protection בתוך הקובץ /etc/hadoop/conf/core-site.xml באשכול, עם אחד מהערכים הבאים:

  • authentication
  • integrity
  • privacy

דוגמה (Bash):
-Dhiveql.rpc.protection=privacy

דוגמה (Windows PowerShell):
"-Dhiveql.rpc.protection=privacy"

נדרש עבור אשכולות שמופעל בהם אימות Kerberos.

דוגמאות

הדוגמה הבאה מראה איך לחלץ מטא-נתונים ממסד נתונים של Hive 2.3.7 במארח שצוין, ללא אימות ובאמצעות יציאה חלופית לחיבור:

dwh-migration-dumper \
  --connector hiveql \
  --hive-metastore-version 2.3.7 \
  --host host \
  --port port

כדי להשתמש באימות Kerberos, צריך להיכנס בתור משתמש שיש לו הרשאות קריאה למאגר המטא-נתונים של Hive וליצור כרטיס Kerberos. לאחר מכן, יוצרים את קובץ ה-ZIP של המטא-נתונים באמצעות הפקודה הבאה:

JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false" \
  dwh-migration-dumper \
  --connector hiveql \
  --host host \
  --port port \
  --hive-kerberos-url principal/kerberos_host

‫Azure Synapse או Microsoft SQL Server

כדי לאפשר לכלי dwh-migration-dumper להתחבר ל-Azure Synapse או ל-Microsoft SQL Server, צריך להוריד את מנהל ההתקן שלהם ל-JDBC מדף ההורדה של מיקרוסופט.

בטבלה הבאה מתוארים הדגלים הנפוצים לחילוץ מטא-נתונים מ-Azure Synapse או מ-Microsoft SQL Server באמצעות כלי החילוץ. מידע על כל הדגלים הנתמכים זמין במאמר בנושא דגלים גלובליים.

שם ערך ברירת מחדל תיאור חובה
--connector השם של המחבר שבו רוצים להשתמש, במקרה הזה sqlserver. כן
--database

השם של מסד הנתונים שאליו רוצים להתחבר.

כן
--driver הנתיב המוחלט או היחסי לקובץ ה-JAR של מנהל ההתקן שבו רוצים להשתמש עבור החיבור הזה. אפשר לציין כמה קובצי JAR של מנהלי התקנים, ולהפריד ביניהם באמצעות פסיקים. כן
--host localhost שם המארח או כתובת ה-IP של שרת מסד הנתונים. לא
--password הסיסמה שמשמשת לחיבור למסד הנתונים. כן
--port 1433 היציאה של שרת מסד הנתונים. לא
--user שם המשתמש שבו רוצים להשתמש לחיבור למסד הנתונים. כן

דוגמאות

בדוגמה הבאה אפשר לראות איך לחלץ מטא-נתונים ממסד נתונים של Azure Synapse במארח שצוין:

dwh-migration-dumper \
  --connector sqlserver \
  --database database \
  --driver path/mssql-jdbc.jar \
  --host server_name.sql.azuresynapse.net \
  --password password \
  --user user

Greenplum

כדי לאפשר לכלי dwh-migration-dumper להתחבר ל-Greenplum, צריך להוריד את מנהל ההתקן JDBC מדף ההורדה של VMware Greenplum.

בטבלה הבאה מתוארים הדגלים הנפוצים לחילוץ מטא-נתונים של Greenplum באמצעות כלי החילוץ. מידע על כל הדגלים הנתמכים זמין במאמר בנושא דגלים גלובליים.

שם ערך ברירת מחדל תיאור חובה
--connector השם של המחבר שרוצים להשתמש בו, במקרה הזה greenplum. כן
--database

השם של מסד הנתונים שאליו רוצים להתחבר.

כן
--driver הנתיב המוחלט או היחסי לקובץ ה-JAR של מנהל ההתקן שבו רוצים להשתמש עבור החיבור הזה. אפשר לציין כמה קובצי JAR של מנהלי התקנים, ולהפריד ביניהם באמצעות פסיקים. כן
--host localhost שם המארח או כתובת ה-IP של שרת מסד הנתונים. לא
--password הסיסמה שמשמשת לחיבור למסד הנתונים. אם לא מציינים את הפרמטר הזה, כלי החילוץ משתמש בהנחיה מאובטחת כדי לבקש אותו.
--port 5432 היציאה של שרת מסד הנתונים. לא
--user שם המשתמש שבו רוצים להשתמש לחיבור למסד הנתונים. כן

דוגמאות

בדוגמה הבאה מוצג איך לחלץ מטא-נתונים ממסד נתונים של Greenplum במארח שצוין:

dwh-migration-dumper \
  --connector greenplum \
  --database database \
  --driver path/greenplum.jar \
  --host host \
  --password password \
  --user user \

Netezza

כדי לאפשר לכלי dwh-migration-dumper להתחבר ל-IBM Netezza, צריך להשיג את מנהל ההתקן JDBC שלהם. בדרך כלל אפשר לקבל את מנהל ההתקן מהספרייה במארח של מכשיר IBM Netezza./nz/kit/sbin אם אתם לא מוצאים אותו שם, אתם יכולים לבקש עזרה מאדמין המערכת או לקרוא את המאמר Installing and Configuring JDBC (התקנה והגדרה של JDBC) במסמכי התיעוד של IBM Netezza.

בטבלה הבאה מתוארים הדגלים הנפוצים לחילוץ מטא-נתונים של IBM Netezza באמצעות כלי החילוץ. מידע על כל הדגלים הנתמכים זמין במאמר בנושא דגלים גלובליים.

שם ערך ברירת מחדל תיאור חובה
--connector שם המחבר לשימוש, במקרה הזה netezza. כן
--database

רשימה של מסדי הנתונים לחילוץ, מופרדת בפסיקים.

כן
--driver הנתיב המוחלט או היחסי לקובץ ה-JAR של מנהל ההתקן שבו רוצים להשתמש עבור החיבור הזה. אפשר לציין כמה קובצי JAR של מנהלי התקנים, ולהפריד ביניהם באמצעות פסיקים. כן
--host localhost שם המארח או כתובת ה-IP של שרת מסד הנתונים. לא
--password הסיסמה שמשמשת לחיבור למסד הנתונים. כן
--port 5480 היציאה של שרת מסד הנתונים. לא
--user שם המשתמש שבו רוצים להשתמש לחיבור למסד הנתונים. כן

דוגמאות

בדוגמה הבאה מוצגות שתי דרכים לחילוץ מטא-נתונים משני מסדי נתונים של IBM Netezza במארח שצוין:

dwh-migration-dumper \
  --connector netezza \
  --database database1,database2 \
  --driver path/nzjdbc.jar \
  --host host \
  --password password \
  --user user

PostgreSQL

כדי לאפשר לכלי dwh-migration-dumper להתחבר ל-PostgreSQL, צריך להוריד את מנהל ההתקן של JDBC מדף ההורדה של PostgreSQL.

בטבלה הבאה מתוארים הדגלים הנפוצים לחילוץ מטא-נתונים של PostgreSQL באמצעות כלי החילוץ. מידע על כל הדגלים הנתמכים זמין במאמר בנושא דגלים גלובליים.

שם ערך ברירת מחדל תיאור חובה
--connector השם של המחבר שבו רוצים להשתמש, במקרה הזה postgresql. כן
--database

השם של מסד הנתונים שאליו רוצים להתחבר.

כן
--driver הנתיב המוחלט או היחסי לקובץ ה-JAR של מנהל ההתקן שבו רוצים להשתמש עבור החיבור הזה. אפשר לציין כמה קובצי JAR של מנהלי התקנים, ולהפריד ביניהם באמצעות פסיקים. כן
--host localhost שם המארח או כתובת ה-IP של שרת מסד הנתונים. לא
--password הסיסמה שמשמשת לחיבור למסד הנתונים. אם לא מציינים את הפרמטר הזה, כלי החילוץ משתמש בהנחיה מאובטחת כדי לבקש אותו.
--port 5432 היציאה של שרת מסד הנתונים. לא
--user שם המשתמש שבו רוצים להשתמש לחיבור למסד הנתונים. כן

דוגמאות

בדוגמה הבאה מוצג איך לחלץ מטא-נתונים ממסד נתונים של PostgreSQL במארח שצוין:

dwh-migration-dumper \
  --connector postgresql \
  --database database \
  --driver path/postgresql-version.jar \
  --host host \
  --password password \
  --user user

Oracle

כדי לאפשר לכלי dwh-migration-dumper להתחבר ל-Oracle, צריך להוריד את דרייבר ה-JDBC שלו מדף ההורדה של Oracle.

בטבלה הבאה מפורטים הדגלים הנפוצים לחילוץ מטא-נתונים של Oracle באמצעות כלי החילוץ. מידע על כל הדגלים הנתמכים זמין במאמר בנושא דגלים גלובליים.

שם ערך ברירת מחדל תיאור חובה
--connector השם של המחבר לשימוש, במקרה הזה oracle. כן
--driver הנתיב המוחלט או היחסי לקובץ ה-JAR של מנהל ההתקן שבו רוצים להשתמש עבור החיבור הזה. אפשר לציין כמה קובצי JAR של מנהלי התקנים, ולהפריד ביניהם באמצעות פסיקים. כן
--host localhost שם המארח או כתובת ה-IP של שרת מסד הנתונים. לא
--oracle-service

שם השירות של Oracle שבו רוצים להשתמש לחיבור.

לא באופן מפורש, אבל צריך לציין את הדגל הזה או את הדגל --oracle-sid.
--oracle-sid

מזהה המערכת (SID) של Oracle שבו יש להשתמש לחיבור.

לא באופן מפורש, אבל צריך לציין את הדגל הזה או את הדגל --oracle-service.
--password הסיסמה שמשמשת לחיבור למסד הנתונים. אם לא מציינים את הפרמטר הזה, כלי החילוץ משתמש בהנחיה מאובטחת כדי לבקש אותו.
--port 1521 היציאה של שרת מסד הנתונים. לא
--user

שם המשתמש שבו רוצים להשתמש לחיבור למסד הנתונים.

למשתמש שאתם מציינים צריך להיות התפקיד SELECT_CATALOG_ROLE כדי לחלץ מטא-נתונים. כדי לבדוק אם למשתמש יש את התפקיד הנדרש, מריצים את השאילתה select granted_role from user_role_privs; במסד הנתונים של Oracle.

כן

דוגמאות

בדוגמה הבאה מוצגות פעולות לחילוץ מטא-נתונים ממסד נתונים של Oracle במארח ספציפי, באמצעות שירות Oracle לחיבור:

dwh-migration-dumper \
  --connector oracle \
  --driver path/ojdbc8.jar \
  --host host \
  --oracle-service service_name \
  --password password \
  --user user

פתית שלג

בטבלה הבאה מתוארים הדגלים הנפוצים לחילוץ מטא-נתונים של Snowflake באמצעות הכלי dwh-migration-dumper. מידע על כל הדגלים הנתמכים זמין במאמר בנושא דגלים גלובליים.

שם ערך ברירת מחדל תיאור חובה
--assessment

מפעיל את מצב ההערכה כשיוצרים יומנים של מסד נתונים או כשמחפשים מטא-נתונים. הכלי dwh-migration-dumper יוצר את נתוני המטא-נתונים הנדרשים להערכת המיגרציה ל-BigQuery כשמשתמשים בו לחילוץ מטא-נתונים. כשמשתמשים בו ליומני שאילתות, הכלי מחלץ עמודות נוספות להערכת מיגרציה של BigQuery.

למטרות הערכה בלבד.
--connector השם של המחבר שבו רוצים להשתמש, במקרה הזה snowflake. כן
--database

השם של מסד הנתונים לחילוץ.

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

לתרגום בלבד.
--host localhost שם המארח או כתובת ה-IP של שרת מסד הנתונים. לא
--private-key-file

הנתיב למפתח הפרטי של RSA שמשמש לאימות. מומלץ להשתמש במשתמש SERVICE עם אימות שמבוסס על צמד מפתחות. כך אפשר לגשת לפלטפורמת הנתונים של Snowflake בצורה מאובטחת בלי ליצור אסימוני MFA.

לא, אם לא מספקים את המידע הזה, כלי החילוץ משתמש באימות מבוסס סיסמה.
--private-key-password

הסיסמה שבה השתמשתם כשיצרתם את המפתח הפרטי של RSA.

לא, הוא נדרש רק אם המפתח הפרטי מוצפן.
--password הסיסמה שמשמשת לחיבור למסד הנתונים. אם לא מציינים את המידע, כלי החילוץ משתמש בהנחיה מאובטחת כדי לבקש אותו. עם זאת, מומלץ להשתמש במקום זאת באימות שמבוסס על צמד מפתחות.
--query-log-start

שעת ההתחלה (כולל) של יומני השאילתות לחילוץ. הערך נחתך לשעה. הדגל הזה זמין רק עבור מחבר snowflake-logs.

לדוגמה: --query-log-start "2023-01-01 14:00:00"

לא
--query-log-end

שעת הסיום (לא כולל) של יומני השאילתות לחילוץ. הערך נחתך לשעה. הדגל הזה זמין רק עבור מחבר snowflake-logs.

לדוגמה: --query-log-end "2023-01-15 22:00:00"

לא
--role תפקיד Snowflake שישמש להרשאה. צריך לציין את זה רק בהתקנות גדולות שבהן צריך לקבל מטא-נתונים מסכימת SNOWFLAKE.ACCOUNT_USAGE במקום מ-INFORMATION_SCHEMA. מידע נוסף זמין במאמר בנושא עבודה עם מופעי Snowflake גדולים. לא
--user

שם המשתמש שבו רוצים להשתמש לחיבור למסד הנתונים.

כן
--warehouse

מחסן הנתונים של Snowflake שבו רוצים להשתמש לעיבוד שאילתות של מטא-נתונים.

כן

דוגמאות

בדוגמה הבאה אפשר לראות איך מחלצים מטא-נתונים לצורך הערכה:

dwh-migration-dumper \
  --connector snowflake \
  --assessment \
  --host "account.snowflakecomputing.com" \
  --role role \
  --user user \
  --private-key-file private-key-file \
  --private-key-password private-key-password \
  --warehouse warehouse

בדוגמה הבאה מוצג אופן החילוץ של מטא-נתונים ממסד נתונים של Snowflake בגודל טיפוסי במארח המקומי:

dwh-migration-dumper \
  --connector snowflake \
  --database database \
  --user user \
  --private-key-file private-key-file \
  --private-key-password private-key-password \
  --warehouse warehouse

בדוגמה הבאה מוצג איך לחלץ מטא-נתונים ממסד נתונים גדול של Snowflake במארח שצוין:

dwh-migration-dumper \
  --connector snowflake \
  --database database \
  --host "account.snowflakecomputing.com" \
  --role role \
  --user user \
  --private-key-file private-key-file \
  --private-key-password private-key-password \
  --warehouse warehouse

אפשר גם להשתמש בדוגמה הבאה כדי לחלץ מטא-נתונים באמצעות אימות שמבוסס על סיסמה:

dwh-migration-dumper \
  --connector snowflake \
  --database database \
  --host "account.snowflakecomputing.com" \
  --password password \
  --user user \
  --warehouse warehouse

עבודה עם מופעי Snowflake גדולים

הכלי dwh-migration-dumper קורא מטא-נתונים מ-Snowflake INFORMATION_SCHEMA. עם זאת, יש מגבלה על כמות הנתונים שאפשר לאחזר מ-INFORMATION_SCHEMA. אם מריצים את כלי החילוץ ומקבלים את השגיאה SnowflakeSQLException: Information schema query returned too much data, צריך לבצע את השלבים הבאים כדי שתוכלו לקרוא מטא-נתונים מסכימת SNOWFLAKE.ACCOUNT_USAGE:

  1. פותחים את האפשרות Shares בממשק האינטרנט של Snowflake.
  2. יצירת מסד נתונים משיתוף SNOWFLAKE.ACCOUNT_USAGE:

    -- CREATE DATABASE database FROM SHARE SNOWFLAKE.ACCOUNT_USAGE;
    
  3. כדי ליצור תפקיד:

    CREATE ROLE role;
    
  4. נותנים לתפקיד את ההרשאות IMPORTED במסד הנתונים החדש:

    GRANT IMPORTED PRIVILEGES ON DATABASE database TO ROLE role;
    
  5. נותנים את התפקיד למשתמש שרוצים להשתמש בו כדי להפעיל את הכלי dwh-migration-dumper:

    GRANT ROLE role TO USER user;
    

Vertica

כדי לאפשר לכלי dwh-migration-dumper להתחבר ל-Vertica, צריך להוריד את מנהל ההתקן JDBC שלהם מדף ההורדה.

בטבלה הבאה מתוארים הדגלים הנפוצים לחילוץ מטא-נתונים של Vertica באמצעות כלי החילוץ. מידע על כל הדגלים הנתמכים זמין במאמר בנושא דגלים גלובליים.

שם ערך ברירת מחדל תיאור חובה
--connector השם של המחבר שבו רוצים להשתמש, במקרה הזה vertica. כן
--database

השם של מסד הנתונים שאליו רוצים להתחבר.

כן
--driver הנתיב המוחלט או היחסי לקובץ ה-JAR של מנהל ההתקן שבו רוצים להשתמש עבור החיבור הזה. אפשר לציין כמה קובצי JAR של מנהלי התקנים, ולהפריד ביניהם באמצעות פסיקים. כן
--host localhost שם המארח או כתובת ה-IP של שרת מסד הנתונים. לא
--password הסיסמה שמשמשת לחיבור למסד הנתונים. כן
--port 5433 היציאה של שרת מסד הנתונים. לא
--user שם המשתמש שבו רוצים להשתמש לחיבור למסד הנתונים. כן

דוגמאות

בדוגמה הבאה אפשר לראות איך לחלץ מטא-נתונים ממסד נתונים של Vertica במארח המקומי:

dwh-migration-dumper \
  --driver path/vertica-jdbc.jar \
  --connector vertica \
  --database database
  --user user
  --password password

BigQuery

בטבלה הבאה מתוארים הדגלים הנפוצים לחילוץ מטא-נתונים של BigQuery באמצעות כלי החילוץ. מידע על כל הדגלים הנתמכים זמין במאמר בנושא דגלים גלובליים.

שם ערך ברירת מחדל תיאור חובה
--connector השם של המחבר שרוצים להשתמש בו, במקרה הזה bigquery. כן
--database

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

כן
--schema

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

כן

דוגמאות

בדוגמה הבאה אפשר לראות איך לחלץ מטא-נתונים ממסד נתונים של Vertica במארח המקומי:

dwh-migration-dumper \
  --connector bigquery \
  --database PROJECT1, PROJECT2
  --schema DATASET1, DATASET2

דגלים כלליים

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

שם תיאור
--connector שם המחבר של מערכת המקור.
--database השימוש משתנה בהתאם למערכת המקור.
--driver הנתיב המוחלט או היחסי לקובץ ה-JAR של מנהל ההתקן שבו רוצים להשתמש כשמתחברים למערכת המקור. אפשר לציין כמה קובצי JAR של דרייברים, ולהפריד ביניהם באמצעות פסיקים.
--dry-run או -n הצגת הפעולות שכלי החילוץ יבצע בלי לבצע אותן.
--help הצגת עזרה בשורת הפקודה.
--host שם המארח או כתובת ה-IP של שרת מסד הנתונים שאליו רוצים להתחבר.
--jdbcDriverClass אפשר להחליף את שם המחלקה של מנהל ההתקן JDBC שצוין על ידי הספק. כדאי להשתמש בשיטה הזו אם יש לכם לקוח JDBC מותאם אישית.
--output הנתיב של קובץ ה-ZIP של הפלט. לדוגמה, dir1/dir2/teradata-metadata.zip. אם לא מציינים נתיב, קובץ הפלט נוצר בספריית העבודה. אם מציינים את הנתיב לספרייה, שם קובץ ה-ZIP שמוגדר כברירת מחדל נוצר בספרייה שצוינה. אם הספרייה לא קיימת, היא נוצרת.

כדי להשתמש ב-Cloud Storage, משתמשים בפורמט הבא:
gs://<BUCKET>/<PATH>.

כדי לבצע אימות באמצעות Google Cloud פרטי כניסה, אפשר לעיין במאמר בנושא אימות לצורך שימוש בספריות לקוח.

--password הסיסמה שמשמשת לחיבור למסד הנתונים.
--port היציאה של שרת מסד הנתונים.
--save-response-file שומר את הדגלים של שורת הפקודה בקובץ JSON לשימוש חוזר בקלות. הקובץ נקרא dumper-response-file.json והוא נוצר בספריית העבודה. כדי להשתמש בקובץ התגובה, צריך לספק את הנתיב אליו עם הקידומת @ כשמריצים את כלי החילוץ, לדוגמה dwh-migration-dumper @path/to/dumper-response-file.json.
--schema

רשימה של הסכימות לחילוץ, מופרדות בפסיקים.

‫Oracle לא מבדילה בין סכימה לבין משתמש מסד הנתונים שיצר את הסכימה, ולכן אפשר להשתמש בשמות של סכימות או בשמות של משתמשים עם הדגל --schema. לדוגמה, --schema schema1,user2,schema3.

--thread-pool-size

ההגדרה קובעת את גודל מאגר השרשורים, שמשפיע על גודל מאגר החיבורים. גודל ברירת המחדל של מאגר השרשורים הוא מספר ליבות המעבד בשרת שבו מופעל הכלי dwh-migration-dumper.

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

--url

כתובת ה-URL שבה צריך להשתמש לחיבור למסד הנתונים, במקום ה-URI שנוצר על ידי מנהל ההתקן של JDBC.

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

--user שם המשתמש שבו רוצים להשתמש לחיבור למסד הנתונים.
--version הגרסה של המוצר.
--telemetry

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

פתרון בעיות

בקטע הזה מוסבר על כמה בעיות נפוצות ועל טכניקות לפתרון בעיות בכלי dwh-migration-dumper.

שגיאה שקשורה לזיכרון

השגיאה java.lang.OutOfMemoryError בפלט של מסוף הכלי dwh-migration-dumper קשורה בדרך כלל לזיכרון לא מספיק לעיבוד הנתונים שאוחזרו. כדי לפתור את הבעיה, צריך להגדיל את הזיכרון הזמין או לצמצם את מספר השרשורים לעיבוד.

אפשר להגדיל את הזיכרון המקסימלי על ידי ייצוא של משתנה הסביבה JAVA_OPTS:

Linux

export JAVA_OPTS="-Xmx4G"

Windows

set JAVA_OPTS="-Xmx4G"

אפשר להקטין את מספר השרשורים לעיבוד (ברירת המחדל היא 32) באמצעות הדגל --thread-pool-size. האפשרות הזו נתמכת רק במחברים hiveql ו-redshift*.

dwh-migration-dumper --thread-pool-size=1

טיפול בשגיאה WARN...Task failed

יכול להיות שתראו לפעמים שגיאת WARN [main] o.c.a.d.MetadataDumper [MetadataDumper.java:107] Task failed: … בפלט של מסוף הכלי dwh-migration-dumper. כלי החילוץ שולח כמה שאילתות למערכת המקור, והפלט של כל שאילתה נכתב בקובץ משלו. הופעת הבעיה הזו מצביעה על כך שאחת מהשאילתות האלה נכשלה. עם זאת, אם שאילתה אחת נכשלת, זה לא מונע את ההרצה של השאילתות האחרות. אם מופיעות יותר משתי WARN שגיאות, צריך לבדוק את פרטי הבעיה ולראות אם יש משהו שצריך לתקן כדי שהשאילתה תפעל בצורה תקינה. לדוגמה, אם למשתמש במסד הנתונים שציינתם כשמריצים את כלי החילוץ אין הרשאות לקרוא את כל המטא-נתונים, נסו שוב עם משתמש שיש לו את ההרשאות הנכונות.

קובץ ZIP פגום

כדי לאמת את קובץ ה-ZIP של הכלי dwh-migration-dumper, מורידים את הקובץ SHA256SUMS.txt ומריצים את הפקודה הבאה:

Bash

sha256sum --check SHA256SUMS.txt

התוצאה OK מאשרת שהאימות של סכום הביקורת הצליח. כל הודעה אחרת מצביעה על שגיאה באימות:

  • FAILED: computed checksum did NOT match: קובץ ה-ZIP פגום וצריך להוריד אותו מחדש.
  • FAILED: listed file could not be read: לא ניתן לאתר את הגרסה של קובץ ה-ZIP. מוודאים שקבצי ה-checksum וה-ZIP הורדו מאותה גרסת הפצה והוצבו באותה ספרייה.

Windows PowerShell

(Get-FileHash RELEASE_ZIP_FILENAME).Hash -eq ((Get-Content SHA256SUMS.txt) -Split " ")[0]

מחליפים את RELEASE_ZIP_FILENAME בשם הקובץ של כלי החילוץ משורת הפקודה dwh-migration-dumper שהורד, למשל dwh-migration-tools-v1.0.52.zip

התוצאה True מאשרת שהאימות של סכום הביקורת הצליח.

התוצאה False מציינת שגיאת אימות. מוודאים שקובץ ה-checksum וקובץ ה-ZIP הורדו מאותה גרסת הפצה והוצבו באותה ספרייה.

המידע מיומני השאילתות של Teradata נשלף לאט

כדי לשפר את הביצועים של צירוף טבלאות שצוינו באמצעות הדגלים -Dteradata-logs.query-logs-table ו--Dteradata-logs.sql-logs-table, אפשר לכלול עמודה נוספת מהסוג DATE בתנאי JOIN. העמודה הזו צריכה להיות מוגדרת בשתי הטבלאות, והיא צריכה להיות חלק מהאינדקס הראשי המחולק. כדי לכלול את העמודה הזו, משתמשים בדגל -Dteradata-logs.log-date-column.

דוגמה:

Bash

dwh-migration-dumper \
  -Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV \
  -Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl \
  -Dteradata-logs.log-date-column=ArchiveLogDate

Windows PowerShell

dwh-migration-dumper `
  "-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV" `
  "-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl" `
  "-Dteradata-logs.log-date-column=ArchiveLogDate"

חריגה ממגבלת הגודל של שורה ב-Teradata

ב-Teradata 15 יש מגבלה של 64KB על גודל השורה. אם חורגים מהמגבלה, הכלי ליצירת dump נכשל ומוצגת ההודעה הבאה: none [Error 9804] [SQLState HY000] Response Row size or Constant Row size overflow

כדי לפתור את השגיאה הזו, אפשר להגדיל את מגבלת השורות ל-1MB או לפצל את השורות לכמה שורות:

  • מתקינים ומפעילים את התכונה 1MB Perm and Response Rows ואת התוכנה העדכנית של TTU. מידע נוסף זמין במאמר בנושא הודעה 9804 של Teradata Database
  • כדי לפצל את הטקסט הארוך של השאילתה לכמה שורות, משתמשים בדגלים -Dteradata.metadata.max-text-length ו--Dteradata-logs.max-sql-length.

הפקודה הבאה מציגה את השימוש בדגל -Dteradata.metadata.max-text-length כדי לפצל את הטקסט הארוך של השאילתה לכמה שורות, כל אחת עם עד 10,000 תווים:

Bash

dwh-migration-dumper \
  --connector teradata \
  -Dteradata.metadata.max-text-length=10000

Windows PowerShell

dwh-migration-dumper `
  --connector teradata `
  "-Dteradata.metadata.max-text-length=10000"

הפקודה הבאה מציגה את השימוש בדגל -Dteradata-logs.max-sql-length כדי לפצל את הטקסט הארוך של השאילתה לכמה שורות, כל אחת עם עד 10,000 תווים:

Bash

dwh-migration-dumper \
  --connector teradata-logs \
  -Dteradata-logs.max-sql-length=10000

Windows PowerShell

dwh-migration-dumper `
  --connector teradata-logs `
  "-Dteradata-logs.max-sql-length=10000"

בעיה בחיבור ל-Oracle

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

אחת מהבעיות האלה היא IO Error: Got minus one from a read call. השגיאה הזו מציינת שהחיבור לשרת Oracle נוצר, אבל השרת לא קיבל את הלקוח וסגר את החיבור. הבעיה הזו מתרחשת בדרך כלל כשהשרת מקבל רק חיבורים של TCPS. כברירת מחדל, הכלי dwh-migration-dumper משתמש בפרוטוקול TCP. כדי לפתור את הבעיה, צריך לשנות את כתובת ה-URL של חיבור Oracle JDBC.

במקום לספק את הדגלים oracle-service, host ו-port, אפשר לפתור את הבעיה הזו על ידי אספקת הדגל url בפורמט הבא: jdbc:oracle:thin:@tcps://{HOST_NAME}:{PORT}/{ORACLE_SERVICE}. בדרך כלל, מספר היציאה שמשמש את שרת Oracle הוא TCPS.2484

פקודה לדוגמה של כלי ה-dumper:

  dwh-migration-dumper \
    --connector oracle-stats \
    --url "jdbc:oracle:thin:@tcps://host:port/oracle_service" \
    --assessment \
    --driver "jdbc_driver_path" \
    --user "user" \
    --password

בנוסף לשינוי פרוטוקול החיבור ל-TCPS, יכול להיות שתצטרכו לספק את הגדרת ה-SSL של trustStore שנדרשת כדי לאמת את אישור השרת של Oracle. אם חסרה הגדרת SSL, תוצג הודעת השגיאה Unable to find valid certification path. כדי לפתור את הבעיה, צריך להגדיר את משתנה הסביבה JAVA_OPTS:

  set JAVA_OPTS=-Djavax.net.ssl.trustStore="jks_file_location" -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStorePassword="password"

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

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

אחרי שמריצים את הכלי dwh-migration-dumper, צריך להעלות את הפלט ל-Cloud Storage יחד עם קובצי המקור לתרגום.