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

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

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

La evaluación de la migración a BigQuery usa archivos de metadatos y archivos de registro de consultas para analizar tu almacén de datos y ayudarte a evaluar el esfuerzo que supone migrarlo a BigQuery.

Información general

Puede usar la herramienta dwh-migration-dumper para extraer información de metadatos de la plataforma de base de datos a la que va a migrar a BigQuery. Aunque no es obligatorio usar la herramienta de extracción para traducir, sí lo es para la evaluación de la migración a BigQuery. Por eso, te recomendamos que la uses en todas las tareas de migración.

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

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

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

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

La herramienta dwh-migration-dumper consulta las tablas del sistema para recoger instrucciones del lenguaje de definición de datos (DDL) relacionadas con las bases de datos de usuarios y del sistema. No consulta el contenido de las bases de datos de los usuarios. La herramienta guarda la información de metadatos de las tablas del sistema como archivos CSV y, a continuación, comprime estos archivos en un único paquete. Después, sube este archivo zip a Cloud Storage cuando subas los archivos de origen para traducirlos o evaluarlos.

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

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

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

Si decides no usar la herramienta dwh-migration-dumper para traducir, puedes proporcionar manualmente archivos de metadatos. Para ello, recopila las instrucciones del lenguaje de definición de datos (DDL) de los objetos SQL de tu sistema de origen en archivos de texto independientes.

Para realizar una evaluación de la migración con la herramienta de evaluación de la migración de BigQuery, es necesario proporcionar los metadatos y los registros de consultas extraídos con la herramienta.

Requisitos de cumplimiento

Proporcionamos el archivo binario compilado de la herramienta dwh-migration-dumper para que sea más fácil de usar. Si necesitas auditar la herramienta para asegurarte de que cumple los requisitos, puedes revisar el código fuente en el repositorio de GitHub de la herramienta dwh-migration-dumper y compilar tu propio archivo binario.

Requisitos previos

Instalar Java

El servidor en el que tienes previsto 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 e instálalo.

Permisos obligatorios

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

Instalar la herramienta dwh-migration-dumper

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

  1. En la máquina en la que quieras ejecutar la herramienta dwh-migration-dumper, descarga el archivo ZIP del repositorio de GitHub de la herramienta dwh-migration-dumper.
  2. Para validar el archivo ZIP de la herramienta dwh-migration-dumper, descarga el archivo SHA256SUMS.txt y ejecuta el siguiente comando:

    Bash

    sha256sum --check SHA256SUMS.txt

    Si la verificación falla, consulta la sección Solución de problemas.

    Windows PowerShell

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

    Sustituye RELEASE_ZIP_FILENAME por el nombre del archivo ZIP descargado de la versión de la herramienta de extracción de línea de comandos dwh-migration-dumper. Por ejemplo, dwh-migration-tools-v1.0.52.zip.

    El resultado True confirma que la verificación de la suma de comprobación se ha realizado correctamente.

    El resultado False indica que se ha producido un error de verificación. Asegúrate de que los archivos de suma de comprobación y ZIP se descarguen de la misma versión y se coloquen en el mismo directorio.

  3. Extrae el archivo ZIP. El archivo binario de la herramienta de extracción se encuentra en el subdirectorio /bin de la carpeta creada al extraer el archivo ZIP.

  4. Actualiza la variable de entorno PATH para que incluya la ruta de instalación de la herramienta de extracción.

Ejecutar la herramienta dwh-migration-dumper

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

dwh-migration-dumper [FLAGS]

Al ejecutar 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 el directorio de trabajo.

Sigue las instrucciones que se indican a continuación para aprender a ejecutar la herramienta dwh-migration-dumper en tu plataforma de origen.

Teradata

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

En la siguiente tabla se describen las marcas que se suelen usar para extraer metadatos y registros de consultas de Teradata con la herramienta de extracción. Para obtener información sobre todas las marcas admitidas, consulte marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--assessment

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

Obligatorio cuando se usa para realizar una evaluación, pero no para la traducción.
--connector El nombre del conector que se va a usar. En este caso, teradata para los metadatos o teradata-logs para los registros de consultas.
--database

Lista de las bases de datos que se van a extraer, separadas por comas. Los nombres de las bases de datos pueden distinguir entre mayúsculas y minúsculas, en función de la configuración del servidor Teradata.

Si esta marca se usa junto con el conector teradata, la herramienta dwh-migration-dumper filtra las tablas y las vistas de metadatos por la lista de bases de datos proporcionada. Las excepciones son las vistas DatabasesV y RoleMembersV. La herramienta 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 de todas las bases de datos.

No
--driver Ruta absoluta o relativa al archivo JAR del controlador que se va a usar para esta conexión. Puede especificar varios archivos JAR de controladores, separándolos con 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 va a usar para la conexión a la base de datos. Si no se especifica, la herramienta de extracción usa una petición segura para solicitarlo.
--port 1025 El puerto del servidor de la base de datos. No
--user

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, le recomendamos que use 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 consultas de otra ubicación, puedes especificar los nombres completos de las tablas o las vistas con la marca --query-log-alternates. El primer parámetro hace referencia a la alternativa de la tabla dbc.DBQLogTbl, y el segundo parámetro, a la alternativa de 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 de 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 ha definido 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 uniones de tablas especificadas por las marcas -Dteradata-logs.query-logs-table y -Dteradata-logs.sql-logs-table, puede incluir una columna adicional de tipo DATE en la condición JOIN. Esta columna debe definirse en ambas tablas y formar 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 consultas se extraen de la tabla dbc.DBQLogTbl. Si usa la marca --assessment, los registros de consultas se extraerán de la vista dbc.QryLogV. Si necesita extraer los registros de consultas de otra ubicación, puede especificar el nombre completo de la tabla o la vista con 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 SQL se extraen de la tabla dbc.DBQLSqlTbl. Si necesitas extraerlos de una ubicación alternativa, puedes especificar el nombre completo de la tabla o la 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 la utilidad se extraen de la tabla dbc.DBQLUtilityTbl. Si necesita extraer los registros de utilidad de una ubicación alternativa, puede especificar el nombre completo de la tabla mediante 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 necesita extraerlos de otra ubicación, puede especificar el nombre completo 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 recursos de SPMA se extraen de la tabla dbc.ResUsageSpma. Si necesita extraer estos registros de una ubicación alternativa, puede especificar el nombre completo de la tabla mediante 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 consultas que se van a extraer. 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 (exclusiva) de los registros de consultas que se van a extraer. 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 el número de filas extraídas de la vista. TableSizeV. Las filas se agrupan por las columnas DatabaseName, AccountName y TableName, y luego se ordenan en orden descendente por el tamaño del espacio permanente (la expresión SUM(CurrentPerm)). A continuación, se extrae el número de filas especificado.

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 el número 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, a continuación, se extrae el número de filas especificado.

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 el número de filas que representan a los usuarios (DBKind='U') que se extraen de la vista DatabasesV. Las filas se ordenan de forma descendente por la columna PermSpace y, a continuación, se extrae el número de filas especificado.

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 el número de filas que representan bases de datos (DBKind='D') que se extraen de la vista DatabasesV. Las filas se ordenan de forma descendente por la columna PermSpace y, a continuación, se extrae el número de filas especificado.

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 al extraer los datos de la vista TableTextV. El texto que supere el límite definido se dividirá en varias filas. Intervalo permitido: entre 5000 y 32.000 (ambos incluidos).

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 la consulta que supere el límite definido se dividirá en varias filas. Intervalo permitido: entre 5000 y 31000 (ambos incluidos).

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 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 de Assessment 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 dwh-migration-dumper

Cuando usas el conector teradata, se extraen las siguientes tablas y vistas:

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

Se extraen las siguientes tablas y vistas adicionales cuando usas 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

Cuando usas el conector teradata-logs, se extraen las siguientes tablas y vistas:

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

Se extraen las siguientes tablas y vistas adicionales cuando usas el conector teradata-logs con la marca --assessment:

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

Redshift

Puede 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 y una clave secreta de Gestión de Identidades y Accesos (IAM) de AWS.
  • Nombre de un perfil de gestión de identidades y accesos de AWS.

Para autenticarte con el nombre de usuario y la contraseña, usa el controlador JDBC de PostgreSQL predeterminado de Amazon Redshift. Para autenticarte con la gestión de identidades y accesos de AWS, usa el controlador JDBC de Amazon Redshift, que puedes descargar desde su página de descarga.

En la siguiente tabla se describen las marcas que se suelen usar para extraer metadatos y registros de consultas de Amazon Redshift con la herramienta dwh-migration-dumper. Para obtener información sobre todas las marcas admitidas, consulta las marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--assessment

Activar el modo de evaluación al generar registros de bases de datos o extraer metadatos. Genera las estadísticas de metadatos necesarias para la evaluación de la migración a BigQuery cuando se usa para la extracción de metadatos. Cuando se usa para extraer registros de consultas, genera estadísticas de métricas de consultas para evaluar la migración de BigQuery.

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

Nombre de la base de datos a la que se va a conectar.

No
--driver Si no se especifica, Amazon Redshift usa el controlador JDBC de PostgreSQL predeterminado. Ruta absoluta o relativa al archivo JAR del controlador que se va a usar para esta conexión. Puede especificar varios archivos JAR de controladores, separándolos con 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 clave de acceso de AWS IAM que se va a usar para la autenticación. La clave de acceso es una cadena de caracteres, como AKIAIOSFODNN7EXAMPLE.

Se usa junto con la marca --iam-secretaccesskey. No utilices esta marca cuando especifiques las marcas --iam-profile o --password.

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

  • Usar esta marca junto con la marca --iam-secretaccesskey.
  • Usa la marca --iam-profile.
  • Usar la marca --password junto con la marca --user.
--iam-profile

El perfil de AWS IAM que se va a usar para la autenticación. Para obtener un valor de perfil que puedas usar, 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 explícitamente, pero debes proporcionar información de autenticación mediante uno de los siguientes métodos:

  • Usando esta marca.
  • Usando la marca --iam-accesskeyid junto con la marca --iam-secretaccesskey.
  • Usar la marca --password junto con la marca --user.
--iam-secretaccesskey

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

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

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

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

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

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

  • Usar esta marca junto con la marca --user.
  • Usando la marca --iam-accesskeyid junto con la marca --iam-secretaccesskey.
  • Usa la marca --password.
--port 5439 El puerto del servidor de la base de datos. No
--user 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 consultas que se van a extraer. 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 (exclusiva) de los registros de consultas que se van a extraer. 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 específico mediante claves de AWS IAM 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 mediante 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 específico mediante un perfil de AWS IAM 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 los registros de consultas de Assessment de una base de datos de Amazon Redshift en un host específico mediante un perfil de AWS IAM 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 dwh-migration-dumper

Cuando usas el conector redshift, se extraen las siguientes tablas y vistas:

  • 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

Se extraen las siguientes tablas y vistas adicionales cuando usas el conector redshift con la marca --assessment:

  • SVV_DISKUSAGE
  • STV_MV_INFO
  • STV_WLM_SERVICE_CLASS_CONFIG
  • STV_WLM_SERVICE_CLASS_STATE

Cuando usas el conector redshift-raw-logs, se extraen las siguientes tablas y vistas:

  • STL_DDLTEXT
  • STL_QUERY
  • STL_QUERYTEXT
  • PG_USER

Se extraen las siguientes tablas y vistas adicionales cuando usas 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 y las tablas del sistema 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 metastore de Apache Hive a través de Kerberos. Por lo tanto, no se usan las marcas --user y --password, sino la marca --hive-kerberos-url para proporcionar los detalles de autenticación de Kerberos.

En la siguiente tabla se describen las marcas que se suelen usar para extraer metadatos de Apache Hive, Spark, Presto o Trino con la herramienta de extracción. Para obtener información sobre todas las marcas admitidas, consulta marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--assessment

Activa el modo de evaluación al extraer metadatos. La herramienta dwh-migration-dumper genera las estadísticas de metadatos necesarias para la evaluación de la migración a 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 va a usar. En este caso, hiveql.
--hive-metastore-dump-partition-metadata true

Hace que la herramienta dwh-migration-dumper extraiga los metadatos de la partición. Puede que quieras definir esta marca como false para el metastore de producción con un número significativo de particiones debido a las implicaciones en el rendimiento del cliente de Thrift. Esto mejora el rendimiento de la herramienta de extracción, pero provoca cierta pérdida de optimización de particiones en BigQuery.

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

No
--hive-metastore-version 2.3.6

Cuando ejecutas la herramienta dwh-migration-dumper, se selecciona la especificación Thrift adecuada para comunicarse con tu servidor Apache Hive en función del valor de esta marca. Si la herramienta de extracción no tiene una especificación de Thrift adecuada, utiliza el cliente 2.3.6 y emite una advertencia a stdout. Si esto ocurre, póngase en contacto con el equipo de Asistencia e indique el número de versión de Apache Hive que ha solicitado.

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 la 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 Kerberos habilitada.
-Dhiveql.rpc.protection

Nivel de configuración de protección de RPC. Determina la calidad de protección (QOP) de la conexión SASL (Simple Authentication and Security Layer) entre el clúster y la herramienta dwh-migration-dumper.

Debe ser igual al valor del parámetro hadoop.rpc.protection del archivo /etc/hadoop/conf/core-site.xml del clúster y tener 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 Kerberos habilitada.

Ejemplos

En el siguiente ejemplo se muestra cómo extraer metadatos de una base de datos de Hive 2.3.7 en un host específico, sin autenticación y usando 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, inicia sesión como un usuario que tenga permisos de lectura en el metastore de Hive y genera un ticket de Kerberos. A continuación, 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 dwh-migration-dumper se conecte a Azure Synapse o Microsoft SQL Server, descarga su controlador JDBC desde la página de descarga de Microsoft.

En la siguiente tabla se describen las marcas que se suelen usar para extraer metadatos de Azure Synapse o Microsoft SQL Server con la herramienta de extracción. Para obtener información sobre todas las marcas admitidas, consulta marcas globales.

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

Nombre de la base de datos a la que se va a conectar.

--driver Ruta absoluta o relativa al archivo JAR del controlador que se va a usar para esta conexión. Puede especificar varios archivos JAR de controladores, separándolos con 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 va a usar para la conexión a la base de datos.
--port 1433 El puerto del servidor de la base de datos. No
--user 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

Greenplum

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

En la siguiente tabla se describen las marcas que se suelen usar para extraer metadatos de Greenplum con la herramienta de extracción. Para obtener información sobre todas las marcas admitidas, consulte marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--connector El nombre del conector que se va a usar. En este caso, greenplum.
--database

Nombre de la base de datos a la que se va a conectar.

--driver Ruta absoluta o relativa al archivo JAR del controlador que se va a usar para esta conexión. Puede especificar varios archivos JAR de controladores, separándolos con 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 va a usar para la conexión a la base de datos. Si no se especifica, la herramienta de extracción usa una petición segura para solicitarlo.
--port 5432 El puerto del servidor de la base de datos. No
--user 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 Greenplum en un host específico:

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

Netezza

Para permitir que la herramienta dwh-migration-dumper se conecte a IBM Netezza, debes obtener su controlador JDBC. Normalmente, puedes obtener el controlador del directorio /nz/kit/sbin en el host de tu dispositivo IBM Netezza. Si no lo encuentras, pide ayuda a tu administrador del sistema o consulta el artículo Instalación y configuración de JDBC en la documentación de IBM Netezza.

En la siguiente tabla se describen las marcas que se suelen usar para extraer metadatos de IBM Netezza con la herramienta de extracción. Para obtener información sobre todas las marcas admitidas, consulte marcas globales.

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

Lista de las bases de datos que se van a extraer, separadas por comas.

--driver Ruta absoluta o relativa al archivo JAR del controlador que se va a usar para esta conexión. Puede especificar varios archivos JAR de controladores, separándolos con 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 va a usar para la conexión a la base de datos.
--port 5480 El puerto del servidor de la base de datos. No
--user 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 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

PostgreSQL

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

En la siguiente tabla se describen las marcas que se suelen usar para extraer metadatos de PostgreSQL con la herramienta de extracción. Para obtener información sobre todas las marcas admitidas, consulte marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--connector El nombre del conector que se va a usar. En este caso, postgresql.
--database

Nombre de la base de datos a la que se va a conectar.

--driver Ruta absoluta o relativa al archivo JAR del controlador que se va a usar para esta conexión. Puede especificar varios archivos JAR de controladores, separándolos con 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 va a usar para la conexión a la base de datos. Si no se especifica, la herramienta de extracción usa una petición segura para solicitarlo.
--port 5432 El puerto del servidor de la base de datos. No
--user 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 PostgreSQL en un host específico:

dwh-migration-dumper \
  --connector postgresql \
  --database database \
  --driver path/postgresql-version.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 descarga de Oracle.

En la siguiente tabla se describen las marcas que se suelen usar para extraer metadatos de Oracle con la herramienta de extracción. Para obtener información sobre todas las marcas admitidas, consulte marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--connector El nombre del conector que se va a usar. En este caso, oracle.
--driver Ruta absoluta o relativa al archivo JAR del controlador que se va a usar para esta conexión. Puede especificar varios archivos JAR de controladores, separándolos con comas.
--host localhost El nombre de host o la dirección IP del servidor de la base de datos. No
--oracle-service

Nombre del servicio de Oracle que se va a usar para la conexión.

No de forma explícita, pero debes especificar esta marca o la marca --oracle-sid.
--oracle-sid

El identificador de sistema (SID) de Oracle que se va a usar en la conexión.

No de forma explícita, pero debes especificar esta marca o la marca --oracle-service.
--password La contraseña que se va a usar para la conexión a la base de datos. Si no se especifica, la herramienta de extracción usa una petición segura para solicitarlo.
--port 1521 El puerto del servidor de la base de datos. No
--user

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 extraer metadatos. Para comprobar 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 de una base de datos de Oracle en un host especificado 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 que se suelen usar para extraer metadatos de Snowflake con la herramienta dwh-migration-dumper. Para obtener información sobre todas las marcas admitidas, consulte marcas globales.

Nombre Valor predeterminado Descripción Obligatorio
--assessment

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

Solo para la evaluación.
--connector El nombre del conector que se va a usar. En este caso, snowflake.
--database

Nombre de la base de datos que se va a extraer.

Solo puedes extraer datos de una base de datos a la vez de Snowflake. Esta marca no se permite en el modo de evaluación.

Solo para traducción.
--host localhost El nombre de host o la dirección IP del servidor de la base de datos. No
--private-key-file

Ruta a la clave privada RSA que se usa para la autenticación. Te recomendamos que utilices un usuario SERVICE con autenticación basada en un par de claves. De esta forma, se proporciona un método seguro para acceder a la plataforma de datos de Snowflake sin necesidad de generar tokens de MFA.

No, si no se proporciona, la herramienta de extracción utiliza una autenticación basada en contraseñas.
--private-key-password

La contraseña que se usó al crear la clave privada RSA.

No, solo es necesario si la clave privada está cifrada.
--password La contraseña que se va a usar para la conexión a la base de datos. Si no se especifica, la herramienta de extracción usa una petición segura para solicitarla. Sin embargo, te recomendamos que uses la autenticación basada en pares de claves.
--role El rol de Snowflake que se usará para la autorización. Solo tienes que especificarlo en instalaciones grandes en las que necesites obtener metadatos del esquema SNOWFLAKE.ACCOUNT_USAGE en lugar de INFORMATION_SCHEMA. Para obtener más información, consulta el artículo Trabajar con instancias grandes de Snowflake. No
--user

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

--warehouse

El almacén de Snowflake que se usará para procesar las consultas de metadatos.

Ejemplos

En el siguiente ejemplo se muestra cómo extraer metadatos de una evaluación:

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

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

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

En el siguiente ejemplo se muestra cómo extraer metadatos de una base de datos de Snowflake grande en un host específico:

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

También puedes usar el siguiente ejemplo para extraer metadatos mediante la autenticación basada en contraseñas:

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

Trabajar con instancias de Snowflake grandes

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

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

    -- CREATE DATABASE database FROM SHARE SNOWFLAKE.ACCOUNT_USAGE;
    
  3. Para crear un rol, sigue estos pasos:

    CREATE ROLE role;
    
  4. Concede privilegios a IMPORTED en la nueva base de datos:

    GRANT IMPORTED PRIVILEGES ON DATABASE database TO ROLE role;
    
  5. Concede el rol al usuario que quieras 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 su página de descarga.

En la siguiente tabla se describen las marcas que se suelen usar para extraer metadatos de Vertica con la herramienta de extracción. Para obtener información sobre todas las marcas admitidas, consulte marcas globales.

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

Nombre de la base de datos a la que se va a conectar.

--driver Ruta absoluta o relativa al archivo JAR del controlador que se va a usar para esta conexión. Puede especificar varios archivos JAR de controladores, separándolos con 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 va a usar para la conexión a la base de datos.
--port 5433 El puerto del servidor de la base de datos. No
--user 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 admitidas.

Nombre Descripción
--connector Nombre del conector del sistema de origen.
--database El uso varía según el sistema de origen.
--driver Ruta absoluta o relativa al archivo JAR del controlador que se va a usar al conectarse al sistema de origen. Puede especificar varios archivos JAR de controladores, separándolos con comas.
--dry-run o -n Muestra las acciones que realizarí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 la base de datos al que conectarse.
--jdbcDriverClass Anula de forma opcional el nombre de la clase del controlador JDBC especificado por el proveedor. Úsalo si tienes un cliente JDBC personalizado.
--output Ruta del archivo ZIP de salida. Por ejemplo, dir1/dir2/teradata-metadata.zip. Si no especificas ninguna ruta, el archivo de salida se creará en tu directorio de trabajo. Si especifica la ruta de un directorio, se creará el nombre de archivo zip predeterminado en el directorio especificado. Si el directorio no existe, se crea.

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

Para autenticarte con Google Cloud credenciales, consulta Autenticar para usar bibliotecas de cliente.

--password La contraseña que se va a usar para la conexión a la base de datos.
--port El puerto del servidor de la base de datos.
--save-response-file Guarda las marcas de línea de comandos en un archivo JSON para que puedas reutilizarlas fácilmente. 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 de acceso precedida por @ cuando ejecutes la herramienta de extracción, por ejemplo, dwh-migration-dumper @path/to/dumper-response-file.json.
--schema

Lista de los esquemas que se van a extraer, separados por comas.

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

--thread-pool-size

Define el tamaño del grupo de subprocesos, lo que afecta al tamaño del grupo de conexiones. El tamaño predeterminado del grupo de subprocesos es el número de núcleos del servidor que ejecuta la herramienta dwh-migration-dumper.

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

--url

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

El URI generado debería ser suficiente en la mayoría de los casos. Solo debes anular el URI generado cuando necesites usar un ajuste de conexión JDBC que sea específico de la plataforma de origen y que no esté definido por una de las marcas que se indican en esta tabla.

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

Recoge estadísticas sobre las características de rendimiento de las ejecuciones, como la duración, el número de ejecuciones y el uso de recursos. Esta opción está habilitada de forma predeterminada. Para inhabilitar la telemetría, asigna el valor false a esta marca.

Solución de problemas

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

Error de falta de memoria

El error java.lang.OutOfMemoryError en la salida de la terminal de la herramienta dwh-migration-dumper suele estar relacionado con la falta de memoria para procesar los datos obtenidos. Para solucionar este problema, aumenta la memoria disponible o reduce el número de hilos de procesamiento.

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

Linux

export JAVA_OPTS="-Xmx4G"

Windows

set JAVA_OPTS="-Xmx4G"

Puedes reducir el número de hilos de procesamiento (el valor predeterminado es 32) incluyendo la marca --thread-pool-size. Esta opción solo está disponible para los conectores hiveql y redshift*.

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

Gestionar un error WARN...Task failed

A veces, puede que veas un error WARN [main] o.c.a.d.MetadataDumper [MetadataDumper.java:107] Task failed: … en la salida de la terminal de la herramienta dwh-migration-dumper. La herramienta de extracción envía varias consultas al sistema de origen y el resultado de cada consulta se escribe en su propio archivo. Si se produce este problema, significa que una de estas consultas ha fallado. Sin embargo, si falla una consulta, no se impide la ejecución de las demás. Si ves más de un par de WARN errores, revisa los detalles del problema y comprueba si hay algo que debas corregir para que la consulta se ejecute correctamente. Por ejemplo, si el usuario de la base de datos que especificó al ejecutar la herramienta de extracción no tiene permisos para leer todos los metadatos, vuelva a intentarlo con un usuario que sí tenga los permisos correctos.

Archivo ZIP dañado

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

Bash

sha256sum --check SHA256SUMS.txt

El resultado OK confirma que la verificación de la suma de comprobación se ha realizado correctamente. Cualquier otro mensaje indica un error de verificación:

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

Windows PowerShell

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

Sustituye RELEASE_ZIP_FILENAME por el nombre del archivo ZIP descargado de la versión de la herramienta de extracción de línea de comandos dwh-migration-dumper. Por ejemplo, dwh-migration-tools-v1.0.52.zip.

El resultado True confirma que la verificación de la suma de comprobación se ha realizado correctamente.

El resultado False indica que se ha producido un error de verificación. Asegúrate de que los archivos de suma de comprobación y ZIP se descarguen de la misma versión y se coloquen en el mismo directorio.

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

Para mejorar el rendimiento de la unión de tablas especificadas por las marcas -Dteradata-logs.query-logs-table y -Dteradata-logs.sql-logs-table, puede incluir una columna adicional de tipo DATE en la condición JOIN. Esta columna debe definirse en ambas tablas y formar 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

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"

Se ha superado 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 supera el límite, el dumper falla y muestra el siguiente mensaje: none [Error 9804] [SQLState HY000] Response Row size or Constant Row size overflow

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

  • Instala y habilita la función de 1 MB Perm y Response Rows, así como el software TTU actual. Para obtener más información, consulta el mensaje 9804 de la base de datos Teradata.
  • Divide el texto de la consulta larga en varias filas con 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 una consulta larga en varias filas de 10.000 caracteres como máximo cada una:

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"

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

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"

Problema de conexión de Oracle

En casos habituales, como una contraseña o un nombre de host no válidos, la herramienta dwh-migration-dumper muestra un mensaje de error significativo que describe el problema principal. Sin embargo, en algunos casos, el mensaje de error devuelto por el servidor de Oracle puede ser genérico y difícil de investigar.

Uno de estos problemas es IO Error: Got minus one from a read call. Este error indica que se ha establecido la conexión con el servidor de Oracle, pero el servidor no ha aceptado al cliente y ha cerrado la conexión. Este problema suele producirse cuando el servidor solo acepta conexiones TCPS. De forma predeterminada, la herramienta dwh-migration-dumper usa el protocolo TCP. Para solucionar este problema, debes anular la URL de conexión JDBC de Oracle.

En lugar de proporcionar las marcas oracle-service, host y port, puede resolver este problema proporcionando la marca url con el siguiente formato: jdbc:oracle:thin:@tcps://{HOST_NAME}:{PORT}/{ORACLE_SERVICE}. Normalmente, el número de puerto TCPS que usa el servidor de Oracle es 2484.

Comando de volcado de ejemplo:

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

Además de cambiar el protocolo de conexión a TCPS, es posible que tengas que proporcionar la configuración SSL de trustStore que se necesita para verificar el certificado del servidor de Oracle. Si falta la configuración SSL, se mostrará un mensaje de error Unable to find valid certification path. Para resolver este problema, define la variable de entorno JAVA_OPTS:

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

En función de la configuración de tu servidor Oracle, es posible que también tengas que proporcionar la configuración de keyStore. Consulta SSL con el controlador JDBC de Oracle para obtener más información sobre las opciones de configuración.

Siguientes pasos

Después de ejecutar la herramienta dwh-migration-dumper, sube el resultado a Cloud Storage junto con los archivos de origen para traducirlos.