IQ Performance, Kosten- und Energieeffizienz einer spaltenorientierten Datenbank Jürgen Bittner Projektmitarbeiter: Martin Balla, Hans-Jürgen Götze, Jan Lohmann, Steffen Preißler SQL Projekt AG SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 1 Sybase IQ Server – Langjährig bewährte Technologie Bereits vor 10 Jahren IQ-Vortrag Performance bei Auswertung großer Datenmengen Damals schon war eine Query-Beschleunigung von 1 : 100 und darüber Normalität Interessant dabei: sehr gute Ergebnisse mit weitgehend normaler Hardwareausstattung erreichbar Weitgehend auch ohne Änderungen des DB-Schemas SQL GmbH konnte auch kommerzielle Treffer erreichen Erfolge blieben bei uns zunächst unter den Erwartungen, warum? SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 2 Heute veränderte Situation Die Anforderungen sind gewachsen und wachsen weiter Mit den Datenmengen, höheren Anforderungen an Reaktionsgeschwindigkeit und Real Time in den Anwenderprozessen wachsen die Performanceanforderungen Query-Laufzeit für Reporting, Analyse und Ad hoc Multi-user Paralleles Aktualisieren Kostendruck erfordert genaue Betrachtung der gewünschten Effekte, aber auch der notwendigen Investition und der laufenden Kosten Zunehmendes Gewicht: Energiebedarf von Datenbanken SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 3 Gliederung Einführung 2. Anforderungsbeispiel 3. Charakteristik Sybase IQ 4. Vorhersagemodell zur Abschätzung der Hardwareanforderung 5. Zusammenfassung 1. SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 4 Anforderungsbeispiel Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung System, das die gestellten Performance-Anforderungen nicht erfüllt 32 CPU – SMP Maschine 20 x HDD im SAN, 2GB HBA Netzanbindung 280 MB/s effektiver IO-Durchsatz Erreichen der geforderten Query-Laufzeiten? Erhöhung des IODurchsatzes durch Hardwareinvestition SQL Projekt AG Verringerung des notwendigen IO-Durchsatzes durch spaltenorientiertes Datenbanksystem 175. Datenbank-Stammtisch 14.11.2012 5 Anwenderbeispiel II Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung Erhöhung des IO-Durchsatzes durch Hardwareinvestition 4 x 4 CPU – Maschinen 128 x HDD im SAN, 4GB HBA Netzanbindung 2400 MB/s effektiver IO-Durchsatz 857% 282% Datendurchsatz E. Verbrauch Last 5.845 kWh 361% E. Verbrauch Leerlauf 4.655 kWh 236% Investitions Kosten* ~54.300 € 320% Jährliche E. Kosten** ~11.200 € * Zusätzliche Investition zur bereits bestehenden Hardware ** Energiekosten bei durchschnittlicher Systemauslastung von 40% SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 6 Unser Ziel Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung Erhöhung der Kosten für die Investition und den Energiebedarf sollte vermieden werden Vorhersage bzw. Schätzung der Kosten- und Energieeinsparung durch Anwendung der spaltenorientierten Technologie mit Sybase IQ im Vergleich mit zeilenorientierter DB-Technologie für ein gegebenes Anforderungsprofil Besser qualifizierte Entscheidungen bei der Planung neuer Projekte bzw. bei der Verkaufsberatung SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 7 Sybase IQ Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung IQ Query-optimierter SQL Server Spaltenorientierte Speicherung der Daten, komprimiert 10 Spezielle Indextypen für schnelle Suche und Unterstützung weiterer Funktionen Multiplex-Betrieb, mit wachsender Nutzeranzahl lineare Skalierung mit Servern möglich ohne Performance-Verlust Paralleles Ändern möglich Konsequenz der spaltenorientierten Speicherung: Einzel-INSERT sehr langsam LOAD und Mengen-INSERT sehr schnell SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 8 Traditionelles RDBMS Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung Mon Einr Typ Land Prod Abs 0105 1132 G SA Werne 212 200 Bytes pro Zeile SELECT AVG (Abs), SUM(Abs)/AnzGSA/36 0105 1136 G MV Becks 3459 16 K Seitengröße FROM Absatz, 0105 1138 G SA Radeb 1128 (SELECT 0105 Berechne den COUNT(DISTINCT Einr) AS AnzGSA durchschnittlichen FROM Absatz Absatz 0105 von „Radeberger“ in GastronomieWHERE Land = ‘SA‘ AND 0105 Einrichtungen in Sachsen je Monat der letzten 3 Jahre Typ = ‘G‘) 0105 1141 K NS Jever 311 1143 G SA Radeb 95 1146 G BY Paula 3454 1147 M NW Dortm 703 … … … … … 360 Millionen Zeilen WHERE Land = ‘SA‘ AND Zeilenorientierte Typ = ‘G‘ AND Ablage der Daten … BeiProd Zugriff auf Spalte muss jeweils gesamte Zeile gelesen werden = ‘Radeb‘ mit Platte z.B. 100MB/sec 24 Minuten !!! Sehr teuer und unflexibel bei Ad-hoc-Anfragen SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 9 Sybase IQ Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung Mon Einr Typ Land Prod Abs 0105 1132 G SA Werne 212 0105 1136 G MV Becks 3459 0105 1138 G SA Radeb 1128 0105 1141 K NS Jever 311 0105 1143 G SA Radeb 95 0105 1146 G BY Paula 3454 0105 1147 M NW Dortm 703 … … … … … … 360 Millionen Zeilen 200 Bytes pro Zeile 64 K Seitengröße Berechne den durchschnittlichen Absatz von „Radeberger“ in GastronomieEinrichtungen in Sachsen je Monat der letzten 3 Jahre Spaltenorientierte Ablage Bei Zugriff auf Spalte wird nur diese gelesen Reduzierung des Disk-I/O im Beispiel ca. 5 % bzw. 1,2 min (ohne Indexnutzung) ca. 0,1 – 0,2% bzw. 1 – 2 sec (mit Indexnutzung) SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 10 Unser Vorgehen Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung • Vergleich des Speicherbedarfs eines Anforderungsprofils bei Sybase ASE (zeilenorientiert) und Sybase IQ durch Ermittlung des IO-Bedarfs innerhalb eines bestimmten Zeitraums • Große Herausforderung, solange Daten noch nicht vorhanden sind : deshalb nur Schätzung, aber mit dem Anspruch gute Entscheidungen zu unterstützen • Vorausgesetzt wird: DB-Schema: Lastprofil: SQL Projekt AG Tabellen mit Zeilenanzahl Schlüsselspalten, weitere Spalten Datentypen, Längen, Kardinalitäten Index-Definitionen (gesondert für ASE und IQ) Queries mit Häufigkeit der Ausführung innerhalb eines Zeitraums oder maximale Dauer für einzelne Queries 175. Datenbank-Stammtisch 14.11.2012 11 Modellschema Volumenvorhersage Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung Datenbank-Schema Schätzung der Kardinalitäten Volumenschätzung Schema + Simulierte Statistik ASE Queryprofil IQ Vorhersage modell Simulierte Anzahl RIO Simuliertes Datenvolumen SIO Mengenabschätzung Zeilenorientiertes DBS SQL Projekt AG Vorhersage Anzahl RIO Vorhersage Datenvolumen SIO Vorhersage Spaltenorientiertes DBS 175. Datenbank-Stammtisch 14.11.2012 12 Berechnung Vergleichsbasis mit Sybase ASE Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung • Einspeichern der Statistik-Daten • Übersetzen aller Queries zur Erzeugung der Zugriffspläne • Auswertung der Zugriffspläne zwecks Ermittlung des geschätzten IO-Gesamtbedarfs sowie ggf. für einzelne Queries gegliedert in • • • TableScans (sequenzielles Lesen) in GB IndexScans • Clustered Index in GB • Clustered Index in Anzahl IO • Nonclustered Index in Anzahl IO Index-Key-Zugriffe (Random Zugriffe) in Anzahl IO Ermittlung des insgesamt zu lesenden Datenvolumens (ohne Indexseiten) SQL Projekt AG Ermittlung der Gesamtlesezeit für bestimmte Plattentypen mit MB/sec bzw. IOPS 175. Datenbank-Stammtisch 14.11.2012 13 Berechnung Vergleichsbasis mit Sybase ASE Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung • Berechnung der notwendigen Anzahl Platten auf der Basis der ermittelten Gesamtlesezeit und der geforderten Zeitbegrenzung • Annahmen: • Parallelisierung durch Verteilung der Daten beliebig möglich • Gleichverteilung der Last im geforderten Zeitraum • Berechnung der Kosten für Platten und Energie • Beispielszenario: • Datenvolumen Datenbank (GB): • Datenvolumen gelesen (GB): • Verhältnis RIO zu SIO: SQL Projekt AG 1.000 20.000 1 : 100 175. Datenbank-Stammtisch 14.11.2012 14 Anwenderbeispiel Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung HDD SSD Kapazität je Platte (GB) 300 200 Durchsatz je Platte (MB/s) 100 200 IOPS je Platte 100 20.000 4 5 129 29 Kapazitätsauslastung in % 2,58% 17,24% Leistungsauslastung in % 99,55% 99,14% Gesamtkosten Platten (€) 25.155,00 € 18.241,00 € 7.632,58 € 352,37 € Energieverbrauch je Stunde (W) 1.712 87 Kosten je Betriebstunde (€) 5,25 € 2,98 € Benötigte Platten Kapazität Benötigte Platten IO/Durchsatz Energiekosten der Platten (€) SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 15 Vergleichsberechnung (Schätzung) Sybase IQ Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung • Gleiches Vorgehen wie bei ASE über Ermittlung und Auswertung der Zugriffspläne nicht möglich, weil Statistik erst mit Vorhandensein der Daten in der DB vorliegt • Deshalb Schätzung wie sich IO Volumen und – Zeiten reduzieren im Vergleich zum zeilenorientierten ASE • Betrachtung verschiedener Eigenschaften des IQ und Versuch ihrer Bewertung in Bezug auf die definierte Anforderung • Im Ergebnis dieser Bewertung soll dann wieder eine Gesamtlesezeit und ein zu lesendes Volumen vorliegen, das eine Ermittlung des Speicherbedarfs und der Kosten erlaubt SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 16 Vergleichsberechnung (Schätzung) Sybase IQ Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung • 3 relevante Faktoren werden zur Schätzung benutzt: • Extraktionskoeffizient (spaltenorientiert) • Kompressionsrate • Indexwirkung • Weitere IQ-spezifische Wirkungen bleiben der späteren Verfeinerung unseres Schätzverfahrens vorbehalten z.B. die Wirkung der Pagegröße SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 17 Extraktionskoeffizient Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung • Sybase IQ liest von jeder Tabelle einer Query nur Seiten der benutzten Spalten • • • Annahme, dass typische Queries überwiegend TableScans ausführen und der IQ Server zunächst keinen Index benutzt Schätzung für Einsparung dann Extraktionskoeffizient x einer Query q mit den von der Query benutzten Tabellen und deren Zeilenanzahl Für die Menge von Queries des geforderten Zeitraums mit der erwarteten Anzahl Ausführungen einer Query Häufig anzunehmender Wert für xQ = 0,2…0,3 SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 18 Kompressionsrate Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung • Sybase IQ komprimiert die Werte einer Spalte in 2 Schritten: • • Die prinzipielle Darstellung einer Spalte - Fast Projection (FP) –enthält bei Kardinalität bis 28,16,24 entsprechende 1-, 2-, 3-Byte-Werte sowie eine Lookup List, und ist somit sehr gut schätzbar Beim Schreiben einer Spalten-Seite (default 128K) auf die Platte wird nochmals verdichtet in 1…16 DB Blocks, Quantifizierung schwieriger • • Realisierte Beispiele zeigen Werte für cDB = 0,7…0,05 • Wenn Genauigkeit gefordert wird, muss spaltenweise geschätzt werden, dann könnte auch eine Kompressionsrate für eine anzunehmender einzelne Query bestimmt Häufig Wert werden für cDB = 0,5…0,25 SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 19 Indexwirkung Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung • Sybase IQ ermöglicht unterschiedliche Indextypen in Abhängigkeit von Datentyp und Kardinalität einer Spalte (auch mehrspaltig) • Zugriff auf eine Tabelle kann alle verfügbaren Indexe für die in den Suchprädikaten enthaltenen Spalten benutzen • Match der Trefferlisten (row id´s) ermöglicht Projektion auf die weiteren benötigten Spalten der Tabelle • D.h. Indexzugriff vermeidet Spaltenscan SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 20 Indexwirkung Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung • Spaltenscan nur für Projektion und Suchprädikate auf Spalten ohne geeigneten Index • Für die Schätzung bedeutet das: • • • Aus allen Queries sind die bisher geschätzten IO-Volumina zu reduzieren um die Spaltenscans der Spalten, für die ein Suchprädikat oder andere Funktion indexgestützt bearbeitet werden kann Hinzuzufügen sind die entsprechenden Aufwände für Indexzugriffe Wie genau kann und muss die Schätzung sein ? • Pauschaliert oder Query-orientiert ? Häufig anzunehmender Wert für iQ = 0,3…0,1 SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 21 Resultat Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung • RQ = xQ · cDB · iQ Beispiel RQ = 0,25 x 0,4 x 0,2 = 0,02 Im Beispiel 50-fache Verringerung des zu lesenden Datenvolumens! SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 22 Beispielszenario Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung ASE IQ Datenvolumen Datenbank (GB) 1.000 500 Datenvolumen gelesen (GB) 20.000 1.000 HDD Benötigte Platten Kapazität SSD HDD SSD 4 5 3 3 129 29 9 2 Kapazitätsauslastung in % 2,58% 17,24% 18,52% 83,33% Leistungsauslastung in % 99,55% 99,14% 97,41% 48,24% Gesamtkosten Platten (€) 25.155,00 € 18.241,00 € 1.755,00 € 1.887,00 € 7.632,58 € 352,37 € 530,82 € 32,89 € 20 3 0,37 € 0,31 € Benötigte Platten IO/Durchsatz Energiekosten der Platten (€) Energieverbrauch je Stunde (W) Kosten je Betriebstunde (€) SQL Projekt AG 1.712 5,25 € 87 2,98 € 175. Datenbank-Stammtisch 14.11.2012 23 Zusammenfassung Einführung > Anforderungsbeispiel > Charakteristik Sybase IQ > Vorhersagemodell > Zusammenfassung Stetig wachsende Datenmengen mit dem Trend hin zu Echtzeitanalysen Suche nach energie-/kosteneffizienter Lösung notwendig Einsatz von spaltenorientiertem Datenbanksystem Sybase IQ bietet hohes Einsparungspotential an Hardware Entwicklung eines Modells zur Vorhersage der benötigten Hardwareleistung für gegebene Anforderungsprofile Möglichkeit zur frühzeitigen Leistungs- und Hardwareabschätzung am Anfang eines Projektes SQL Projekt AG 175. Datenbank-Stammtisch 14.11.2012 24