Detalles y opciones de la migración de Teradata

Este documento describe más detalles, opciones y funciones Beta cuando se usa el Servicio de transferencia de datos de BigQuery para migrar datos de Teradata a BigQuery.

Archivo de esquema personalizado

Realiza transformaciones con un archivo de esquema

Como parte de la migración, puedes especificar un archivo de esquema personalizado para cambiar los campos name de cualquier objeto y agregar el arreglo usageType a cualquier columna. Esto es especialmente útil para incluir información adicional sobre una tabla (como las particiones) que, si no se especificara ningún archivo de esquema, se perdería en la migración.

Se admiten los siguientes tipos de uso:

  • PARTITIONING: Solo se puede anotar una columna por tabla con este usageType. El campo type de una columna debe ser DATE o TIMESTAMP. Esta columna se usará para la definición de tablas particionadas a fin de contener el objeto tables.
  • CLUSTERING: se pueden anotar varias columnas en una tabla con este useType. Los tipos de columnas deben seguir las restricciones para la agrupación en clústeres de BigQuery. Si se especifica un campo PARTITIONING para la misma tabla, BigQuery usará estas columnas para crear una tabla agrupada en clústeres. Solo las columnas con los tipos INT64, STRING, DATE, TIMESTAMP, BOOL o NUMERIC se pueden marcar con este useType.
  • COMIT_TIMESTAMP: Solo se puede anotar una columna por tabla con este tipo de uso. Usa este usageType para anotar una columna de marca de tiempo de actualización. Esta columna se utilizará para extraer las filas creadas o actualizadas desde la última ejecución de la transferencia. Debe tener un tipo TIMESTAMP o DATE.

Ejemplo de archivo de esquema personalizado


    {
      "databases": [
        {
          "name": "db",
          "originalName": "db",
          "tables": [
            {
              "name": "test",
              "originalName": "test",
              "columns": [
                {
                  "name": "foo",
                  "originalName": "foo",
                  "type": "INT64",
                  "usageType": ["CLUSTERING"]
                },
                {
                  "name": "bar",
                  "originalName": "bar",
                  "type": "DATE",
                  "usageType": ["PARTITIONING"]
                },
                {
                  "name": "change",
                  "originalName": "change",
                  "type": "TIMESTAMP",
                  "usageType": ["COMMIT_TIMESTAMP"]
                }
              ]
            }
          ]
        }
      ]
    }
    

Para obtener más información sobre cómo se particionan o agrupan las tablas en una transferencia, consulta la sección transferencias incrementales.

Asignación de tipos de datos de Teradata a BigQuery

Tipo de Teradata Tipo de BigQuery Diferencias entre los tipos
INTEGER INTEGER
SMALLINT INTEGER
BYTEINT INTEGER
BIGINT INTEGER
DECIMAL NUMERIC El tipo NUMERIC de BigQuery tiene 38 dígitos de precisión y 9 dígitos decimales de escala.
FLOAT NUMERIC El tipo NUMERIC de BigQuery tiene 38 dígitos de precisión y 9 dígitos decimales de escala.
NUMERIC NUMERIC El tipo NUMERIC de BigQuery tiene 38 dígitos de precisión y 9 dígitos decimales de escala.
NUMBER NUMERIC El tipo NUMERIC de BigQuery tiene 38 dígitos de precisión y 9 dígitos decimales de escala.
REAL FLOAT64
CHAR STRING
CHARACTER STRING
VARCHAR STRING
CLOB STRING
JSON STRING
BLOB BYTES
BYTE BYTES
VARBYTE BYTES
DATE DATE
TIME TIME El TIME de BigQuery está en UTC. El Servicio de transferencia de datos de BigQuery extraerá los valores respectivos en formato de UTC.
TIMETZ TIME El TIME de BigQuery está en UTC. El Servicio de transferencia de datos de BigQuery extraerá los valores respectivos en formato de UTC.
TIMESTAMP TIMESTAMP La TIMESTAMP de BigQuery está en UTC. El Servicio de transferencia de datos de BigQuery extraerá los valores respectivos en formato de UTC.

La precisión de TIMESTAMP se limita a microsegundos.
TIMESTAMPTZ TIMESTAMP La TIMESTAMP de BigQuery está en UTC. El Servicio de transferencia de datos de BigQuery extraerá los valores respectivos en formato de UTC.

La precisión de TIMESTAMP se limita a microsegundos.
ARRAY STRING
MULTIDIMENSIONALARRAY STRING
HORA INTEGER
MINUTO INTEGER
SECOND INTEGER
DÍA INTEGER
MONTH INTEGER
YEAR INTEGER
PERIODDATE STRING
PERIODTIMESTAMPTZ STRING
PERIODTIMESTAMP STRING
PERIODTIME STRING
PERIODTIMETZ STRING
USERDEFINED STRING
XML STRING
ANYTYPE STRING

Transferencias incrementales

El Servicio de transferencia de datos de BigQuery admite transferencias periódicas de filas nuevas y actualizadas ("transferencias incrementales"). Cuando configures una transferencia, puedes designarla como a pedido (una vez) o de forma incremental en las opciones de programación.

La tabla de origen en Teradata debe tener una columna de seguimiento de cambios con el tipo de datos TIMESTAMP.

En las transferencias incrementales, la primera transferencia siempre crea una instantánea de tabla en BigQuery. Todas las transferencias posteriores capturarán, transferirán y agregarán datos nuevos y modificados a la tabla existente en BigQuery. Esto significa que, para las filas modificadas, la tabla de BigQuery podría tener filas duplicadas con valores antiguos y nuevos.

Para cada ejecución de transferencia, se guarda una marca de tiempo de la ejecución de la transferencia. Para cada ejecución de transferencia posterior, un agente recibe la marca de tiempo de una ejecución de transferencia anterior (T1) y una marca de tiempo de cuándo comenzó la ejecución de transferencia actual (T2).

Para cada transferencia después de la ejecución inicial, el agente de migración extraerá los datos con la siguiente lógica por tabla:

  • Si un objeto de tabla en un archivo de esquema no tiene una columna con un usageType de COMMIT_TIMESTAMP, se omite la tabla.
  • Si una tabla tiene una columna con usageType de COMMIT_TIMESTAMP, todas las filas con una marca de tiempo entre T1 y T2 se extraen y se anexan a la tabla existente en BigQuery.

Operaciones DDL/DML en transferencias incrementales

Operación de Teradata Tipo Asistencia de Teradata a BigQuery
CREAR DDL Si el nombre de la tabla coincide con el patrón determinado, se crea una nueva instantánea completa para la tabla en BigQuery.
DROP DDL No compatible
ALTER (CAMBIAR NOMBRE) DDL Si el nombre de una tabla coincide con un patrón determinado, se crea una instantánea completa para la tabla con el nuevo nombre en BigQuery. La instantánea anterior no se borra de BigQuery. El usuario no recibe la notificación de la tabla con el nombre cambiado.
INSERT DML Se agregarán filas nuevas a la tabla de BigQuery que coincida.
ACTUALIZAR DML Las filas no se modifican. Las filas se agregan a la tabla de BigQuery coincidente como nueva, como un INSERT. Las filas de transferencias anteriores no se actualizan ni se borran.
UNIR DML No compatible. Ver en su lugar INSERT, UPDATE y DELETE.
BORRAR DML No compatible

Qué sigue