Teradata Architecture consta de tres componentes.

  • Parsing Engine - Parsing Engine recibe la consulta del usuario, la analiza y prepara el plan de ejecución.

  • BYNET - BYNET recibe el plan de ejecución del motor de análisis y lo envía al AMP correspondiente.

  • AMP- AMP es responsable de almacenar y recuperar filas. Almacena los datos en el disco virtual asociado a él. Además de esto, AMP es responsable de la gestión de cerraduras, la gestión del espacio, la clasificación y la agregación.

FastLoad MultiLoad
La tabla de destino debe estar vacía La tabla de destino no necesita estar vacía
Solo se puede cargar una tabla usando un solo script Puede cargar / actualizar hasta 5 tablas
Admite solo la instrucción CREATE / INSERT Admite hasta 20 declaraciones DML en un solo script
No admite tablas con RI, SI y Triggers Soporta tablas con NUSI

FastLoad proporciona capacidad de reinicio a través de puntos de control. Cuando el script se reinicia desde el último punto de control, es posible que las mismas filas se envíen nuevamente a los AMP. Esa es la razón por la que FastLoad no admite duplicados.

La tabla SET no permite registros duplicados, mientras que MULTISET permite registros duplicados.

Para cada fila insertada, el sistema verifica si hay algún registro con el mismo hash de fila. Si la tabla tiene UPI definida, rechazará el registro como duplicado. De lo contrario, comparará el registro completo en busca de duplicados. Esto afectará gravemente al rendimiento del sistema.

Puede definir un índice primario único o un índice secundario único para evitar la comprobación de filas duplicadas.

Las tablas se crean utilizando la instrucción CREATE TABLE. Las tablas se pueden crear usando

  • Sentencia CREATE TABLE con definición de columna.

  • CREAR TABLA a partir de una tabla existente.

  • Sentencia CREATE TABLE con una sentencia SELECT.

Los registros duplicados se pueden identificar mediante la instrucción DISTINCT o la instrucción GROUP BY.

SELECT DISTINCT column 1, column 2… 
FROM tablename;
  
OR
  
SELECT column 1, column 2,… 
FROM tablename 
GROUP BY column 1, column 2….;
  • Las claves primarias no son obligatorias en Teradata, mientras que el índice primario es obligatorio.

  • La distribución de datos se basa en el valor del índice principal.

  • Las claves primarias no aceptan valores NULL, mientras que el índice primario acepta valores NULL.

  • Las claves primarias son únicas, mientras que el índice primario puede ser único (UPI) o no único (NUPI).

  • Las claves primarias no cambian mientras que los índices primarios cambian.

Se puede acceder a los datos de 3 formas diferentes:

  • A través del índice primario
  • A través del índice secundario
  • Escaneo de tabla completa

Se puede identificar mediante la consulta SELECT HASHAMP () + 1;

La siguiente consulta se puede utilizar para este propósito.

SELECT HASHMAP(HASHBUCKET(HASHROW(primaryindexvalue))), COUNT(*) 
FROM tablename GROUP BY 1;

Teradata admite dos modos de transacción.

  • Teradata
  • ANSI

El modo Teradata se establece mediante SET SESSION TRANSACTION BTET; El modo ANSI se establece mediante SET SESSION TRANSACTION ANSI;

Las transacciones se pueden ejecutar utilizando declaraciones BT y ET.

El usuario no puede acceder directamente a los índices de unión. Solo el optimizador puede acceder a ellos.

Los registros duplicados no podrán cargar las tablas de destino y se insertarán en la tabla UV.

FALLBACK es un mecanismo de protección utilizado por Teradata para manejar fallas de AMP. Para cada fila de datos, se almacena otra copia de la fila en un AMP diferente dentro de un clúster. Si falla algún AMP, se accederá a las filas correspondientes mediante FALLBACK AMP.

FALLBACK se puede mencionar mientras se crea la tabla usando la instrucción CREATE TABLE o después de que la tabla se crea usando la instrucción ALTER TABLE.

Se producirá un error de espacio de spool si los resultados intermedios de la consulta superan el límite de espacio de spool de AMP establecido para el usuario que envió la consulta.

El comando SLEEP especifica el tiempo de espera antes de que Teradata intente establecer la conexión.

El comando TENACITY especifica el tiempo total de espera para que Teradata establezca una nueva conexión.

Puede mantener la instrucción BEGIN LOADING y END LOADING y enviar el script FASTLOAD. Otra opción es soltar la tabla y crearla nuevamente.

El almacenamiento en caché en Teradata funciona con la fuente y permanece en el mismo orden, es decir, no cambia con frecuencia. La caché generalmente se comparte entre aplicaciones. Es una ventaja adicional de usar Teradata.

RAID es un mecanismo de protección para manejar fallas de disco. Significa matriz redundante de discos independientes. RAID 1 se usa comúnmente en Teradata.

El índice secundario proporciona una ruta alternativa para acceder a los datos. Se utilizan para evitar la exploración de tabla completa. Sin embargo, los índices secundarios requieren una estructura física adicional para mantener las subtablas y también requieren E / S adicionales, ya que la subtabla debe actualizarse para cada fila.

Hay cuatro bloqueos diferentes en Teradata: exclusivo, de escritura, de lectura y de acceso.

Los bloqueos se pueden aplicar en tres niveles diferentes: base de datos, tabla y fila.

Con la compresión de valores múltiples (MVC) puede comprimir hasta 255 valores, incluidos los valores NULL.

FastLoad carga los datos en bloques de 64K. Hay 2 fases en FastLoad.

  • En la Fase 1, trae los datos en bloques de 64K y los envía a los AMP de destino. Luego, cada AMP redistribuirá el hash de las filas a sus AMP de destino.

  • En la Fase 2, las filas se ordenan por su orden hash de fila y se escriben en la tabla de destino.

La importación de MultiLoad tiene cinco fases.

  • Phase 1 - Fase preliminar: realiza actividades de configuración básicas.

  • Phase 2 - Fase de transacción DML: verifica la sintaxis de las declaraciones DML y las lleva al sistema Teradata.

  • Phase 3 - Fase de adquisición: lleva los datos de entrada a las tablas de trabajo y bloquea la mesa.

  • Phase 4 - Fase de aplicación: aplica todas las operaciones de DML.

  • Phase 5 - Fase de limpieza: libera el bloqueo de la mesa.

MULTILOAD DELETE es más rápido ya que elimina los registros en bloques. DELETE FROM eliminará fila por fila.

El procedimiento almacenado devuelve uno o más valores, mientras que las macros pueden devolver una o más filas. Además de SQL, el procedimiento almacenado puede contener sentencias SPL.

Tanto FastLoad como MultiLoad cargan los datos en bloques de 64K, mientras que BTEQ procesará una fila a la vez.

FastExport exporta los datos en bloques de 64K, mientras que BTEQ exporta una fila a la vez.

Teradata Parallel Transporter (TPT) es la utilidad para cargar / exportar datos. Combina todas las funcionalidades de FastLoad, MultiLoad, BTEQ, TPUMP y FastExport.

Los diarios permanentes realizan un seguimiento de los datos antes o después de aplicar los cambios. Esto ayuda a retroceder o avanzar la tabla a un estado particular. Los diarios permanentes se pueden habilitar a nivel de tabla o de base de datos.

En Teradata, cada AMP está asociado con un disco virtual. Solo el AMP que posee el disco virtual puede acceder a los datos dentro de ese disco virtual. Esto se denomina Arquitectura de nada compartido.

  • Si la consulta usa columnas particionadas, resultará en la eliminación de la partición, lo que mejorará enormemente el rendimiento.

  • Partición elimina otras particiones y accede solo a las particiones que contienen los datos.

  • Puede eliminar fácilmente las particiones antiguas y crear nuevas particiones.

Si. El índice secundario requiere sub-tablas que requieren espacio permanente.

Si. Siempre que se agrega un índice primario particionado, cada fila ocupa 2 u 8 bytes adicionales para el número de partición.

Puede utilizar la función RANK en la columna especificada con orden descendente con la condición Qualify = 2.

Puede consultar el plan EXPLAIN de la consulta para identificar los pasos que consumen más espacio en el spool e intentar optimizar la consulta. Se pueden aplicar filtros para reducir la cantidad de registros que se procesan o puede dividir la consulta grande en varias consultas más pequeñas.

Cuando se usa el comando EXPLAIN contra la consulta, especifica la confianza del optimizador para recuperar los registros.

Hay tres niveles de confianza en Teradata: Confianza alta, Confianza media y Confianza baja.

Tanto NUSI como Full Table Scan (FTS) accederán a todos los AMP, pero FTS accederá a todos los bloques dentro del AMP, mientras que NUSI accederá a los bloques solo si la subtabla contiene las filas calificadas.

En el modo BTEQ, el comando SKIP se puede usar para omitir los registros.

BYTEINT. Ocupa solo un byte y puede almacenar valores hasta +127.

  • A través del índice primario único: 1 AMP
  • A través del índice primario no único: 1 AMP
  • A través de un índice secundario único: 2 AMP
  • Mediante índice secundario no único: todos los AMP

Clique es un mecanismo de protección para manejar fallas de nodo. Es un grupo de nodos. Cuando un nodo dentro de una camarilla falla, los vprocs (motor de análisis y AMP) migrarán a otros nodos y continuarán realizando operaciones de lectura / escritura en sus discos virtuales.

Teradata proporciona diferentes niveles de mecanismo de protección.

  • Transient Journal - Para manejar el error de transacción.

  • Fallback - Para manejar fallas de AMP.

  • Cliques - Para manejar la falla del nodo.

  • RAID - Para manejar la falla del disco.

  • Hot standby Node - Para manejar la falla del nodo sin afectar el rendimiento y reiniciar.

ACTIVITYCOUNT da el número de filas afectadas por la consulta SQL anterior en BTEQ. Si la instrucción ACTIVITYCOUNT sigue a una instrucción de inserción, devuelve el número de filas insertadas. Si la instrucción ACTIVITYCOUNT sigue a la instrucción select, devuelve el número de filas seleccionadas.