Teradata Architecture se compose de trois composants.

  • Parsing Engine - Parsing Engine reçoit la requête de l'utilisateur, l'analyse et prépare le plan d'exécution.

  • BYNET - BYNET reçoit le plan d'exécution du moteur d'analyse et l'envoie à l'AMP approprié.

  • AMP- AMP est responsable du stockage et de la récupération des lignes. Il stocke les données sur le disque virtuel qui lui est associé. De plus, AMP est responsable de la gestion des serrures, de la gestion de l'espace, du tri et de l'agrégation.

FastLoad MultiLoad
La table cible doit être vide La table cible n'a pas besoin d'être vide
Une seule table peut être chargée à l'aide d'un seul script Peut charger / mettre à jour jusqu'à 5 tables
Prend en charge uniquement l'instruction CREATE / INSERT Prend en charge jusqu'à 20 instructions DML dans un seul script
Ne prend pas en charge les tables avec RI, SI et Triggers Prend en charge les tables avec NUSI

FastLoad offre une capacité de redémarrage via des points de contrôle. Lorsque le script est redémarré à partir du dernier point de contrôle, il est possible que les mêmes lignes soient renvoyées aux AMP. C'est la raison pour laquelle FastLoad ne prend pas en charge les doublons.

La table SET n'autorise pas les enregistrements en double alors que MULTISET autorise les enregistrements en double.

Pour chaque ligne insérée, le système vérifie s'il existe un enregistrement avec le même hachage de ligne. Si la table a UPI défini, alors il rejettera l'enregistrement comme dupliqué. Sinon, il comparera l'enregistrement entier pour le duplicata. Cela affectera gravement les performances du système.

Vous pouvez définir un index primaire unique ou un index secondaire unique pour éviter la vérification des lignes en double.

Les tables sont créées à l'aide de l'instruction CREATE TABLE. Les tableaux peuvent être créés en utilisant

  • Instruction CREATE TABLE avec définition de colonne.

  • CREATE TABLE à partir d'une table existante.

  • Instruction CREATE TABLE avec une instruction SELECT.

Les enregistrements en double peuvent être identifiés à l'aide de l'instruction DISTINCT ou de l'instruction GROUP BY.

SELECT DISTINCT column 1, column 2… 
FROM tablename;
  
OR
  
SELECT column 1, column 2,… 
FROM tablename 
GROUP BY column 1, column 2….;
  • Les clés primaires ne sont pas obligatoires dans Teradata tandis que l'index primaire est obligatoire.

  • La distribution des données est basée sur la valeur de l'index primaire.

  • Les clés primaires n'acceptent pas les valeurs NULL alors que l'index primaire accepte les valeurs NULL.

  • Les clés primaires sont uniques tandis que l'index primaire peut être unique (UPI) ou non unique (NUPI).

  • Les clés primaires ne changent pas tandis que les index primaires changent.

Les données sont accessibles de 3 manières différentes -

  • Via l'index primaire
  • Via l'index secondaire
  • Analyse complète de la table

Il peut être identifié en utilisant la requête SELECT HASHAMP () + 1;

La requête suivante peut être utilisée à cet effet.

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

Teradata prend en charge deux modes de transaction.

  • Teradata
  • ANSI

Le mode Teradata est défini à l'aide de SET SESSION TRANSACTION BTET; Le mode ANSI est défini à l'aide de SET SESSION TRANSACTION ANSI;

Les transactions peuvent être exécutées à l'aide d'instructions BT et ET.

Les index de jointure ne sont pas directement accessibles par l'utilisateur. Seul l'optimiseur peut y accéder.

Les enregistrements en double seront rejetés lors du chargement des tables cible et seront insérés dans la table UV.

FALLBACK est un mécanisme de protection utilisé par Teradata pour gérer les pannes AMP. Pour chaque ligne de données, une autre copie de la ligne est stockée dans un AMP différent au sein d'un cluster. Si un AMP échoue, les lignes correspondantes seront accessibles en utilisant FALLBACK AMP.

FALLBACK peut être mentionné lors de la création de la table à l'aide de l'instruction CREATE TABLE ou après la création de la table à l'aide de l'instruction ALTER TABLE.

Une erreur d'espace de spoule se produit si les résultats intermédiaires de la requête dépassent la limite d'espace de spoule AMP définie pour l'utilisateur qui a soumis la requête.

La commande SLEEP spécifie le temps d'attente avant que Teradata tente d'établir la connexion.

La commande TENACITY spécifie le temps d'attente total de Teradata pour établir une nouvelle connexion.

Vous pouvez simplement conserver les instructions BEGIN LOADING et END LOADING et soumettre le script FASTLOAD. Une autre option consiste à supprimer la table et à créer à nouveau la table.

La mise en cache dans Teradata fonctionne avec la source et reste dans le même ordre, c'est-à-dire qu'elle ne change pas fréquemment. Le cache est généralement partagé entre les applications. C'est un avantage supplémentaire d'utiliser Teradata.

RAID est un mécanisme de protection pour gérer les pannes de disque. Il signifie Redundant Array of Independent Disks. RAID 1 est couramment utilisé dans Teradata.

L'index secondaire fournit un autre chemin d'accès aux données. Ils sont utilisés pour éviter le balayage complet de la table. Cependant, les index secondaires nécessitent une structure physique supplémentaire pour gérer les sous-tables et nécessitent également des E / S supplémentaires car la sous-table doit être mise à jour pour chaque ligne.

Il existe quatre verrous différents dans Teradata: exclusif, écriture, lecture et accès.

Les verrous peuvent être appliqués à trois niveaux différents: base de données, table et ligne.

À l'aide de la compression à valeurs multiples (MVC), vous pouvez compresser jusqu'à 255 valeurs, y compris les valeurs NULL.

FastLoad charge les données dans des blocs de 64 Ko. Il y a 2 phases dans FastLoad.

  • Dans la phase 1, il apporte les données dans des blocs de 64 Ko et les envoie aux AMP cibles. Chaque AMP redistribuera ensuite les lignes vers leurs AMP cibles.

  • Dans la phase 2, les lignes sont triées par ordre de hachage des lignes et écrites dans la table cible.

L'importation MultiLoad comporte cinq phases.

  • Phase 1 - Phase préliminaire - Exécute les activités de configuration de base.

  • Phase 2 - Phase de transaction DML - Vérifie la syntaxe des instructions DML et les apporte au système Teradata.

  • Phase 3 - Phase d'acquisition - Apporte les données d'entrée dans les tables de travail et verrouille la table.

  • Phase 4 - Phase d'application - Applique toutes les opérations DML.

  • Phase 5 - Phase de nettoyage - Libère le verrouillage de la table.

MULTILOAD DELETE est plus rapide car il supprime les enregistrements par blocs. DELETE FROM supprimera ligne par ligne.

La procédure stockée renvoie une ou plusieurs valeurs tandis que les macros peuvent renvoyer une ou plusieurs lignes. En plus de SQL, la procédure stockée peut contenir des instructions SPL.

FastLoad et MultiLoad chargent les données dans des blocs de 64 Ko, tandis que BTEQ traitera une ligne à la fois.

FastExport exporte les données dans des blocs de 64 Ko tandis que BTEQ exporte une ligne à la fois.

Teradata Parallel Transporter (TPT) est l'utilitaire pour charger / exporter des données. Il combine toutes les fonctionnalités de FastLoad, MultiLoad, BTEQ, TPUMP et FastExport.

Les journaux permanents gardent une trace des données avant ou après l'application des modifications. Cela aide à reculer ou à faire avancer la table vers un état particulier. Les journaux permanents peuvent être activés au niveau de la table ou de la base de données.

Dans Teradata, chaque AMP est associé à un disque virtuel. Seul l'AMP qui possède le disque virtuel peut accéder aux données de ce disque virtuel. C'est ce qu'on appelle l'architecture Shared Nothing.

  • Si la requête utilise des colonnes partitionnées, cela entraînera l'élimination de la partition, ce qui améliorera considérablement les performances.

  • La partition élimine les autres partitions et accède uniquement aux partitions contenant les données.

  • Vous pouvez facilement supprimer les anciennes partitions et créer de nouvelles partitions.

Oui. L'index secondaire nécessite des sous-tables qui nécessitent un espace permanent.

Oui. Chaque fois qu'un index primaire partitionné est ajouté, chaque ligne occupe 2 ou 8 octets supplémentaires pour le numéro de partition.

Vous pouvez utiliser la fonction RANK sur la colonne spécifiée avec un ordre décroissant avec la condition Qualify = 2.

Vous pouvez vérifier le plan EXPLAIN de la requête pour identifier les étapes qui consomment plus d'espace de spoule et essayer d'optimiser la requête. Des filtres peuvent être appliqués pour réduire le nombre d'enregistrements en cours de traitement ou vous pouvez diviser la grande requête en plusieurs requêtes plus petites.

Lorsque la commande EXPLAIN est utilisée pour la requête, elle spécifie la confiance de l'optimiseur pour récupérer les enregistrements.

Il existe trois niveaux de confiance dans Teradata: confiance élevée, confiance moyenne et confiance faible.

NUSI et Full Table Scan (FTS) accèderont à tous les AMP mais FTS accédera à tous les blocs dans l'AMP tandis que NUSI accédera aux blocs uniquement si la sous-table contient les lignes de qualification.

En mode BTEQ, la commande SKIP peut être utilisée pour sauter les enregistrements.

BYTEINT. Il n'occupe qu'un seul octet et peut stocker des valeurs jusqu'à +127.

  • Grâce à un index primaire unique - 1 AMP
  • Via un index primaire non unique - 1 AMP
  • Grâce à un index secondaire unique - 2 AMP
  • Via un index secondaire non unique - Tous les SAP

Clique est un mécanisme de protection pour gérer les pannes de nœuds. C'est un groupe de nœuds. Lorsqu'un nœud au sein d'une clique tombe en panne, les vprocs (Parsing Engine et AMP) migrent vers d'autres nœuds et continuent à effectuer des opérations de lecture / écriture sur leurs disques virtuels.

Teradata fournit différents niveaux de mécanisme de protection.

  • Transient Journal - Pour gérer l'échec de transaction.

  • Fallback - Pour gérer l'échec AMP.

  • Cliques - Pour gérer l'échec du nœud.

  • RAID - Pour gérer une panne de disque.

  • Hot standby Node - Pour gérer l'échec du nœud sans affecter les performances et redémarrer.

ACTIVITYCOUNT donne le nombre de lignes affectées par la requête SQL précédente dans BTEQ. Si l'instruction ACTIVITYCOUNT suit une instruction d'insertion, elle renvoie le nombre de lignes insérées. Si l'instruction ACTIVITYCOUNT suit l'instruction select, elle renvoie le nombre de lignes sélectionnées.