60
20. DOAG Anwenderkonferenz, Nürnberg 2007 1 Oracle vs. Teradata Zwei Datenbankarchitekturen im Vergleich Andreas Schmidt

Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

Embed Size (px)

Citation preview

Page 1: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 1

Oracle vs. Teradata

Zwei Datenbankarchitekturen im Vergleich

Andreas Schmidt

Page 2: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 2

Disclaimer

Trotz sorgfältiger Bearbeitung kann keine Gewährleistung für Vollständigkeit, Korrektheit

und Aktualität übernommen werden.

Page 3: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 3

Motivation

• Lösungen im Bereich großer Datenbanken

• Datawarehouses (DWH)

• Koexistenzen bei Kunden mit großem Datenvolumen:– Oracle für operatives System, Online

Transaction Processing (OLTP)

– Teradata mit einem separaten DWH

• Konkurrenzsituation

Page 4: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 4

Vorausschau

• wesentliche Unterschiede zwischen den beiden Datenbankarchitekturen

• Fokus liegt auf den Ansätzen, mit denen gerade unter dem Aspekt Performance große Datenmengen verarbeitet werden können

• Die Form der Datenspeicherung, Zugriffstechniken, Implementierung von Parallelität und Ausfallsicherheit, SQL Derivate und einige weitere Aspekte werden kurz dargestellt, insofern dies in einem Zeitrahmen von 45 Minuten möglich ist.

• Es handelt sich um einen technisch orientieren Vortrag, dessen Inhalt auch für Entscheidungsträger interessant sein kann.

• Nicht behandelt werden finanzielle oder lizenzrechtliche Aspekte.

Page 5: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 5

Einleitung (1)

• Definition: “Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS ist es, große Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern und benötigte Teilmengen in unterschiedlichen, bedarfsgerechtenDarstellungsformen für Benutzer und Anwendungsprogramme bereitzustellen.” [Wikipedia]

• Häufig wird dann auch die Software alsDatenbankmanagementsystem (DBMS) bezeichnet und die die verwalteten Daten als Datenbank (DB).

Page 6: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 6

Einleitung (2)

• Oracle, Teradata relationales Datenmodell bei Oracle und Teradata,

• Oracle Schritte objekt-relationales Datenbanksystem

• beides bekannterweise kommerzielle Produkte

• keine Lizenz- resp. Kostenthemen im Vortrag

• historische Betrachtung von Oracle wird hier aus Platz-und Zeitgründen verzichtet und dürfte auch im Rahmen der DOAG den Teilnehmern bekannt sein

• Entwicklung Teradata von einer „reinen Datenbankmaschine“ zur „geöffneten Unix Variante“

Page 7: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 7

Ausrichtung eines Datenbanksystemes

• KlassischeUnterscheidung zwischen– Online Transaction Processing, OLTP: viele kleine Anfragen

– Online Analytical Processing, OLAP: lang andauernde Auswertungen

• Nacheinanderbetrieb: Tagsüber OLTP, nachts OLAP

• häufig anzutreffende Assoziation:– Oracle = OLTP

– Teradata = OLAP

• Ermittlung von Kennziffern schwierig im Mischbetrieb

• Was ist der Unterschied zwischen OLAP und Reporting ?

• Data Mining im DWH

Page 8: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 8

Historie Teradata (Kurzfassung)

• Die Teradata Corporation wurde bereits im Jahre 1979 in Los Angeles gegründet und setzte sich massive Parallelverarbeitung zum Ziel. Auf eigener Hardware und einem eigenen Protokoll YNET wurde die ersten Datenbankcomputer (DBC) in den 80er Jahren verkauft. Das interne Betriebssystem TOS (Teradata Operating System) war 16bit-tigund lief auf Intel 286 bis 486er Prozessoren.

• Seit 1989 waren Teradata und NCR Partner bei der Entwicklung vonDBCs. Im Jahr 1991 wurde NRC von AT&T übernommen und 1992 wurde Teradata in NCR eingegliedert. Später wurde 1996 NCR Corp. inklusive Teradata wieder abgespalten.

• Für den Herbst 2007 soll Teradata eine eigenständige Einheit werden, was zu den üblichen Diskussionen und Spekulationen im Markt führt.

Page 9: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 9

Historie Teradata

• Die vermutlich größten Änderungen erfuhr das DBMS, als Mitte der 90er Jahre von der reinen Datenbankmaschine auf das NCR eigene Unix Derivat MP-RAS portiert wurde. Die Gründe für diesen Schritt waren sicherlich vielfältiger Natur, zumal man die Entwicklung und Pflege eines eigenen Betriebssytemes vermeiden wollte.

• Hierbei wurde mit den Parallel Database Extensions (PDE) der UnixKernel erweitert um notwendige Funktionen für die Portierung auf diese Plattform. Ende der 90er Jahren wurde diese Software auchrestrukturiert, um eine Portierung auf andere Betriebssysteme zu erleichtern, wobei man auch die Microsoft Linie anbieten wollte.

Page 10: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 10

Historie Teradata

• 1979–Gründung Teradata Corp in Los Angeles, California

• 1982–Patent YNET Technologie

• 1984–erster database computer DBC/1012–Wells FargoBank of California

• 1987–öffentliche AG

• 1989–Teradata und NCR Partner

• 1991–NCR Corporation übernommen von AT&T

• 1992–Teradata in NCR eingegliedert

• 1996–AT&T gliedert NCR Corp. mit Teradata Produkten aus; Teradata Version2

Page 11: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 11

Historie Teradata (2)

• 1997–Teradata Datenbank DWH Marktführer

• 2000–100+ Terabyte Systeme in Produktion

• 2002–Teradata V2R5

• 12/2002; PPI, Rollen und Profile, Kompression, etc.

• 2003–Teradata V2R5.1

• 12/2003; UDFs, BLOBs, CLOBs, etc.

• 2006–Teradata V2R6.2; BYNET V3 mit NCR 5450E/5450H

• 2007-eigenständige Firma

Page 12: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 12

unterstützte Plattformen

• Oracle: AIX, hp-ux, z/OS, zSeries Based Linux, Linux, MS Windows, Solaris et al.

• Teradata: NCR MP-RAS, MS Windows 2000, MS Windows Server 2003, SUSE Linux SLES 64bit– keine kostenlose Mini-Version

– nur Windows Demo Version

• allgemeine Ausführungen, sonst Oracle10gR2 bzw. Teradata V2R6.1

Page 13: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 13

Systemarchitekturen von Oracle und Teradata

• des Pudels Kern: unterschiedliche Schichten Datenbank, Betriebssystem und Disk Arrays

und deren Verwaltung untereinander

• Unterstützung von Filesystemen

• grundlegende Begriffe wie AMP, vproc und PE

Page 14: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 14

Filesystem(e)

• gemeint sind die Container für die Daten (und nicht Programme etc.)

• Oracle:– Raw Devices, diverse OS Filesysteme (wie

NTFS, ext2, ext3, reiserfs, ufs, vxfs, NFS!), OCFS, ASM

– Zugriffsarten versionsabhängig (Asynch I/O, Direct I/O)

• Teradata: eigenes Filesystem auf Volumes, basta!

Page 15: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 15

Oracles Systemarchitektur

• entnommen Oracle Doku 10g Concepts

Page 16: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 16

Formen des Zusammenklebens

• Einzelne Instanzen können u.a. durch den Log-Recovery-Mechanismus und DB Links zusammengebaut werden zu:– Cold Clone

– Hot Clone

– Standby

– Distributed

– Replication

– AQ

– Data Guard

– RAC

Page 17: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 17

verteilte Datenbanken

• Teradata kennt keine Database Links!

• kein Trend zu eigenen Datenbanken, hierarchische Strukturen innerhalb der Datenbank verbessern Projektintegration

• 3rd Party: GoldenGate Replication Products (gemäßDoku)

DB2 SQL/MP

Enscribe SQL/MX

Microsoft SQL Server Sybase

MySQL Teradata

Oracle alle ODBC-kompatible DBMS

Page 18: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 18

RAC

• Skalierbarkeit und Hochverfügbarkeit

• historisch gewachsen

• „shared everything architecture“ [Oracle RAC 10g, Technical White Paper]

• Oracle Clusterware: Kommunikationsinterface zwischen den Knoten

• früher: Austausch via Datenbank, false pinging → Performanceprobleme

Page 19: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 19

Teradata SW Schichten

Message Passing Layer

PDE BYNET

AMPs

vdisks

Parser Engine

Page 20: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 20

AMP

• Access Module Processor (AMP) verantwortlich für einen Teil der Datenbank

• ein AMP kontrolliert einen Teil einer Tabelle

• AMPs zuständig für die „physikalische Arbeit“ wie Erzeugung answer

set inklusive Sortieren, Aggregation, Formatierung und Konversionen

• bei Bedarf Verteilung einer Kopie an andere AMPs

• Sperren von Datenbanken und Tabellen

• CREATE, MODIFY, DROP, SELECT, INSERT, UPDATE, DELETE Records

• Accounting Statistiken

• Dispatcher verteilt Aufgaben an die AMPs

• Ergebnisse an Dispatcher

Page 21: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 21

AMP

• „Shared Nothing“ Architektur

• Jeder AMP (Access Module Processor) hat seinen eigenen Memory und ist verantwortlich für einen Plattenbereich

• Kommunikation der AMPs erfolgt anhand des BYNET

• bis zu 80 Tasks parallel

Page 22: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 22

Cluster und Cliques

• Menge von Knoten, die Zugriff auf eine Menge von Disk Arrays teilen

• Jeder Knoten kann auf jede VDISK zugreifen

• Schutz vor Ausfall eines Knotens

• Fällt ein Knoten aus, übernehmen die anderen Knoten (vproc Migration)

• Large Cliques

• Hot Standby Node

Page 23: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 23

Disk Arrays

• RAID Technologie– RAID 0: Striping (wird bei Teradata i.a. nicht

empfohlen)

– RAID 1: Spiegelung Engenio (LSI Logic) + EMC

– RAID 5: Parity Bits

Page 24: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 24

Fallback Ebenen

• Protection auf Systemebene (low level)– Disk Arrays

– Cliques und vproc Migration

• Protection auf DB Ebene– Fallback Table

– Transient Journal

– Down AMP Recovery Journal

– Permanent Journal

– ARC

– NetVault und NetBackup

Page 25: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 25

Fallback Table

• Tabelle ist intern doppelt vorhanden

• Blöcke werden neben dem Primary AMP noch auf dem Secondary AMP gespeichert

• Zusätzlicher Sicherheitslevel oberhalb RAID

• Übernahme bei Ausfall eines AMP

• Nachteil: doppeltes I/O, doppelter Platzbedarf

• Fallback Clusters

Page 26: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 26

Journaling

• Journaling bei Teradata: Transient undPersistent Journal

• Einstellung auf Ebene Datenbank/Tabelle

• steuert Umfang und Art der RecoveryObjekte

Page 27: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 27

Recovery Journal

• AMP down → Aktivierung Recovery Journal (transparent)

• im Log werden Row Ids veränderter Sätze festgehalten

• AMP wieder verfügbar → Abarbeitung der notwendigen Operationen

• Recovery Journal entfernen

Page 28: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 28

Transient Journal

• Transient Journal zuständig für Integrität der Transaktionen

• speichert nur „Before Images“

• für automatischen Rollback bei Fehlern in Transaktionen

• bei ROLLBACK werden die Before Images wieder in die Tabellen eingespielt

• Before Images werden anschließend gelöscht

Page 29: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 29

Permanent Journal

• Optionales benutzerdefiniertes, systemverwaltetes Logging zwecks Recovery zu einem bestimmten Zeitpunkt

• Recovery bei Hardware- oder Softwarefehlern

• wird spezifiziert für– Datenbank

– einzelne Tabellen

• beide Typen möglich– Before Images → Rollback

– After Images → Rollforward

• reduziert Notwendigkeit von Full Table Backups

• Weg zum Recovery von NO FALLBACK Tabellen

• zusätzlicher Plattenplatz erforderlich

• Archive und Recovery Usereingriff erforderlich

Page 30: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 30

Archivierung und Recovery

• ARC: Archive/Recovery Utility– läuft unter IBM, Unix und Wndows 2000

– archiviert und restored Tabellen

– kopiert Daten zu/von Archive Medien

– Angabe eines Checkpoints

• Open Teradata Backup– NetVault von BakBone Software

– NetBackup von VERITAS (eingeschränkter Support)

– Windows Front Ends zu ARC

– Skripterstellung

– Job Scheduling und Bandverarbeitung

Page 31: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 31

Teradata File System Überblick

• 1 Sektor = 512 Bytes

• 1 Cylinder = 3872 Sektoren ≈ 2 MB

• dreistufiger Datenzugriff beim Adressieren:– Master Index: enthält einen Eintrag für

allokierten Cylinder

– Cylinder Index: enthält Liste der Datenblöcke und freien Sektoren

– Data Block: enthält eine oder mehre Rows, immer komplett

Page 32: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 32

Blöcke & Co.

• Teradata hat konsequent variable Blockgröße (-127.5 kB)

• Blöcke gesplittet, zusammengefaßt oder in unterschiedlichen Stufen automatisch reorganisiert bei Bedarf (<0 OLTP)

• INSERT, UPDATE: Split, falls maximale Blocksize erreicht:– falls row oversized --> drei Blöcke

– sonst zwei

Page 33: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 33

Blöcke

• >0: keine Chained Rows

• freie Blöcke werden gesammelt und wenn möglich, zusammengeführt

• Cylinder Full: kein hinreichend großer Block in der Freiliste– Defragmentation: noch genügend Platz im Cylinder insgesamt;

Datenblöcke werden an den Anfang des Cylinders, geschoben.

– Cylinder Migrate: bis zu 10 Blöcke werden zu einem logisch benachbarten Cylinder verschoben

– Cylinder Split: freier Cylinder wird allokiert und bis zu 20 Blöcken werden dahin verschoben

– Mini-Cylpack: Blöcke werden auf logisch vorhergende Cylinder verschoben, bis ein Cylinder leer ist

Page 34: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 34

Datentypen (Built in)

Teradata Oracle

BYTEINTSMALLINTINTEGER NUMBERDATE inkl. ZeitTIMETIMESTAMP TIMESTAMPINTERVAL YEAR, ... INTERVAL YEAR, ...- BINARY_FLOATFLOAT BINARY_DOUBLEDECIMAL(n,m)CHAR(n) - 64000 - 2000

VARCHAR(n) - 64000 - 4000

CLOB – 2GB - 4 GBBLOB – 2 GB LONG, -4 GBGRAPHIC(n) -32000VARGRAPHIC(n) -32000

Page 35: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 35

CHAR / DATE Spaltenattribute

• auf Spalten- und damit Serverebene (und nicht auf Client-/ oder Sessionebene!)– Zeichensatz (Länge logisch definiert!)

– [NOT] CASESENSITIV

– UPPERCASE

– Format Phrase für Datumsfelder

Page 36: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 36

Objekte in der Datenbank

• typische Objekte: Tabellen, Indizes, Views, Materialized Views, Stored Procedures, Trigger, UDF

• Sequence Generator vs. Identity Column

• Teradata: „Datenbanken“ + User– Unterschied: Password

– hierarchische Beziehung

– Baumstruktur

Page 37: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 37

Hierarchie von Datenbanken

User DBC

User SYSDBA

DB1 UserXDB2

UserA UserB UserC

Page 38: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 38

SQL & Co.

• beide RDBMS unterstützen SQL als Abfragesprache

• orientieren sich an den Standards SQL-92 und SQL:2003

• Abweichungen und Erweiterungen von den jeweiligen Standards

• CONNECT BY vs. Rekursive WITH Klausel

Page 39: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 39

Teradata Modus

• spezielles von Teradata implementiertes Transaktionsverhalten

• ANSI Modus ebenfalls möglich

• Teradata Modus bevorzugt in DWHs: BTET ANSI

Set table Multi Set Table

autocommit explizites commit

not case specific case specific

Page 40: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 40

Stored Procedures

• Voraussetzung immer bestimmte C Compiler bei Teradata

• Oracle: C Compiler oder interner Interpreter

• Externe Funktionen und Methoden können analog zu Oracle eingebunden werden

• mein Eindruck: Werden bei Teradata nicht so stark fokussiert wie bei Oracle

Page 41: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 41

Beispiel Teradata Stored Procedure

CREATE PROCEDURE NewProc (IN name CHAR(12),

IN num INTEGER,

IN dept INTEGER,

OUT dname CHAR(10)

INOUT p1 VARCHAR(30))

L1: BEGIN

DECLARE CONTINUE HANDLER FOR SQLSTATE value '23505'

L2: BEGIN

SET p1='Duplicate Row';

END L2;

L3: BEGIN

INSERT INTO Employee (EmpName, EmpNo, DeptNo)

VALUES (name, num, dept);

SELECT DeptName

INTO dname FROM Department

WHERE DeptNo = :dept;

IF SQLCODE <> 0 THEN LEAVE L3;

...

END L3;

END L1;

Page 42: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 42

Security, Roles

• Teradata:– Rollen greifen selbstverständlich auch bei

Views, Stored Procedures

– Verschachtelungstiefe gering

– Verschlüsselung und Authentifizierung kann aktiviert werden ohne kostenpflichtige Option

• Oracle: Encryption Spalte / Tablespace

Page 43: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 43

Storage und Administratives

• ein wesentlicher Unterschied: Teradata kennt keine Tablespaces!

• HOW TO STOP DEFRAGMENTING AND START LIVING: THE

DEFINITIVE WORD ON FRAGMENTATION [Metalink]

• Volume steht dem System zur Verfügung und kann Datenbanken und Usern zugeordnet werden

• drei Kategorien von Plattenplatz:– Permanent Space

– Spool Space

– Temporary Space

Page 44: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 44

Perm Space

• Perm Space nötig für Tabellen und Indizes sowie Stored Procedures

• Views, Macros, and Triggers benötigen keinen Perm Space

• Nullsummenspiel

• kann dynamisch verändert werden

• Limit / AMP

Page 45: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 45

Spool Space

• Temporär für Sessions benötigt, vergleichbar mit TEMPORARY Tablespaces in Oracle

• Output von Queries

• Volatile Tables

• kann dynamisch verändert werden

• Limit / Amp

• kritische Größe im DBA und SQL Statements wg. Shared Nothing Architektur

Page 46: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 46

Temporary Space

• nur für Global Temporary Tables

• kann dynamisch verändert werden

• Limit / Amp

• Analogie zu Oracle: Temporäre Tablespaces ?

Page 47: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 47

Primary Index

• zentrale Bedeutung

• steuert die Verteilung über die Platten und den Zugriff

• wird beim Erzeugen einer Tabelle festgelegt

• kann nicht mehr nachträglich verändert werden

• u.U. Vorabanalysen sinnvoll

• Dictionary View DBC.TableSize[x]

Page 48: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 48

Ermittlung Verteilung via SQL

SELECT

HASHAMP(HASHBUCKET(HASHROW

(Customer_number))) AS "AMP#",

COUNT(*) FROM Customer

GROUP BY 1

ORDER BY 1;

Page 49: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 49

Primary Index

Index Erläuterung Oracle

UPI Unique Primary Index -

NUPI Non Unique Primary Index -

USI Unique Secondary Index x

NUSI Non Unique Secondary Index x

• Index kann eine oder mehrere Spalten umfassen

• Besonderheiten:– alle Bestandteile müssen bekannt sein!

– keine Ordnung (ausgenommen SI ordered)

Page 50: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 50

Primary Index und Hashing

• Hashing-Verfahren zieht sich konsequent durch die Teradata Architektur

• potenzieller Stolpersteine für Newcomer

• Sekundärindexe möglich:– Unique

– Non-Unique

– Sorted

• Table Scans

Page 51: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 51

Vergleich mit Oracles Indizes

• Oracle verwendet durchgängig B-Bäume als Indexstruktur– vorteilig: flexibel, Ordnungsrelation

– nachteilig: Zugriffstiefe kann variieren, Reorganisation erforderlich

• funktionsbasierte Indexe bei Oracle

• Partitionierung bei beiden möglich

• Oracle: local und global partitioniert

• ferner Bitmap-Indexes

Page 52: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 52

Partitionierung von Tabellen

• Partitionierung wurde eingeführt, um effizienter auf große Datenmenge zugreifen zu können

• Partition Ranges anstelle von Full Table Scans oder eines Secondary Index Overheads

• Rolling Windows

• häufig Zeitgrenzen (Monate, Wochen etc.)

• schnelles Löschen ganzer Partitionen

Page 53: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 53

Oracle Partitionierung

• Oracle unterstützt die folgenden Möglichkeiten zur Partitionierung:– Range Partitioning

– List Partitioning

– Hash Partitioning

– Composite Partitioning

• statische Zuordnung der Partitionen

• ggf. auch statische Zuordnung zu Tablespaces

• Zuordnung kann in der Praxis durch PL/SQL Routinen realisiert werden

• Unterscheidung zwischen Local und Global Partitioned Indexes

Page 54: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 54

Partitioned Primary Index (PPI)

• dynamische Partitionierung bei Teradata: Ordnung der Rows pro AMP

• max. 65535 Partitionen pro AMP

• nur bei BASE Tables

• auch bei VOLATILE und GLOBAL TEMPORARY Tables ab V2R6.1

• typischerweise mit– CASE_N

– RANGE_N

• Angabe von– NO CASE, NO RANGE, UNKNOWN

Page 55: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 55

Beispiel SQL

CREATE TABLE Sales_History

(store_id INTEGER NOT NULL,

item_id INTEGER NOT NULL,

sales_date DATE FORMAT 'YYYY-MM-DD',

total_revenue DECIMAL(9,2),

total_sold INTEGER,

note VARCHAR(256) )

PRIMARY INDEX (store_id, item_id)

PARTITION BY RANGE_N (

sales_date BETWEEN

DATE '2001-01-01‘ AND DATE '2010-12-31'

EACH INTERVAL '1' MONTH );

Page 56: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 56

Materialized Views & Co.

• Snapshots oder im Teradata Jargon Indexe (Join, aggregiert, Hash)

• redundante Datenspeicherung beschleunigen bestimmte Leseoperationen

• Nachteil: erhöhter Platzbedarf

• nur bei Oracle: Database Links

• Teradata kennt nur synchronen Modus: interner Refresh, keine periodischen Vorgänge

Page 57: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 57

weiter zu Materialized Views

• Typen von Materialized Views (Oracle DWH Guide)– Materialized Views mit Aggregaten

– Materialized Views nur mit Joins

– Nested Materialized Views

• Join Indexe:– Single-Table Join Index

– Multi-Table Join Index

– Aggregate Join Index (AJI)

• Hash Indexes

Page 58: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 58

Utilities und Tools (1)

• diverse Load- und Unload-Utilities zusammen mit der Teradata Datenbank .

• Windows GUI Tools bei Teradata ODBC orientiert

• Oracle:– SQL*Plus

– Data Pump Export

– Data Pump Import

– SQL*Loader

– Export

– Import

Page 59: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 59

Utilities und Tools (2)

• Teradata:

– BTEQ

– Fast Export

– Fast Load

– Multi Load

– Parallel Data Pump

Page 60: Oracle vs. Teradata Zwei Datenbankarchitekturen im · PDF fileMicrosoft SQL Server Sybase MySQL Teradata Oracle alle ODBC-kompatible DBMS. 20. DOAG Anwenderkonferenz, Nürnberg 2007

20. DOAG Anwenderkonferenz, Nürnberg 2007 60

Quellen

• [Oracle 10gR2 Documentation]

• [Teradata V2R6.1 Documentation]

• [John Catozzi, Sorana Rabinovic: OperatingSystem Extensions for the Teradata Parallel VLDB. Proceedings of the 27th VLDBConference, 2001]