יצירת מטא-נתונים לתרגום ולהערכה

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

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

סקירה כללית

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

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

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

  • ‫Teradata בגרסה 15 ואילך, ו-Teradata VantageCore מקומי
  • 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. בשלב כלשהו, המערכת לא שולחת שאילתות לתוכן של מסדי הנתונים של המשתמשים.

אפשר להריץ את הכלי 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 צריכה להיות מותקנת גרסה 8 ומעלה של Java. אם לא, מורידים את 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 בשם קובץ ה-ZIP שהורדתם של גרסת כלי החילוץ של dwh-migration-dumper בשורת הפקודה – לדוגמה, dwh-migration-tools-v1.0.52.zip

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

    התוצאה 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.

כדי לבצע אימות באמצעות שם המשתמש והסיסמה, משתמשים במנהל ההתקן של PostgreSQL JDBC שמוגדר כברירת מחדל ב-Amazon Redshift. כדי לבצע אימות באמצעות 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 וטבלאות הקטלוג של מערכת Redshift.

‫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) של החיבור של שכבת האבטחה והאימות הפשוטה (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 מדף ההורדה של Microsoft.

בטבלה הבאה מתוארים הדגלים הנפוצים לחילוץ מטא-נתונים של 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. בדרך כלל אפשר לקבל את מנהל ההתקן מהספרייה /nz/kit/sbin במארח של מכשיר IBM Netezza. אם אתם לא מוצאים אותו שם, בקשו עזרה מהאדמין של המערכת או קראו את המאמר התקנה והגדרה של 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 / Oracle Exadata

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

המחברים oracle ו-oracle-stats תומכים גם ב-Oracle Exadata.

בטבלה הבאה מתוארים הדגלים הנפוצים לחילוץ מטא-נתונים של 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

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

אי אפשר להשתמש בדגל הזה במצב הערכה.

רק לתרגום.
--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 שמשמש להרשאה. אם לתפקיד ברירת המחדל שלכם יש מספיק הרשאות, מבחינה טכנית אתם לא חייבים לציין תפקיד. עם זאת, מומלץ מאוד לציין תפקיד, כמו ACCOUNTADMIN, כדי לוודא שלסשן יש את ההרשאות הנדרשות כדי לגשת לסכימה SNOWFLAKE.ACCOUNT_USAGE. מידע נוסף זמין במאמר עבודה עם מכונות גדולות של 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 קורא מטא-נתונים מ-INFORMATION_SCHEMA של Snowflake. עם זאת, יש מגבלה על כמות הנתונים שאפשר לאחזר מ-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 שומר את הגדרות ה-flag בשורת הפקודה בקובץ JSON כדי שיהיה קל להשתמש בהן שוב. הקובץ נקרא dumper-response-file.json והוא נוצר בספריית העבודה. כדי להשתמש בקובץ התגובה, צריך לציין את הנתיב שלו עם הקידומת @ כשמריצים את כלי החילוץ, לדוגמה dwh-migration-dumper @path/to/dumper-response-file.json.
--schema

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

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

--thread-pool-size

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

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

--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 מאשרת שאימות סיכום הביקורת (checksum) הצליח. כל הודעה אחרת מצביעה על שגיאה באימות:

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

Windows PowerShell

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

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

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

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

חילוץ יומני השאילתות של Teradata איטי

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

בדוגמה הבאה אפשר לראות איך משתמשים בדגל -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 על גודל השורה. אם חורגים מהמגבלה, כלי החילוץ נכשל ומוצגת ההודעה הבאה:

[Error 9804] [SQLState HY000] Response Row size or Constant Row size overflow

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

  • מתקינים ומפעילים את התכונה "1 MB Perm and Response Rows" ואת הגרסה הנוכחית של תוכנת TTU. מידע נוסף זמין במאמר Teradata Database Message 9804.
  • מפצלים את טקסט השאילתה הארוך לכמה שורות באמצעות הדגלים -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. בדרך כלל, מספר היציאה של TCPS שמשמש את שרת Oracle הוא 2484.

בדוגמה הבאה מוסבר איך לציין את כתובת ה-URL של החיבור בפקודה:

dwh-migration-dumper \
  --connector oracle-stats \
  --url "jdbc:oracle:thin:@tcps://HOST_NAME: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 With Oracle JDBC Driver.

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

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