Référence de la table système des événements du warehouse
Dans cet article, vous apprendrez à utiliser la table système des événements du warehouse pour surveiller et gérer les SQL Warehouse dans vos Workspace. Ce tableau enregistre une ligne chaque fois qu'un warehouse start, s'arrête, s'exécute et monte et réduit la charge. Vous pouvez utiliser les exemples de query dans cet article avec des alertes pour vous tenir informé(e) des modifications apportées à vos warehouse.
**Chemin de la table** : Cette table système est située system.compute.warehouse_events à.
Types d'événements de warehouse enregistrés
Cette table système Logs les types d'événements suivants :
SCALED_UP: Un nouveau cluster a été ajouté au warehouse.SCALED_DOWN: Un cluster a été supprimé du warehouse.STOPPING: The warehouse est en cours d’arrêt.RUNNING: Le warehouse est en cours d'exécution.STARTING: Le warehouse est en cours de démarrage.STOPPED: Le warehouse a complètement cessé de fonctionner.
Schéma des événements du warehouse
La table système warehouse_events utilise le schéma suivant :
Nom de colonne | Type de données | Description | Exemple |
|---|---|---|---|
| chaîne | L'ID du compte Databricks. |
|
| chaîne | L'ID du workspace où le warehouse est déployé. |
|
| chaîne | L'ID du SQL Warehouse auquel l'événement est lié. |
|
| chaîne | Le type d'événement du warehouse. Les valeurs possibles sont |
|
| entier | Le nombre de clusters qui sont en cours d'exécution. |
|
| Horodatage | Timestamp de l'heure à laquelle l'événement a eu lieu en UTC. |
|
Exemples de query
Les query d'exemple suivantes sont des Template. Insérez les valeurs qui conviennent à votre organisation. Vous pouvez également ajouter des alertes à ces query pour vous aider à rester informé des modifications apportées à vos warehouse. Voir Créer une alerte.
Utilisez les exemples de requêtes suivants pour obtenir des insights sur le comportement du warehouse :
- Quels warehouses sont en cours d’exécution et depuis combien de temps ?
- Identifiez les warehouse qui sont mis à l'échelle supérieure plus longtemps que prévu
- warehouse qui start pour la première fois
- Examinez les frais de facturation.
- Quels warehouse n'ont pas été utilisés au cours des 30 derniers jours ?
- Warehouses avec la meilleure disponibilité par mois
- Warehouses qui ont passé le plus de temps à monter en charge au cours d'un mois.
Quels warehouse sont en cours d'exécution et depuis combien de temps ?
Cette query identifie les warehouse actuellement actifs ainsi que leur durée d'exécution en heures.
USE CATALOG `system`;
SELECT
we.warehouse_id,
we.event_time,
TIMESTAMPDIFF(MINUTE, we.event_time, NOW()) / 60.0 AS running_hours,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
we.event_type = 'RUNNING'
AND NOT EXISTS (
SELECT
1
FROM
compute.warehouse_events we2
WHERE
we2.warehouse_id = we.warehouse_id
AND we2.event_time > we.event_time
)
**Opportunité d'alerte** : En tant qu'administrateur de Workspace, vous voudriez peut-être être alerté si un warehouse fonctionne plus longtemps que prévu. Par exemple, vous pouvez utiliser les résultats de query pour définir une condition d'alerte pour trigger lorsque les heures d'exécution dépassent un certain threshold.
Identifier les warehouses qui sont mis à l'échelle plus longtemps que prévu
Cette query identifie les warehouse actuellement actifs ainsi que leur durée d'exécution en heures.
use catalog `system`;
SELECT
we.warehouse_id,
we.event_time,
TIMESTAMPDIFF(MINUTE, we.event_time, CURRENT_TIMESTAMP()) / 60.0 AS upscaled_hours,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
we.event_type = 'SCALED_UP'
AND we.cluster_count >= 2
AND NOT EXISTS (
SELECT 1
FROM compute.warehouse_events we2
WHERE we2.warehouse_id = we.warehouse_id
AND (
(we2.event_type = 'SCALED_DOWN') OR
(we2.event_type = 'SCALED_UP' AND we2.cluster_count < 2)
)
AND we2.event_time > we.event_time
)
Opportunité d'alerte : L'alerte sur cette condition peut vous aider à surveiller les Ressources et les coûts. Vous pourriez définir une alerte lorsque les heures augmentées dépassent une certaine limite.
warehouse that start for the first time
Cette query vous informe des nouveaux warehouses qui démarrent pour la première fois.
use catalog `system`;
SELECT
we.warehouse_id,
we.event_time,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
(we.event_type = 'STARTING' OR we.event_type = 'RUNNING')
AND NOT EXISTS (
SELECT 1
FROM compute.warehouse_events we2
WHERE we2.warehouse_id = we.warehouse_id
AND we2.event_time < we.event_time
)
Opportunité d'alerte : les alertes concernant les nouveaux warehouse peuvent aider votre organisation à suivre l'allocation des ressources. Par exemple, vous pouvez définir une alerte qui se déclenche chaque fois qu'un nouveau warehouse start.
Examiner les frais de facturation
Si vous souhaitez comprendre spécifiquement ce qu'un warehouse faisait pour générer des frais de facturation, cette query peut vous indiquer les dates et heures exactes auxquelles le warehouse a été mis à l'échelle à la hausse ou à la baisse, ou a démarré et s'est arrêté.
use catalog `system`;
SELECT
we.warehouse_id AS warehouse_id,
we.event_type AS event,
we.event_time AS event_time,
we.cluster_count AS cluster_count
FROM
compute.warehouse_events AS we
WHERE
we.event_type IN (
'STARTING', 'RUNNING', 'STOPPING', 'STOPPED',
'SCALING_UP', 'SCALED_UP', 'SCALING_DOWN', 'SCALED_DOWN'
)
AND MONTH(we.event_time) = 7
AND YEAR(we.event_time) = YEAR(CURRENT_DATE())
AND we.warehouse_id = '19c9d68652189278'
ORDER BY
event_time DESC
Quels warehouses n'ont pas été utilisés au cours des 30 derniers jours ?
Cette query vous aide à identifier les ressources inutilisées, offrant une opportunité d'optimisation des coûts.
use catalog `system`;
SELECT
we.warehouse_id,
we.event_time,
we.event_type,
we.cluster_count
FROM
compute.warehouse_events AS we
WHERE
we.warehouse_id IN (
SELECT DISTINCT
warehouse_id
FROM
compute.warehouse_events
WHERE
MONTH(event_time) = 6
AND YEAR(event_time) = YEAR(CURRENT_DATE())
)
AND we.warehouse_id NOT IN (
SELECT DISTINCT
warehouse_id
FROM
compute.warehouse_events
WHERE
MONTH(event_time) = 7
AND YEAR(event_time) = YEAR(CURRENT_DATE())
)
ORDER BY
event_time DESC
**Opportunité d'alerte** : La réception d'une alerte sur les ressources inutilisées pourrait aider votre organisation à optimiser ses coûts. Par exemple, vous pourriez configurer une alerte qui se déclenche lorsque la query détecte un warehouse inutilisé.
Warehouses avec le temps de disponibilité le plus élevé en un mois
Cette query montre quels warehouses ont été les plus utilisés au cours d'un mois spécifique. Cette requête utilise juillet comme exemple.
use catalog `system`;
SELECT
warehouse_id,
SUM(TIMESTAMPDIFF(MINUTE, start_time, end_time)) / 60.0 AS uptime_hours
FROM (
SELECT
starting.warehouse_id,
starting.event_time AS start_time,
(
SELECT
MIN(stopping.event_time)
FROM
compute.warehouse_events AS stopping
WHERE
stopping.warehouse_id = starting.warehouse_id
AND stopping.event_type = 'STOPPED'
AND stopping.event_time > starting.event_time
) AS end_time
FROM
compute.warehouse_events AS starting
WHERE
starting.event_type = 'STARTING'
AND MONTH(starting.event_time) = 7
AND YEAR(starting.event_time) = YEAR(CURRENT_DATE())
) AS warehouse_uptime
WHERE
end_time IS NOT NULL
GROUP BY
warehouse_id
ORDER BY
uptime_hours DESC
Opportunité d'alerte : Vous souhaiterez peut-être suivre les warehouse à forte utilisation. Par exemple, vous pourriez définir une alerte qui est déclenchée lorsque les heures de disponibilité d’un warehouse dépassent un threshold spécifique.
Warehouses qui ont passé le plus de temps mis à l'échelle supérieure au cours d'un mois
Cette query vous informe sur les warehouses qui ont passé un temps significatif en état de mise à l'échelle supérieure au cours d'un mois. Cette requête utilise juillet comme exemple.
use catalog `system`;
SELECT
warehouse_id,
SUM(TIMESTAMPDIFF(MINUTE, upscaled_time, downscaled_time)) / 60.0 AS upscaled_hours
FROM (
SELECT
upscaled.warehouse_id,
upscaled.event_time AS upscaled_time,
(
SELECT
MIN(downscaled.event_time)
FROM
compute.warehouse_events AS downscaled
WHERE
downscaled.warehouse_id = upscaled.warehouse_id
AND (downscaled.event_type = 'SCALED_DOWN' OR downscaled.event_type = 'STOPPED')
AND downscaled.event_time > upscaled.event_time
) AS downscaled_time
FROM
compute.warehouse_events AS upscaled
WHERE
upscaled.event_type = 'SCALED_UP'
AND upscaled.cluster_count >= 2
AND MONTH(upscaled.event_time) = 7
AND YEAR(upscaled.event_time) = YEAR(CURRENT_DATE())
) AS warehouse_upscaled
WHERE
downscaled_time IS NOT NULL
GROUP BY
warehouse_id
ORDER BY
upscaled_hours DESC
Opportunité d'alerte : Vous souhaiterez peut-être suivre les warehouse à forte utilisation. Par exemple, vous pourriez définir une alerte qui est déclenchée lorsque les heures de disponibilité d’un warehouse dépassent un threshold spécifique.