Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal...

59
1 © 2016 Teradata - Property of Teradata #TDPARTNERS16 GEORGIA WORLD CONGRESS CENTER Teradata Database Architecture Overview Todd Walter Chief Technologist Teradata Session #637 – 11:30 – 12:15 Sunday, September 11, in C101

Transcript of Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal...

Page 1: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

1© 2016 Teradata - Property of Teradata

#TDPARTNERS16

GEORGIA WORLD CONGRESS CENTER

Teradata Database Architecture OverviewTodd WalterChief TechnologistTeradata

Session #637 – 11:30 – 12:15 Sunday, September 11, in C101

Page 2: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

2© 2016 Teradata - Property of Teradata

2500 BCBuilding Pyramids

• Problem - Feed tens of thousands of workers building the pyramids

– With little technology– Difficult communications

• Solution – Take the sole proprietor model and replicate it– Many individual bread makers– Many individual butchers– Each delivers their capacity– Collectively they build the pyramids

• How do you support an increase in the workforce?

Page 3: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

3© 2016 Teradata - Property of Teradata

1906Large Mail Order Retail Business

• Problem: Running a mail order retail business • Solution: Massively parallel processing

individualized CRM– Each customer recorded on index cards in

giant card file– Thousands of clerks– Each order added to customer’s card– Suggestions handwritten on receipt– Capturing and using detailed transaction

history

• How do you handle an increase in customers or orders?

--Rich701’s photostream - Flickr

Page 4: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

4© 2016 Teradata - Property of Teradata

1979Birth of Teradata

• Microprocessor - 8086• Personal computer - Commodore 64, Apple I, TRS80• Disk drive - 200MB weighs 30lbs and requires a

washing machine sized cabinet• Enterprise computing - Blue or Bunch mainframe• Client/Server computing - didn’t exist• Internet and e-mail - Only if you are a university

researcher or DoD Teradata DBC/1012

Teradata was founded to solve enterprise Terabyte problems utilizing microprocessors and commodity disks.

Page 5: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

5© 2016 Teradata - Property of Teradata

What Do These Have In Common?

“Shared Nothing”• Take a big task• Slice it vertically into a (large) number of smaller tasks• Perform those tasks independently• Balance the work so all the tasks complete simultaneously• Assign the tasks evenly among the physical resources• Communicate only at the beginning and end of a task

Benefits• Large task completes in a short elapsed time• Maximizes use of resources• Minimizes communication bottlenecks

Page 6: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

6© 2016 Teradata - Property of Teradata

What Makes Teradata UniqueKey Components/Concepts

Page 7: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

7© 2016 Teradata - Property of Teradata

Teradata Data Warehouse Technology Is Unique

• Parallelism built-in from the ground up• Dedicated to automatic management and

operation• Easy and fast data movement in and out• Committed to the highest levels of reliability and

availability• High concurrency mixed workload management• Parallel extensibility for high performance dynamic

functionality• Unequaled scalability in every dimension

Architected to deliver business value to users

Page 8: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

8© 2016 Teradata - Property of Teradata

What Makes Teradata UniqueKey Components/Concepts

Teradata

MPP Architecture

Data Management

Query Execution

OptimizerExtensibility

Workload Management

Availability

Page 9: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

9© 2016 Teradata - Property of Teradata

• As the system scales (e.g. add more nodes), it should be no additional administrative overhead.

• As it scales, there should be linear improvement of performance.

• The rest of the world is catching on to our MPP concept. We’ve done it from the day one.

• Teradata no longer assumes that we always provide the hardware/platform that our database runs on.

Teradata MPP Architecture Key Concepts

Page 10: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

10© 2016 Teradata - Property of Teradata

Teradata MPP Server Architecture

• Nodes– Incrementally scalable to 2048 nodes– Current state of the art Intel chips

• Operating System– Linux (SUSE)

• Storage– Independent I/O– Scales per node

• BYNET Interconnect– Fully scalable bandwidth

• Connectivity– Fully scalable– Traffic spread across all nodes– Channel – ESCON/FICON– LAN, WAN

• Server Management– One console to view the entire system

Shared-Nothing: MPP Architecture

CPU1 CPUn

Memory

Operating Sys

CPU1 CPUn

Memory

Operating Sys

CPU1 CPUn

Memory

Operating Sys

CPU1 CPUn

Memory

Operating Sys

Server Management

Dual BYNET Interconnects

LAN/WAN/Channel

Page 11: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

11© 2016 Teradata - Property of Teradata

Leveraging Extended Memory Space

Sophisticated algorithms to track usage, measure temperature, and rank data

• Temperature weightings for Tactical and Strategic I/O’s

• Logical I/O’s affect data temperature

Compliments FSG cache

Dynamically adjusts to new query patterns

Intelligent Memory

most recently

used data

most frequentlyused data

Hottest data placed and maintained in memory,

aged out as it cools

cool out very hot in

FSG Cache

Temporarily store data required for current queries, purges least recently used

Page 12: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

12© 2016 Teradata - Property of Teradata

BYNET™ Software

• Optimized for Teradata Active Data Warehouse Performance– Linearly scalable bandwidth– BYNET Low Latency Interface (BLLI) – Streamlined communication protocol– BYNET software provides unique Teradata features: broadcast message

support, row merge support, multi-fabric message traffic shaping, software guaranteed message delivery (point to point and broadcast)

– Broadcast reliability is implemented in software in the form of multiple virtual broadcast trees.

– Supports several physical fabrics; InfiniBand , Ethernet (1Gb & 10Gb), Native BYNET.

• Proven High-Availability– Each fabric is fault tolerant (multiple paths, redundant power & cooling)– 2 active and independent fabrics (no single point of failure) Node

Node Node

Node Node Node Node

Node

Node Node

Node Node Node Node

Node

Node Node

Node Node Node Node

1n

Node Node

Node

NodeNode

Node

Multiple Simultaneous Point-to-Point Messaging

Broadcast Messaging(Multiple Virtual Broadcast Trees)

The Teradata Optimizer chooses between Point-to-Point and Broadcast Messaging to select the most effective communication.

Node

Page 13: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

13© 2016 Teradata - Property of Teradata

InfinibandIntegrated Communication for Teradata Unified Data Architecture

SAS

AsterTeradataHadoop

External Interfaces

Hadoop Hadoop Hadoop Node A Node B Node C Node DNode 1 Node 1 Node 1 Node 1

PE

Infiniband

Users, BI Tools, Visualization Tools

Corporate Network

External Data

Terada Unity

Teradata Parallel

Transporter (TPT) / Teradata Data

Mover

Page 14: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

14© 2016 Teradata - Property of Teradata

Teradata Systems Management

Administrative Workstation

Interact with Customer Support for proactive

intervention and system metrics

Customer Support

Enterprise Management

SystemsSystemAdministration

Escalate events to Enterprise Management Systems via

SNMP or WMI

SecureCommunication

GatewayFilter and display relevant events locally

Distributed system management agents collect

informationCollate and Recognize

system level events

Node Amps

Node Amps

Node Amps

Node Amps

Node Amps

Node Amps

Node Amps

Node Amps

Node Amps

Node Amps

Node Amps

Node Amps

Node Amps

Node Amps

Node Amps

Node Amps

Page 15: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

15© 2016 Teradata - Property of Teradata

Summary Teradata is Teradata

Teradata Database on …

Public Cloud

Teradata Cloud

Managed Cloud

Teradata Database on VMware®

Private Cloud

Teradata Workload-Specific Platform Family

On-Premises

Page 16: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

16© 2016 Teradata - Property of Teradata

What Makes Teradata UniqueKey Components/Concepts

Teradata

MPP Architecture

Data Management

Query Execution

OptimizerExtensibility

Workload Management

Availability

Page 17: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

17© 2016 Teradata - Property of Teradata

• Basis of Teradata scalability– Each AMP owns an equal

slice of the disk– Only that AMP reads that slice

• No single point of control for any operation

– I/O, Buffers, Locking, Logging, Dictionary

– Nothing centralized– Exponential communication

costs avoided

Shared Nothing – Managing the DataKey Concepts

# units of parallelism

Coo

rdin

atio

n co

st

Teradata LogLocksBuffers

I/O

Page 18: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

18© 2016 Teradata - Property of Teradata

• Even distribution results in scalable performance

• Done in real-time as data are loaded, appended, or changed.

• Hash map defined and maintained by the system- 2**32 hash codes, 1,048,576 buckets distributed

to AMPs

Teradata Data Management

AMP1

Table A Table B Table C

AMP2 AMP3 AMP4 AMPn…………………………………………

Teradata Parallel Hash Function RowHash (Hash Bucket) Data Fields

Primary Index

Rows automatically distributed evenly by hash partitioning• Primary Index (PI) column(s) are hashed• Hash is always the same - for the same

values• No reorgs, repartitioning, space

management

Page 19: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

19© 2016 Teradata - Property of Teradata

The Magic of Row Hash

• Store rows in a table in row hash order (logically)• Direct access via Primary Index

– For continuous update or single lookup– Hash the value– Go direct to AMP (routed by BYNET)– MI (in memory) -> CI -> data block– Very sparse N* tree– MI and CI very small structures– Guarantees no more than 2 IOs to get to any record via PI– CI cached if frequent access– “First Index is free”

• Sort merge join with no sort– Joins which never require scan of the large table– E.g. Star Join doesn’t need to hash join or spool the fact table and sort it to join

RowHash (Hash Bucket) Data Fields

Page 20: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

20© 2016 Teradata - Property of Teradata

• Blocks stored in 12MB allocation units - “cylinders”

• Indexes are just rows in tables

• Teradata wrote a new rule book– Old one written by IBM 40 years ago,

used by most mainstream DBMSs today - except Teradata

• File system built of raw slices• Rows stored in blocks

– Variable length– Grow and shrink on demand– Rows located dynamically

- May be moved to reclaim space, defrag– Maximum block size is configurable

- System default or per table- 8K to 1MB- Change dynamically

File System

Teradata

Page 21: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

21© 2016 Teradata - Property of Teradata

• Space allocation is entirely dynamic- No tablespaces or journal spaces or any

pre-allocation- Spool (temp) and tables share space pool,

no fixed reserved allocations• If no cylinder free, combine partial

cylinders- Dynamic and automatic- Background compaction based on

tunable threshold • Quotas control disk space utilization

- Increase quota (trivial online command) to allow user to use more space

Space Allocation

Page 22: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

22© 2016 Teradata - Property of Teradata

No PartitionsLooking for a customer’s

transactions across all time and states

Single Level Partition

Looking for two particular weeks

Multi-level PartitionsLooking for two states

in two weeks

Partitioned Primary Index (PPI)Comparison

Full

Tabl

e Sc

an Very Selective ScanningSelective Scanning

Page 23: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

23© 2016 Teradata - Property of Teradata

Teradata Columnar

• Key advantages:– Better query performance – read only the columns you need– Smaller data size – better compression on homogeneous column values

• Query execution optimized for column processing• Full hybrid columnar

– Row tables, column tables, mixed tables, and mixed index and table– Physical design optimization option

Row Store – Employee Table

Emp ID Lastname Firstname Salary

1 Smith Joe 40000

2 Jones Mary 50000

3 Johnson Cathy 44000

Column Store – Employee TableEmp ID Lastname Firstname Salary

1 Smith Joe 40000

2 Jones Mary 50000

3 Johnson Cathy 44000

Page 24: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

24© 2016 Teradata - Property of Teradata

Compression

Multi Value Algorithmic Data Block

What it is • Dictionary-based compression that replaces values specified by the user

• Make your own - It applies a compression / decompression algorithm to a column of data

• It compresses all types of data in a data block before it’s stored on a disk

Suited for • Data with repeated values

• Data with well-known attributes

• Data with a low frequency of access (cold data)

Type of Data • NULLs + Common values • UTF-16 to UTF-8, long strings

• Works on any/all data

Characteristic • Zero CPU overhead • Can write custom procedures

• Built-in library

Compression Ratio

• 30-40% • 50% (2x) • 3X or more

Page 25: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

25© 2016 Teradata - Property of Teradata

Integrated Management of Hybrid Storage

• Automatic

• Transparent

• No DBA effort

• No SQL changes

• Maintain user access to ALL data for analysis

• Avoid separate systems and copies of data for each use case

TeradataIntelligent Memory

TeradataVirtual Storage

TeradataCompress On Cold

Internalmemory

SSD

HDD

Co

ol

Ho

tW

arm

Page 26: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

26© 2016 Teradata - Property of Teradata

• No reorgs– Don’t even have a reorg utility

• No index rebuilds• No re-partitioning• No detailed space management• Easy database and table definition• Minimum ongoing maintenance

SummaryAutomate and Eliminate

• Database should manage the data, not DBA or the user

• Data management should be as invisible as possible

– Define and forget

• Enables user self-service – All performed automatically

Page 27: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

27© 2016 Teradata - Property of Teradata

What Makes Teradata UniqueKey Components/Concepts

Teradata

MPP Architecture

Data Management

Query Execution

OptimizerExtensibility

Workload Management

Availability

Page 28: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

28© 2016 Teradata - Property of Teradata

Overview: Query Execution

• Teradata query execution is designed to make every analytic query scalable

• Enabling in-database execution is a primary goal• Parallelization is built-in throughout all operations and

is fully automatic

Query Execution

Page 29: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

29© 2016 Teradata - Property of Teradata

• Gateway– Connect sessions to outside world– Balance external traffic workload

across nodes

• Parsing Engine (PE)– Parse & Optimize– Dispatcher to AMPs

• AMP (Access Module Processor)– Execution engine– Logs & locks– Data dictionary– I/O management

• “Vprocs”– Virtual “processors” sharing one

physical node

What’s on a Node

Parser

AMP 1

SMP Node

Virtualized!Gateway

AMP n

Parser

Page 30: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

30© 2016 Teradata - Property of Teradata

Query Parallelization

• Query parsing, management is fully distributed across the nodes

– No head node/coordinator node

• All operations fully parallel– No single threaded operations– Scans, Joins, Index access,

Aggregation, Sort, Insert, Update, Delete

– Ordered Analytics– Extensibility functions– Result return

“Conditional Parallelism”

Teradata“Unconditional

Parallelism”

Join

Query Starts

Query Optimization

Scan

Page 31: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

31© 2016 Teradata - Property of Teradata

Data Access Methods

• Scan– Read all rows of a table– Executed on all AMPs simultaneously, each AMP reads the rows hashed to that AMP– A table or spool will be read, rows will be qualified (Row Selection)– Unneeded columns will be removed (Projection)– Result will be written to a spool file– Only interaction between the AMPs is for each of them to report completion

• Primary Index– Unique (UPI) and Non-Unique (NUPI)– Allows efficient direct access by value or via join

• Additional Indexes– Allow optimization of access – Used to support workloads that are high frequency, high SLA– Selected for use automatically by the query optimizer– PI, PPI and high performance scan eliminate need for many indexes

Spool

Row Selection

Projection

Table / Spool

Spool

Row Selection

Projection

Table / Spool

Page 32: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

32© 2016 Teradata - Property of Teradata

Secondary Index: Non Unique Secondary Index (NUSI)

Non Unique Secondary Index (NUSI)• Designed for accessing one or a small number of values where many

rows have the same value• Index entries are stored on the same AMP with the data rows

Spool

Index Value QualificationRetrieve Data

RowsData Row

Selection & Projection

Index Subtable

Spool

Index Value QualificationRetrieve Data

RowsData Row

Selection & Projection

Index Subtable

Spool

Index Value QualificationRetrieve Data

RowsData Row

Selection & Projection

Index Subtable

Spool

Index Value QualificationRetrieve Data

RowsData Row

Selection & Projection

Index Subtable

• An index entry is a value followed by a list of rowids of rows containing that value

• Ordered by hash of value being indexed• Execution via a NUSI reads the index first,

then uses the rowids to retrieve the data rows

– Executed on All-AMPs simultaneously

Page 33: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

33© 2016 Teradata - Property of Teradata

Secondary Index: Unique Secondary Index (USI)

Unique Secondary Index (USI)• Designed for accessing one or a small number of rows by value

– Enforces Uniqueness

• Index entry is stored on hash AMP of value• Index entry contains the value and the

single rowid• Execution via a USI accesses the index

entry on the hash AMP(s) of the index value(s), then sends a message to the AMP of the rowid to retrieve the row

– Executed on the minimum number of AMPs possible

Spool

Index Value Qualification

Retrieve Data Row

Data Row Selection & Projection

Index Subtable

Spool

Index Value Qualification

Retrieve Data Row

Data Row Selection & Projection

Index Subtable

Spool

Index Value Qualification

Retrieve Data Row

Data Row Selection & Projection

Index Subtable

Spool

Index Value Qualification

Retrieve Data Rows

Data Row Selection & Projection

Index Subtable

Page 34: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

34© 2016 Teradata - Property of Teradata

• Uses Spool for intermediate results – Intermediate spools can be released

after use (marked “last use” in explain)

• Join preparation works in parallel across all AMPs

– Selection to eliminate rows– Projection to eliminate columns– Eliminate bytes as early in the plan as

possible• Leverages BYNET to get data co-

located for join– Redistribute : Hash by some set of

attributes, often the join columns– Duplicate: Make a full copy of the

prepared set on every AMP

• Collect results in receivers and write to spool or feed directly to first stage of sort if needed

Join Preparation Query Execution

Redistribute or duplicate to all AMPs

Spool

Row Selection

Projection

Collect and Sort

Table / Spool

Spool

Row Selection

Projection

Collect and Sort

Table / Spool

Spool

Row Selection

Projection

Collect and Sort

Table / Spool

Spool

Row Selection

Projection

Collect and Sort

Table / Spool

Page 35: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

35© 2016 Teradata - Property of Teradata

Joins

• Joins in Teradata all work in parallel and scale linearly– Must have data co-located in an AMP to join

• Join operates on two relations producing a join result which can be spooled locally or piped into redistribution and or sort as required

– Queries with more than two tables are made into a series of two relation joins

• Many types of join operations available – Merge Join– Hash Join– Product Join– Outer Join versions of each– Exclusion and Inclusion Join for sub-query processing

• Each AMP performs it’s part of the join independently– Communicate only when completely done

Supplier PartSupp Customer 20% Selected Order

S+PS C+OPart LineItem

(S+PS)+P (C+O)+L

RESULT

Page 36: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

36© 2016 Teradata - Property of Teradata

• Aggregation makes full parallel use of all AMPs– Final result and final aggregation distributed across

the platform– Linearly scalable across any data size

• Perform local aggregation resulting in (at most) one record per group per AMP

– Skip if we know that little or no reduction will occur• Redistribute by hash on GROUP BY columns to

get all rows for a group together and distribute groups evenly across all AMPs

– Skip if we know already distributed by GROUP BY columns

• Receive redistributed rows and perform Global Aggregation

• Caches at both local and global level do aggregation in-memory unless number of groups is very large

– Cache spill that adapts to data pattern (e.g. most frequent keys don’t spill)

Parallel Aggregation Assisted by the Optimizer

Distribute Aggregation

Spool

In-Memory Local Aggregation

Hash on GROUP BY Columns

In-Memory Global Aggregation

Table / Spool

Spill from Local Aggregation

Spill from Global Aggregation

Spool

In-Memory Local Aggregation

Hash on GROUP BY Columns

In-Memory Global Aggregation

Table / Spool

Spill from Local Aggregation

Spill from Global Aggregation

Spool

In-Memory Local Aggregation

Hash on GROUP BY Columns

In-Memory Global Aggregation

Table / Spool

Spill from Local Aggregation

Spill from Global Aggregation

Spool

In-Memory Local Aggregation

Hash on GROUP BY Columns

In-Memory Global Aggregation

Table / Spool

Spill from Local Aggregation

Spill from Global Aggregation

Page 37: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

37© 2016 Teradata - Property of Teradata

Merge of an Answer Set

• Each AMP sorts and spools its part of answer set• Query complete reported to application• Application performs fetch, interface (JDBC, ODBC,…) requests buffer of rows• Each node merges its contributing AMPs answer set into a buffer for the BYNET• BYNET merges the sorted buffers and fills a buffer to return to the interface• All levels merge in parallel, and data is

transferred using point-to-point messages, maintaining linear scalability as the size of the answer set or number of nodes increases

• The "big sort" penalty has never existed (N(log(N) algorithm, N divided by # of AMPS)

• Final answer set never has to be brought together into a single node for a large final sort – only merge a buffer at a time on demand

PE

Node

BYNET

, , ,AMP AMP AMP

4 8 7 11

Node

, , ,AMP AMP AMP

6 10 12 91 23 5

PE

Node

BYNET

AMP AMP AMP

4 1 3

8 7 11

Node

AMP AMP AMP

6 2 5

10 12 9

PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

1, 3, 4 2, 5, 6

8 7 11 10 12 9

PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

1, 3, 4 2, 5, 6

8 7 11 10 12 9

PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

21

3, 4 5, 6

8 7 11 10 12 9

PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

21

3, 4, 7 5, 6, 9

8 11 10 12

PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

2

3, 4, 7 5, 6, 9

8 11 10 12

1PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

23

4, 7 5, 6, 9

8 11 10 12

1PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

23

4, 7, 8 5, 6, 9

11 10 12

1PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

3

4, 7, 8 5, 6, 9

11 10 12

1, 2PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

53

4, 7, 8 6, 9

11 10 12

1, 2PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

53

4, 7, 8 6, 9, 10

11 12

1, 2PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

5

4, 7, 8 6, 9, 10

11 12

1, 2, 3PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

54

7, 8 6, 9, 10

11 12

1, 2, 3PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

54

7, 8, 11 6, 9, 10

12

1, 2, 3PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

5

7, 8, 11 6, 9, 10

12

1, 2, 3, 4PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

57

8, 11 6, 9, 10

12

1, 2, 3, 4PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

7

8, 11 6, 9, 10

12

1, 2, 3, 4, 5PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

67

8, 11 9, 10

12

1, 2, 3, 4, 5PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

67

8, 11 9, 10, 12

1, 2, 3, 4, 5PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

7

8, 11 9, 10, 12

1, 2, 3, 4, 5, 6PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

97

8, 11 10, 12

1, 2, 3, 4, 5, 6PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

9

8, 11 10, 12

1, 2, 3, 4, 5, 6, 7PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

98

11 10, 12

1, 2, 3, 4, 5, 6, 7PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

9

11 10, 12

1, 2, 3, 4, 5, 6, 7, 8PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

911

10, 12

1, 2, 3, 4, 5, 6, 7, 8PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

11

10, 12

1, 2, 3, 4, 5, 6, 7, 8, 9PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

1011

12

1, 2, 3, 4, 5, 6, 7, 8, 9PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

11

12

1, 2, 3, 4, 5, 6, 7, 8, 9,10

PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

1211

1, 2, 3, 4, 5, 6, 7, 8, 9,10

PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

12

1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11

PE

Node

BYNET

AMP AMP AMP

Node

AMP AMP AMP

1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12

Page 38: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

38© 2016 Teradata - Property of Teradata

Putting It All TogetherThe Life of a Teradata Query

Parsing Engine

Parser

Gateway

Request / Data Parcel

Dispatcher

AMP

DBMSI/O MGT

AMP

DBMSI/O MGT

AMP

DBMSI/O MGT

AMP

DBMSI/O MGT

Internet / Intranet

ApplicationODBCJDBC

BYNET

Request/DataParcel

ResponseParcelTCP/IP

Query Steps

ResponseParcel

Response

Step x Step x Step x Step x

Step x Response

Response Response Response Response

Response Response ResponseStep xStep xStep x

Step 1 Step 1 Step 1 Step 1

Step 1Step 1Step 1Step 1

Resp 1 Resp 1 Resp 1 Resp 1

Resp 1 Resp 1 Resp 1 Resp 1Resp 1

Step N Step N Step N Step N

Step NStep NStep NStep N

Resp N Resp N Resp N Resp N

Resp N Resp N Resp N Resp NResp N

Page 39: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

39© 2016 Teradata - Property of Teradata

Thank You

Questions/CommentsEmail:

Follow MeTwitter @

Rate This Session # with the PARTNERS Mobile App

Remember To Share Your Virtual Passes

[email protected]

toddawalter

637

Page 40: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

40© 2016 Teradata - Property of Teradata

#TDPARTNERS16

GEORGIA WORLD CONGRESS CENTER

Teradata Database Architecture OverviewPart 2Todd WalterChief TechnologistTeradata

Session #643 – 14:00 – 14:45 Sunday, September 11, in C101

Page 41: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

41© 2016 Teradata - Property of Teradata

What Makes Teradata UniqueKey Components/Concepts

Teradata

MPP Architecture

Data Management

Query Execution

OptimizerExtensibility

Workload Management

Availability

Page 42: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

42© 2016 Teradata - Property of Teradata

Primary Goals of the Optimizer:• In-database• Minimum tuning efforts

– No hints– Only indexes and statistics

• Use the platform effectively and efficiently

• Turn a SQL statement into a series of steps for execution

Teradata Optimizer Goals

Page 43: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

43© 2016 Teradata - Property of Teradata

Running Queries on Teradata Database

• ANSI compliant SQL– Small number of Teradata specific analytic

extensions• High performance algorithms

– Efficient use of resources not just counting on parallelism

– Join, Aggregation, Sort, …– Compiled expressions

• Complex query features– Derived tables, Case expressions, all forms of

Sub-queries, Sample, …– Big limits: 128 table joins, 128 nesting levels, …– 1MB SQL/Views/Macros

KEEPCALM

AND

QUERYON

Page 44: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

44© 2016 Teradata - Property of Teradata

SQL

ConfigurationCardinality

Data Statistics

Design

Optimum Plan

Teradata Optimizer

• Cost based query planning– Balance costs of

- Cardinalities- Sorts and joins- Redistribution- Disk I/Os- Networks and nodes- Compression

– Lowest resource costs– Fastest elapsed time

• Automatic rewrites• Automatic optimization

– No hints– No degrees of parallelism

Platform attributes

Page 45: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

45© 2016 Teradata - Property of Teradata

Planning

• Process of turning a query into a plan• Optimizer deconstructs SQL into individual components

– Relations, Join Conditions, Access Conditions• Access Method: how to access each relation

– Table Scan, Index Use, Bitmap Use

• Join Method: how pairs of table are joined– Merge Join, Product Join, Hash Join– Outer Joins, Inclusion and Exclusion Joins

• Join Order: sequence of table joins• Join Geography: how rows are relocated prior to the join

– Redistribute rows, duplicate rows, local spool• Sort Order: order for merge join, ordered result, distinct

Page 46: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

46© 2016 Teradata - Property of Teradata

Join Order

• The order of joins is determined by identifying the minimum cost ordering

• Look at size (with conditions applied), distribution, available access methods, available join methods, …

• Create each order and determine cost, pick best

Table 1 Table 2 Table 3 Table 4

Join JoinTable 5 Table 6

Join Join

Join

Plan with Parallel Joins

Table 1 Table 2

Join Table 3

Join

Join Table 4

Join Table 5

Join Table 6

Plan with Serial Joins

• Thousands or millions of combinations– Game theory used to eliminate unlikely combinations– Look-ahead limits to control reviewed combinations– Heuristics for special cases, starting points

• Dependent on good Statistics!• And the Optimizer makes the decision – does the hard work of

figuring it out

Page 47: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

47© 2016 Teradata - Property of Teradata

Physical database design affects planning:• Indexes, Join Indexes, partitions –

provide access methods• PI, Referential Integrity, data

types – guide join planning• Columnar, Compression, row

definition – guide size and I/O estimates

High performance views:• No penalty for using views• Enables wide use for ease of use,

security, privacy• Recommend using views rather

than users accessing the base tables

• Compiled early so optimizer only sees base tables and complete condition sets

Views and Physical Database Design

Page 48: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

48© 2016 Teradata - Property of Teradata

Examples of Optimizer’s Advanced Capabilities

• Aggregate Join Index (AJI) • SATisfiability-Transitive Closure (SAT/TC)• Query Re-Writes

– Reorganize a query’s structure for better optimization/performance• Partial Redistribution Partial Duplication (PRPD)

– Skew optimization• Incremental Planning and Execution (IPE)

– Plan in stages based on partial results• In-Memory and Chipset Optimizations • Temporal sequencing/normalization• Geospatial indexing/bounding

Page 49: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

49© 2016 Teradata - Property of Teradata

Statistics

Three types of histograms are generated:• Equal-height interval histograms:

– Each interval has the same number of values

• High-biased interval histograms: – Each interval has no more than two values

• Compression histograms: – Up to 200 equal-height intervals, plus one or more

high-biased intervals

Statistics Collection• High bias values separated to recognize skew

– Optimizer will generate different plans for different values or ranges

• Statistics calculated across all rows on all AMPs with a fully scalable algorithm• Statistics sampled when not available, dynamic choice of single AMP or all AMPs• Statistics extrapolated when stale relative to data change and table size relative to when

statistics were collected

COLLECT STATISTICS ON Employee COLUMN Department_Number

26 Rows8 Unique values, 0 Nulls

Min value = 100Mode Value = 401Mode Frequency = 7

4 Intervals (in High-biased interval histogram)

MaxNon-ModeMode

FrequencyMode Value Rows(1) 201(2) 302(3) 402(4) 501

100301401403

1376

-2-2-2-2

2124

Page 50: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

50© 2016 Teradata - Property of Teradata

Automates and provides intelligence to DBA tasks related to Optimizer Statistics Collections where such tasks include:

Auto-Stats Collection Optimizer

• Dynamically issuing collections in response to key events, most notably the completion of bulk load operations

• Configuring the system to ensure that resource usage incurred by statistics collections is properly regulated and throttled through TASM or other mechanisms

• Identifying and collecting missing statistics that are needed for query optimization

• Detecting stale statistics and promptly refreshing them

• Identifying and removing unused or unimportant statistics from routine maintenance

• Prioritizing the list of pending collections such that important and stale statistics are given precedence

• Executing needed collections in the background during scheduled time periods

Teradata Viewpoint

DCS

Cache DB

Stats Manager

Teradata Database

TDStats(XSP API) DBC

Page 51: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

51© 2016 Teradata - Property of Teradata

• English description of plan• Common code path through

parser• Time estimates relative not

absolute• Assumes run standalone• Explain should be used by all SQL

coders– Understand how the optimizer and

query execution work– Avoid/diagnose performance

issues– Keep for future comparison

Explain

explain select c_name, sum(o_totalprice) from customer, orders where customer.c_custkey = orders.o_custkey and o_clerk = 'Clerk#000008402' group by 1 order by 1;

4) We do an all-AMPs RETRIEVE step from TPCH10G.orders by way of index # 4 "TPCH10G.orders.O_CLERK = 'Clerk#000008402'" with a residual condition of ("TPCH10G.orders.O_CLERK = 'Clerk#000008402'") into Spool 4 (all_amps), which is redistributed by the hash code of (TPCH10G.orders.O_CUSTKEY) to all AMPs. Then we do a SORT to order Spool 4 by row hash. The size of Spool 4 is estimated with high confidence to be 1,503 rows (37,575 bytes). The estimated time for this step is 0.14 seconds.

5) We do an all-AMPs JOIN step from TPCH10G.customer by way of a RowHashmatch scan with no residual conditions, which is joined to Spool 4 (Last Use) by way of a RowHash match scan. TPCH10G.customer and Spool 4 are joined using a merge join, with a join condition of ("TPCH10G.customer.C_CUSTKEY = O_CUSTKEY"). The result goes into Spool 3 (all_amps), which is built locally on the AMPs. The size of Spool 3 is estimated with low confidence to be 1,503 rows (49,599 bytes). The estimated time for this step is 0.07 seconds.

6) We do an all-AMPs SUM step to aggregate from Spool 3 (Last Use) by way of an all-rows scan , grouping by field1 (TPCH10G.customer.C_NAME). Aggregate Intermediate Results are computed globally, then placed in Spool 5. The size of Spool 5 is estimated with low confidence to be 1,503 rows (61,623 bytes). The estimated time for this step is 0.04 seconds.

7) We do an all-AMPs RETRIEVE step from Spool 5 (Last Use) by way of an all-rows scan into Spool 1 (group_amps), which is built locally on the AMPs. Then we do a SORT to order Spool 1 by the sort key in spool field1 (TPCH10G.customer.C_NAME). The size of Spool 1 is estimated with low confidence to be 1,503 rows (121,743 bytes). The estimated time for this step is 0.02 seconds.

Page 52: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

52© 2016 Teradata - Property of Teradata

What Makes Teradata UniqueKey Components/Concepts

Teradata

MPP Architecture

Data Management

Query Execution

OptimizerExtensibility

Workload Management

Availability

Page 53: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

53© 2016 Teradata - Property of Teradata

• JSON, XML, etc. • In-DB Analytics

– Geospatial– Temporal– Data Lab

• Teradata QueryGridTM

• Scripting Languages– Python, Ruby, R

• User Defined Extensions– User defined functions – User defined data types– User defined SQL Operators

• Processing Extensions– Stored procedures– Table functions – Queue tables

• Programming Language– SQL, C/C++, Java

ExtensibilityExtensibility

Allowing new in-database Analytics capability:

Page 54: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

54© 2016 Teradata - Property of Teradata

What Makes Teradata UniqueKey Components/Concepts

Teradata

MPP Architecture

Data Management

Query Execution

OptimizerExtensibility

Workload Management

Availability

Page 55: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

55© 2016 Teradata - Property of Teradata

A session logs on, a query is submitted

Session and query characteristics link to workload management rules

System Filter

Classification Criteria

System Throttle

Classification Criteria

Cla

ssifi

catio

n C

riter

ia

Reject Delay Queue

Workloads Control Priority

Workload Throttle

Workload Single-AMP

Workload Loading

Workload Adhoc-Short

Workload Data Mining

Workload Adhoc-Long

Delay Queue

• Define a Workload for each type of work

• Map the workload to a priority category

• Add filters and throttles, as needed

• Classification criteria maps queries to workload management rules

Teradata Integrated Workload Management (TIWM)

Page 56: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

56© 2016 Teradata - Property of Teradata

Viewpoint Monitoring System

DVR for Your DBA

Centralized Management

Exception Based Portal Alerts

Page 57: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

57© 2016 Teradata - Property of Teradata

What Makes Teradata UniqueKey Components/Concepts

Teradata

MPP Architecture

Data Management

Query Execution

OptimizerExtensibility

Workload Management

Availability

Page 58: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

58© 2016 Teradata - Property of Teradata

Teradata Availability

Teradata Dual Systems

UnityFallback,

Proactive system monitoring, Business Critical Support Services,

On-Site spares, Test System, Backup-Archive-Restore, Hot Standby Nodes,

Teradata Recovery Centers, Disaster Recovery, Business Impact Analysis

RAID, Clustering, Cliques, OS disk mirroring, Redundant Hardware Components,

On-line Upgrades, Documented Operational Procedures, Change Control Procedures, Proactively apply fixes,

Restartability – Application and ETL

Best in Class

Optional

Built-in,Automatic

Page 59: Teradata Database Architecture Overview fileBirth of Teradata • Microprocessor - 8086 • Personal computer - Commodore 64, Apple I, TRS80 • Disk drive - 200MB weighs 30lbs and

59© 2016 Teradata - Property of Teradata

Thank You

Questions/CommentsEmail:

Follow MeTwitter @

Rate This Session # with the PARTNERS Mobile App

Remember To Share Your Virtual Passes

[email protected]

toddawalter

643