DataSunrise erreicht AWS DevOps Kompetenz Status in AWS DevSecOps und Überwachung, Protokollierung, Performance

Nutzung des Redshift-Informationsschemas für eine bessere Datenbankleistung

Nutzung des Redshift-Informationsschemas für eine bessere Datenbankleistung

Einleitung

Dieser Artikel befasst sich mit dem Redshift-Datenbankschema, wobei der Schwerpunkt speziell auf der Implementierung des Informationsschemas liegt. Wir werden untersuchen, wie es im Vergleich zu ähnlichen Werkzeugen in anderen Datenbanksystemen wie Microsoft SQL Server und PostgreSQL abschneidet. Am Ende dieses Leitfadens werden Sie ein fundiertes Verständnis dafür haben, wie Sie die Systemtabellen von Redshift nutzen können, um Ihre Datenverwaltungsstrategien zu optimieren.

Was ist ein Informationsschema in MS SQL Server?

Bevor wir auf die spezifischen Details von Redshift eingehen, beginnen wir mit einem bekannten Bezugspunkt: dem Informationsschema von Microsoft SQL Server.

Grundlagen verstehen

In MS SQL Server ist das Informationsschema eine Sammlung von Views, die Metadaten über die Objekte in einer Datenbank bereitstellen. Es handelt sich um einen standardisierten Weg, um Informationen über Tabellen, Spalten, Views und andere Datenbankobjekte abzurufen.

Zum Beispiel könnte man, um alle Tabellen in einer Datenbank mithilfe des Informationsschemas von MS SQL Server anzuzeigen, eine Abfrage wie folgt verwenden:

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE';

Diese Abfrage gibt eine Liste aller Basistabellen in der aktuellen Datenbank zurück.

Redshift-Datenbankschema: Informationstools

Wenden wir uns nun Redshift zu, einem petabyte-skaligen Data Warehouse von Amazon Web Services. Obwohl Redshift auf PostgreSQL basiert, verfügt es über eigene Systemtabellen und Views, die einen ähnlichen Zweck erfüllen wie das Informationsschema in anderen Datenbanksystemen.

Systemtabellen in Redshift

Redshift bietet eine Reihe von Systemtabellen, die Metadaten über die Cloud-Daten, deren Tabellen und andere Objekte speichern. Diese Systemtabellen werden mit “PG_”, sowie “STL_”, “STV_” oder “SVV_” bezeichnet.

Redshift Database Information Schema - System Tables Diagram

Hier sind einige wichtige Systemtabellen in Redshift:

  1. PG_TABLE_DEF: Enthält Informationen über Tabellendefinitionen.
  2. SVV_COLUMNS: Bietet eine Ansicht aller Spalten in der Datenbank.
  3. SVV_TABLES: Bietet eine Ansicht aller Tabellen in der Datenbank.

Schauen wir uns ein Beispiel an, wie man diese Tabellen verwenden kann:

SELECT tablename, "column", type, encoding
FROM pg_table_def
WHERE schemaname = 'public';

Diese Abfrage gibt Informationen über alle Spalten in den Tabellen des Schemas ‘public’ zurück, einschließlich ihrer Namen, Datentypen und Kodierungen.

Abfragen des Redshift-Datenbankschemas

Um einen umfassenden Überblick über Ihr Redshift-Datenbankschema zu erhalten, können Sie Abfragen verwenden, die Informationen aus mehreren Systemtabellen kombinieren. Hier ein Beispiel:

SELECT
n.nspname AS schema_name,
c.relname AS table_name,
a.attname AS column_name,
t.typname AS data_type
FROM
pg_catalog.pg_class c
JOIN
pg_catalog.pg_namespace n ON n.oid = c.relnamespace
JOIN
pg_catalog.pg_attribute a ON a.attrelid = c.oid
JOIN
pg_catalog.pg_type t ON t.oid = a.atttypid
WHERE
c.relkind = 'r' -- Nur reguläre Tabellen
AND n.nspname NOT IN ('pg_catalog', 'information_schema')
AND a.attnum > 0 -- Systemspalten ausschließen
ORDER BY
schema_name, table_name, a.attnum;

Diese Abfrage liefert einen detaillierten Überblick über Ihr Redshift-Datenbankschema, einschließlich Schema-Namen, Tabellennamen, Spaltennamen und Datentypen.

Vergleich von Redshift- und PostgreSQL-Informationstools

Da Redshift auf PostgreSQL basiert, ist es naheliegend, sich über die Gemeinsamkeiten und Unterschiede ihrer Informationsschema-Tools zu wundern.

PostgreSQL-Informationsschema

PostgreSQL verfügt, wie MS SQL Server, über ein INFORMATION_SCHEMA, das dem SQL-Standard entspricht. Es bietet Views, die Informationen über alle Datenbankobjekte liefern.

Zum Beispiel könnte man, um alle Tabellen in PostgreSQL aufzulisten, Folgendes verwenden:

SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public';

Redshift vs. PostgreSQL

Obwohl Redshift auf PostgreSQL basiert, beinhaltet es nicht das standardmäßige INFORMATION_SCHEMA. Stattdessen bietet es eigene Systemtabellen und Views. Dies liegt an der spezialisierten Natur von Redshift als spaltenorientiertes Data Warehouse, das unterschiedliche Optimierungs- und Verwaltungstools erfordert.

Dennoch sind viele Konzepte ähnlich. Zum Beispiel, während PostgreSQL information_schema.tables anbietet, verfügt Redshift über SVV_TABLES. Beide liefern Metadaten über Tabellen in der Datenbank, jedoch können sich die spezifischen verfügbaren Informationen und der Zugriff darauf unterscheiden.

Nutzung der Systemtabellen von Redshift zur Leistungsoptimierung

Das Verständnis der Systemtabellen von Redshift kann Ihnen dabei helfen, die Leistung Ihrer Datenbank zu optimieren. Lassen Sie uns einige praktische Anwendungen betrachten.

Identifizierung von Tabellenschieflagen

Tabellenschieflage tritt auf, wenn Daten in Redshift ungleichmäßig über die Slices verteilt sind. Dies kann zu Leistungsproblemen führen. Sie können Systemtabellen verwenden, um Schieflagen zu identifizieren:

SELECT
trim(name) AS table,
slice,
count(*) AS num_values,
cast(100 * ratio_to_report(count(*)) over () AS decimal(5,2)) AS pct_of_total
FROM svv_diskusage
WHERE name IN ('your_table_name')
GROUP BY name, slice
ORDER BY name, slice;

Diese Abfrage zeigt die Verteilung der Daten über die Slices für eine bestimmte Tabelle, wodurch potenzielle Schieflagen erkennbar werden.

Überwachung der Abfrageleistung

Die Tabellen STL_QUERY und SVL_QUERY_SUMMARY von Redshift können Ihnen dabei helfen, die Abfrageleistung zu überwachen:

SELECT
q.query,
q.starttime,
q.endtime,
q.elapsed/1000000 AS elapsed_seconds,
s.segment,
s.step,
s.maxtime/1000000 AS step_seconds,
s.rows,
s.bytes
FROM stl_query q
JOIN svl_query_summary s ON q.query = s.query
WHERE q.starttime >= DATEADD(hour, -1, GETDATE())
ORDER BY q.query, s.segment, s.step;

Diese Abfrage liefert detaillierte Informationen über in der letzten Stunde ausgeführte Abfragen, einschließlich deren Ausführungszeit und Ressourcennutzung.

Best Practices für die Nutzung des Redshift-Informationsschemas

Um das Potenzial der Systemtabellen und Views von Redshift voll auszuschöpfen, sollten Sie folgende Best Practices berücksichtigen:

  1. Überwachen Sie regelmäßig die Tabellenstatistiken mit SVV_TABLE_INFO, um sicherzustellen, dass Ihre Tabellen optimiert sind.
  2. Verwenden Sie STL_ALERT_EVENT_LOG, um Leistungsprobleme proaktiv zu identifizieren und zu beheben.
  3. Nutzen Sie SVV_VACUUM_PROGRESS, um VACUUM-Operationen zu überwachen und zu verwalten.
  4. Verwenden Sie SVV_DATASHARE_OBJECTS, um die Datenfreigabe über Redshift-Cluster hinweg zu verwalten.

Beachten Sie, dass das häufige Abfragen dieser Systemtabellen zwar wertvolle Einblicke liefert, jedoch auch die Performance beeinträchtigen kann. Nutzen Sie sie daher mit Bedacht und erwägen Sie gegebenenfalls das Zwischenspeichern von Ergebnissen.

Fazit

Das Verständnis und die effektive Nutzung der Redshift-Informationsschema-Tools sind entscheidend für die Verwaltung und Optimierung Ihres Data Warehouses. Obwohl sie sich vom standardmäßigen INFORMATION_SCHEMA in SQL Server und PostgreSQL unterscheiden, bieten die Systemtabellen und Views von Redshift leistungsstarke Möglichkeiten zur Überwachung, Fehlerbehebung und Optimierung Ihrer Datenbank.

Durch den Einsatz dieser Werkzeuge können Sie tiefgehende Einblicke in Ihr Redshift-Datenbankschema gewinnen, die Leistung überwachen und fundierte Entscheidungen in Bezug auf Datenmanagement und Abfrageoptimierung treffen. Wie bei jedem leistungsstarken Werkzeug ist es wichtig, diese Fähigkeiten weise einzusetzen, um die Gewinnung von Erkenntnissen mit der Gesamtleistung des Systems in Einklang zu bringen.

Für diejenigen, die fortschrittliche Tools zur Datenbanksicherheit und Compliance suchen, sollten Sie in Betracht ziehen, sich DataSunrise anzusehen. Unsere benutzerfreundlichen und flexiblen Lösungen bieten umfassenden Datenbankschutz. Besuchen Sie unsere Website, um eine Online-Demo zu erleben, und entdecken Sie, wie Sie Ihre Datenbanksicherheit noch heute verbessern können.

Nächste

Datenfreigabekultur

Datenfreigabekultur

Erfahren Sie mehr

Benötigen Sie die Hilfe unseres Support-Teams?

Unsere Experten beantworten gerne Ihre Fragen.

Allgemeine Informationen:
[email protected]
Kundenservice und technischer Support:
support.datasunrise.com
Partnerschafts- und Allianz-Anfragen:
[email protected]