DataSunrise Obtient le Statut Compétence DevOps AWS dans AWS DevSecOps et Surveillance, Journalisation, Performance

Exploiter le Schéma d’Information de Redshift pour Améliorer les Performances de la Base de Données

Exploiter le Schéma d’Information de Redshift pour Améliorer les Performances de la Base de Données

Introduction

Cet article explore le schéma de base de données Redshift, en se concentrant spécifiquement sur la mise en œuvre de son schéma d’information. Nous examinerons comment il se compare à des outils similaires dans d’autres systèmes de base de données, tels que Microsoft SQL Server et PostgreSQL. À la fin de ce guide, vous aurez une compréhension solide de la façon de tirer parti des tables système de Redshift pour optimiser vos stratégies de gestion des données.

Qu’est-ce qu’un Schéma d’Information dans MS SQL Server ?

Avant de plonger dans les spécificités de Redshift, commençons par un point de référence familier : le Schéma d’Information de Microsoft SQL Server.

Comprendre les Bases

Dans MS SQL Server, le Schéma d’Information est un ensemble de vues qui fournissent des métadonnées sur les objets d’une base de données. C’est une manière standardisée d’accéder aux informations sur les tables, les colonnes, les vues et d’autres objets de la base de données.

Par exemple, pour afficher toutes les tables d’une base de données en utilisant le Schéma d’Information de MS SQL Server, vous pourriez utiliser une requête comme celle-ci :

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

Cette requête renverrait une liste de toutes les tables de base dans la base de données actuelle.

Schéma de la Base de Données Redshift : Outils d’Information

Maintenant, tournons notre attention vers Redshift, un entrepôt de données de niveau pétaoctet d’Amazon Web Services. Bien que Redshift soit basé sur PostgreSQL, il dispose de ses propres tables et vues système qui remplissent un rôle similaire à celui du Schéma d’Information dans d’autres systèmes de base de données.

Tables Système dans Redshift

Redshift fournit un ensemble de tables système qui stockent des métadonnées sur les données du cloud, ses tables et autres objets. Ces tables système sont préfixées par “PG_”, “STL_”, “STV_”, ou “SVV_”.

Diagramme des Tables Système du Schéma d'Information de la Base de Données Redshift

Voici quelques-unes des principales tables système dans Redshift :

  1. PG_TABLE_DEF : Contient des informations sur les définitions de tables.
  2. SVV_COLUMNS : Fournit une vue de toutes les colonnes de la base de données.
  3. SVV_TABLES : Offre une vue de toutes les tables de la base de données.

Voyons un exemple de l’utilisation de ces tables :

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

Cette requête renverra des informations sur toutes les colonnes des tables dans le schéma ‘public’, y compris leurs noms, types de données et encodages.

Requêtes sur le Schéma de la Base de Données Redshift

Pour obtenir une vue complète du schéma de votre base de données Redshift, vous pouvez utiliser des requêtes qui combinent des informations provenant de plusieurs tables système. En voici un exemple :

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' -- Only regular tables
AND n.nspname NOT IN ('pg_catalog', 'information_schema')
AND a.attnum > 0 -- Exclude system columns
ORDER BY
schema_name, table_name, a.attnum;

Cette requête fournit une vue détaillée du schéma de votre base de données Redshift, y compris les noms de schéma, les noms de table, les noms de colonne et les types de données.

Comparer les Outils d’Information de Redshift et PostgreSQL

Étant donné que Redshift est basé sur PostgreSQL, il est naturel de se demander sur les similitudes et les différences de leurs outils de schéma d’information.

Schéma d’Information de PostgreSQL

PostgreSQL, comme MS SQL Server, dispose d’un INFORMATION_SCHEMA conforme à la norme SQL. Il fournit des vues offrant des informations sur tous les objets de la base de données.

Par exemple, pour lister toutes les tables dans PostgreSQL, vous pouvez utiliser :

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

Redshift vs PostgreSQL

Bien que Redshift soit basé sur PostgreSQL, il n’inclut pas le schéma d’information standard INFORMATION_SCHEMA. À la place, il fournit ses propres tables et vues système. Cela est dû à la nature spécialisée de Redshift en tant qu’entrepôt de données colonnaire, qui nécessite des outils d’optimisation et de gestion différents.

Cependant, de nombreux concepts sont similaires. Par exemple, là où PostgreSQL dispose de information_schema.tables, Redshift a SVV_TABLES. Les deux fournissent des métadonnées sur les tables de la base de données, mais les spécificités des informations disponibles et de la manière dont elles sont accessibles peuvent différer.

Exploiter les Tables Système de Redshift pour l’Optimisation des Performances

Comprendre les tables système de Redshift peut vous aider à optimiser les performances de votre base de données. Explorons quelques applications pratiques.

Identifier la Répartition Inégale des Tables

La répartition inégale des tables se produit lorsque les données sont réparties de manière inégale entre les slices dans Redshift. Cela peut entraîner des problèmes de performance. Vous pouvez utiliser les tables système pour identifier cette répartition inégale :

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;

Cette requête montre la distribution des données entre les slices pour une table spécifique, vous aidant à identifier les problèmes potentiels de répartition inégale.

Surveiller les Performances des Requêtes

Les tables STL_QUERY et SVL_QUERY_SUMMARY de Redshift peuvent vous aider à surveiller les performances des requêtes :

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;

Cette requête fournit des informations détaillées sur les requêtes exécutées dans la dernière heure, y compris leur temps d’exécution et l’utilisation des ressources.

Meilleures Pratiques pour Utiliser le Schéma d’Information de Redshift

Pour tirer le meilleur parti des tables et vues système de Redshift, prenez en compte les meilleures pratiques suivantes :

  1. Surveillez régulièrement les statistiques des tables en utilisant SVV_TABLE_INFO pour vous assurer que vos tables sont optimisées.
  2. Utilisez STL_ALERT_EVENT_LOG pour identifier et résoudre de manière proactive les problèmes de performance.
  3. Exploitez SVV_VACUUM_PROGRESS pour surveiller et gérer les opérations de VACUUM.
  4. Utilisez SVV_DATASHARE_OBJECTS pour gérer le partage de données entre les clusters Redshift.

Souvenez-vous, bien que ces tables système fournissent des informations précieuses, les interroger fréquemment peut affecter les performances. Utilisez-les avec discernement et envisagez de mettre en cache les résultats lorsque cela est approprié.

Conclusion

Comprendre et utiliser efficacement les outils de schéma d’information de Redshift est crucial pour gérer et optimiser votre entrepôt de données. Bien qu’il soit différent du schéma standard INFORMATION_SCHEMA que l’on trouve dans SQL Server et PostgreSQL, les tables et vues système de Redshift offrent des capacités puissantes pour surveiller, dépanner et optimiser votre base de données.

En tirant parti de ces outils, vous pouvez obtenir des informations approfondies sur le schéma de votre base de données Redshift, surveiller les performances et prendre des décisions éclairées sur la gestion des données et l’optimisation des requêtes. Comme pour tout outil puissant, utilisez ces capacités avec sagesse pour équilibrer la collecte d’informations et les performances globales du système.

Pour ceux qui recherchent des outils avancés de sécurité et de conformité des bases de données, envisagez d’explorer DataSunrise. Nos solutions conviviales et flexibles offrent une protection complète des bases de données. Visitez notre site Web pour une démonstration en ligne et découvrez comment améliorer la sécurité de votre base de données dès aujourd’hui.

Suivant

Culture de Partage de Données

Culture de Partage de Données

En savoir plus

Besoin de l'aide de notre équipe de support ?

Nos experts seront ravis de répondre à vos questions.

Informations générales :
[email protected]
Service clientèle et support technique :
support.datasunrise.com
Demandes de partenariat et d'alliance :
[email protected]