A Arquitetura Teradata consiste em três componentes.

  • Parsing Engine - O Parsing Engine recebe a consulta do usuário, analisa-a e prepara o plano de execução.

  • BYNET - BYNET recebe o plano de execução do mecanismo de análise e despacha para o AMP apropriado.

  • AMP- AMP é responsável por armazenar e recuperar linhas. Ele armazena os dados no disco virtual associado a ele. Além disso, o AMP é responsável pelo gerenciamento de bloqueios, gerenciamento de espaço, classificação e agregação.

FastLoad MultiLoad
A tabela de destino deve estar vazia A tabela de destino não precisa estar vazia
Apenas uma tabela pode ser carregada usando um único script Pode carregar / atualizar até 5 tabelas
Suporta apenas a instrução CREATE / INSERT Suporta até 20 instruções DML em um único script
Não suporta tabelas com RI, SI e Triggers Suporta tabelas com NUSI

FastLoad fornece capacidade de reinicialização por meio de pontos de verificação. Quando o script é reiniciado a partir do último checkpoint, é possível que as mesmas linhas sejam enviadas novamente para os AMPs. Essa é a razão pela qual FastLoad não oferece suporte a duplicatas.

A tabela SET não permite registros duplicados, enquanto MULTISET permite registros duplicados.

Para cada linha inserida, o sistema verifica se há algum registro com o mesmo hash de linha. Se a tabela tiver UPI definido, ela rejeitará o registro como duplicado. Caso contrário, ele irá comparar todo o registro para duplicar. Isso afetará gravemente o desempenho do sistema.

Você pode definir o índice primário exclusivo ou o índice secundário exclusivo para evitar a verificação de linha duplicada.

As tabelas são criadas usando a instrução CREATE TABLE. As tabelas podem ser criadas usando

  • Instrução CREATE TABLE com definição de coluna.

  • CRIAR TABELA a partir de uma tabela existente.

  • Instrução CREATE TABLE com uma instrução SELECT.

Os registros duplicados podem ser identificados usando a instrução DISTINCT ou a instrução GROUP BY.

SELECT DISTINCT column 1, column 2… 
FROM tablename;
  
OR
  
SELECT column 1, column 2,… 
FROM tablename 
GROUP BY column 1, column 2….;
  • As chaves primárias não são obrigatórias no Teradata, enquanto o Índice Primário é obrigatório.

  • A distribuição de dados é baseada no valor do índice primário.

  • As chaves primárias não aceitam NULLs, enquanto o Índice Primário aceita valores NULL.

  • As chaves primárias são exclusivas, enquanto o índice primário pode ser exclusivo (UPI) ou não exclusivo (NUPI).

  • As chaves primárias não mudam, enquanto os índices primários mudam.

Os dados podem ser acessados ​​de 3 maneiras diferentes -

  • Através do índice primário
  • Através do índice secundário
  • Verificação completa da tabela

Ele pode ser identificado usando a consulta SELECT HASHAMP () + 1;

A consulta a seguir pode ser usada para esse propósito.

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

O Teradata oferece suporte a dois modos de transação.

  • Teradata
  • ANSI

O modo Teradata é definido usando SET SESSION TRANSACTION BTET; O modo ANSI é definido usando SET SESSION TRANSACTION ANSI;

As transações podem ser executadas usando instruções BT e ET.

Índices de associação não podem ser acessados ​​diretamente pelo usuário. Apenas o otimizador pode acessá-los.

Os registros duplicados serão rejeitados ao carregar as tabelas de destino e serão inseridos na tabela UV.

FALLBACK é um mecanismo de proteção usado pelo Teradata para lidar com falhas de AMP. Para cada linha de dados, outra cópia da linha é armazenada em um AMP diferente dentro de um cluster. Se algum AMP falhar, as linhas correspondentes serão acessadas usando FALLBACK AMP.

FALLBACK pode ser mencionado durante a criação da tabela usando a instrução CREATE TABLE ou após a tabela ser criada usando a instrução ALTER TABLE.

O erro de espaço de spool ocorrerá se os resultados intermediários da consulta excederem o limite de espaço de spool de AMP definido para o usuário que enviou a consulta.

O comando SLEEP especifica o tempo de espera antes que o Teradata tente estabelecer a conexão.

O comando TENACITY especifica o tempo total de espera para o Teradata estabelecer uma nova conexão.

Você pode simplesmente manter a instrução BEGIN LOADING e END LOADING e enviar o script FASTLOAD. Outra opção é eliminar a tabela e criá-la novamente.

O cache no Teradata funciona com a fonte e permanece na mesma ordem, ou seja, não muda com frequência. O Cache geralmente é compartilhado entre os aplicativos. É uma vantagem adicional de usar o Teradata.

RAID é um mecanismo de proteção para lidar com falhas de disco. Significa Redundant Array of Independent Disks. RAID 1 é comumente usado no Teradata.

O índice secundário fornece um caminho alternativo para acessar os dados. Eles são usados ​​para evitar a varredura completa da tabela. No entanto, os índices secundários requerem estrutura física adicional para manter subtabelas e também requerem E / S adicional, uma vez que a subtabela precisa ser atualizada para cada linha.

Existem quatro bloqueios diferentes no Teradata - Exclusivo, Gravação, Leitura e Acesso.

Os bloqueios podem ser aplicados em três níveis diferentes - Banco de dados, Tabela e Linha.

Usando Multi Value Compression (MVC), você pode compactar até 255 valores, incluindo NULLs.

FastLoad carrega os dados em blocos de 64K. Existem 2 fases no FastLoad.

  • Na Fase 1, ele traz os dados em blocos de 64K e os envia para os AMPs de destino. Cada AMP redistribuirá as linhas em hash para seus AMPs de destino.

  • Na Fase 2, as linhas são classificadas por ordem de hash de linha e gravadas na tabela de destino.

A importação MultiLoad tem cinco fases.

  • Phase 1 - Fase preliminar - Executa atividades básicas de configuração.

  • Phase 2 - Fase de transação DML - verifica a sintaxe das instruções DML e as traz para o sistema Teradata.

  • Phase 3 - Fase de aquisição - traz os dados de entrada para as tabelas de trabalho e bloqueia a tabela.

  • Phase 4 - Fase de aplicação - aplica todas as operações DML.

  • Phase 5 - Fase de limpeza - libera o bloqueio da tabela.

MULTILOAD DELETE é mais rápido, pois apaga os registros em blocos. DELETE FROM excluirá linha por linha.

O procedimento armazenado retorna um ou mais valores, enquanto as macros podem retornar uma ou mais linhas. Além do SQL, o procedimento armazenado pode conter instruções SPL.

Tanto o FastLoad quanto o MultiLoad carregam os dados em blocos de 64K, enquanto o BTEQ processa uma linha por vez.

FastExport exporta os dados em blocos de 64 K enquanto o BTEQ exporta uma linha por vez.

O Teradata Parallel Transporter (TPT) é o utilitário para carregar / exportar dados. Combina todas as funcionalidades de FastLoad, MultiLoad, BTEQ, TPUMP e FastExport.

Diários permanentes rastreiam os dados antes ou depois de aplicar as alterações. Isso ajuda a reverter ou avançar a tabela para um estado específico. Os diários permanentes podem ser ativados no nível da tabela ou no nível do banco de dados.

No Teradata, cada AMP é associado a um disco virtual. Apenas o AMP que possui o disco virtual pode acessar os dados dentro desse disco virtual. Isso é chamado de Arquitetura de Nada Compartilhado.

  • Se a consulta usar colunas particionadas, isso resultará na eliminação da partição, o que melhorará muito o desempenho.

  • A partição elimina outras partições e acessa apenas as partições que contêm os dados.

  • Você pode facilmente descartar as partições antigas e criar novas partições.

Sim. O índice secundário requer subtabelas que requerem espaço permanente.

Sim. Sempre que um índice primário particionado é adicionado, cada linha ocupa 2 ou 8 bytes adicionais para o número da partição.

Você pode usar a função RANK na coluna especificada em ordem decrescente com a condição Qualify = 2.

Você pode verificar o plano EXPLAIN da consulta para identificar as etapas que consomem mais espaço no spool e tentar otimizar a consulta. Os filtros podem ser aplicados para reduzir o número de registros sendo processados ​​ou você pode dividir a consulta grande em várias consultas menores.

Quando o comando EXPLAIN é usado na consulta, ele especifica a confiança do otimizador para recuperar os registros.

Existem três níveis de confiança no Teradata: alta confiança, média confiança e baixa confiança.

Tanto o NUSI quanto o Full Table Scan (FTS) acessarão todos os AMPs, mas o FTS acessará todos os blocos dentro do AMP, enquanto o NUSI acessará os blocos somente se a subtabela contiver as linhas qualificadas.

No modo BTEQ, o comando SKIP pode ser usado para pular os registros.

BYTEINT. Ocupa apenas um byte e pode armazenar valores de até +127.

  • Por meio do índice primário exclusivo - 1 AMP
  • Por meio de índice primário não exclusivo - 1 AMP
  • Por meio do índice secundário exclusivo - 2 AMPs
  • Por meio do índice secundário não exclusivo - todas as AMPs

Clique é um mecanismo de proteção para lidar com falhas do Node. É um grupo de nós. Quando um nó dentro de um clique falha, os vprocs (Parsing Engine e AMP) migram para outros nós e continuam a realizar operações de leitura / gravação em seus discos virtuais.

O Teradata fornece diferentes níveis de mecanismo de proteção.

  • Transient Journal - Para lidar com a falha de transação.

  • Fallback - Para lidar com falhas de AMP.

  • Cliques - Para lidar com a falha do Node.

  • RAID - Para lidar com a falha do disco.

  • Hot standby Node - Para lidar com a falha do Node sem afetar o desempenho e reiniciar.

ACTIVITYCOUNT fornece o número de linhas afetadas pela consulta SQL anterior no BTEQ. Se a instrução ACTIVITYCOUNT seguir uma instrução de inserção, ela retornará o número de linhas inseridas. Se a instrução ACTIVITYCOUNT seguir a instrução select, ela retornará o número de linhas selecionadas.