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

Historique des Requêtes Snowflake

Historique des Requêtes Snowflake

Historique des Requêtes Snowflake

Introduction

Suivre et auditer l’activité de la base de données est une partie cruciale de la sécurisation et de l’optimisation de tout entrepôt de données. Snowflake est une plateforme de données cloud populaire qui fournit des outils puissants pour obtenir des informations détaillées sur les requêtes de votre compte. Dans cet article, nous explorerons la vue historique des requêtes Snowflake et les fonctions de table QUERY_HISTORY en détail. Vous apprendrez comment utiliser ces fonctionnalités pour obtenir des informations précieuses sur l’activité des requêtes, la performance et les modèles d’accès.

Qu’est-ce que la vue query_history de Snowflake ?

La vue query_history de Snowflake montre toutes les requêtes exécutées dans votre compte. Elle est en lecture seule. Les informations sont disponibles pour les 7 derniers jours pour l’Édition Standard. Pour l’Édition Entreprise et au-delà, elles sont disponibles pour les 14 derniers jours.

Cette information est disponible pour les 7 derniers jours pour l’Édition Standard, et 14 jours pour l’Édition Entreprise et au-delà. Elle fournit des informations détaillées sur chaque requête, y compris :

  • Texte de la requête

  • Statut d’exécution (par exemple, terminée, échouée, en cours)

  • Objets interrogés (tables, vues, etc.)

  • Utilisateur ayant exécuté la requête

  • Heure de début et de fin de la requête

  • Nombre de lignes retournées

  • Octets scannés

  • Et plus

Snowflake remplit automatiquement cette vue et ne nécessite aucune configuration ou configuration de votre part. Vous pouvez interroger cette vue d’audit d’accès Snowflake comme toute autre vue Snowflake.

Exemple de requête sur query_history

Voici un exemple de base d’utilisation de la vue query_history. Cette vue affiche les 10 requêtes les plus récentes exécutées par l’utilisateur actuel.

SELECT query_text, start_time, execution_status 
FROM query_history
WHERE user_name = current_user()
ORDER BY start_time DESC
LIMIT 10;

Cette requête sélectionne le texte SQL, l’heure de début et le statut d’exécution des requêtes de la vue query_history. Elle filtre uniquement les requêtes exécutées par l’utilisateur actuel, ordonne les résultats avec les requêtes les plus récentes en premier, et limite la sortie à 10 lignes.

Les fonctions de table QUERY_HISTORY

En plus de la vue query_history, Snowflake propose un ensemble de fonctions de table pour accéder aux données de l’historique des requêtes. Ces fonctions vous permettent de récupérer l’historique des requêtes plus ancien que la période de rétention de 7 ou 14 jours de la vue.

Les fonctions QUERY_HISTORY se déclinent en trois variantes:

  • QUERY_HISTORY() – Renvoie l’historique des requêtes sur 14 jours dans une structure de micro-partition pour des requêtes optimisées

  • QUERY_HISTORY_BY_SESSION() – Renvoie l’historique des requêtes sur 14 jours avec des détails supplémentaires au niveau de la session

  • QUERY_HISTORY_BY_USER() – Renvoie l’historique des requêtes sur 14 jours avec des détails supplémentaires au niveau de l’utilisateur

Exemple d’utilisation de QUERY_HISTORY

Supposons que vous vouliez trouver les 5 utilisateurs ayant scanné le plus de données au cours des 14 derniers jours. Vous pourriez utiliser cette fonction de table Snowflake comme suit:

SELECT user_name, sum(bytes_scanned) as total_bytes_scanned
FROM TABLE(QUERY_HISTORY())
WHERE start_time >= dateadd('day', -14, current_timestamp())  
GROUP BY user_name
ORDER BY total_bytes_scanned DESC
LIMIT 5;

Cette requête récupère l’historique des requêtes des 14 derniers jours en utilisant la fonction QUERY_HISTORY. Elle fait la somme de la colonne bytes_scanned pour chaque utilisateur, ordonne les résultats par total d’octets scannés en ordre décroissant et prend les 5 meilleurs utilisateurs.

Filtrage des résultats de l’historique des requêtes

La vue query_history et les fonctions QUERY_HISTORY prennent en charge une large gamme de prédicats SQL pour filtrer les résultats. Certains prédicats courants que vous pourriez utiliser incluent:

  • query_id – L’identifiant unique d’une requête

  • query_type – Le type de requête (par exemple, SELECT, INSERT, CREATE TABLE)

  • user_name – Le nom de l’utilisateur qui a exécuté la requête

  • start_time et end_time – Les horodatages de début et de fin de la requête

  • execution_status – Le statut de la requête (par exemple, EN COURS, TERMINÉ, ÉCHOUÉ)

  • database_name, schema_name, table_name – Les noms des objets de base de données accessibles par la requête

Voici un exemple qui trouve toutes les requêtes échouées ayant accédé à une table spécifique au cours de la dernière journée :

SELECT * 
FROM query_history
WHERE execution_status = 'FAILED'
 AND table_name = 'my_table'
 AND start_time >= dateadd('day', -1, current_timestamp());

Cas d’utilisation de l’historique des requêtes

La fonctionnalité d’historique des requêtes de Snowflake offre de nombreux cas d’utilisation précieux, notamment :

Audit et Sécurité

En suivant toutes les requêtes exécutées sur votre compte Snowflake, query_history vous permet de :

  • Surveiller les activités suspectes ou les accès non autorisés

  • Enquêter sur les incidents de sécurité

  • Assurer la conformité avec les politiques de gouvernance des données

  • Fournir une piste d’audit pour les exigences réglementaires

Optimisation des Requêtes

Les données de l’historique des requêtes peuvent vous aider à optimiser les performances des requêtes en :

  • Identifiant les requêtes les plus gourmandes en ressources

  • Analysant les modèles de requêtes au fil du temps

  • Détectant et résolvant les erreurs de requêtes ou les délais d’attente

  • Optimisant les stratégies d’indexation, de clustering et de partitionnement

Répartition et Attribution des Coûts

Les données sur les octets scannés et le temps d’exécution dans l’historique des requêtes vous permettent de :

  • Attribuer les coûts Snowflake à des utilisateurs, des équipes ou des projets spécifiques

  • Mettre en œuvre des modèles de refacturation ou de showback

  • Encourager l’efficacité des requêtes et limiter les coûts excessifs

Accéder à l’Historique des Requêtes de Manière Sécurisée

Notez que par défaut, la vue query_history et les fonctions QUERY_HISTORY ne sont accessibles que par le rôle ACCOUNTADMIN. Pour accorder l’accès à d’autres rôles, vous devrez utiliser la commande GRANT IMPORTED PRIVILEGES.

Soyez prudent lorsque vous accordez l’accès à l’historique des requêtes, car il peut contenir des informations sensibles. Envisagez de créer un rôle distinct avec des privilèges limités spécifiquement pour l’audit et la surveillance.

Résumé et Conclusion

La fonctionnalité d’historique des requêtes de Snowflake fournit une visibilité essentielle sur les requêtes que les utilisateurs exécutent sur votre compte. Vous pouvez utiliser la vue query_history et les fonctions de table QUERY_HISTORY pour diverses finalités. Celles-ci incluent l’amélioration de l’audit, l’optimisation des performances des requêtes et le suivi des coûts d’utilisation. De plus, ces outils offrent encore plus d’avantages.

Les exemples couverts dans cet article illustrent seulement quelques-unes des nombreuses façons dont vous pouvez extraire des informations à partir des données de l’historique des requêtes. En explorant davantage, réfléchissez à la manière dont ces informations pourraient améliorer la sécurité, l’efficacité et la gouvernance au sein de votre propre environnement Snowflake.

DataSunrise fournit des outils simples et flexibles pour gérer la sécurité Snowflake, les règles d’audit, le masquage dynamique des données et la conformité. Visitez notre équipe pour une démo en ligne pour voir ces capacités en action !

Suivant

Redshift et Athena

Redshift et Athena

En savoir plus

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

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

Countryx
United States
United Kingdom
France
Germany
Australia
Afghanistan
Islands
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
Antarctica
Antigua and Barbuda
Argentina
Armenia
Aruba
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia
Bosnia and Herzegovina
Botswana
Bouvet
Brazil
British Indian Ocean Territory
Brunei Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African Republic
Chad
Chile
China
Christmas Island
Cocos (Keeling) Islands
Colombia
Comoros
Congo, Republic of the
Congo, The Democratic Republic of the
Cook Islands
Costa Rica
Cote D'Ivoire
Croatia
Cuba
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Falkland Islands (Malvinas)
Faroe Islands
Fiji
Finland
French Guiana
French Polynesia
French Southern Territories
Gabon
Gambia
Georgia
Ghana
Gibraltar
Greece
Greenland
Grenada
Guadeloupe
Guam
Guatemala
Guernsey
Guinea
Guinea-Bissau
Guyana
Haiti
Heard Island and Mcdonald Islands
Holy See (Vatican City State)
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran, Islamic Republic Of
Iraq
Ireland
Isle of Man
Israel
Italy
Jamaica
Japan
Jersey
Jordan
Kazakhstan
Kenya
Kiribati
Korea, Democratic People's Republic of
Korea, Republic of
Kuwait
Kyrgyzstan
Lao People's Democratic Republic
Latvia
Lebanon
Lesotho
Liberia
Libyan Arab Jamahiriya
Liechtenstein
Lithuania
Luxembourg
Macao
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Micronesia, Federated States of
Moldova, Republic of
Monaco
Mongolia
Montserrat
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
Netherlands Antilles
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Niue
Norfolk Island
North Macedonia, Republic of
Northern Mariana Islands
Norway
Oman
Pakistan
Palau
Palestinian Territory, Occupied
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Pitcairn
Poland
Portugal
Puerto Rico
Qatar
Reunion
Romania
Russian Federation
Rwanda
Saint Helena
Saint Kitts and Nevis
Saint Lucia
Saint Pierre and Miquelon
Saint Vincent and the Grenadines
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia and Montenegro
Seychelles
Sierra Leone
Singapore
Slovakia
Slovenia
Solomon Islands
Somalia
South Africa
South Georgia and the South Sandwich Islands
Spain
Sri Lanka
Sudan
Suriname
Svalbard and Jan Mayen
Swaziland
Sweden
Switzerland
Syrian Arab Republic
Taiwan, Province of China
Tajikistan
Tanzania, United Republic of
Thailand
Timor-Leste
Togo
Tokelau
Tonga
Trinidad and Tobago
Tunisia
Turkey
Turkmenistan
Turks and Caicos Islands
Tuvalu
Uganda
Ukraine
United Arab Emirates
United States Minor Outlying Islands
Uruguay
Uzbekistan
Vanuatu
Venezuela
Viet Nam
Virgin Islands, British
Virgin Islands, U.S.
Wallis and Futuna
Western Sahara
Yemen
Zambia
Zimbabwe
Choose a topicx
Informations générales
Ventes
Service clientèle et support technique
Demandes de partenariat et d'alliance
Informations générales :
info@datasunrise.com
Service clientèle et support technique :
support.datasunrise.com
Demandes de partenariat et d'alliance :
partner@datasunrise.com