Was ist Teradata?

Teradata ist eine hochgradig anpassbare MPP-Datenbanklösung im Petabyte-Segment. Teradata existiert seit über 30 Jahren und bietet einen extrem ausgereiften Funktionsumfang, der den anspruchsvollsten Anforderungen einiger der weltgrößten Organisationen gerecht wird. Seine Shared-Nothing-Architektur macht Teradata zu einer leistungsstarken Datenbank, die linear skalierbar ist.

Während Teradata traditionell on-premise mit proprietärer Hardware installiert wurde, bietet Teradata seine Datenbanktechnologie seit kurzem auch als Managed Service in AWS oder in deren eigener privater Cloud an.

Die Wahl von Teradata als Datenbank

Reifegrad der Plattform

Da Teradata einer der ältesten und größten Datenbankanbieter der Welt ist, war das Unternehmen in der Lage, einen vollständig umfassenden Funktionsumfang aufzubauen, der es ermöglicht, Teradata für nahezu jeden Anwendungsfall einzusetzen. Zu den bemerkenswerten Merkmalen gehören Teradata QueryGrid, eine Föderationsschicht, die den Zugriff auf in Teradata und Hadoop gespeicherte Datensätze ermöglicht, sowie die leistungsstarke Workload Management-Software von Teradata.

Anpassen der Plattform

Da Teradata Datenbank-Hardware und -Software bündelt, ist es möglich, aus einer großen Auswahl an Plattformen zu wählen, die je nach Arbeitslast variieren. Dies macht es sehr einfach, Hardware auszuwählen, die für Ihren Anwendungsfall optimiert ist.

Leistung

Einige der Funktionen von Teradata können, wenn sie intelligent implementiert werden, Teradata zu einer extrem performanten Datenbank machen. Beispielsweise implementiert Teradata einen hybriden Zeilenspeicher/Spaltenspeicher, der es dem Benutzer ermöglicht, Daten entweder im Zeilen- oder im Spaltenformat zu speichern. Ein weiteres Merkmal, das die Leistung steigert, ist die Fähigkeit von Teradata, intelligent Daten, auf die am häufigsten zugegriffen wird, in den In-Memory-Speicher zu lesen.

Wofür ist Teradata besonders gut geeignet?

Einfügen in einen großen Enterprise-Datenstapel

Der Wert der Datenbanklösung von Teradata lässt sich wirklich nur im großen Maßstab realisieren. Die massive Funktionalität, Integration und Parallelität von Teradata ist so ausgelegt, dass sie sich nahtlos in einen Enterprise-Datenstapel einfügt und von einer großen Anzahl von Benutzern genutzt werden kann.

Aufbau eines benutzerdefinierten Datenstapels von Grund auf

Angesichts des ausgereiften Funktionsumfangs von Teradata, der großen Anzahl von Plattformangeboten und der Fähigkeit, sowohl on-premise als auch in der Cloud zu existieren, ist das RDBMS von Teradata perfekt für kompetente DBA, die ihren Datenstapel von oben nach unten anpassen möchten.

Preisliche Erwägungen

Die Preise für Teradata werden variieren, je nachdem, ob die Datenbank on-premise oder in der Cloud gehostet wird. Für Teradata in der Cloud hängt die Preisgestaltung vom Hosting-Provider (AWS/Azure/Teradata IntelliCloud) ab.

Teradata on-premise

On-premise-Preise für Teradata hängen von der Art, Anzahl und Größe der bei Teradata gekauften Geräte ab. Spezifische Preisinformationen sind auf der Teradata-Website nicht verfügbar.

Teradata auf AWS

Teradata auf AWS wird auf dem AWS Marketplace verkauft und kommt mit einem Preisrechner, mit dem Sie abschätzen können, wie die monatliche Rate für eine Teradata-Instanz aussehen würde. Zu den Variablen gehören Funktionsumfang, Speichertyp, Instanzgröße und Anzahl der Knoten. Es ist möglich, auf AWS bis zu 32 Knoten zu skalieren.

Teradata auf Azure

Teradata auf Azure wird auf dem Azure Marketplace verkauft. Der einzige Plan, der auf dem Azure Marketplace angeboten wird, ist ein stündlicher Plan. Teradata lässt sich auch in Azure Blob Storage integrieren, um Backups zu verwalten und zusätzliche Daten zu speichern. Es ist auf Azure möglich, auf bis zu 32 Knoten zu skalieren.

Teradata IntelliCloud

Teradata bietet auch eine vollständig verwaltete Software- und Hardware-Hostingoption in deren privater Cloud unter dem Namen Teradata IntelliCloud an. Preisoptionen sind für verschiedene Teradata unterschiedlich und können hier gefunden werden. Die Teradata-Datenbank wird von Teradata gehostet und ist vollständig skalierbar.

Teradata-Architektur

Wie die meisten selbstverwalteten MPP-Datenbanken verteilt Teradata sowohl Speicherung wie auch Berechnung auf mehrere Knoten in seinem System. Diese Architektur, die als „Shared-Nothing-Architektur“ bekannt ist, bedeutet, dass die Knoten sowohl Rechenleistung (in Form von CPU und Speicher) als auch Speicherplatz (in Form von Festplattenspeicher) enthalten.

Es gibt mehrere Komponenten der Teradata-Architektur:

  • Parsing-Engine (PE) – Ähnlich einem „Leader-Knoten“ empfängt die Parsing-Engine die Anforderung von einem Benutzer und verwendet die SQL des Benutzers, um einen Abfrageplan zu erstellen, der dann an das BYNET verteilt wird.
  • BYNET – Die Kommunikations-Engine zwischen der Parsing-Engine und den Knoten (bekannt als AMP). Die BYNETs erhalten den Abfrageplan aus dem PE und entscheiden dann, welche AMP eingesetzt werden müssen.
  • Access Module Processor (AMP) – AMP fungieren als „Worker-Knoten“, die einen Abschnitt der verteilten Tabelle enthalten, und verarbeiten die Anfrage für den Abschnitt der Daten, der sich auf deren individuellen Datenträgern befindet. Die Zwischenergebnisse werden dann über BYNET an das PE weitergeleitet, welches die Daten seinerseits an den Benutzer weiterleitet.

Datentypen

Teradata speichert die Daten entweder im Zeilen- oder Spaltenformat, abhängig von der Datendefinitionssprache (DDL*) der Tabelle. Es kann sowohl tabellarische als auch verschachtelte Datenstrukturen aufnehmen, die aus Text (abgegrenzten) Dateien, JSON, größeren Zeichenobjekten (BLOB und CLOB) sowie Geodaten stammen.

*Beachten Sie, dass Teradata zwar die Tabellenspeicherung in beide Richtungen (Zeile oder Spalte) ausrichten kann, aber bei der Berechnung mit den Daten im Zeilenformat arbeitet. Daher kann der typische Leistungsgewinn aus spaltenbasierter Speicherung im Vergleich zu einer nativen spaltenbasierten Datenbank-Engine (Amazon Redshift oder Vertica) geringer sein.

Maximal empfohlene Datengröße

Teradata kann mehr als 50 Petabyte an On-premise-Kapazität unterstützen. Sie können mit deren privater Cloud eine ähnliche Skalierbarkeit erreichen, da sie auf der gleichen Hardware läuft, die auch für Installationen vor Ort verwendet wird. Da Teradata noch dabei ist, die Feinheiten der öffentlichen Cloud zu ergründen, ist Teradata auf AWS ein Cluster mit nur einem Knoten, der bis zu 48 TB HDD-Speicher unterstützt (SSD-Speicherlimits sind niedriger).

Datenbankverwaltung für Teradata

Implementierung von Teradata

Teradata bietet eine Schritt-für-Schritt-Anleitung für die Implementierung von Teradata auf AWS und Azure. Für Einzelheiten über die Implementierung von Teradata on-premise oder in der privaten Cloud von Teradata wenden Sie sich am besten direkt an Teradata.

Teradata bietet auch Implementierungsdienste an, um Sie bei der Einrichtung ihrer Plattform zu unterstützen.

Prozess für neue Daten

Sie können bei der Aufnahme von Daten in Teradata eine Standard-SQLCOPY-Operation nutzen. Höhere Volumina erfordern Teradatas proprietäre ETL-Tools, genannt Teradata Parallel Transporter (TPT).

Wartung

Während die Hardware-Komponente von Teradata vollständig verwaltet werden kann, ist dies bei der Tabellenarchitektur und der Abfrageoptimierung nicht der Fall. Um eine akzeptable Leistung von Teradata zu erreichen, müssen Sie Spaltenkodierung, Partitionierung, Indizes und Statistiken anwenden. Beim Tuning einer Teradata-Datenbank kann die allgemeine MPP-Tuning-Strategie angewendet werden.

Teradata-Fakten

Teradata hat einige der besten EXPLAIN-Pläne, die wir je gesehen haben

Wenn Sie schon einmal einen EXPLAIN-Plan auf Ihrer Datenbank ausgeführt haben, wissen Sie, dass dies technisch komplex sein kann und ein recht hohes Maß an Training erfordert, um effektive Lesevorgänge ausführen zu können. Teradatas Explain-Pläne sind menschenlesbar, was es sehr leicht macht, zu verstehen, wohin die Abfrage geht.

Hier ist ein Beispiel für einen EXPLAIN-Plan für einen vollständigen Tabellenscan von Teradata (aus Teradata Wiki):

EXPLAIN SELECT * FROM Emp_Table;

1. First, we lock a distinct SQL_CLASS."pseudo table" for read on a RowHash to prevent global deadlock for SQL_CLASS.Emp_Table.

2. Next, we lock SQL_CLASS.Emp_Table for read.

3. We do an all-AMPs RETRIEVE step from SQL_CLASS.Emp_Table by way of an all-rows scan with no residual conditions into Spool 1 (group_amps), which is built locally on the AMPs. The size of Spool 1 is estimated with low confidence to be 6 rows (342 bytes). The estimated time for this step is 0.03 seconds.

4. Finally, we send out an END TRANSACTION step to all AMPs involved in processing the request.
-> The contents of Spool 1 are sent back to the user as the result of statement 1. The total estimated time is 0.03 seconds.

If you see all-AMPs RETRIEVE by way of an all-rows scan in your plan, that means teradata is doing a Full Table Scan. So it is reading every row in the table.

Zum Vergleich hier einEXPLAIN-Plan für eine ähnliche Abfrage aus der Postgres-Dokumentation:

EXPLAIN SELECT * FROM tenk1;

                         QUERY PLAN
-------------------------------------------------------------
 Seq Scan on tenk1  (cost=0.00..458.00 rows=10000 width=244)

Entdecken Sie Ihre Liebe zur Analytik.

Business Intelligence, Big-Data-Analyse oder eine 360°-Ansicht Ihrer Kunden.
Was auch immer Sie benötigen, Looker steht Ihnen zur Seite. Sprechen Sie einfach mit unseren Datenexperten.

Demo anfordern