Genera metadatos para la traducción y la evaluación

En este documento, se describe cómo crear metadatos y consultar archivos de registro mediante la herramienta de extracción de línea de comandos de dwh-migration-dumper. Los archivos de metadatos describen los objetos SQL en tu sistema de origen.

El Servicio de migración de BigQuery usa esta información para mejorar la traducción de tus secuencias de comandos de SQL de tu dialecto del sistema de origen a GoogleSQL.

La evaluación de migración de BigQuery usa archivos de metadatos y archivos de registro de consultas para analizar tu almacén de datos existente y ayudar a evaluar el esfuerzo de trasladar tu almacén de datos a BigQuery.

Descripción general

Puedes usar la herramienta dwh-migration-dumper para extraer información de metadatos de la plataforma de base de datos que migras a BigQuery. Si bien el uso de la herramienta de extracción no es necesario para la traducción, es necesario para la evaluación de migración de BigQuery y lo recomendamos para todas las tareas de migración.

Para obtener más información, consulta Crea archivos de metadatos.

Puedes usar la herramienta dwh-migration-dumper para extraer metadatos de las siguientes plataformas de base de datos:

  • Teradata
  • Amazon Redshift
  • Apache Hive
  • Apache Spark
  • Azure Synapse
  • Microsoft SQL Server
  • IBM Netezza
  • Oracle
  • Snowflake
  • Trino o PrestoSQL
  • Vertica

En la mayoría de estas bases de datos, también puedes extraer los registros de consultas.

La herramienta dwh-migration-dumper consulta las tablas del sistema para recopilar declaraciones en lenguaje de definición de datos (DDL) relacionadas con bases de datos del sistema y del usuario. No consulta el contenido de las bases de datos de usuarios. La herramienta guarda la información de metadatos de las tablas del sistema como archivos CSV y, luego, los comprime en un solo paquete. Luego, debes subir este archivo ZIP a Cloud Storage cuando subes los archivos de origen para su traducción o evaluación.

Cuando se usa la opción de registros de consulta, la herramienta dwh-migration-dumper consulta las tablas del sistema en busca de declaraciones DDL y registros de consulta relacionados con bases de datos de usuarios y del sistema. Se guardan en formato CSV o yaml en un subdirectorio y, luego, se empaquetan en formato ZIP. En ningún momento, se consulta el contenido de las bases de datos de usuarios. En este punto, la evaluación de migración de BigQuery requiere archivos individuales CSV, YAML y de texto para los registros de consultas, por lo que debes descomprimir todos estos archivos del archivo ZIP de registros de consulta y subirlos para su evaluación.

La herramienta dwh-migration-dumper se puede ejecutar en Windows, macOS y Linux.

La herramienta dwh-migration-dumper está disponible con la licencia de Apache 2.

Si eliges no usar la herramienta dwh-migration-dumper para la traducción, puedes proporcionar archivos de metadatos de forma manual mediante la recopilación de las instrucciones del lenguaje de definición de datos (DDL) para los objetos de SQL en tu sistema de origen en archivos de texto separados.

Debes proporcionar metadatos y registros de consultas extraídos con la herramienta para evaluar la migración mediante la evaluación de migración de BigQuery.

Requisitos de cumplimiento

Proporcionamos el objeto binario de la herramienta de dwh-migration-dumper compilada para facilitar su uso. Si necesitas auditar la herramienta para asegurarte de que cumpla con los requisitos de cumplimiento, puedes revisar el código fuente del repositorio de GitHub de la herramienta dwh-migration-dumper y compilar su propio objeto binario.

Requisitos previos

Instala Java

El servidor en el que planeas ejecutar la herramienta dwh-migration-dumper debe tener instalado Java 8 o una versión posterior. Si no es así, descarga Java desde la página de descargas de Java y, luego, instálalo.

Permisos necesarios

La cuenta de usuario que especifiques para conectar la herramienta dwh-migration-dumper al sistema de origen debe tener permisos para leer los metadatos de ese sistema. Confirma que esta cuenta tenga la membresía de rol adecuada para consultar los recursos de metadatos disponibles para tu plataforma. Por ejemplo, INFORMATION_SCHEMA es un recurso de metadatos común en varias plataformas.

Instala la herramienta dwh-migration-dumper

Para instalar la herramienta dwh-migration-dumper, sigue estos pasos:

  1. En la máquina en la que deseas ejecutar la herramienta dwh-migration-dumper, descarga el archivo ZIP desde el repositorio de GitHub de la herramienta dwh-migration-dumper.
  2. Descarga el archivo SHA256SUMS.txt y ejecuta el siguiente comando:
    sha256sum --check SHA256SUMS.txt
    
    Si la verificación falla, consulta Solución de problemas.
  3. Extrae el archivo ZIP. El objeto binario de la herramienta de extracción está en el subdirectorio /bin de la carpeta creada mediante la extracción del archivo ZIP.
  4. Actualiza la variable de entorno PATH para incluir la ruta de instalación para la herramienta de extracción.

Ejecuta la herramienta dwh-migration-dumper

La herramienta dwh-migration-dumper usa el siguiente formato:

dwh-migration-dumper [FLAGS]

Cuando ejecutas la herramienta dwh-migration-dumper, se crea un archivo de salida llamado dwh-migration-<source platform>-metadata.zip, por ejemplo, dwh-migration-teradata-metadata.zip, en tu directorio de trabajo.

Usa las siguientes instrucciones para obtener información sobre cómo ejecutar la herramienta dwh-migration-dumper para la plataforma de origen.

Teradata

Para permitir que la herramienta dwh-migration-dumper se conecte a Teradata, descarga su controlador JDBC de la página de descargas de Teradata.

En la siguiente tabla, se describen las marcas de uso general para la extracción de metadatos de Teradata y registros de consultas mediante la herramienta extracción. Para obtener información sobre todas las marcas compatibles, consulta Marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--assessment

Activa el modo de evaluación cuando se generan registros de bases de datos o se extraen metadatos. La herramienta de dwh-migration-dumper genera las estadísticas de metadatos necesarias para la evaluación de migración de BigQuery cuando se usa para extraer metadatos. Cuando se usa para los registros de consultas, extrae columnas adicionales para la evaluación de migración de BigQuery.

Es obligatorio cuando se usa para ejecutar la evaluación y no es obligatorio para la traducción.
--connector El nombre del conector que se usará, en este caso teradata para metadatos o teradata-logs para los registros de consulta.
--database

Una lista de las bases de datos que se extraen, separadas por comas. Los nombres de las bases de datos pueden distinguir mayúsculas de minúsculas, según la configuración del servidor de Teradata.

Si esta marca se usa en combinación con el conector teradata, la herramienta dwh-migration-dumper filtra las tablas de metadatos y vistas según la lista proporcionada de bases de datos. Las excepciones son las vistas DatabasesV y RoleMembersV: la herramienta de dwh-migration-dumper extrae las bases de datos y los usuarios de estas vistas sin filtrar por el nombre de la base de datos.

Esta marca no se puede usar junto con el conector teradata-logs. Los registros de consultas siempre se extraen para todas las bases de datos.

No.
--driver La ruta absoluta o relativa al archivo JAR del controlador que se usará para esta conexión. Puedes especificar varios archivos JAR de controladores, separados por comas.
--host localhost El nombre de host o la dirección IP del servidor de la base de datos. No.
--password La contraseña que se usará para la conexión de la base de datos. Si no se especifica, la herramienta de extracción usa un mensaje seguro para solicitarlo.
--port 1025 El puerto del servidor de base de datos. No.
--user

El nombre de usuario que se usará para la conexión de la base de datos.

--query-log-alternates

Solo para el conector teradata-logs.

Para extraer los registros de consultas de una ubicación alternativa, te recomendamos que uses las marcas -Dteradata-logs.query-logs-table y -Dteradata-logs.sql-logs-table.

De forma predeterminada, los registros de consultas se extraen de las tablas dbc.DBQLogTbl y dbc.DBQLSQLTbl. Si usas la marca --assessment, los registros de consultas se extraen de la vista dbc.QryLogV y de la tabla dbc.DBQLSQLTbl. Si necesitas extraer los registros de consulta de una ubicación alternativa, puedes especificar los nombres completamente calificados de las tablas o vistas mediante la marca --query-log-alternates. El primer parámetro hace referencia a la alternativa a la tabla dbc.DBQLogTbl y el segundo parámetro hace referencia a la alternativa a la tabla dbc.DBQLSQLTbl. Ambos parámetros son obligatorios.
La marca -Dteradata-logs.log-date-column se puede usar para mejorar el rendimiento de la extracción cuando ambas tablas tienen una columna indexada de tipo DATE.

Ejemplo: --query-log-alternates historicdb.ArchivedQryLogV,historicdb.ArchivedDBQLSqlTbl

No.
-Dteradata.tmode

El modo de transacción para la conexión. Se admiten los siguientes valores:

  • ANSI: Modo ANSI. Este es el modo predeterminado (si no se especifica la marca)
  • TERA: Modo de transacción de Teradata (BTET)
  • DEFAULT: Usa el modo de transacción predeterminado configurado en el servidor de la base de datos
  • NONE: No se estableció ningún modo para la conexión

Ejemplo (Bash):
-Dteradata.tmode=TERA

Ejemplo (Windows PowerShell):
"-Dteradata.tmode=TERA"

No.
-Dteradata-logs.log-date-column

Solo para el conector teradata-logs.

Para mejorar el rendimiento de las tablas unidas que se especifican mediante las marcas -Dteradata-logs.query-logs-table y -Dteradata-logs.sql-logs-table, puedes incluir una columna adicional de tipo DATE en la condición JOIN. Esta columna debe definirse en ambas tablas y debe ser parte del índice principal particionado.

Ejemplo (Bash):
-Dteradata-logs.log-date-column=ArchiveLogDate

Ejemplo (Windows PowerShell):
"-Dteradata-logs.log-date-column=ArchiveLogDate"

No.
-Dteradata-logs.query-logs-table

Solo para el conector teradata-logs.

De forma predeterminada, los registros de utilidad se extraen de la tabla dbc.DBQLogTbl. Si usas la marca --assessment, los registros de consultas se extraen de la vista dbc.QryLogV. Si necesitas extraer los registros de consultas de una ubicación alternativa, puedes especificar el nombre completamente calificado de la tabla o vista mediante esta marca.
Consulta la marca -Dteradata-logs.log-date-column para mejorar el rendimiento de la extracción.

Ejemplo (Bash):
-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV

Ejemplo (Windows PowerShell):
"-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV"

No.
-Dteradata-logs.sql-logs-table

Solo para el conector teradata-logs.

De forma predeterminada, los registros de consultas que contienen texto de SQL se extraen de la tabla dbc.DBQLSqlTbl. Si necesitas extraerlos de una ubicación alternativa, puedes especificar el nombre completamente calificado de la tabla o vista mediante esta marca.
Consulta la marca -Dteradata-logs.log-date-column para mejorar el rendimiento de la extracción.

Ejemplo (Bash):
-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl

Ejemplo (Windows PowerShell):
"-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl"

No.
-Dteradata-logs.utility-logs-table

Solo para el conector teradata-logs.

De forma predeterminada, los registros de utilidad se extraen de la tabla dbc.DBQLUtilityTbl. Si necesitas extraer los registros de la utilidad de una ubicación alternativa, puedes especificar el nombre completamente calificado de la tabla usando la marca -Dteradata-logs.utility-logs-table.

Ejemplo (Bash):
-Dteradata-logs.utility-logs-table=historicdb.ArchivedUtilityLogs

Ejemplo (Windows PowerShell):
"-Dteradata-logs.utility-logs-table=historicdb.ArchivedUtilityLogs"

No.
-Dteradata-logs.res-usage-scpu-table

Solo para el conector teradata-logs.

De forma predeterminada, los registros de uso de recursos de SCPU se extraen de la tabla dbc.ResUsageScpu. Si necesitas extraerlos de una ubicación alternativa, puedes especificar el nombre completamente calificado de la tabla mediante la marca -Dteradata-logs.res-usage-scpu-table.

Ejemplo (Bash):
-Dteradata-logs.res-usage-scpu-table=historicdb.ArchivedResUsageScpu

Ejemplo (Windows PowerShell):
"-Dteradata-logs.res-usage-scpu-table=historicdb.ArchivedResUsageScpu"

No.
-Dteradata-logs.res-usage-spma-table

Solo para el conector teradata-logs.

De forma predeterminada, los registros de uso de los recursos SPMA se extraen de la tabla dbc.ResUsageSpma. Si necesitas extraer estos registros de una ubicación alternativa, puedes especificar el nombre completamente calificado de la tabla usando la marca -Dteradata-logs.res-usage-spma-table.

Ejemplo (Bash):
-Dteradata-logs.res-usage-spma-table=historicdb.ArchivedResUsageSpma

Ejemplo (Windows PowerShell):
"-Dteradata-logs.res-usage-spma-table=historicdb.ArchivedResUsageSpma"

No.
--query-log-start

La hora de inicio (incluida) de los registros de consulta que se extraerán. El valor se trunca a la hora. Esta marca solo está disponible para el conector teradata-logs.

Ejemplo: --query-log-start "2023-01-01 14:00:00"

No.
--query-log-end

La hora de finalización (no incluida) de los registros de consulta que se extraerán. El valor se trunca a la hora. Esta marca solo está disponible para el conector teradata-logs.

Ejemplo: --query-log-end "2023-01-15 22:00:00"

No.
-Dteradata.metadata.tablesizev.max-rows

Solo para el conector teradata.

Limita la cantidad de filas extraídas de la vista TableSizeV. Las filas se agrupan según las columnas DatabaseName, AccountName y TableName y, luego, se ordenan de forma descendente según el tamaño del espacio permanente (la expresión SUM(CurrentPerm)). Luego, se extrae la cantidad de filas especificada.

Ejemplo (Bash):
-Dteradata.metadata.tablesizev.max-rows=100000

Ejemplo (Windows PowerShell):
"-Dteradata.metadata.tablesizev.max-rows=100000"

No.
-Dteradata.metadata.diskspacev.max-rows

Solo para el conector teradata.

Limita la cantidad de filas extraídas de la vista DiskSpaceV. Las filas se ordenan de forma descendente según el tamaño del espacio permanente (columna CurrentPerm) y, luego, se extrae la cantidad especificada de filas.

Ejemplo (Bash):
-Dteradata.metadata.diskspacev.max-rows=100000

Ejemplo (Windows PowerShell):
"-Dteradata.metadata.diskspacev.max-rows=100000"

No.
-Dteradata.metadata.databasesv.users.max-rows

Solo para el conector teradata.

Limita la cantidad de filas que representan a los usuarios (DBKind='U') que se extraen de la vista DatabasesV. Las filas se ordenan en orden descendente según la columna PermSpace y, luego, se extrae la cantidad especificada de filas.

Ejemplo (Bash):
-Dteradata.metadata.databasesv.users.max-rows=100000

Ejemplo (Windows PowerShell):
"-Dteradata.metadata.databasesv.users.max-rows=100000"

No.
-Dteradata.metadata.databasesv.dbs.max-rows

Solo para el conector teradata.

Limita la cantidad de filas que representan bases de datos (DBKind='D') que se extraen de la vista DatabasesV. Las filas se ordenan en orden descendente según la columna PermSpace y, luego, se extrae la cantidad especificada de filas.

Ejemplo (Bash):
-Dteradata.metadata.databasesv.dbs.max-rows=100000

Ejemplo (Windows PowerShell):
"-Dteradata.metadata.databasesv.dbs.max-rows=100000"

No.
-Dteradata.metadata.max-text-length

Solo para el conector teradata.

Longitud máxima de la columna de texto cuando se extraen los datos de la vista TableTextV. El texto más largo que el límite definido se dividirá en varias filas. Rango permitido: entre 5,000 y 32,000 (inclusive)

Ejemplo (Bash):
-Dteradata.metadata.max-text-length=10000

Ejemplo (Windows PowerShell):
"-Dteradata.metadata.max-text-length=10000"

No.
-Dteradata-logs.max-sql-length

Solo para el conector teradata-logs.

Longitud máxima de la columna DBQLSqlTbl.SqlTextInfo. El texto de consulta más largo que el límite definido se dividirá en varias filas. Rango permitido: entre 5,000 y 31,000 (inclusive).

Ejemplo (Bash):
-Dteradata-logs.max-sql-length=10000

Ejemplo (Windows PowerShell):
"-Dteradata-logs.max-sql-length=10000"

No.

Ejemplos

En el siguiente ejemplo, se muestra cómo extraer los metadatos de dos bases de datos de Teradata en el host local:

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

En el siguiente ejemplo, se muestra cómo extraer los registros de consultas para la evaluación en el host local para la autenticación:

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

Tablas y vistas extraídas por la herramienta de dwh-migration-dumper

Las siguientes tablas y vistas se extraen cuando usas el conector teradata:

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

Las siguientes tablas y vistas adicionales se extraen cuando se usa el conector teradata con la marca --assessment:

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

Las siguientes tablas y vistas se extraen cuando usas el conector teradata-logs:

  • DBC.DBQLogTbl (cambia a DBC.QryLogV si se usa la marca --assessment)
  • DBC.DBQLSqlTbl

Las siguientes tablas y vistas adicionales se extraen cuando se usa el conector teradata-logs con la marca --assessment:

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

Redshift

Puedes usar cualquiera de los siguientes mecanismos de autenticación y autorización de Amazon Redshift con la herramienta de extracción:

  • Un nombre de usuario y una contraseña.
  • Un ID de clave de acceso Identity and Access Management (IAM) de AWS y una clave secreta.
  • Un nombre de perfil de IAM de AWS.

Para autenticarte con el nombre de usuario y la contraseña, usa el controlador JDBC predeterminado de Amazon Redshift. Para autenticar con AWS IAM, usa el controlador JDBC de Amazon Redshift, que puedes descargar desde su página de descarga.

En la siguiente tabla, se describen las marcas más usadas para extraer metadatos de Amazon Redshift y registros de consultas mediante la herramienta dwh-migration-dumper. Para obtener información sobre todas las marcas compatibles, consulta Marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--assessment

Activa el modo de evaluación cuando se generan registros de bases de datos o se extraen metadatos. Genera estadísticas de metadatos obligatorias para la evaluación de migración de BigQuery cuando se usa para extraer metadatos. Cuando se usa para extraer registros de consultas, genera estadísticas de métricas de consultas para la evaluación de migración de BigQuery.

Es obligatorio cuando se ejecuta en modo de evaluación y no es obligatorio para la traducción.
--connector El nombre del conector que se usará, en este caso redshift para metadatos o redshift-raw-logs para los registros de consultas.
--database Si no se especifica, Amazon Redshift usa el valor --user como el nombre de la base de datos predeterminada.

El nombre de la base de datos a la que te conectarás.

No.
--driver Si no se especifica, Amazon Redshift usa el controlador PostgreSQL JDBC predeterminado. La ruta absoluta o relativa al archivo JAR del controlador que se usará para esta conexión. Puedes especificar varios archivos JAR de controladores, separados por comas. No.
--host localhost El nombre de host o la dirección IP del servidor de la base de datos. No.
--iam-accesskeyid

El ID de la clave de acceso de IAM de AWS que se usará para la autenticación. La clave de acceso es una cadena de caracteres, similar a AKIAIOSFODNN7EXAMPLE.

Úsala junto con la marca --iam-secretaccesskey. No uses esta marca cuando especifiques las marcas --iam-profile o --password.

No es explícito, pero debes proporcionar información de autenticación mediante uno de los siguientes métodos:

  • Usa esta marca junto con la marca --iam-secretaccesskey.
  • Usa la marca --iam-profile.
  • Usa las marcas --password y --user.
--iam-profile

El perfil de IAM de AWS que se usará para la autenticación. Para recuperar un valor de perfil para usarlo, examina el archivo $HOME/.aws/credentials o ejecuta aws configure list-profiles.

No uses esta marca con las marcas --iam-accesskeyid, --iam-secretaccesskey o --password.

No es explícito, pero debes proporcionar información de autenticación mediante uno de los siguientes métodos:

  • Usa esta marca.
  • Usa la marca --iam-accesskeyid junto con la marca --iam-secretaccesskey.
  • Usa las marcas --password y --user.
--iam-secretaccesskey

La clave de acceso secreta de IAM de AWS que se usará para la autenticación. La clave de acceso secreta es una cadena de caracteres, similar a wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY.

Úsala junto con la marca --iam-accesskeyid. No uses esta marca con las marcas --iam-profile o --password.

No es explícito, pero debes proporcionar información de autenticación mediante uno de los siguientes métodos:

  • Usa esta marca junto con la marca --iam-accesskeyid.
  • Usa la marca --iam-profile.
  • Usa las marcas --password y --user.
--password La contraseña que se usará para la conexión de la base de datos.

No uses esta marca con las marcas --iam-accesskeyid, --iam-secretaccesskey o --iam-profile.

No es explícito, pero debes proporcionar información de autenticación mediante uno de los siguientes métodos:

  • Usa esta marca junto con la marca --user.
  • Usa la marca --iam-accesskeyid junto con la marca --iam-secretaccesskey.
  • Usa la marca --password.
--port 5439 El puerto del servidor de base de datos. No.
--user El nombre de usuario que se usará para la conexión de la base de datos.
--query-log-start

La hora de inicio (incluida) de los registros de consulta que se extraerán. El valor se trunca a la hora. Esta marca solo está disponible para el conector redshift-raw-logs.

Ejemplo: --query-log-start "2023-01-01 14:00:00"

No.
--query-log-end

La hora de finalización (no incluida) de los registros de consulta que se extraerán. El valor se trunca a la hora. Esta marca solo está disponible para el conector redshift-raw-logs.

Ejemplo: --query-log-end "2023-01-15 22:00:00"

No.

Ejemplos

En el siguiente ejemplo, se muestra cómo extraer metadatos de una base de datos de Amazon Redshift en un host especificado con las claves de IAM de AWS para la autenticación:

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

En el siguiente ejemplo, se muestra cómo extraer metadatos de una base de datos de Amazon Redshift en el host predeterminado con el nombre de usuario y la contraseña para la autenticación:

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

En el siguiente ejemplo, se muestra cómo extraer metadatos de una base de datos de Amazon Redshift en un host especificado mediante un perfil de IAM de AWS para la autenticación:

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

En el siguiente ejemplo, se muestra cómo extraer registros de consulta para la evaluación de una base de datos de Amazon Redshift en un host especificado mediante un perfil de IAM de AWS para la autenticación:

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

Tablas y vistas extraídas por la herramienta de dwh-migration-dumper

Las siguientes tablas y vistas se extraen cuando usas el conector 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

Las siguientes tablas y vistas adicionales se extraen cuando se usa el conector redshift con la marca --assessment:

  • SVV_DISKUSAGE
  • STV_MV_INFO
  • STV_WLM_SERVICE_CLASS_CONFIG
  • STV_WLM_SERVICE_CLASS_STATE

Las siguientes tablas y vistas se extraen cuando usas el conector redshift-raw-logs:

  • STL_DDLTEXT
  • STL_QUERY
  • STL_QUERYTEXT
  • PG_USER

Las siguientes tablas y vistas adicionales se extraen cuando se usa el conector redshift-raw-logs con la marca --assessment:

  • STL_QUERY_METRICS
  • SVL_QUERY_QUEUE_INFO
  • STL_WLM_QUERY

Para obtener información sobre las vistas del sistema y las tablas de Redshift, consulta Vistas del sistema de Redshift y Tablas del catálogo del sistema de Redshift.

Apache Hive/Spark o Trino/PrestoSQL

La herramienta dwh-migration-dumper solo admite la autenticación en el almacén de metadatos de Apache Hive a través de Kerberos. Por lo tanto, no se usan las marcas --user y --password. En su lugar, usa la marca --hive-kerberos-url para proporcionar los detalles de autenticación de Kerberos.

En la siguiente tabla, se describen las marcas de uso general para extraer metadatos de Apache Hive, Spark, Presto o Trino mediante la herramienta de extracción. Para obtener información sobre todas las marcas compatibles, consulta Marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--assessment

Activa el modo de evaluación cuando se extraen metadatos. La herramienta de dwh-migration-dumper genera las estadísticas de metadatos necesarias para la evaluación de migración de BigQuery cuando se usa para extraer metadatos.

Obligatorio para la evaluación. No es necesario para la traducción.
--connector El nombre del conector que se usará, en este caso, hiveql.
--hive-metastore-dump-partition-metadata true

Hace que la herramienta dwh-migration-dumper vuelque los metadatos de la partición. Te recomendamos establecer esta marca en false para el almacén de metadatos de producción con una cantidad significativa de particiones, debido a las implicaciones de rendimiento del cliente de Thrift. Esto mejora el rendimiento de la herramienta de extracción, pero provoca una pérdida de optimización de la partición en el lado de BigQuery.

No uses esta marca con la marca --assessment, ya que no tendrá efecto.

No.
--hive-metastore-version 2.3.6

Cuando ejecutas la herramienta de dwh-migration-dumper, esta elige la especificación de Thrift adecuada para comunicarse con el servidor de Apache Hive, en función del valor de esta marca. Si la herramienta de extracción no tiene una especificación de Thrift adecuada, usa el cliente 2.3.6 y emite una advertencia a stdout. Si esto ocurre, comunícate con el equipo de asistencia y proporciona el número de versión de Apache Hive que solicitaste.

No.
--host localhost El nombre de host o la dirección IP del servidor de la base de datos. No.
--port 9083 El puerto del servidor de base de datos. No.
--hive-kerberos-url El principal y el host de Kerberos que se usarán para la autenticación. Obligatorio para los clústeres con la autenticación de Kerberos habilitada.
-Dhiveql.rpc.protection

El nivel de configuración de protección de RPC. Esto determina la calidad de protección (QOP) de la Capa de seguridad y autenticación simple (SASL) entre el clúster y la herramienta de dwh-migration-dumper.

Debe ser igual al valor del parámetro hadoop.rpc.protection dentro del archivo /etc/hadoop/conf/core-site.xml en el clúster, con uno de los siguientes valores:

  • authentication
  • integrity
  • privacy

Ejemplo (Bash):
-Dhiveql.rpc.protection=privacy

Ejemplo (Windows PowerShell):
"-Dhiveql.rpc.protection=privacy"

Obligatorio para los clústeres con la autenticación de Kerberos habilitada.

Ejemplos

En el siguiente ejemplo, se muestra cómo extraer metadatos para una base de datos de Hive 2.3.7 en un host específico, sin autenticación y con un puerto alternativo para la conexión:

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

Para usar la autenticación de Kerberos, accede como un usuario que tenga permisos de lectura para el almacén de metadatos de Hive y genera un ticket de Kerberos. Luego, genera el archivo ZIP de metadatos con el siguiente comando:

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

Azure Synapse o Microsoft SQL Server

Para permitir que la herramienta de dwh-migration-dumper se conecte a Azure Synapse o a Microsoft SQL Server, descarga su controlador JDBC desde la página de descargas de Microsoft.

En la siguiente tabla, se describen las marcas de uso frecuente para extraer metadatos de Azure Synapse o Microsoft SQL Server mediante la herramienta de extracción. Para obtener información sobre todas las marcas compatibles, consulta Marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--connector El nombre del conector que se usará, en este caso, sqlserver.
--database

El nombre de la base de datos a la que te conectarás.

--driver La ruta absoluta o relativa al archivo JAR del controlador que se usará para esta conexión. Puedes especificar varios archivos JAR de controladores, separados por comas.
--host localhost El nombre de host o la dirección IP del servidor de la base de datos. No.
--password La contraseña que se usará para la conexión de la base de datos.
--port 1433 El puerto del servidor de base de datos. No.
--user El nombre de usuario que se usará para la conexión de la base de datos.

Ejemplos

En el siguiente ejemplo, se muestra cómo extraer metadatos de una base de datos de Azure Synapse en un host especificado:

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

Netezza

Para permitir que la herramienta dwh-migration-dumper se conecte a IBM Netezza, debes obtener su controlador JDBC. Por lo general, puedes obtener el controlador desde el directorio /nz/kit/sbin en el host de tu dispositivo IBM Netezza. Si no puedes ubicarlo allí, pídele ayuda al administrador del sistema o lee Instala y configura JDBC en la documentación de IBM Netezza.

En la siguiente tabla, se describen las marcas de uso general para extraer metadatos de IBM Netezza con la herramienta de extracción. Para obtener información sobre todas las marcas compatibles, consulta Marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--connector El nombre del conector que se usará, en este caso, netezza.
--database

Una lista de las bases de datos que se extraen, separadas por comas.

--driver La ruta absoluta o relativa al archivo JAR del controlador que se usará para esta conexión. Puedes especificar varios archivos JAR de controladores, separados por comas.
--host localhost El nombre de host o la dirección IP del servidor de la base de datos. No.
--password La contraseña que se usará para la conexión de la base de datos.
--port 5480 El puerto del servidor de base de datos. No.
--user El nombre de usuario que se usará para la conexión de la base de datos.

Ejemplos

En el siguiente ejemplo, se muestra cómo extraer metadatos para dos bases de datos de IBM Netezza en un host especificado:

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

Oracle

Para permitir que la herramienta dwh-migration-dumper se conecte a Oracle, descarga su controlador JDBC desde la página de descargas de Oracle.

En la siguiente tabla, se describen las marcas de uso general para extraer metadatos de Oracle mediante la herramienta de extracción. Para obtener información sobre todas las marcas compatibles, consulta Marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--connector El nombre del conector que se usará, en este caso, oracle.
--driver La ruta absoluta o relativa al archivo JAR del controlador que se usará para esta conexión. Puedes especificar varios archivos JAR de controladores, separados por comas.
--host localhost El nombre de host o la dirección IP del servidor de la base de datos. No.
--oracle-service

El nombre del servicio de Oracle que se usará para la conexión.

No es explícito, pero debes especificar esta marca o la marca --oracle-sid.
--oracle-sid

El identificador del sistema de Oracle (SID) que se usará para la conexión.

No es explícito, pero debes especificar esta marca o la marca --oracle-service.
--password La contraseña que se usará para la conexión de la base de datos. Si no se especifica, la herramienta de extracción usa un mensaje seguro para solicitarlo.
--port 1521 El puerto del servidor de base de datos. No.
--user

El nombre de usuario que se usará para la conexión de la base de datos.

El usuario que especifiques debe tener el rol SELECT_CATALOG_ROLE para extrar los metadatos. Para ver si el usuario tiene el rol necesario, ejecuta la consulta select granted_role from user_role_privs; en la base de datos de Oracle.

Ejemplos

En el siguiente ejemplo, se muestra cómo extraer metadatos para una base de datos de Oracle en un host específico mediante el servicio de Oracle para la conexión:

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

Snowflake

En la siguiente tabla, se describen las marcas de uso general para extraer metadatos de Snowflake mediante la herramienta de dwh-migration-dumper. Para obtener información sobre todas las marcas compatibles, consulta Marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--connector El nombre del conector que se usará, en este caso, snowflake.
--database

El nombre de la base de datos a la que te conectarás.

Solo puedes extraer información de una base de datos a la vez desde Snowflake.

--host localhost El nombre de host o la dirección IP del servidor de la base de datos. No.
--password La contraseña que se usará para la conexión de la base de datos. Si no se especifica, la herramienta de extracción usa un mensaje seguro para solicitarlo.
--role El rol de Snowflake para usar en la autorización. Solo debes especificarlo para las instalaciones grandes en las que necesitas obtener metadatos del esquema SNOWFLAKE.ACCOUNT_USAGE en lugar de INFORMATION_SCHEMA. Para obtener más información, consulta Trabaja con instancias grandes de Snowflake. No.
--user

El nombre de usuario que se usará para la conexión de la base de datos.

--warehouse

El almacén de Snowflake que se usa para procesar consultas de metadatos.

Ejemplos

En el siguiente ejemplo, se muestra cómo extraer los metadatos de una base de datos de Snowflake de tamaño típico en el host local:

dwh-migration-dumper \
  --connector snowflake \
  --database database \
  --password password \
  --user user \
  --warehouse warehouse

En el siguiente ejemplo, se muestra cómo extraer metadatos para una base de datos grande de Snowflake en un host especificado:

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

Trabaja con instancias grandes de Snowflake

La herramienta dwh-migration-dumper lee los metadatos desde el INFORMATION_SCHEMA de Snowflake. Sin embargo, existe un límite en la cantidad de datos que se pueden recuperar de INFORMATION_SCHEMA. Si ejecutas la herramienta de extracción y recibes el error SnowflakeSQLException: Information schema query returned too much data, debes hacer los siguientes pasos para poder leer los metadatos del esquema SNOWFLAKE.ACCOUNT_USAGE:

  1. Abre la opción Recursos compartidos en la interfaz web de Snowflake.
  2. Crea una base de datos a partir del recurso compartido SNOWFLAKE.ACCOUNT_USAGE:

    -- CREATE DATABASE database FROM SHARE SNOWFLAKE.ACCOUNT_USAGE;
    
  3. Crear un rol:

    CREATE ROLE role;
    
  4. Otorga privilegios IMPORTED a rol de la base de datos nueva:

    GRANT IMPORTED PRIVILEGES ON DATABASE database TO ROLE role;
    
  5. Otorga el rol al usuario que deseas usar para ejecutar la herramienta dwh-migration-dumper:

    GRANT ROLE role TO USER user;
    

Vertica

Para permitir que la herramienta dwh-migration-dumper se conecte a Vertica, descarga su controlador JDBC desde la página de descargas.

En la siguiente tabla, se describen las marcas de uso general para extraer metadatos de Vertica mediante la herramienta de extracción. Para obtener información sobre todas las marcas compatibles, consulta Marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--connector El nombre del conector que se usará, en este caso, vertica.
--database

El nombre de la base de datos a la que te conectarás.

--driver La ruta absoluta o relativa al archivo JAR del controlador que se usará para esta conexión. Puedes especificar varios archivos JAR de controladores, separados por comas.
--host localhost El nombre de host o la dirección IP del servidor de la base de datos. No.
--password La contraseña que se usará para la conexión de la base de datos.
--port 5433 El puerto del servidor de base de datos. No.
--user El nombre de usuario que se usará para la conexión de la base de datos.

Ejemplos

En el siguiente ejemplo, se muestra cómo extraer metadatos de una base de datos de Vertica en el host local:

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

Marcas globales

En la siguiente tabla, se describen las marcas que se pueden usar con cualquiera de las plataformas de origen compatibles.

Nombre Descripción
--connector El nombre del conector para el sistema de origen.
--database El uso varía según el sistema de origen.
--driver La ruta de acceso absoluta o relativa al archivo JAR del controlador que se usará para conectarse al sistema de origen. Puedes especificar varios archivos JAR de controladores, separados por comas.
--dry-run o -n Muestra las acciones que haría la herramienta de extracción sin ejecutarlas.
--help Muestra la ayuda de la línea de comandos.
--host El nombre de host o la dirección IP del servidor de base de datos al que se conectará.
--jdbcDriverClass De manera opcional, anula el nombre de la clase del controlador de JDBC especificado por el proveedor. Úsalo si tienes un cliente JDBC personalizado.
--output La ruta de acceso del archivo ZIP de salida. Por ejemplo, dir1/dir2/teradata-metadata.zip. Si no especificas una ruta de acceso, el archivo de salida se crea en tu directorio de trabajo. Si especificas la ruta de acceso a un directorio, se crea el nombre de archivo ZIP predeterminado en el directorio especificado. Si el directorio no existe, se creará.

Para usar Cloud Storage, usa el siguiente formato:
gs://<BUCKET>/<PATH>

Para autenticarte con credenciales de Google Cloud, consulta Autentícate para usar las bibliotecas cliente.

--password La contraseña que se usará para la conexión de la base de datos.
--port El puerto del servidor de base de datos.
--save-response-file Guarda las marcas de la línea de comandos en un archivo JSON para volver a usarlas con facilidad. El archivo se llama dumper-response-file.json y se crea en el directorio de trabajo. Para usar el archivo de respuesta, proporciona la ruta a ella con el prefijo @ cuando ejecutes la herramienta de extracción, por ejemplo dwh-migration-dumper @path/to/dumper-response-file.json.
--schema

Una lista de los esquemas que se extraerán, separados por comas.

Oracle no distingue entre un esquema y el usuario de base de datos que creó el esquema, por lo que puedes usar nombres de esquema o de usuario con la marca --schema. Por ejemplo, --schema schema1,user2,schema3.

--thread-pool-size

Establece el tamaño del conjunto de subprocesos, que afecta el tamaño del grupo de conexiones. El tamaño predeterminado del conjunto de subprocesos es la cantidad de núcleos en el servidor que ejecuta la herramienta de dwh-migration-dumper.

Si la herramienta de extracción parece lenta o necesita más recursos, puedes aumentar la cantidad de subprocesos usados. Si hay indicios de que otros procesos del servidor requieren más ancho de banda, puedes reducir la cantidad de subprocesos usados.

--url

La URL que se usará para la conexión de la base de datos, en lugar del URI generado por el controlador JDBC.

El URI generado debe ser suficiente en la mayoría de los casos. Solo anula el URI generado cuando necesites usar una configuración de conexión JDBC específica para la plataforma de origen y que aún no esté establecida por una de las marcas enumeradas en esta tabla.

--user El nombre de usuario que se usará para la conexión de la base de datos.
--version Muestra la versión del producto.

Soluciona problemas

En esta sección, se explican algunos problemas habituales y técnicas de solución de problemas para la herramienta de dwh-migration-dumper.

Error Out of memory

El error java.lang.OutOfMemoryError en el resultado de la terminal de la herramienta dwh-migration-dumper a menudo se relaciona con la memoria insuficiente para procesar los datos recuperados. Para solucionar este problema, aumenta la memoria disponible o reduce la cantidad de subprocesos de procesamiento.

Puedes aumentar la memoria máxima si exportas la variable de entorno JAVA_OPTS:

Linux

export JAVA_OPTS="-Xmx4G"

Windows

set JAVA_OPTS="-Xmx4G"

Puedes reducir la cantidad de subprocesos de procesamiento (el valor predeterminado es 32) si incluyes la marca --thread-pool-size. Esta opción solo es compatible con los conectores hiveql y redshift*.

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

Controla un error WARN...Task failed

Es posible que, a veces, veas un error WARN [main] o.c.a.d.MetadataDumper [MetadataDumper.java:107] Task failed: … en el resultado de la terminal de la herramienta de dwh-migration-dumper. La herramienta de extracción envía varias consultas al sistema de origen y el resultado de cada una se escribe en su propio archivo. Ver este problema indica que una de estas consultas falló. Sin embargo, la falla de una consulta no impide la ejecución de las otras. Si ves más de un par de errores WARN, revisa los detalles del problema y verifica si hay algo que necesites corregir para que la consulta se ejecute de forma correcta. Por ejemplo, si el usuario de la base de datos que especificaste cuando ejecutaste la herramienta de extracción no tiene los permisos necesarios para leer todos los metadatos, vuelve a intentarlo con un usuario que tenga los permisos correctos.

Archivo ZIP dañado

Para validar el archivo ZIP de la herramienta de dwh-migration-dumper, descarga el archivo SHA256SUMS.txt y ejecuta el siguiente comando:

sha256sum --check SHA256SUMS.txt

El resultado OK confirma la verificación correcta de la suma de verificación. Cualquier otro mensaje indica un error de verificación:

  • FAILED: computed checksum did NOT match: El archivo ZIP está dañado y debe volver a descargarse.
  • FAILED: listed file could not be read: No se puede ubicar la versión del archivo ZIP. Asegúrate de que los archivos de suma de verificación y ZIP se descarguen de la misma versión de actualización y se coloquen en el mismo directorio.

La extracción de registros de consulta de Teradata es lenta

Para mejorar el rendimiento de las tablas unidas que se especifican mediante las marcas -Dteradata-logs.query-logs-table y -Dteradata-logs.sql-logs-table, puedes incluir una columna adicional de tipo DATE en la condición JOIN. Esta columna debe definirse en ambas tablas y debe ser parte del índice principal particionado. Para incluir esta columna, usa la marca -Dteradata-logs.log-date-column.

Ejemplo:

Bash

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

WindowsPowerShell

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

Se superó el límite de tamaño de fila de Teradata

Teradata 15 tiene un límite de tamaño de fila de 64 KB. Si se excede el límite, el volcador falla con el siguiente mensaje: none [Error 9804] [SQLState HY000] Response Row size or Constant Row size overflow

Para resolver este error, extiende el límite de filas a 1 MB o divide las filas en varias filas:

  • Instala y habilita la función 1MB Perm and Response Rows y el software de TTU actual. Para obtener más información, consulta Mensaje 9804 de la base de datos de Teradata.
  • Divide el texto largo de la consulta en varias filas mediante las marcas -Dteradata.metadata.max-text-length y -Dteradata-logs.max-sql-length.

El siguiente comando muestra el uso de la marca -Dteradata.metadata.max-text-length para dividir el texto de consulta largo en varias filas de como máximo 10,000 caracteres cada una:

Bash

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

WindowsPowerShell

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

El siguiente comando muestra el uso de la marca -Dteradata-logs.max-sql-length para dividir el texto de consulta largo en varias filas de como máximo 10,000 caracteres cada una:

Bash

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

WindowsPowerShell

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

¿Qué sigue?

Después de ejecutar la herramienta dwh-migration-dumper, sube el resultado a Cloud Storage junto con los archivos fuente para su traducción.