Référence de table système des événements d’entrepôt
Important
Cette table système est en préversion publique. Pour accéder à la table, le schéma doit être activé dans votre catalogue system
. Pour plus d’informations, consultez Activer les schémas de table système.
Dans cet article, vous allez apprendre à utiliser la table système des événements d’entrepôt pour surveiller et gérer les entrepôts SQL dans vos espaces de travail. Cette table enregistre une ligne chaque fois qu'un entrepôt démarre, s'arrête, s'exécute, et effectuer un scale-up ou un scale-down. Vous pouvez utiliser les exemples de requêtes de cet article avec des alertes pour vous tenir informé des modifications apportées à vos entrepôts.
Chemin d’accès de la table : cette table système se trouve à l’emplacement system.compute.warehouse_events
.
Types d’événements de l’entrepôt journalisés
Cette table système enregistre les types d’événements suivants :
SCALED_UP
: Un nouveau cluster a été ajouté à l’entrepôt.SCALED_DOWN
: Un cluster a été supprimé de l’entrepôt.STOPPING
: l’entrepôt est en cours d’arrêt.RUNNING
: l’entrepôt est en cours d’exécution.STARTING
: l’entrepôt est en cours de démarrage.STOPPED
: l’entrepôt a complètement cessé de s’exécuter.
Schéma des événements d’entrepôt
La table système warehouse_events
utilise le schéma suivant :
Nom de la colonne | Type de données | Description | Exemple : |
---|---|---|---|
account_id |
string | ID d’un compte Azure Databricks. | 7af234db-66d7-4db3-bbf0-956098224879 |
workspace_id |
string | ID de l’espace de travail où l’entrepôt est déployé. | 123456789012345 |
warehouse_id |
string | ID de l'entrepôt SQL auquel l'événement est lié. | 123456789012345 |
event_type |
string | Type d’événement d’entrepôt. Les valeurs possibles sont SCALED_UP , SCALED_DOWN , STOPPING , RUNNING , STARTING et STOPPED . |
SCALED_UP |
cluster_count |
entier | Nombre de clusters en cours d’exécution. | 2 |
event_time |
timestamp | Timestamp en UTC du moment où l’événement a eu lieu. | 2023-07-20T19:13:09.504Z |
Exemples de requêtes
Les exemples de requêtes suivants sont des modèles. Intégrez les valeurs qui ont du sens pour votre organisation. Vous pouvez également ajouter des alertes à ces requêtes pour vous aider à rester informé des modifications apportées à vos entrepôts. Consultez Créer une alerte.
Utilisez les exemples de requêtes suivants pour obtenir un aperçu du comportement de l’entrepôt :
- Quels entrepôts sont actuellement en cours d'exécution et depuis combien de temps ?
- Identifier les entrepôts qui sont mis à l’échelle plus longtemps que prévu
- Entrepôts qui démarrent pour la première fois
- Examiner les frais de facturation
- Quels entrepôts n’ont pas été utilisés au cours des 30 derniers jours ?
- Entrepôts ayant le temps de fonctionnement le plus élevé en un mois
- Entrepôts qui ont passé le plus de temps en mise à l’échelle au cours d’un mois
Quels entrepôts sont actuellement en cours d'exécution et depuis combien de temps ?
Cette requête identifie les entrepôts actuellement actifs, ainsi que leur temps de fonctionnement en heures.
USE CATALOG `system`;
SELECT
we.warehouse_id,
we.event_time,
TIMESTAMPDIFF(MINUTE, we.event_time, CURRENT_TIMESTAMP()) / 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 d’espace de travail, vous pouvez être alerté si un entrepôt fonctionne plus longtemps que prévu. Par exemple, vous pouvez utiliser les résultats de la requête pour définir une condition d’alerte à déclencher lorsque les heures de fonctionnement dépassent un certain seuil.
Identifier les entrepôts qui sont mis à l’échelle plus longtemps que prévu
Cette requête identifie les entrepôts actuellement actifs, ainsi que leur temps de fonctionnement 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 pouvez définir une alerte lorsque les heures de mise à l’échelle dépassent une certaine limite.
Entrepôts qui démarrent pour la première fois
Cette requête vous informe des nouveaux entrepôts 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 : l'envoi d'alertes pour les nouveaux entrepôts peut aider votre organisation à suivre l'allocation des ressources. Par exemple, vous pourriez configurer une alerte qui se déclenche à chaque fois qu'un nouvel entrepôt démarre.
Examiner les frais de facturation
Si vous souhaitez comprendre spécifiquement ce qu’un entrepôt faisait pour générer des frais de facturation, cette requête peut vous indiquer les dates et heures exactes auxquelles l'entrepôt a augmenté ou diminué en capacité, ou a démarré et arrêté son activité.
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 entrepôts n’ont pas été utilisés au cours des 30 derniers jours ?
Cette requête vous aide à identifier les ressources inutilisées, ce qui vous permet d’optimiser les 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 peut aider votre organisation à optimiser les coûts. Par exemple, vous pouvez définir une alerte déclenchée lorsque la requête détecte un entrepôt inutilisé.
Entrepôts ayant le temps de fonctionnement le plus élevé en un mois
Cette requête indique quels entrepôts ont été utilisés le plus pendant un mois spécifique. Cette requête utilise le mois de 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 entrepôts à forte utilisation. Par exemple, vous pourriez définir une alerte qui se déclenche lorsque les heures de disponibilité d'un entrepôt dépassent un seuil spécifique.
Entrepôts qui ont passé le plus de temps en mise à l’échelle au cours d’un mois
Cette requête vous informe sur les entrepôts qui ont passé beaucoup de temps dans l’état de mise à l’échelle au cours d’un mois. Cette requête utilise le mois de 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 entrepôts à forte utilisation. Par exemple, vous pourriez définir une alerte qui se déclenche lorsque les heures de disponibilité d'un entrepôt dépassent un seuil spécifique.