banner
Heim / Blog / Verwendung von maschinellem Lernen zur Charakterisierung von Datenbank-Workloads
Blog

Verwendung von maschinellem Lernen zur Charakterisierung von Datenbank-Workloads

Jun 27, 2023Jun 27, 2023

Datenbanken helfen uns seit Jahrzehnten bei der Verwaltung unserer Daten. Wie viele der Technologien, mit denen wir täglich arbeiten, beginnen wir möglicherweise, sie als selbstverständlich zu betrachten und die Gelegenheit zu verpassen, unsere Nutzung – und insbesondere ihre Kosten – zu prüfen.

Beispielsweise speichert Intel einen Großteil seines riesigen Produktionsdatenvolumens in einem relationalen Datenbankverwaltungssystem (RDBMS) mit massiver paralleler Verarbeitung (MPP). Um die Datenverwaltungskosten unter Kontrolle zu halten, hat Intel IT beschlossen, unser aktuelles MPP-RDBMS im Vergleich zu alternativen Lösungen zu evaluieren. Bevor wir das tun konnten, mussten wir unsere Datenbank-Workloads besser verstehen und einen Benchmark definieren, der diese Workloads gut darstellt. Wir wussten, dass Tausende von Fertigungsingenieuren die Daten abfragten, und wir wussten, wie viele Daten in das System aufgenommen wurden. Wir brauchten jedoch weitere Details.

„Welche Arten von Jobs machen die gesamte Datenbankarbeitslast aus?“

„Wie sind die Abfragen?“

„Wie viele gleichzeitige Benutzer gibt es für jede Art von Abfrage?“

Lassen Sie mich ein Beispiel vorstellen, um die Art der Informationen, die wir benötigten, besser zu veranschaulichen.

Stellen Sie sich vor, Sie haben beschlossen, in Ihrer Heimatstadt einen Schönheitssalon zu eröffnen. Sie möchten eine Anlage errichten, die sowohl der heutigen Nachfrage nach Dienstleistungen gerecht wird als auch dem Geschäftswachstum Rechnung trägt. Damit Sie wissen, wie viele Stationen Sie einrichten müssen, sollten Sie abschätzen, wie viele Personen sich zur Spitzenzeit im Laden aufhalten. Sie müssen entscheiden, welche Dienstleistungen Sie anbieten möchten. Wie viele Personen Sie bedienen können, hängt von drei Faktoren ab: 1) der Geschwindigkeit, mit der die Kosmetikerinnen arbeiten; 2) wie viele Kosmetikerinnen arbeiten? und 3) welche Dienstleistungen der Kunde wünscht (zum Beispiel nur einen Schnitt oder eine Maniküre, eine Haarfärbung und eine Massage). Der „Arbeitsaufwand“ hängt in diesem Fall davon ab, was die Kunden wollen und wie viele Kunden es gibt. Aber auch das variiert im Laufe der Zeit. Vielleicht gibt es Zeiten, in denen viele Kunden einfach nur Schnitte wünschen. Zu anderen Zeiten (z. B. vor dem Valentinstag) sind sowohl Schnitte als auch Haarfärben gefragt, und zu anderen Zeiten kann eine Massage fast die einzige Nachfrage sein (z. B. wenn Leute all ihre Massage-Geschenkkarten nutzen, die sie gerade am Valentinstag bekommen haben). . Es kann sogar scheinbar zufällig sein und nichts mit einem Kalenderereignis zu tun haben. Wenn Sie zu Spitzenzeiten mehr Kunden haben und nicht über genügend Filialen oder qualifizierte Kosmetikerinnen verfügen, müssen die Leute warten, und manche finden es möglicherweise zu voll und gehen weg.

Kehren wir nun zur Datenbank zurück. Für unser MPP-RDBMS sind die „Dienste“ die verschiedenen Arten von Interaktionen zwischen der Datenbank und den Ingenieuren (Verbrauch) und den Systemen, die Daten senden (Aufnahme). Die Aufnahme besteht aus Standard-Extraction-Transformation-Loading (ETL), Critical-Path-ETL, Massenladevorgängen und Einfüge-/Aktualisierungs-/Löschanforderungen innerhalb der Datenbank (sowohl große als auch kleine). Der Verbrauch besteht aus Berichten und Abfragen – einige werden als Batch-Jobs ausgeführt, andere Ad-hoc.

Zu Beginn unserer Workload-Charakterisierung wollten wir die Arten der ausgeführten Datenbank-„Dienste“ identifizieren. Wir wussten, dass SQL-Anfragen sehr einfach oder sehr komplex oder irgendwo dazwischen sein können, ähnlich wie bei einem Schnitt im Vergleich zu einem Komplettservice im Schönheitssalon. Was wir nicht wussten, war, wie wir eine große Vielfalt dieser Anfragen in etwas überschaubareres verallgemeinern konnten, ohne etwas Wichtiges zu verpassen. Anstatt unserem Bauchgefühl zu vertrauen, wollten wir methodisch vorgehen. Wir haben einen neuartigen Ansatz gewählt, um ein umfassendes Verständnis der SQL-Anfragen zu entwickeln: Wir haben uns für die Anwendung von Techniken des maschinellen Lernens (ML) einschließlich K-Means-Clustering und Klassifizierungs- und Regressionsbäumen (CARTs) entschieden.

In unserem Beispiel für einen Schönheitssalon könnten wir K-Means-Clustering und CART verwenden, um Kunden zu analysieren und Gruppen mit Ähnlichkeiten wie „nur Friseurdienstleistungen“, „Haar- und Nageldienstleistungen“ und „nur Nageldienstleistungen“ zu identifizieren.

Für unsere Datenbank ergaben unsere k-means-Clustering- und CART-Bemühungen, dass ETL-Anfragen aus sieben Clustern bestanden (vorhergesagt durch CPU-Zeit, höchste Thread-E/A und Laufzeit) und SQL-Anfragen in sechs Cluster gruppiert werden konnten (basierend auf der CPU-Zeit). ).

Sobald wir unsere Gruppierungen hatten, konnten wir den nächsten Schritt machen, nämlich die Charakterisierung verschiedener Spitzenzeiten. Das Ziel bestand darin, etwas zu identifizieren, das den Arbeitsbelastungstypen „normal“, „kurz vor Valentinstag“ und „kurz nach Valentinstag“ entspricht – ohne jedoch im Voraus wirklich über irgendwelche „Valentinstag“-Ereignisse Bescheid zu wissen. Wir begannen damit, die Anzahl der Anfragen pro Gruppe und Stunde auf der Grundlage monatelanger historischer Datenbankprotokolle zu generieren. Als nächstes verwendeten wir erneut K-Means-Clustering, dieses Mal, um Cluster von einstündigen Slots zu erstellen, die einander in Bezug auf die Anzahl der Anfragen pro Gruppe ähnlich sind. Schließlich haben wir aus jedem Cluster, der die höchste Gesamt-CPU-Auslastung aufwies, einige einstündige Slots ausgewählt, um Beispiel-Workloads zu erstellen.

Das Beste an diesem Prozess war, dass er auf Daten und zuverlässigen ML-basierten Erkenntnissen beruhte. (Dies ist bei meiner Vermutung, dass es nur Massagen nach dem Valentinstag gibt, nicht der Fall, da ich keine Geschenkkarten hatte.) Die Charakterisierung der Arbeitslast war für den Vergleich der Kosten und Leistung unseres bestehenden MPP-RDBMS und mehrerer Alternativen von entscheidender Bedeutung. Im IT@Intel-Whitepaper „Minimierung der Kosten für die Datenverwaltung in der Fertigung“ erfahren Sie ausführlich, wie wir einen benutzerdefinierten Benchmark erstellt und anschließend mehrere Proofs of Concept mit Anbietern durchgeführt haben, um den Benchmark durchzuführen.

„Welche Arten von Jobs machen die gesamte Datenbankarbeitslast aus?“„Wie sind die Abfragen?“„Wie viele gleichzeitige Benutzer gibt es für jede Art von Abfrage?“Lassen Sie mich ein Beispiel vorstellen, um die Art der Informationen, die wir benötigten, besser zu veranschaulichen.